Update operations on a single partition are ordered by that partition’s Single-Partition Initiator, or SPI: a stable leader which ensures transactions don’t interleave.All replicas of a partition follow the SPI’s updates.Volt DB’s engineers confirm this interpretation: it should provide strict serializability.Because strict serializable systems are also linearizable, we can use Jepsen’s existing linearizability checker to verify Volt DB’s correctness—both on single objects in the database, and on systems of multiple rows.This is why Volt DB’s performance numbers use entirely single-partition workloads.As it turns out, coordination in real-world transactional workloads is less common than one might expect.
no auto-increment, no foreign key constraints, etc.) However, its approach to multi-statement transactions is distinct: instead of , either in SQL or Java.
Volt DB is a distributed SQL database intended for high-throughput transactional workloads on datasets which fit entirely in memory.
All data is stored in RAM, but backed by periodic disk snapshots and an on-disk recovery log for crash durability. Tables may be replicated to every node for fast local reads, or sharded for linear storage scalability.
Volt DB can shard tables into logical for redundancy.
Transactions which only interact with data in a single partition can be executed by that partition’s SPI, without coordinating with other partitions.