Boost logo

Boost :

Subject: [boost] Interest in B-Tree and B+-Tree Implementation?
From: Timo Bingmann (tb_at_[hidden])
Date: 2015-06-09 10:07:55


Hello people,

I want to ask if there is an interest in adding an in-memory B+-Tree
container implementation that I wrote some time ago:

https://github.com/bingmann/stx-btree
http://panthema.net/2007/stx-btree/

It emulates the std::set/map/multiset/multimap interfaces as far as
possible (there are some unavoidable minor exceptions). And since I keep
telling my collegues to stop using std::map for bigger instances, I
think adding it to Boost would be a good idea.

So ... I could clean up my old implementation, add C++11/Boost move
semantics, use of uninitialized objects, boostify various things, etc,
etc, and then things should be pretty fine.

I also have an idea to modify/fork the implementation to create a B-tree
(non-plus) container, which should be a bit slower, but provide an
interface even closer to std::map (only remaining unavoidable
incompatibility would be with iterator invalidation).

My main question before starting this is whether it is a better idea to
add it to Ion's existing Container library, or to add it as a separate
"library" under Boost like the existing circular_buffer, which is pretty
old. Apparently libraries have gotten bigger over Boost's life. So which
variant would be better? The "Container" library seems to be more
targeted at reimplementing STL containers with new features, and simple
new containers, not complexer ones? But it should still be a good match.

In the incubator I found the "STL Extensions" submission, which appears
to be dead. It aims to provide "augmented array based B+ trees", which
is different from the usual trees where nodes are dynamically allocated.

Best Regards,
Timo Bingmann


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk