[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


     [ https://issues.jboss.org/browse/ISPN-7338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Radim Vansa updated ISPN-7338:
------------------------------
    Labels: performance  (was: )


> 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
>              Labels: performance
>
> 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