hypirion / c-rrb

RRB-tree implemented as a library in C.
MIT License
164 stars 14 forks source link

Make refcount version of the rrb-tree #10

Open hypirion opened 9 years ago

hypirion commented 9 years ago

Providing a refcount variant will make portability to non-GC languages (Rust, C++, etc.) easier.

difranco commented 9 years ago

How about hazard pointers as in this hamt implementation? (Not a rhetorical question as I do not know myself if it would be appropriate.) https://github.com/ballard26/concurrent-hamt

hypirion commented 9 years ago

That's a valid question: It could be interesting for a concurrent RRB-tree, but this version is (currently) only immutable and transient, so it would incur more overhead than basic refcounting.

It sounds like something worth looking into in the future though!

difranco commented 9 years ago

It is a tempting thought because together with the ctrie it could be used to create a Lua table like universal map data structure with lock-free concurrency, then maybe build Iacono's working set structure on top to get cache-obliviousness.