I am planning to use Hibernate L2 cache that is distributed across several processes. So, essentially I would be having several different processes each with local L2 cache and they are replicated using jgroups. I am planning to use synchronous replication between the caches. However, I would like to touch upon a scenario and would like to know the behavior of Hibernate in this scenario:
Client does some update to data that is cached in local cache. Hibernate updates the database and does update to the local cache. Since the replication is synchronous, the same transaction tries to replicate date to other caches. Due to some network issue, other caches are not reachable.
In above scenario, what will happen… will Hibernate update the local cache of the process that updated the database and other caches will NOT be updated?
Will Hibernate Not update local cache of the process as well, so eventually the database has the update however none of the local caches has the updated data?
What will be the behavior in above scenario if I configure replication to be asynchronous?