DSE Searchアーキテクチャ
DSE Searchアーキテクチャの概要
DataStax EnterpriseやCassandraなどの分散環境では、データが複数のノードに分散されています。DSE Searchノードを独自のデータセンターでデプロイし、DSE Searchをすべてのノードで実行します。
SolrのAPIクライアントはデータを最初にCassandraに書き込み、その後でCassandraがインデックスを更新します。
CQLを使用してテーブルを更新すると、Solrドキュメントも更新されます。更新後、インデックスの再作成が自動的に行われます。書き込みは耐久性があります。レプリカ・ノードへのすべての書き込みは、メモリーとコミット・ログに記録されてから成功として確認応答されます。メモリー・テーブルがディスクにフラッシュされる前にクラッシュまたはサーバーの障害が発生すると、失われた書き込みを回復するために、再起動時にコミット・ログが再生されます。
DSE Search用語
- Solrコア
- コレクション
- コレクションのシャード
Solrコアの各ドキュメントは一意であり、ユーザー定義のスキーマに従うフィールドのセットが含まれています。スキーマには、フィールド型が列挙されており、そのインデックスの作成方法が定義されています。DSE Searchは、SolrコアをCassandraテーブルにマッピングします。各テーブルの特定のノードには別々のSolrコアがあります。SolrドキュメントはCassandra行に、ドキュメントのフィールドはカラムにマッピングされます。シャードは、テーブルのパーティションに似ています。CassandraのキースペースはSolrコアの名前のプレフィックスになりますが、Solrにはこれに対応する部分はありません。
Cassandra | Solr - 単一ノード環境 |
---|---|
テーブル | Solrコアまたはコレクション |
行 | ドキュメント |
プライマリ・キー | ユニーク・キー |
カラム | フィールド |
ノード | なし |
パーティション・ | なし |
Keyspace | なし |
Cassandraのレプリケーションを使用した場合、CassandraノードまたはSolrノードには、複数のテーブル(コレクション)データのパーティション(シャード)が含まれます。レプリケーション係数がクラスター・ノードの数と等しい場合を除き、CassandraノードまたはSolrコアには、テーブルまたはコレクションのデータのほんの一部しか含まれていません。