voltdb - VoltDB社区版如何支持磁盘级持久化?

标签 voltdb

VoltDB 的网站显示,社区版支持完整的 ACID(其中包括表示持久性的 D),但看起来并不支持与命令日志记录相关的崩溃恢复。社区版和商业版之间的耐用性“D”部分有什么不同吗?如果机器宕机,所有数据都会丢失吗?

最佳答案

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

关于voltdb - VoltDB社区版如何支持磁盘级持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571795/

相关文章:

sql - 存储二维稀疏数组(二维稀疏矩阵)的最佳方式是什么?它在 VoltDB 中的大小是多少?

sql - 为什么 SQL 数据库在命令日志上使用预写日志?

java - 如何在eclipse中设置环境来创建VoltDB存储过程?

java - 使用 InProcessVoltDBServer 通过 Java 类加载 VoltDB 过程

液体碱 : How to use <preconditions> with changeset having runAlways true?

java - 使用 jdbc 在 volt-db 中创建表

mysql - 您可以浏览正在运行的 VoltDB 数据库吗?

sql - 仅在 VoltDB 中更新必要的字段

mysql - 有VoltDB或MySQL集群真实体验的人吗?