2.3. Directory Providers
The following directory providers are supported in Infinispan Query:
- RAM Directory Provider
- Filesystem Directory Provider
- Infinispan Directory Provider
2.3.1. RAM Directory Provider Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Storing the global index locally in Red Hat JBoss Data Grid's Query Module allows each node to
- maintain its own index.
- use Lucene's in-memory or filesystem-based index directory.
The following example demonstrates an in-memory, RAM-based index store:
2.3.2. Filesystem Directory Provider Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
To configure the storage of indexes, set the appropriate properties when enabling indexing in the JBoss Data Grid configuration.
This example shows a disk-based index store:
Example 2.1. Disk-based Index Store
2.3.3. Infinispan Directory Provider Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
In addition to the Lucene directory implementations, Red Hat JBoss Data Grid also ships with an
infinispan-directory
module.
Note
Red Hat JBoss Data Grid only supports
infinispan-directory
in the context of the Querying feature, not as a standalone feature.
The
infinispan-directory
allows Lucene to store indexes within the distributed data grid. This allows the indexes to be distributed, stored in-memory, and optionally written to disk using the cache store for durability.
Sharing the same index instance using the Infinispan Directory Provider introduces a write contention point, as only one instance can write on the same index at the same time.
Important
By default the exclusive_index_use is set to
true
, as this provides major performance increases; however, if external applications access the same index in use by Infinispan this property must be set to false
. The default value is recommended for the majority of applications and use cases due to the performance increases, so only change this if absolutely necessary.
InfinispanIndexManager
provides a default back end that sends all updates to master node which later applies the updates to the index. In case of master node failure, the update can be lost, therefore keeping the cache and index non-synchronized. Non-default back ends are not supported.
Example 2.2. Enable Shared Indexes
When using an indexed, clustered cache ensure that the caches containing the index data are also clustered, as described in Section 2.5.2, “Tuning Infinispan Directory”.