B+Tree on-disk implementation in Java

2019-04-08 01:06发布

问题:

Does anyone know where to find a B+Tree on-disk implementation? I went through google forward and backward and unfortunately I couldn't find anything sensible. Other threads have suggested to maybe take the tree from sqlite, sqljet or bdb but these trees are nested in the whole database and you can't really "just" filter out the B+Tree. I'm really looking for only a on-disk B+Tree... without any fancy things around.

回答1:

There is a GDBM-inspired Java persistence engine: MapDB



回答2:

If you need it for real usage rather than for educational purposes (studying B+Tree data structure, etc.), LMDBJava is probably the best solution, available in Java now. It's not B+Tree exactly, but also a sorted key-value store, so practically the same as B+Tree.



回答3:

I've implemented disk-based B+-tree in the past. https://github.com/myui/xbird/blob/master/xbird-open/main/src/java/xbird/storage/index/BIndexFile.java

Find usage in https://github.com/myui/xbird/blob/master/xbird-open/main/test/java/xbird/storage/index/BIndexMultiValueFileTest.java