dlmarion opened a new pull request, #5582:
URL: https://github.com/apache/accumulo/pull/5582

   ZooPropStore is eventually consistent when a property is changed as it waits 
for the PropStoreWatcher to receive the event which calls remove on the 
Caffeine cache. Subsequent calls to ZooPropStore.get will rely on the 
ZooPropLoader to re-read the information from ZooKeeper and populate the 
Caffeine cache.
   
   ZooBasedConfiguration does not read directly from ZooPropStore and instead 
reads a snapshot of the data using PropSnapshot. When 
ZooBasedConfiguration.invalidateCache is called it just marks the PropSnapshot 
as needing an update, which will re-read from the underlying ZooPropStore. 
However, if the PropStoreWatcher has not yet fired, then the information read 
will be the same as the ZooPropStore has not yet been updated.
   
   The new PropStore.invalidate method implementation in ZooPropStore removes 
the node from the Caffeine cache, the same thing that the PropStoreWatcher will 
do when it receives the event. When a property is changed in the local process, 
then the cache entry will be immediately invalidated and re-read. The downside 
to this change is that it will be read twice, when the PropStoreWatcher 
receives the event.
   
   Closes #5541


-- 
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: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to