dlmarion opened a new pull request, #5183:
URL: https://github.com/apache/accumulo/pull/5183
This commit removes most of the places where ZooCache instances were being
created in favor of re-using the ZooCache from the ClientContext. Additionally,
this commit does not place a Watcher on each node that is cached and instead
places a single persistent recursive Watcher at the paths in which the caching
is taking place.
This change roughly reduces the Watchers reported in WatchTheWatchCountIT by
50%. While reducing the number of Watchers, this commit could reduce ZooKeeper
server performance in two ways:
1. There is a note in the ZooKeeper javadoc for the AddWatchMode enum that
states there is a small performance decrease when using recursive watchers as
all of the segments of ZNode paths need to be checked for watch triggering.
2. Because a Watcher is not set on each node this commit modified the
ZooCache.ZCacheWatcher to remove the parent of the triggered node, the
triggered node, and all of its siblings from the cache. This overmatching may
mean increased lookups in ZooKeeper.
Related to #5134
Closes #5154, #5157
--
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]