We are looking to use Datastax Cassandra (V3.0.1) as the back end cache store for Infinispan 5.2.1. The application will be Java (1.7) running under Tomcat (7.0.37) application servers. In production there will be 4 load balanced app servers spread across 2 physical locations.
At this early stage we are looking for a simple implementation and are not looking to use a distributed, clustered, Infinispan configuration but instead simply want to use the API's as a front end to the Cassandra cache store - all data retrieved via the Infinispan API's should come from Cassandra. An instance of Infinispan will effectively run standalone in each of the 4 application servers and share a single Cassandra database as their cache store. Eviction / removal of entries will be explicitly triggered from the application, rather than Infinispan driven time-based evictions. We do not want to use any caching of data values in the local app servers as this would also require us to explicitly evict from the local cache memory of each app server at evict time. Instead each read request should go to Cassandra, a single data store where we can remove entries when required. To achieve this we are planning on using maxentries=0 in our eviction strategy thinking this will effectively disable the local cache on each app server as required - but we might have misunderstood this. Is anything else required to achieve no caching of data values in the local Infinispan instance (or is that actually what happens anyway and only keys are held in memory cache)?
For performance reasons we want to use the unscheduled async write-behind strategy to the cache store. The question is is this incompatible with setting maxentries=0 ie if nothing is held in the cache can Infinispan still write this to the back end cache store asynchronously or does it have to be done synchronously?
Any thoughts would be much appreciated. Thanks
I think your scenario should work.