Since we're all sharing implementations, anyone interested in a similar data structure for C# can feel free to dig through (or use) my btree-based key value store:
Of interest might be the fact that it's based on memory-mapped files, and it supports multithreaded querying. Insertion is single-threaded, though.
Unfortunately, it uses a regular old B-Tree. I should probably change it to a B+ Tree for better range queries... didn't even know about that data structure until seeing this HN post. :)
It's a specialized key value store. I'm reading through the C code for it. It will be fun to read your code along with that - thanks for putting it out there.
The only benchmarking I've done is a simple single-threaded test from python. I got about 8000 inserts per second. If that sounds low, then you must take into account that each insert hits the disk, ie it's completely durable.
I don't mind you creating a wrapper by any means and you don't need my permission anyway; it's open-source.
NOTE: it doesn't do log-structuring or compaction atm so the file will just continue to grow.