I understand from the documentation that Eviction with passivation turned on results in any object to be present either in-memory or in the persistent store at any time.
If eviction/passivation duo is used along with a shared classloader ( like an Oracle RAC), are there any race situations that we need to monitor ? Consider an example.
There are 2 nodes in the cluster node 1 and node 2.
User adds an object A into node 1, object A is in-memory in node 1
object A is in-memory in node 2 due to replication.
Object A gets evicted and passivates into the shared persistent store from node 1.
Object A is still in memory of node 2.
Object A gets evicted from node 2 and is about to passivate from node 2 to the shared persistent store.
Object A is read from node 1, the object is about to be activated from the shared store into the in memory of node 1.
So we can observe at stage 3), the same object is attempted to be added and also removed at the same time.
How does the Infinispan handle the locking due to eviction/passivation turned on with a shared class loader?
shared cacheloader I presume.
Is the class loader marked as shared?