]
William Burns updated ISPN-9464:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 9.4.0.Final
Resolution: Done
Notify listeners without holding the shared topology lock
---------------------------------------------------------
Key: ISPN-9464
URL:
https://issues.jboss.org/browse/ISPN-9464
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.0.CR1
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 9.4.0.Final
Post-write listeners are invoked from {{ClusteringDependentLogic.commitSingleEntry()}},
while holding the shared topology lock. We should be able to release the topology lock
before invoking listeners, so that slow listeners (e.g. clustered/client listeners)
don't delay the installation of a new topology.
Going further, we could try to use optimistic locking (e.g. with a {{StampedLock}})
instead of the {{ReentrantReadWriteLock}}, reverting the data container write if the
topology changes and we are no longer an owner. This could help in scenarios where the
data container update itself is slow, e.g. when using passivation with a JDBC/remote
store.