Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does VoltDB Community Edition support disk level persistence?

Tags:

voltdb

VoltDB's web site shows that the community edition supports full ACID (which includes the D for durability) but it doesn't look like it supports the crash recovery which seems related to the command logging. Is there a different in the 'D' part of durability between the community edition and the commercial versions? If the machine goes down are all data lost?

like image 389
Brennan Cheung Avatar asked Dec 12 '22 00:12

Brennan Cheung


1 Answers

Both VoltDB distributions - Community Edition and Enterprise Edition - support durability through database snapshots, which can be executed ad hoc, at admin-defined frequencies or continuously. Snapshots are written to permanent storage. Database recovery (durability) is achieved by restoring from snapshots.

VoltDB Enterprise Edition also includes a feature called Command Logging, which provides durability for transactions that occur in the (typically brief) intervals between snapshots. Command Logging can be configured to run synchronously (100% durability guarantee) or asynchronously (less of an impact on transaction latencies at the cost of losing some transactions during a crash). If asynchronous logging is used, the fsync window can be configured to balance latency and durability objectives.

In summary, both distributions of VoltDB support durability via snapshotting, and Enterprise Edition provides additional durability via Command Logging.

It should be noted that both distributions of VoltDB also include built-in high availability via a synchronous multi-master feature called k-safety. You can maintain as many "masters" of each database node as you wish, and VoltDB will transparently (and synchronously) apply transactions to all appropriate nodes. If one node crashes, its peer(s) simply continue to accept/process work. This "Tandem-style" fault tolerance significantly reduces the likelihood of experiencing an outage that requires database recovery.

Read more about VoltDB snapshots: http://community.voltdb.com/docs/UsingVoltDB/SaveSnapshotAuto

Read more about VoltDB command logging: http://community.voltdb.com/docs/UsingVoltDB/ChapCmdLog

like image 162
fholahan Avatar answered Jun 06 '23 20:06

fholahan