Github user dragonsinth commented on the issue: https://github.com/apache/curator/pull/250 Hi @njhill just got back to work from vacation, and this is a little more than I can just eyeball, I gotta think through it a bit when I have more time. I think I would like to see the removal of `nodeState` in isolation, perhaps with an explicit `PENDING` sentinel rather than just `null`. It's not clear to me that `TreeNode extends AtomicReference` and `@Nullable outstandingOps` are wins. The first one doesn't really save any memory, and for the second one, the ongoing CPU cost to update `outstandingOps` is basically nothing, it's almost certainly immeasurably tiny, and you have to introduce racy field reads to accomplish it. Have you done memory use measurements? I would expect the memory footprint of `ConcurrentMap<String, TreeNode> children` to mostly dominate the memory overhead of our own classes, not to mention all the Watchers.
---