On Mon, Jun 2, 2008 at 12:49 PM, Howard Chu hyc@symas.com wrote:
Taking a cue from our MySQL friends - MySQL uses T-trees for their in-memory structures. These are balanced trees, like AVL trees. But instead of just one data item per tree node, they have N items per node. (Presumably N is a compile-time constant.) The advantage to using T-trees is that inserts and deletes have less impact on the overall tree, thus minimizing the need for rebalancing.
I would expect that they perform about as well as AVL trees for lookups. Anyone interested in experimenting here and reporting on the relative performance?
T-trees are great for cache backing.
Incidentally, we've thought about using T-trees as well for an entry cache over at Apache Directory: Howard you probably remember some of those threads. I think we were initially considering a splay tree but I think that's pretty insane especially since it will be splaying on lookups. It would be a learning experience for us to see what your conclusions are with T-trees.
Regards, Alex