Introduce the ARB tree(3) macros - just like RB trees, but using an array (preallocated, linear chunk of memory) to store the tree. This avoids the allocation overhead, improves memory locality, and makes it trivially easy to share/transfer/copy the entire tree without the need for marshalling. The downside is that the size is fixed at initialization time; there is no mechanism to resize it.
This is one of the dependencies for the new stats(3) code.
Sponsored By: Klara Inc, Netflix
Obtained from: Netflix