11.3. Directory Provider
以下のディレクトリープロバイダーは Infinispan Query でサポートされます。
- RAM Directory Provider
- Filesystem Directory Provider
- Infinispan Directory Provider
11.3.1. RAM Directory Provider リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
グローバルインデックスを Red Hat JBoss Data Grid の Query モジュールにローカルに保存することにより、各ノードでは以下が可能になります。
- 独自のインデックスの保持。
- Lucene のインメモリーまたはファイルシステムベースのインデックスディレクトリーの使用。
以下の例は、インメモリーの RAM ベースのインデックスストアを示しています。
<local-cache name="indexesInMemory">
<indexing index="LOCAL">
<property name="default.directory_provider">ram</property>
</indexing>
</local-cache>
<local-cache name="indexesInMemory">
<indexing index="LOCAL">
<property name="default.directory_provider">ram</property>
</indexing>
</local-cache>
11.3.2. Filesystem Directory Provider リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
インデックスのストレージを設定するには、JBoss Data Grid 設定でインデックス化を有効にする場合に適切なプロパティーを設定します。
以下の例では、ディスクベースのインデックスストアを示しています。
例11.1 ディスクベースのインデックスストア
11.3.3. Infinispan Directory Provider リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Lucene ディレクトリーの実装のほかにも、Red Hat JBoss Data Grid には
infinispan-directory モジュールが同梱されます。
注記
Red Hat JBoss Data Grid は、
infinispan-directory をスタンドアロンの機能としてではなく、クエリー機能との関連でのみサポートしています。
infinispan-directory により、Lucene は分散されたデータグリッド内にインデックスを保存できます。これにより、インデックスを分散し、メモリーに保存し、またオプションではキャッシュストアを使用してディスクに書き込むことで永続化することもできます。
Infinispan Directory Provider を使用して同じインデックスのインスタンスを共有することで、単一インスタンスで同じインデックスに同時に書き込まれる可能性があるため、書き込みの競合点が生じます。
重要
デフォルトで、exclusive_index_use は
true に設定されます。これにより、パフォーマンスが大幅に向上します。ただし、外部アプリケーションが infinispan で使用されているものと同じインデックスにアクセスする場合、このプロパティーは false に設定される必要があります。ほとんどアプリケーションとユースケースにおいては、パフォーマンスが向上するためにデフォルト値の使用が推奨されます。そのため、この値は確実に変更する必要がある場合にのみ変更してください。
InfinispanIndexManager は、マスターにすべての更新を送信するデフォルトのバックエンドを提供します。マスターは後に更新をインデックスに適用します。マスターノードに障害が発生すると更新が失われる可能性があるため、キャッシュとインデックスは同期させません。デフォルト以外のバックエンドはサポートされません。
例11.2 共有インデックスの有効化
インデックス化され、クラスター化されたキャッシュを使用する場合、「Infinispan ディレクトリーのチューニング」 にあるようにインデックスデータを含むキャッシュもクラスター化されていることを確認してください。