11.2. インデックス化モード
11.2.1. インデックスの管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Data Grid の Query モジュールでは、インデックスを保管するための 2 つのオプションがあります。
- 各ノードがグローバルインデックスの個別コピーを維持できる。
- インデックスがすべてのノード間で共有される。
indexLocalOnly を true に設定してインデックスがローカルに保存されると、それらのインデックスを更新できるようにそれぞれのキャッシュへの書き込みは他のすべてのノードに転送される必要があります。indexLocalOnly を false に設定してインデックスが共有される場合、書き込み元のノードのみが共有インデックスを更新する必要があります。
Lucene は、インデックスを格納するために使用される
directory provider というディレクトリー構造の抽象化を行います。インデックスは、インメモリーとして、ファイルシステム上、または分散されたキャッシュ内に格納できます。
11.2.2. インデックスの管理 (ローカルモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ローカルモードでは、Lucene Directory 実装を使用できます。
indexLocalOnly オプションはローカルモードでは意味がありません。
11.2.3. インデックスの管理 (レプリケートモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
レプリケーションモードでは、各ノードがインデックスのローカルコピーを独自に保管できます。各ノードでインデックスをローカルに保管するには、
indexLocalOnly を false に設定して、各ノードがローカルで開始された更新と共に、他のノードから受信する必要な更新を適用できるようにします。
任意の Directory 実装を使用できます。新規ノードの起動時に、インデックスの最新コピーが受信される必要があります。通常、これは再同期で実行できますが、外部操作の場合でとくに更新が頻繁に実行される場合には、インデックスの同期が若干取れなくなる可能性があります。
または、インデックスの共有ストレージが使用される場合 (「Infinispan Directory Provider」 を参照してください)、
indexLocalOnly を true に設定し、各ノードがローカルに発生した変更のみを適用できるようにします。これにより、インデックスが同期しないというリスクはなくても、インデックスの更新に使用されるノードには競合が生じます。
以下の図は、各ノードがローカルインデックスを持つレプリケートされたデプロイメントを示しています。
図11.1 レプリケートされたキャッシュクエリー
11.2.4. インデックスの管理 (ディストリビューションモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
いずれのディストリビューションモードでも、
indexLocalOnly を true に設定して共有インデックスを使用する必要があります。
以下の図は、共有インデックスのあるデプロイメントを示しています。
図11.2 共有インデックスによるクエリー
11.2.5. インデックスの管理 (インバリデーションモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
インバリデーションモードでの要素のインデックス化と検索はサポートされていません。