[
https://issues.jboss.org/browse/ISPN-9003?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-9003:
------------------------------------
We already have a timer task, the expiration reaper
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.
Also state transfer entities are not refreshed from an iterator
invocation (they only refresh on a get or write operation).
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).
In regards to divergent clocks, this is not an issue as long as we
don't send timestampes across nodes (which we don't). Every node uses the provided
offset of its own current time to detect expiration. Thus since writes should occur
somewhat close to each other in absolute time the expiration of various nodes would be
done with only a time differential of just about the latency time between primary and
backup. So this could cause an entry to be resurrected if someone read it between this
time, but tbh this seems more than okay to me. Lifespan works in a similar fashion, but it
actually errs on the other side in that if it expired on any node it assumes all are
expired (which is much less costly network wise).
{{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).
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)