标签: berkeley-db-je

推荐快速且可扩展的持久性Map - Java

我需要一个磁盘支持的Map结构才能在Java应用程序中使用.它必须具有以下标准:

  1. 能够存储数百万条记录(甚至数十亿条记录)
  2. 快速查找 - Map上的大多数操作只是查看密钥是否已存在.这和上面的1是最重要的标准.对于经常使用的密钥,应该有一个有效的内存缓存机制.
  3. 持久的,但不需要是事务性的,可以忍受一些失败.即乐意定期与磁盘同步,并且不需要是事务性的.
  4. 能够存储简单的基本类型 - 但我不需要存储序列化对象.
  5. 它不需要分发,即将在一台机器上运行.
  6. 设置简单,免费使用.
  7. 无需关系查询

记录键将是字符串或长整数.如上所述,读取将比写入更频繁,并且大多数读取将仅仅是检查密钥是否存在(即,不需要读取密钥相关数据).每条记录仅更新一次,记录不会被删除.

我目前使用Bdb JE但我正在寻找其他选择.


更新

从那以后,通过减少对二级密钥的依赖性,提高了现有BDB设置的查询性能.有些查询需要在两个辅助密钥上进行连接,并将它们组合成一个复合密钥,我在查找中删除了一个间接级别,这样可以很好地加快速度.

java berkeley-db map persistent berkeley-db-je

26
推荐指数
4
解决办法
2万
查看次数

在Berkeley DB Core和Berkeley DB JE之间进行选择

我正在设计一个基于Java的网络应用程序,我需要一个键值存储.Berkeley DB似乎适合我,但似乎有两个Berkeley DB可供选择:用C语言实现的Berkeley DB Core和用纯Java实现的Berkeley DB Java Edition.

问题是,如何选择使用哪一个?随着网络应用程序的可扩展性和性能非常重要(谁知道,也许我的想法将成为下一个Youtube),我无法轻易找到两者之间的任何有意义的基准.我还没有熟悉Cores Java API,但我发现很难相信它可能比Java版本更糟糕,Java版本看起来相当不错.

如果其他一些键值存储更好,也可以随意推荐.我正在存储小的二进制blob,键可能是数据的哈希值,或者其他一些唯一的id.

java berkeley-db berkeley-db-je

11
推荐指数
2
解决办法
3370
查看次数

什么是android上持久键值存储的最佳机制(具有大值)

我想在Android设备上使用快速键值存储,其值为图像位图.应该通过磁盘备份存储并提供一些缓存,从而最大限度地减少磁盘IO.需要多线程访问,但不是必需的.

我看过看起来符合要求的Java Berkeley DB.还有其他图书馆表现更好吗?或者Berkeley DB在Android平台上表现如何?

我可以使用一个解决方案,它需要一个键值对驻留在内存中,但存储完整的键值对集可能会超出设备内存的大小.

android key-value-store berkeley-db-je

6
推荐指数
1
解决办法
4089
查看次数

5
推荐指数
1
解决办法
1871
查看次数

Berkeley DB Java版 - 调整大量数据

我需要将超过10亿个密钥加载到Berkley DB中,因此我想提前调整它以获得更好的性能.使用标准配置,我现在花了大约15分钟加载1'000'000键,这太慢了.是否有适当的方法来调整例如Berkley DB的B + Tree(节点大小等...)?

(作为比较,在调整tokyo cabinet之后,它在25分钟内加载10亿个键).

PS我正在寻找调优技巧作为代码而不是为运行系统设置的参数(如jvm size等...)

performance berkeley-db-je

3
推荐指数
1
解决办法
3895
查看次数

无法在Java Edition中更改Berkeley DB数据库类型?

我一直在寻找将BDB的Java Edition 4.1.7的数据库类型从BTree更改为Hash.Core版本有DatabaseType.HASH,DatabaseType.RECNO和DatabaseType.Queue- Java Edition中不支持这些.如果是这样有理由放弃这些?

database berkeley-db berkeley-db-je

1
推荐指数
1
解决办法
1988
查看次数