私は、DataStax Ops Center を使用して、学校のプロジェクト用に Cassandra NoSQL データベースのデータを複製しようとしています。私が読んだところによると、クラスター、ノード、データセンターという 3 つのキーワードがあり、私が理解しているところによると、ノードのデータは、別のクラスターに存在する別のノードに複製できます。そして、同じ (複製された) データを含むすべてのノードがデータセンターを構成します。これは正しいですか?
そうでない場合、違いは何ですか?
ベストアンサー1
Cassandra の要素の階層は次のとおりです。
- 集まる
- データセンター
- ラック
- サーバー
- ノード(正確にはvnode)
- サーバー
- ラック
- データセンター
クラスターはデータセンターの集合です。
データ センターはラックの集合です。
ラックはサーバーの集合です。
サーバーには、デフォルトで 256 個の仮想ノード (または vnode) が含まれます。
vnode は、サーバー内のデータ ストレージ層です。
注: サーバーは Cassandra ソフトウェアです。サーバーはマシンにインストールされます。マシンとは、物理サーバー、EC2 インスタンスなどです。
それでは、あなたの質問に具体的にお答えします。
個々のデータ単位はパーティションと呼ばれます。そして、パーティションは複数のノードに複製されます。パーティションの各コピーはレプリカと呼ばれます。
マルチデータセンター クラスターでは、レプリケーションはデータセンターごとに行われます。たとえば、サンフランシスコに dc-sf というデータセンターがあり、ニューヨークに dc-ny というデータセンターがある場合、データセンターごとにレプリカの数を制御できます。
たとえば、dc-sf に 3 つのレプリカを設定し、dc-ny に 2 つのレプリカを設定できます。
これらの数字はレプリケーション係数と呼ばれます。具体的には、dc-sf のレプリケーション係数は 3、dc-ny のレプリケーション係数は 2 です。簡単に言うと、dc-sf では 3 つの vnode にデータのコピーが 3 つ分散され、dc-sf では 2 つの vnode にデータのコピーが 2 つ分散されます。
各サーバーにはデフォルトで 256 個の vnode がありますが、Cassandra は異なる物理サーバー上に存在する vnode を選択できるほどスマートです。
要約する:
- データは複数の仮想ノードに複製されます(各サーバーにはデフォルトで 256 個の vnode が含まれます)
- データの各コピーはレプリカと呼ばれる
- データの単位はパーティションと呼ばれる
- レプリケーションはデータセンターごとに制御されます