Hi, the DataTree structure on the ZK server stores each DataNode in a ConcurrentHashMap (DataTree.nodes) and in a a double-linked tree of DataNodes. The class' javadoc says that the additional hashmap is used for fast lookup.
Have you ever done a benchmark, whether the hashmap really provides a significant speed improvement compared to traversing the tree? Example: I want to lookup the DataNode /a/b/c. Traversing the tree means I have to make three lookups in children lists of nodes. The current code makes one lookup in the big hashmap of _all_ nodes. I doubt, that the current code is really faster, but I wanted to ask here before programming a benchmark. Together with this question goes another one: I have some ideas about improving Path handling, which could significantly save memory but could make path operations more CPU intensive by one magnitude. In your experience with large ZK installations, is CPU an issue? Is memory such an issue that you would trade some CPU for it? Best regards, Thomas Koch, http://www.koch.ro
