DSE Searchアーキテクチャ

DSE Searchアーキテクチャの概要

DataStax EnterpriseやCassandraなどの分散環境では、データが複数のノードに分散されています。DSE Searchノードを独自のデータセンターでデプロイし、DSE Searchをすべてのノードで実行します。

SolrのAPIクライアントはデータを最初にCassandraに書き込み、その後でCassandraがインデックスを更新します。



CQLを使用してテーブルを更新すると、Solrドキュメントも更新されます。更新後、インデックスの再作成が自動的に行われます。書き込みは耐久性があります。レプリカ・ノードへのすべての書き込みは、メモリーとコミット・ログに記録されてから成功として確認応答されます。メモリー・テーブルがディスクにフラッシュされる前にクラッシュまたはサーバーの障害が発生すると、失われた書き込みを回復するために、再起動時にコミット・ログが再生されます。

注: DSE SearchはJBODモードをサポートしていません。

DSE Search用語

DSE Searchの場合、1つのノード上のドキュメントのインデックスに以下のような複数の名前が付けられています。
  • Solrコア
  • コレクション
  • コレクションのシャード

Solrコアの各ドキュメントは一意であり、ユーザー定義のスキーマに従うフィールドのセットが含まれています。スキーマには、フィールド型が列挙されており、そのインデックスの作成方法が定義されています。DSE Searchは、SolrコアをCassandraテーブルにマッピングします。各テーブルの特定のノードには別々のSolrコアがあります。SolrドキュメントはCassandra行に、ドキュメントのフィールドはカラムにマッピングされます。シャードは、テーブルのパーティションに似ています。CassandraのキースペースはSolrコアの名前のプレフィックスになりますが、Solrにはこれに対応する部分はありません。

表 1. CassandraとSolrの概念の関係
Cassandra Solr - 単一ノード環境
テーブル Solrコアまたはコレクション
ドキュメント
プライマリ・キー ユニーク・キー
カラム フィールド
ノード なし
パーティション・ なし
Keyspace なし

Cassandraのレプリケーションを使用した場合、CassandraノードまたはSolrノードには、複数のテーブル(コレクション)データのパーティション(シャード)が含まれます。レプリケーション係数がクラスター・ノードの数と等しい場合を除き、CassandraノードまたはSolrコアには、テーブルまたはコレクションのデータのほんの一部しか含まれていません。

注: SolrインデックスをCassandraセカンダリ・インデックスと混在させないでください。同じテーブルで両方のインデックスを使用することはサポートされていません。