VoltDBのWebサイトには、コミュニティエディションが完全なACID(耐久性のためのDを含む)をサポートしていることが示されていますが、コマンドロギングに関連していると思われるクラッシュリカバリをサポートしているようには見えません。コミュニティ版と商用版の耐久性の「D」部分に違いはありますか?マシンがダウンした場合、すべてのデータが失われますか?
1 に答える
VoltDBディストリビューション(CommunityEditionとEnterpriseEdition)はどちらも、データベーススナップショットを通じて耐久性をサポートします。データベーススナップショットは、アドホックで、管理者が定義した頻度で、または継続的に実行できます。スナップショットは永続ストレージに書き込まれます。データベースのリカバリ(耐久性)は、スナップショットから復元することで実現されます。
VoltDB Enterprise Editionには、コマンドロギングと呼ばれる機能も含まれています。この機能は、スナップショット間の(通常は短い)間隔で発生するトランザクションに耐久性を提供します。コマンドロギングは、同期(100%の耐久性保証)または非同期(クラッシュ中に一部のトランザクションを失うという犠牲を払ってトランザクションの待機時間への影響が少ない)で実行するように構成できます。非同期ロギングを使用する場合、遅延と耐久性の目標のバランスをとるようにfsyncウィンドウを構成できます。
要約すると、VoltDBの両方のディストリビューションはスナップショットを介して耐久性をサポートし、EnterpriseEditionはコマンドロギングを介して追加の耐久性を提供します。
VoltDBの両方のディストリビューションには、k-safetyと呼ばれる同期マルチマスター機能を介した高可用性が組み込まれていることに注意してください。各データベースノードの「マスター」は必要な数だけ維持でき、VoltDBはトランザクションをすべての適切なノードに透過的に(そして同期的に)適用します。1つのノードがクラッシュした場合、そのピアは単に作業を受け入れ/処理し続けます。この「タンデムスタイル」のフォールトトレランスにより、データベースのリカバリが必要な停止が発生する可能性が大幅に減少します。
VoltDBスナップショットの詳細については、http://community.voltdb.com/docs/UsingVoltDB/SaveSnapshotAutoをご覧ください。
VoltDBコマンドロギングの詳細については、http://community.voltdb.com/docs/UsingVoltDB/ChapCmdLogをご覧ください。