0

私の NoSQL または NewSQL/NeoSQL データベース サーバーへの露出は非常に限られており、理論的なものにすぎません。私は従来の RDBMS (MySQL、Postgres など) とディレクトリ サーバー (OpenLDAP) をレプリケーションの有無にかかわらず使用してきました。

私のアプリケーション スタックは JBoss に基づいており、VoltDB でデータの耐久性と高可用性を実証できる最小限のデモ (アプリケーションを使用) をセットアップする任務を負っています。パフォーマンス テストは目的ではありません。

VoltDB プランニング ガイドを読んでいますが、必要なサーバー (または VoltDB インスタンス) の数に関して、「+1」または「x2」の間で混乱しています。特に次の 2 つのステートメントを考えると:-

K-Safe クラスターのハードウェアのサイズを決定する最も簡単な方法は、予測されるスループットと容量に基づいてデータベースの初期インスタンスのサイズを決定し、サーバーの数に必要なレプリカの数を掛けることです (つまり、K-Safety値プラス 1)。

経験則

K-Safety を使用する場合は、クラスター ノードの数をデータベースのコピー数の整数倍 (つまり、K+1) として構成します。

質問:

  1. ここで、容量/スループットの要件を考慮して、1 台のサーバーが必要だとしましょう。耐久性と高可用性を実現するには、2 台、3 台、または 4 台のサーバーが必要ですか?
  2. OTOH、たった1台のサーバーを使用して、VoltDBのすべての重要な機能を放棄する必要がありますか?
  3. VoltDB の完全なディスク永続性とスナップショットの間に関係 (または競合) はありますか? たとえば、ディスク永続性の可用性により、スナップショットの必要性がなくなりますか?
4

1 に答える 1

1
  1. 2 台のサーバーを使用する場合、RAID1 ハード ドライブと同様に、データの同期レプリカを保持してデータの損失を防ぐことができます。データは二重に安全ですが、可用性には問題があります。サーバーが 2 台しかないため、ネットワークの分割とノードの障害を区別することは不可能です。場合によっては、別のノードがスプリット ブレインが存在しないことを確認できない場合、VoltDB がライブ ノードをシャットダウンします。3 つのノードでは、これは問題にならず、クラスターは 1 つのノードに障害が発生した後も引き続き使用できます (k=1 または k=2 の場合)。

  2. たった 1 つのサーバーで失われるのは、複数のサーバーにあるデータの複数のコピーと、ノードの障害後も VoltDB を実行し続けることを可能にする高可用性機能だけです。完全なディスクの永続性を含む、他のすべての VoltDB 機能を引き続き利用できます。

于 2015-08-12T13:12:11.360 に答える