VoltDB 的网站显示社区版支持完整的 ACID(包括 D 表示持久性),但它看起来不支持似乎与命令日志相关的崩溃恢复。社区版和商业版的耐用性的“D”部分有什么不同吗?如果机器出现故障,所有数据都会丢失吗?
1 回答
VoltDB 发行版(社区版和企业版)都通过数据库快照支持持久性,这些快照可以临时、以管理员定义的频率或连续执行。快照被写入永久存储。数据库恢复(持久性)是通过从快照恢复来实现的。
VoltDB 企业版还包括一个称为命令日志记录的功能,它为快照之间(通常是短暂的)间隔内发生的事务提供持久性。命令日志可以配置为同步运行(100% 的持久性保证)或异步运行(以在崩溃期间丢失一些事务为代价对事务延迟的影响较小)。如果使用异步日志记录,则可以配置 fsync 窗口以平衡延迟和持久性目标。
总之,VoltDB 的两个发行版都通过快照支持持久性,企业版通过命令日志提供额外的持久性。
应该注意的是,VoltDB 的两个发行版还包括通过称为 k-safety 的同步多主机功能的内置高可用性。您可以根据需要维护每个数据库节点的任意数量的“主节点”,VoltDB 将透明地(和同步地)将事务应用到所有适当的节点。如果一个节点崩溃,它的对等点只是继续接受/处理工作。这种“串联式”容错显着降低了发生需要数据库恢复的中断的可能性。
阅读有关 VoltDB 快照的更多信息:http: //community.voltdb.com/docs/UsingVoltDB/SaveSnapshotAuto
阅读有关 VoltDB 命令记录的更多信息:http: //community.voltdb.com/docs/UsingVoltDB/ChapCmdLog