...
This would keep the current configuration: when an identifier is generated, 4 levels of PairTree nodes are created to partition the identifier space. These nodes do not behave like normal containers, for example when you list the members of a container, it traverses the PairTree nodes and lists their children.
2. Use AppleTrees
This takes a different approach to avoiding JCR nodes with too many children. Instead of putting it in the externally-visible path, it generates an MD5 hash of the path and creates PairTrees internally to segment this child nodes. This has many of the same benefits of #1, but hides the intermediary nodes from the user. However, it also has the downside of being incompatible with migrating data, so it would require starting a new repository and migrating content.
...