Zack's Kernel News
Chasing the Dream
Liam Howlett, speaking for himself and Matthew Wilcox, recently announced the Maple Tree, which he wished to have included in Linux. Andrew Morton asked for a nice explanation of what the Maple Tree was. So, despite whatever lovely pastoral scene you might have envisioned would come next, Liam actually said, "the maple tree is an RCU-safe range based B-tree designed to use modern processor cache efficiently."
A B-tree is a data structure designed to let the user find and retrieve big pieces of data extremely efficiently. The "tree" in the name refers to a branching search path, where you ditch the wrong paths and narrow down the remaining search quickly. This is similar to the fun guessing game, where one person picks a secret number between 1 and 100 and then tells whether each of their friends' guesses is higher or lower than the secret number. However, instead of the "binary" high/low way of narrowing down the search, B-trees can split into more than two branches at a time.
As Liam put it, "With the increased branching factor, it is significantly shorter than the rbtree so it has fewer cache misses. The removal of the linked list between subsequent entries also reduces the cache misses and the need to pull in the previous and next VMA during many tree alterations."
[...]
Buy this article as PDF
(incl. VAT)