[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