[infinispan-issues] [JBoss JIRA] (ISPN-7338) Don't send RemoveExpiredCommand when no expiration listeners are registered
Radim Vansa (JIRA)
issues at jboss.org
Fri Jan 6 10:39:01 EST 2017
Radim Vansa created ISPN-7338:
---------------------------------
Summary: Don't send RemoveExpiredCommand when no expiration listeners are registered
Key: ISPN-7338
URL: https://issues.jboss.org/browse/ISPN-7338
Project: Infinispan
Issue Type: Enhancement
Components: Core
Affects Versions: 9.0.0.Beta1
Reporter: Radim Vansa
Assignee: William Burns
Currently dist and repl caches send {{RemoveExpiredCommand}} for each expired entry. That causes unnecessary overhead when there are no expiration listeners registered (expiring the entry at ~same moment on all nodes does not provide too much benefit without listeners).
As the command is executed in async thread and locks the entry, in can introduce extra delay to following write operation (or fail it if this has {{Flag.ZERO_LOCK_ACQUISITION_TIMEOUT}}).
There is a way to prevent the command using {{ExpirationManager.registerIncomingWrite}} but as this is implemented using a CHM write, it will cause non-trivial overhead and possible contention as well, even in cases the entry is not expired.
The only viable workaround ATM is replacing {{ClusterExpirationManager}} with {{ExpirationManagerImpl}} in component registry manually.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the infinispan-issues
mailing list