Java的轻量级B树库?

时间:2011-03-23 19:20:31

标签: java map persistence b-tree dbm

有人可以为Java推荐一个轻量级,快速且有希望稳定的B树(或类似)库吗?

基本上我正在寻找一张磁盘上的地图;除了我不需要事务之外,还有一些与BerkeleyDB JE类似的东西,只读并发很好,并且需要大约1/10大小(BSD或Apache许可证也很好)。

需要纯Java,所以没有东京/京都机柜。

实现相关的Collections接口将是一个加号(或者,基本类型的模板化接口也会很好)。

JDBM看起来相当不错,但它似乎在2005年被放弃了(1.0,不低于)。

还有DiskBackedMap,但他们一年前发布了一个alpha版本,从那时起就没有发布过。

还有其他什么吗?或者上述任何经历?

寻找的东西:

  • 进程间关系数据库(因此没有H2,Derby,SQLite等)
  • 分布式键值存储(无Redis,Memcachedb,Cassandra,Voldemort,Dumbledore等)

4 个答案:

答案 0 :(得分:7)

您可能会感兴趣的是JDBM的分支。

请参阅http://www.kotek.net/blog/jdbm_2.1_and_beyond

GitHub:https://github.com/jankotek/JDBM3

另外,

电子邮件:jdbm@googlegroups.com

网址:http://groups.google.com/group/jdbm

RSS:http://groups.google.com/group/jdbm/feed/rss_v2_0_msgs.xml

修改

JDBM4已重命名为MapDB

答案 1 :(得分:2)

值得一提的现代项目:

  • LMDBJava允许使用Java中的LMDB。 LMDB不完全是B树,但它是一个树状结构,i。即总是排序。
  • 如果您没有排序的属性,Chronicle Map现在是the most efficient随机访问Java的无序持久性堆外键值存储

答案 2 :(得分:1)

https://github.com/jankotek/MapDB可能会成为您想要的一部分。该库提供了几个持久的列表,集合和映射实现,包括b树映射。

答案 3 :(得分:0)

我知道迟到的贡献。 我自己不需要选择Java DBM库的兴奋。在某些情况下,我只需要最小化内存使用量。 (对于实际的持久性,我会使用JPA。)目前在不同的州有4个不同的JDBM项目。

幸运的是,Apache目录服务器附带了一个JDBM库,我的激动人心的时刻似乎永远消失了!该库可以单独使用,它似乎基于四种实现之一。它也在MVNRepository上。

<dependency>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-jdbm</artifactId>
    <version>2.0.0-M5</version>
</dependency>