Pedro Zapata Fernandez created ISPN-11118:
---------------------------------------------
Summary: Invalidation commands should not load the previous value from the
store
Key: ISPN-11118
URL:
https://issues.redhat.com/browse/ISPN-11118
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.3.6.Final, 9.4.17.Final, 10.0.1.Final, 10.1.0.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 11.0.0.Final, 10.1.1.Final
{{CacheLoaderInterceptor.visitInvalidateCommand()}} loads the previous value from the
store, just in case there is a {{CacheEntryInvalidated}} listener that needs the previous
value. This makes invalidation mode with a shared store very costly: for every write,
every node receives an invalidation command, every node reads the value from the store,
and then discards it.
But {{InvalidateCommand}} only removes entries from memory, it never removes entry from
stores (either shared or private). If we don't load the previous value in the data
container, there is nothing for the {{InvalidateCommand}} to do. No invalidated entry
means no listener notifications, so we don't need to load the previous value or to
change the behaviour of {{CacheEntryInvalidatedEvent}}.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)