Masstree: A cache-friendly mashup of tries and B-trees
11–20 of 24 posts
Re: Masstree: A cache-friendly mashup of tries and B-trees
#12Author here - if you like this you might also like another paper summary of mine in the same vein: https://news.ycombinator.com/item?id=18132730
Reason: Ordered access or range queries need a (radix-)tree.
So insertion and removal need to pay for the comparatively slow tree search and rebalancing.
Lookups or mutations could use a hash table that references the same data, especially if no key compression is used for storage.
Re: Masstree: A cache-friendly mashup of tries and B-trees
#13Author here - if you like this you might also like another paper summary of mine in the same vein: https://news.ycombinator.com/item?id=18132730
So I was wondering... are there sensible structures that combine hashmap and tree by having a double index? Reason: Ordered access or range queries need a (radix-)tree. So insertion and removal need to pay for the comparatively slow tree search and rebalancing. Lookups or mutations could use a hash table that references the same data, especially if no key compression is used for storage.
Re: Masstree: A cache-friendly mashup of tries and B-trees
#14Earlier quoted context omitted.
Here's a recent comparison of Masstree to ART: https://twitter.com/andy_pavlo/status/986647389820747776?s=2... ART looks to be better in most cases. It's on my list of K-V stores to review: https://www.the-paper-trail.org/page/reading-list/
Cool, looking forward. Please put Judy in as well :) Seriously, the 17 year old judy is still pretty good, despite it's lack of use of cool vector load / compare / etc instructions for quickly traversing tree nodes that are too small for a full radix search (ART does "simultaneous search", i.e. compares to all stored keys in a single instruction, while judy afaik runs a linear search). It would be pretty cool if some…
Re: Masstree: A cache-friendly mashup of tries and B-trees
#15Masstree is one of the DBs Berkeley used when comparing the performance of Anna [1] (now Fluent [2]): [1] https://rise.cs.berkeley.edu/blog/anna-kvs/ [2] https://github.com/fluent-project/fluent
Anna is on my list of systems to include in this review (see https://www.the-paper-trail.org/reading-list/). Looking forward to it!
Re: Masstree: A cache-friendly mashup of tries and B-trees
#16edit: oh, it's because it's a link and they have some background coloring or something on links.
Re: Masstree: A cache-friendly mashup of tries and B-trees
#17Why do I get a gross yellow block covering the image when I mouse over it? edit: oh, it's because it's a link and they have some background coloring or something on links.
Re: Masstree: A cache-friendly mashup of tries and B-trees
#18So what are the advantages over adaptive radix trees or good old judy-dict/array? Apart from judy being too damn complicated, and too old to be optimized for vector-compare instructions (I think the fancy hand-coded x86 vector-comparisons are the main reason for ART being competitive with judy, considering that it misses at least key compression and the clever allocator, and that ART is not as optimized for using eve…
Here's a recent comparison of Masstree to ART: https://twitter.com/andy_pavlo/status/986647389820747776?s=2... ART looks to be better in most cases. It's on my list of K-V stores to review: https://www.the-paper-trail.org/page/reading-list/
Re: Masstree: A cache-friendly mashup of tries and B-trees
#19Running index-microbenchmarks now to see which is faster :)
Re: Masstree: A cache-friendly mashup of tries and B-trees
#20Why do I get a gross yellow block covering the image when I mouse over it? edit: oh, it's because it's a link and they have some background coloring or something on links.