There are many doubts and clarifications about VoltDB which the DBA’s and developers ask while they have to deal with the same. In this article, we are trying to compile expert answers to questions about the architecture and capabilities of VoltDB. This may not be an exhaustive FAQ about VoltDB, but you can surely gain some better insights about the same as a potential user. These questions will give you an idea about how to begin with the whole process.
1. Can analytical queries be run on VoltDB?
Yes. VoltDB features HTAP, a hybrid analytical and transactional, operational DB with which the users can run analytical queries. In addition to the traditional OLTP, you can also add those queries too as well. Consult a professional to get the best out of it.
2. Is VoltDB made available on Amazon Web Services?
VoltDB is fully available on AWS Marketplace, from where you can download and use it. On the other hand, if you use Google Cloud or Azure, there is a Docker image that you can instantly use to deploy on such cloud too. VoltDB is cloud-agnostic, and the users can deploy it on any public cloud or even on private clouds per se.
3. Is VoltDB OpenShift Certified?
Red Hat comes up with the OpenShift platform. The customers do use VoltDB in that capacity too. However, VoltDB is not officially certified with OpenShift. VoltDB has a Kubernetes implementation that is launched and made available for the users to be deployed at a scale. It will let the users spin up the VoltDB cloud by using Kubernetes and manage.
4. It is possible to orchestrate VoltDB by using Kubernetes?
It is very much to do so. VoltDB is traditionally a stateful DB, and Kubernetes is designed on dynamic web apps. So, this was a tough problem to get resolved with many databases. However, VoltDB can be effectively orchestrated with Kubernetes.
5. Can VoltDB scale horizontally and across the datacenters?
Yes, VoltDB is capable of partitioning. As we discussed, you can use many CPUs within the server or across the DB servers to benefit from partitioning. The VoltDB commands are queues by the partition and executed by each of the CPUs across various partitions, and so each of the commands is individually executed in each participation. Each partition of DB will maintain strong semantics and can replicate across the servers and various clusters and different geographies. With this, there is an active-active disaster recovery that may go across different regions. If you maintain a data centre in the US, you may have replicas of the same along with your other data centre in Europe. So, if the US data centre goes down, you can keep the production running with the replica being on.
6. Any admin tools available for VoltDB management?
There are plenty of tools available for VoltDB management. You can search on DuckDuckGo to find the options. You may also search on the VoltDB University to see the options. All documentation related to these tools is also available online, so you can feel free to check it out. The providers also offer a console for VoltDB management with which those who are not even very tech-savvy can use these tools. Those technical specialists can also run it through CLI.
7. Is the data migration to VoltDB straightforward?
After all, it melts down to how better you understand the application and what is written there. Many tools are available for the users to migrate over to the VoltDB because it is SQL-based. However, as it is NewSQL and based on partition core architecture, you need to consider some nuances, too, as to how the application may get charted across different servers. So, as far as you understand what you need to do, migration is something that you can do much easier. There are also support services available to help users who need assistance in doing the same.
8. How to compare VoltDB to TimescaleDB?
TimescaleDB is now one of the major time-series databases which is much popular nowadays. Time series is a subcategory of the NoSQL DBs, which we have discussed in another article. You can easily manage time series in VoltDB as it supports the time series capability by default. However, VoltDB is not a time-series DB by itself as like TimescaleDB.
VoltDB consists of databases that comprise several partitions spread across different sites. Each partition that runs on the given site may be single-threaded. It helps eliminate any overheads associated with latching and locking in a usual multi-threaded setting, and the transactional requests are sequentially executed.
NoSQL databases, in general, as the name suggests, may not use SQL as their querying language. Say, for example, you can take MongoDB queries, which are written in JSON. CouchDB and Riak support the queries using map/reduce functions, and VoltDB uses SQL as the query language. This is an advantage that most developers and DBAs may be familiar with using SQL. This cannot be, however, said about the query interfaces offered by the NoSQL DBs.
The access to stored data on VoltDB is through the stored procedures written in Java, and the SQL statements are embedded in stored procedures. One major advantage of executing the SQL queries from within the stored procedures like JDBC is that such a transaction may only require a single trip between the server and the client. It will also help eliminate any latency related to it, making many calls between different databases and applications.
Considering VoltDB for your enterprise applications, you have two different versions of the same available as the community edition, open-source, and the enterprise edition, which is paid premium. To choose among these, you may first identify your enterprise needs and goals and evaluate them against each of these features and offerings to identify which one suits you the best.