Details
-
Enhancement
-
Resolution: Unresolved
-
Minor
-
None
-
7.2.3.Final
-
None
Description
Infinispan's configuration is very flexible, and it's sometimes hard to figure out how different settings affect things like cache consistency.
For example, the lucene-directory module uses the fairly complicated Configurations.noDataLossOnJoiner() method to validate that a cache is safe for storing lucene indexes.
Another example is users who would like to use a store for backup, but they don't want read from the store for M/R tasks or when get(k) doesn't find the key in memory.
One idea would be to define a set of "capabilities" like "state-transfer-complete" or "all-data-in-memory". The user could then add those capabilities in the cache definition, and the cache won't start if the configuration violates those capabilities. The capabilities would also be used internally, to improve the error message when a feature requires a particular combination of settings.