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.
---

Reply via email to