Java的轻量级B树库?

13

有人能推荐一个轻量级、快速、并且稳定的B-tree(或类似)库给Java吗?

基本上我正在寻找一个磁盘映射;类似于BerkeleyDB JE,除了我不需要事务,可以接受只读并发,并且需要它的大小约为原来的1/10(最好是BSD或Apache许可证)。

需要是纯Java的,所以没有Tokyo/Kyoto Cabinets。

实现相关的Collections接口会是一个加分项(或者使用基本类型的模板接口也不错)。

JDBM看起来很不错,但它似乎已经在2005年被放弃了(还停留在1.0版本)。

还有DiskBackedMap,但他们在一年前发布了Alpha版,之后就没有消息了。

还有其他什么选择吗?或对上述选择有何经验?

寻找以下内容:

  • 进程内关系型数据库(因此没有H2、Derby、SQLite等)
  • 分布式键值存储(无Redis、Memcachedb、Cassandra、伏地魔或其他)

教育用途,请访问 http://www.cs.unm.edu/~rlpm/499/ttft.html,但无磁盘备份。 - Janus Troelsen
4个回答

9

2
值得一提的现代项目:
  • LMDBJava允许从Java使用LMDB。 LMDB不完全是B树,但它是一种类似于树形结构,即始终排序的结构。
  • 如果您不需要排序属性,则Chronicle Map是目前Java中最有效的随机访问无序持久化非堆键值存储。

1

我之前没有注意到jdbm4已经在其他答案中更名为MapDB。 - Jilles van Gurp

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接