[
https://issues.jboss.org/browse/ISPN-9003?page=com.atlassian.jira.plugin....
]
William Burns commented on ISPN-9003:
-------------------------------------
You didn't mention it, so I wasn't 100% sure you'd want
to keep running it, and whether it would do the same thing on all the owners.
Yeah reaper is always on all nodes for all expired entries. Its behavior wouldn't
change.
I was thinking about the node where the entries are written. And I
trust you about the iterator, but if there's a store on the source node, the state
provider will call DataContainer.containsKey(), which may or may not refresh the entry
(javadoc doesn't say anything about it).
The method containsKey also doesn't update it. Only gets and write methods :)
maxIdle works based on reads, not just writes, and the difference
between reads on the primary and the backups can be just as big as maxIdle is. That's
why I said we'd need to update the last-access timestamp on the primary after running
the algorithm (and on the backups as well, if the backups can also trigger clustered
maxIdle expiration).
Yes, this algorithm would update all nodes last access times after it found that there was
even one node that wasn't expired. I forgot to mention that in the algorithm. I
originally had it on an earlier line, but then realized that line isn't doable because
it is still possible that the entry is expired and we don't want a node to temporarily
allow the read and then find it expired immediately after. Adding back in the line again
but at the right spot.
Clustered maxIdle expiration
----------------------------
Key: ISPN-9003
URL:
https://issues.jboss.org/browse/ISPN-9003
Project: Infinispan
Issue Type: Enhancement
Reporter: Tristan Tarrant
Assignee: William Burns
Fix For: 9.3.0.Beta1, 9.3.0.Final
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)