【问题标题】:Lightweight B-tree library for Java? [closed]Java的轻量级B树库? [关闭]
【发布时间】:2011-07-21 14:15:23
【问题描述】:

谁能推荐一个用于 Java 的轻量级、快速且希望稳定的 B-tree(或类似)库?

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

需要纯 Java,所以没有东京/京都内阁。

实现相关的Collections 接口将是一个加分项(或者,原始类型的模板化接口也很好)。

JDBM 看起来还不错,但它似乎在 2005 年就被放弃了(1.0,不少于)。

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

还有别的吗?或者上面提到的有什么经验?

寻找的东西:

  • 进程中的关系数据库(所以没有 H2、Derby、SQLite 等)
  • 分布式键值存储(没有 Redis、Memcachedb、Cassandra、Voldemort、Dumbledore 等)

【问题讨论】:

标签: java map persistence b-tree dbm


【解决方案1】:

您可能会对 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

【讨论】:

    【解决方案2】:

    值得一提的现代项目:

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

    【讨论】:

      【解决方案3】:

      https://github.com/jankotek/MapDB 可能会做你想做的一部分。该库提供了几个持久列表、集合和映射实现,包括一个 b-tree 映射。

      【讨论】:

      • 我错过了其他答案中关于 jdbm4 被重命名为 MapDB 的详细信息。
      【解决方案4】:

      我知道,这是一个迟来的贡献。 我自己不需要选择 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>
      

      【讨论】:

        猜你喜欢
        • 2011-10-25
        • 2010-10-17
        • 1970-01-01
        • 2012-08-02
        • 2012-12-21
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        • 2010-09-18
        相关资源
        最近更新 更多