Re: [PATCH] add b+tree library

Andi Kleen
2009-01-11T18:09:06Z

I only listed the proposals I've heard about before, not necessarily
endorsing them.

> The number of people that truly understand what Judy trees do may be
> single-digit. Main disadvantage I see is that Judy trees heavily rely
> on repacking nodes over and over. Part of Judy is a memory manager with
> essentially slab caches for nodes with 2, 4, 6, 8, 12, 16, 24, 32, 48,
> 64, 96, 128, 192, 256, 384 and 512 words.

Well complicated code is en vogue recently :-)

> Splay trees are still binary trees, so the fan-out argument is identical
> to that against rbtrees. If we have to pull in a cacheline, we might as
> well use all of it.
>
> Skip lists are just a Bad Idea(tm). In O(x) notation they behave like
> binary trees, waste cachelines left and right, use more memory, depend
> on a sufficiently good random() function,... I guess you never closely
> looked at them, because anyone who does tries to forget them as fast as
> possible.

Using the radix trees more would be also an alternative.

I honestly don't know how they will all perform in the kernel that is why I
thought it would be a good idea to just try them out. But I'm not
volunteering to code it up, so it was more an idle thought.

Doing that would be a reasonable student project. In fact I've been asked
about this sort of thing by students in the past.

Cleaning up the rbtree interface to be a little more abstract
would be probably a good idea in general. I never really
liked the open coded searches.

-Andi