1

私はCouchbase Serverのドキュメントを読んでいますが、私が理解しているように、これは「すべてがどのように機能するか」です:

  • クラスターには、1 つ以上のノード (サーバー) があります。
  • クラスターには 1 つ以上のバケットがあります。
  • バケットには 1 つ以上のビューがあります。

私の質問:

  1. バケット内のデータは、クラスター内のすべてのノードに分散されていると思いますか? それとも、すべてのノードに複製されますか?
  2. バケットがクラスター内の複数のノードにまたがると仮定すると、ビューはこれらすべてのノードからデータを取得しますか?
  3. それとも、バケットとそのビューは特定のノードに固有のものですか?
4

1 に答える 1

5

ポイント1のあなたの仮定はほとんど正しいです。バケットは 1024 個の vBucket に分割されます。次に、これらの vBucket はクラスター内のノード全体に分散され (均等に、残りを与えるか取るかして)、マスター vBucket が存在するノードとは別のノードにレプリカ vBucket が配置されます。デフォルトでは、vbucket は他の 1 つのノードにのみ複製されます (したがって、各ドキュメントは他の 1 つのノードに複製されます) が、必要に応じて可用性を高めるために複数のレプリカを構成できます。

ビュー (設計ドキュメント) は、すべてのノード/vBucket にわたって特定のバケットのデータにインデックスを付けますが、そのビューのインデックス データは、vBucket が存在するノードに保存されます。したがって、ビューをクエリするときは、クラスター内のすべてのノードにアクセスする必要があります。リバランスすると、デフォルトでは、vBucket が移行されるため、ノードのインデックスが変更されます。データはソース ノードから削除され、レプリケーションのターゲット ノードで再生成されます。

Couchbase Server のシャーディング アーキテクチャの概要は、YouTubeのHow-To NoSQL 3.0 ウェビナーで説明されています。

于 2015-04-30T09:56:57.403 に答える