[infinispan-issues] [JBoss JIRA] (ISPN-8411) Add support for efficient removeAll
Emond Papegaaij (JIRA)
issues at jboss.org
Wed Oct 18 05:40:00 EDT 2017
[ https://issues.jboss.org/browse/ISPN-8411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13478591#comment-13478591 ]
Emond Papegaaij commented on ISPN-8411:
---------------------------------------
I've done some testing using a very simple application, and it seems invalidation (transactional or non-transactional) is broken for bulk updates. I do see differences in the messages sent, but the outcome is the same: only the keys on the node performing the update are invalidated in the cluster. When using a transactional cache, one large message is sent, containing all invalidations, whereas a non-transactional cache invalidates all entries one-by-one, with a message per entry. Either way entries in the cluster are invalidated one-by-one and only those entries on the initiating node are invalidated.
I'll make the demo application available on Github with instructions on how to set it up.
> Add support for efficient removeAll
> -----------------------------------
>
> Key: ISPN-8411
> URL: https://issues.jboss.org/browse/ISPN-8411
> Project: Infinispan
> Issue Type: Feature Request
> Components: Hibernate Cache
> Affects Versions: 8.2.8.Final, 9.1.1.Final
> Environment: WildFly 10.1.0, WildFly 11.0.0.CR1, WildFly master, Hibernate 2LC
> Reporter: Emond Papegaaij
> Assignee: Galder Zamarreño
>
> Infinispan currently does not seem to implement an efficient way to clear an entire cache cluster-wide. This forces Hibernate to remove all entries one by one when a cache region needs to be cleared, for example when a buld CriteriaUpdate or CriteriaDelete is used.
> The behavior we are observing is:
> # All nodes in the cluster are queried for the keyset in a region
> # A lock seems to be in place for this region for the duration of the commit
> # The initiating node constructs a message with {{InvalidateCommands}} for all keys
> # This large message (230MB for 200k entries) is sent to all nodes in the cluster
> For large caches this can take very long. We had to increase the remote-timeout to 60 seconds to prevent timeouts. During this time, the entire cluster is locked an busy processing the cache invalidations. As you can understand, this is not a workable solution for us. On some places we can prevent the cache clear by updating the records one by one, but in other places this is not an option.
> The corresponding report at Hibernate can be found here: https://hibernate.atlassian.net/browse/HHH-12036
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the infinispan-issues
mailing list