Messages in this thread | | | Date | Sun, 11 Jan 2009 19:23:17 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH] add b+tree library |
| |
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
| |