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 共有インデックスによるクエリー