[infinispan-issues] [JBoss JIRA] (ISPN-11176) XSite Max Idle
Will Burns (Jira)
issues at jboss.org
Tue Aug 11 12:58:01 EDT 2020
[ https://issues.redhat.com/browse/ISPN-11176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14381426#comment-14381426 ]
Will Burns edited comment on ISPN-11176 at 8/11/20 12:57 PM:
-------------------------------------------------------------
{quote}*TLDR;* Pre-expire entries at time {{last access + max-idle timeout}}, actually expire them at time {{last access + max-idle timeout + max-idle delay}}, or as soon as we know all other sites have also pre-expired the entry. Reads of pre-expired entries do not keep the entries alive.
{quote}
While this an interesting idea, I definitely have reservations about it.
# Entries will only expire when reaper is run, which can take a while if a store is present or the time is high
# Entries that were read can still expire right after being read (even from same site). Option 2 would only expire an entry if the current site hasn't seen it, where as this could read from the same site and then have it expire.
# It adds another configuration option :(
I personally don't think that is worth it just to make an expired read to not be async.
was (Author: william.burns):
{quote}
*TLDR;* Pre-expire entries at time {{last access + max-idle timeout}}, actually expire them at time {{last access + max-idle timeout + max-idle delay}}, or as soon as we know all other sites have also pre-expired the entry. Reads of pre-expired entries do not keep the entries alive.
{quote}
While this an interesting idea, I definitely have reservations about it.
# Entries will only expire when reaper is run, which can take a while if a store is present or the time is high
# Entries that were read can still expire right after. Option 2 would only expire an entry if the current site hasn't seen it, where as this could read from the same site and then have it expire.
# It adds another configuration option :(
> XSite Max Idle
> --------------
>
> Key: ISPN-11176
> URL: https://issues.redhat.com/browse/ISPN-11176
> Project: Infinispan
> Issue Type: Enhancement
> Components: Cross-Site Replication, Expiration
> Reporter: Will Burns
> Assignee: Will Burns
> Priority: Major
> Fix For: 12.0.0.Final
>
>
> Max idle expiration currently doesn't work with xsite. That is if an entry was written and replicated to both sites but one site never reads the value, but the other does. If they then need to read the value from the other site it will be expired (assuming the max idle time has elapsed).
> There are a few ways we can do this.
> 1. Keep access times local to every site. When a site finds an entry is expired it asks the other site(s) if it has a more recent access. If a site is known to have gone down we should touch all entries, since they may not have updated access times. Requires very little additional xsite communication.
> 2. Batch touch commands and only send every so often. Has window of loss, but should be small. Requires more site usage. Wouldn't work for really low max idle times as an entry could expire before the touch command is replicated.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the infinispan-issues
mailing list