We've been benchmarking infinispan these days. We would like to use it as a IMDG solution for our service.
But, there is one configuration problem.
According to the user guide there is 'eviction' and 'passivation' for configuring cache store strategy.
We want a slightly different mode comparing to the documented configuration.
* Documented Configuration 1 (I don't know what should I call this mode)
- Configuration : Eviction=true, Passivation=true, cache owner=1
-> With this mode we will remove the cache store writing overhead, but the data will be lost when the server stopped. Since the data will be removed from the persistence cache store during its activation phase.
* Documented Configuration 2
- Configuration : Eviction=true, Passivation=false, cache owner=1, write-mode = write-behind
- In this mode, the data will not be lost since all data stored in the cache store, but it will cause many writing operation to the cache store. Even with write-behind mode, if the writing rate is relatively hight, eventually the queue for write-behind will be full, and it will cause the app's request blocked. Increasing the queue capacity will not solve this problem. Infinispan provides a feature that merging the duplicated writing operations in the queue into one operation, but I don't think it will solve this problem.
* This is what we want.
- In-Memory : active data, Cache-Store : superset of data
- Writing to the cache(in memory) is periodically collected and applied to the cache store. This way, the chance for merging duplcated writing operations is higher and the number of required writing operation will be decreased.
I've been researching the documents for a week, and I haven't found the solution for our use cases.
Is this possible with infinispan?
Thanks for reading this long question.