1

RethinkDB のクラスターが実際にどのように機能するかについての多くのドキュメントを見つけることができないようです。

  1. Cassandra では、1 つ以上のホストを定義してクラスターに接続します。そのため、そのうちの 1 つがダウンしたり、削除されたりした場合でも、変更を反映してコード/構成が更新される前に、クラスター全体に接続できます。私のホストの IP アドレスの。

私が理解している限り、RethinkDB にはそのようなロジックはなく、自分で実装する必要がありますが、それでも常にクラスター全体に接続されているということでよろしいですか?

  1. データベースを作成するとき、それはクラスター全体に対して作成される「一種の」ものであり、それを処理する正確なサーバーを指定する方法はなく、その必要もありません。テーブルを作成し、プライマリ レプリカ タグを指定しない場合、どのサーバーがプライマリ レプリカになりますか? 複数のサーバーに割り当てられているタグを指定すると、同じ質問が適用されます。メイン レプリカとなる最終サーバーはどのように選択されますか?
4

1 に答える 1

4

Cassandra では、1 つ以上のホストを定義してクラスターに接続します。そのため、そのうちの 1 つがダウンしたり、削除されたりした場合でも、変更を反映してコード/構成が更新される前に、クラスター全体に接続できます。私のホストの IP アドレスの。

RethinkDB では、クラスター内のノードに接続することでクラスターに接続します。そのノードは、クラスター内の他のすべてのノードとの通信を処理します。そのノードがクラスターから切断された場合、クラスターのシャーディングとレプリケーションによっては、書き込みまたは読み取りを実行できない場合があります。そのノードに障害が発生すると、何もできなくなります。その時点で、別のノードへの接続を試すことができます。

私が理解している限り、RethinkDB にはそのようなロジックはなく、自分で実装する必要があります。

はい、ノードに障害が発生した場合、RethinkDB はクラスター内の別のノードに自動的に再接続しません。そうは言っても、これは複数の接続を持ち、それらを切り替えるのと同じくらい簡単かもしれません (何かが欠けていない限り!)。

データベースを作成するとき、それはクラスター全体に対して作成される「一種の」ものであり、それを処理する正確なサーバーを指定する方法はなく、その必要もありません。

はい、データベースを作成すると、クラスター全体に対して作成されます。データベースは実際には特定のノードに「住んでいる」わけではありません。特定のノードに存在するのはテーブルのみです。

テーブルを作成し、プライマリ レプリカ タグを指定しない場合、どのサーバーがプライマリ レプリカになりますか?

RethinkDB は自動的にそれを処理します。以下に基づいて、プライマリ レプリカが存在するサーバーが選択されます。

  1. サーバー分散負荷 (どのサーバーがより多くのテーブルとデータを持っているか)。
  2. 特定のサーバーがすでにそのテーブルのプライマリ/セカンダリであったかどうか。

table_configプライマリまたはセカンダリが終了するサーバーを手動で制御する場合は、データベース内のテーブルを介して手動で設定できrethinkdbます。(そのデータベースを見てみましょう。RethinkDB がどのように機能するかをよりよく理解できます!)

複数のサーバーに割り当てられているタグを指定すると、同じ質問が適用されます。

同上。

メイン レプリカとなる最終サーバーはどのように選択されますか?

同上。


ドキュメントに関しては、次のことをお勧めします。

シャーディングとレプリケーション: http://rethinkdb.com/docs/sharding-and-replication/ (あなたの質問は、おそらくすでにこれを読んでいることを示唆していますが:))

于 2015-04-20T18:06:10.983 に答える