We get a lot of questions about what VoltDB is, what it does well, and how it can help enterprises solve a range of data management challenges. This post will address a few of those questions. We’ll have more posts like this, so check back often.
How does VoltDB differ from a typical RDBMS?
VoltDB was developed to address two issues common to legacy relational databases:
- Running a legacy database completely in memory did not lead to a drastic ten-fold performance increase, and
- Legacy databases do not scale out horizontally. In order to scale with your application you must buy massive hardware and scale up.
VoltDB’s developers solved these issues by:
- Architecting a single-threaded system that eliminated the high costs of concurrency
- Moving logic to the server side, thus placing processing near data
- Using stored procedures to avoid external transaction control
- Persisting data to disk via snapshots and logical logs; and
- Achieving high availability via synchronous replication and deterministic operations.
For more on how VoltDB is built – and why we made the architectural choices we did – take a look at Reasons behind the VoltDB architecture.
What does a typical use case look like?
VoltDB is the perfect database to process streams of data and compute real-time analytics and per-event transactions for high-performance, high-throughput, operational, scalable applications. It combines the power of a relational database, the familiar interactivity and querying of SQL, real-time analytics on live data streams, and the ability to act in real time (perform transactions) on live data flows. VoltDB is used by enterprises in telco/mobile, financial services, gaming, ad technology and IoT sensor management for operational, ACID-compliant, request-response style applications. Among the use cases for which VoltDB is ideal are:
- Mobile, adtech, gaming: Creating applications that enable hyper-personalized user interactions, e.g., customer loyalty programs that build engagement
- Telco/mobile: In mobile billing and operational systems with sub-50ms latency SLAs
- Financial services: In trade verification and bid-offer management applications for financial services organizations (high-volume broker-trader operations, fraud detection)
- IoT: Sensor data management in electric smart grid and smart home applications.
See more about the use cases we support here.
How does VoltDB differ from other NewSQL systems?
NewSQL is a relatively new database category, with offerings that have surface similarities, but notable differences in architecture. VoltDB differs from other entrants in four key ways:
- Best support for event processing and taking action on events
- Optimized for complex operational workloads, with a focus on write throughput
- The highest level of ACID compliance: serializable isolation
- Simple operational model
Let’s look at these differentiators in more detail.
- Processing ‘events’ means different things in different NewSQL systems. Some capture inbound events, and aggregate and analyze the data; these systems are skewed towards analytic workloads. VoltDB is optimized for mixing many queries, updates and inserts as part of ingesting a single event, for a much richer operational capability. VoltDB not only offers fast ingestion and real-time analytics on the inbound stream, but also enables applications to act on events in real time. This brings the benefits of analytical insights to bear on actions, which result in operational outcomes.
- Not only is VoltDB optimized for complex operational workloads, it also provides strong consistency and complex transactional support.
- VoltDB offers the highest level of ACID compliance – serializable isolation. VoltDB will never give a wrong answer. Your data will always be correct. We took (and passed) the Jepsen test to prove it.
- VoltDB was designed to solve the problems created by legacy, one-size-fits-all databases. VoltDB’s three simple architectural pillars are:
- VoltDB uses in-memory storage to maximize throughput, avoiding costly disk access.
- All data access is serialized, resulting in performance gains and avoiding many of the time-consuming functions of traditional databases such as locking, latching, and maintaining transaction logs.
- Clustering and replication across multiple servers results in scalability, reliability, and high availability.
How much data can I store in a VoltDB cluster?
The simple answer is the sum of all the memory in your cluster, divided by the replication factor, minus a few gigs of temp space per node.
For a more detailed description, check out the VoltDB Planning Guide.
Do you support unstructured data?
Yes. While the relational model has many advantages, there are times when a document/JSON model makes sense.
VoltDB offers much of the schema flexibility of a document store, with the additional power of SQL integration. VoltDB supports hybrid document-relational schemas, full SQL joins between data in JSON documents, fully consistent secondary indexes of JSON document data, and serializable ACID transactions on JSON documents.
Read more about VoltDB and JSON in the blog Querying JSON data in VoltDB.
In the next post we’ll examine how VoltDB is different from NoSQL databases; how replication works in VoltDB; how to use VoltDB in the cloud; how VoltDB stored procedures are different, and how to partition tables in VoltDB. In the meantime, Tweet your questions about how VoltDB works to us at @VoltDB with the hashtag #questions.