EdColeman commented on PR #2778:
URL: https://github.com/apache/accumulo/pull/2778#issuecomment-1158000369

   `I think I would benefit from a basic explanation of what this PR is trying 
to do`
   
   The cache implementation provides multiple ways to refresh and expire 
entries.
   
     - refreshAfterWrite() - when an entry exceeds this value, the current 
value is returned and then an async task runs to determine if the entry is 
still valid. This was implemented as a light weight check using the ZooKeeper 
stat, similar to what is being moved to the scheduled thread in prop store.
   
     - expireAfterAccess() - allows the cache to age-off entries that are not 
accessed after the specified time period.  This woul allow the cache to remove 
entries for tablets that are not longer hosted on a tserver.
   
   The reasoning behind removing the refreshAfterWrite() responsibilities from 
the cache to the prop store is that with the property snapshots and the use of 
update count, the number of cache accesses for any particular entry are greatly 
reduced and it seems likely that the refresh would not be triggered in a timely 
manner.  Using the scheduled thread in the prop store puts a bound on the 
consistency of the cache entries - if normal ZooKeeper events were missed for 
any reason, the scheduled task  would serve to keep the values in sync within 
the bound of the scheduled task timing (roughly every 15 minutes)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to