[
https://issues.jboss.org/browse/ISPN-1830?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-1830:
------------------------------------
Yes, it's possible to get inconsistencies: in both cases, a put command will not
invalidate some L1 copies, and those nodes will see stale values until their L1 entries
expire.
For problem 1 (requestor information on old owners is lost) we have thought about actually
transferring the requestor information with the transaction data, but that gets
complicated really quickly. (It would most likely require forwarding get commands, which
would negate the benefit of having an L1 in the first place.) Instead we are going to
remove L1 entries that have lost owners on each topology update (which should be a small
fraction of the total L1 entries).
For problem 2 (old owners are not added to requestor lists when they lose ownership), we
can keep track of the consistent hashes in the last 10 minutes (or whatever the L1
lifespan is) and the time of the last invalidation sent for each key. When we need to send
a new invalidation, we add the owners in all the consistent hashes since the last
invalidation to the invalidation command recipients.
L1: On topology changes lose key requestors information
-------------------------------------------------------
Key: ISPN-1830
URL:
https://issues.jboss.org/browse/ISPN-1830
Project: Infinispan
Issue Type: Bug
Components: Distributed Cache
Affects Versions: 5.1.0.FINAL
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Blocker
Fix For: 5.2.0.CR1
I think we are losing information about where a key needs to be invalidated when a node
changes from owner to non-owner (e.g. because another node joined):
* We lose the list of requestors stored on this node. Even if all ClusteredGetCommands
reached all the current owners (which we are about to change with ISPN-825), once all the
current owners leave the new owners will not know about this node's old requestors.
* We don't add ourselves as a requestor for the key on the new owners when we
invalidate the entry and move it to L1.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira