GitHub user Randgalt opened a pull request:
https://github.com/apache/curator/pull/181
FOR DISCUSSION ONLY - Persistent watch and Cache recipe replacements
I've pushed an implementation for Persistent recursive watches as a
ZooKeeper PR for https://issues.apache.org/jira/browse/ZOOKEEPER-1416 - if it's
accepted, Curator should support this. This PR has implementations for:
- PersistentWatcher
- CuratorCache
PersistentWatcher is a wrapper around the new persistent/recursive cache
CuratorCache is a replacement for PathChildrenCache, TreeCache and
NodeCache. With Persistent recursive watches the implementation is orders of
magnitude simpler and uses a lot less resources (i.e. 1 watch for the entire
tree).
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/curator persistent-watch
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/curator/pull/181.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #181
----
commit 32a2fb7594510be2ee6d28c3c3a7db3b4ee9ab99
Author: randgalt <[email protected]>
Date: 2016-12-28T19:50:05Z
wip
commit 94a0205d4c3d34b1e1384ab5af1b997f74d2a912
Author: randgalt <[email protected]>
Date: 2016-12-29T04:10:15Z
Finished addPersistentWatcher DSL, re-wrote new version of cache code to
handle all cases and deprecated other versions
commit 0d9acb6dd4ec4143cf08ae1cf4ab77a0865370e2
Author: randgalt <[email protected]>
Date: 2016-12-29T15:02:15Z
wip
commit 01652cef64e3cf3cc1e311b7a85f3c613f06ab0a
Author: randgalt <[email protected]>
Date: 2016-12-30T15:26:18Z
wip, refactoring, testing
commit bf73f0d3999bfc21b1799ce0c9d3e06214479206
Author: randgalt <[email protected]>
Date: 2016-12-30T17:03:41Z
continued work on porting old PathChildrenCache tests
commit 076583d14506e3e761ca061cd51a358a97c08eb6
Author: randgalt <[email protected]>
Date: 2016-12-30T18:23:14Z
CacheListener needs to get the affected node. Also, PATH_ONLY still needs
to store the stat
commit 5b0a9f56e7d050eedfea0618f90c58d718441d3f
Author: randgalt <[email protected]>
Date: 2016-12-30T19:09:53Z
refactoring
commit 313fd7d46ccede6bbc9ac1feb0b5a2099fce7a6d
Author: randgalt <[email protected]>
Date: 2016-12-30T20:12:04Z
Added a composite cache
commit 1f0bdf9265e6f5bfb34520761649240209c17d72
Author: randgalt <[email protected]>
Date: 2016-12-30T21:26:10Z
renamed rebuildTestExchanger
commit f8f5cafa956da97c5fa177ac64ee003e955887da
Author: randgalt <[email protected]>
Date: 2016-12-30T21:26:23Z
finished ported tests
commit 38c766310432bd1d6b3f64d2778b3605df434e64
Author: randgalt <[email protected]>
Date: 2016-12-31T21:41:10Z
More test porting, refinements
commit 6cfd38c25391865503ba4cf35530f1794c777b91
Author: randgalt <[email protected]>
Date: 2016-12-31T22:57:18Z
More testing and refactoring. Wasn't checking for deleted children after a
refresh. Also, allow for different methods of comparing nodes for change.
commit 40a985243d2959a2fff397eeebb9ff844f6a154c
Author: randgalt <[email protected]>
Date: 2017-01-01T00:48:10Z
finished porting TreeCache tests
commit add0d10bbb58b0dd6eeffde8c6a2bd2df99a7eae
Author: randgalt <[email protected]>
Date: 2017-01-01T15:55:26Z
Finished porting TestTreeCacheRandomTree. However, it exposed a design
issue with separate CacheFilters and RefreshFilters. To do maxDepth properly
you need both to be in sync. Need to rething this.
commit 2cf7c412caf81cb7846a7da5aac3adbc62502d3e
Author: randgalt <[email protected]>
Date: 2017-01-01T18:33:13Z
Reworked filters. Went back to the CacheSelector multi-method fitler used
in TreeCache.
commit 72fe88c3b99e43e905cce40c178a08cb2c409b78
Author: randgalt <[email protected]>
Date: 2017-01-01T19:24:04Z
Ported/finished NodeCache and tests
commit 8565de6d75d34b2dd597878167b51cd921a0a00e
Author: randgalt <[email protected]>
Date: 2017-01-01T22:15:14Z
Removed composite stuff. Interesting, but gilding the lilly
commit 2148b6d1a829c2efd0309e2914b755ce9ebff003
Author: randgalt <[email protected]>
Date: 2017-01-02T02:22:32Z
Add docs, more refactoring, final testing, etc.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---