问题标签 [berkeley-db-je]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 推荐一个快速且可扩展的持久化 Map - Java
我需要一个磁盘支持的 Map 结构才能在 Java 应用程序中使用。它必须具有以下条件:
- 能够存储数百万条记录(甚至数十亿条)
- 快速查找 - Map 上的大多数操作将只是查看键是否已经存在。这和上面的 1 是最重要的标准。对于经常使用的键,应该有一个有效的内存缓存机制。
- 持久的,但不需要是事务性的,可以忍受一些失败。即乐于定期与磁盘同步,并且不需要事务性。
- 能够存储简单的原始类型 - 但我不需要存储序列化对象。
- 它不需要分布式,即在一台机器上运行。
- 设置简单且免费使用。
- 不需要关系查询
记录键将是字符串或长整数。如上所述,读取将比写入频繁得多,并且大多数读取将只是检查密钥是否存在(即不需要读取与密钥相关的数据)。每条记录只会更新一次,记录不会被删除。
我目前使用 Bdb JE,但正在寻找其他选择。
更新
此后,通过减少对辅助键的依赖,提高了我现有 BDB 设置的查询性能。一些查询需要连接两个辅助键,通过将它们组合成一个复合键,我在查找中删除了一个间接级别,这很好地加快了速度。
java - Berkeley DB JE - 打开游标计数
有没有办法向 API 询问打开的游标列表(或至少是当前打开游标的数量)?
security - berkeleydbje 设置身份验证
如何在 berkeley db java 版本中对我的数据库应用程序设置用户身份验证。
java - Berkeley DB JE Base API 二级数据库和序列的问题
我有一个类 Document ,它由Id (int)
和组成Url (String)
。我想有一个主索引Id
和二级索引Url
。我还想有一个 Id 自动递增的序列。所以我创建了一个 SecondaryDatabase,然后我创建了一个序列。在序列初始化期间,我得到一个异常:
似乎在序列初始化期间,辅助数据库被迫更新。当我调试 MyDocumentBiding 的 entryToObject 方法时,它尝试转换为对象的字节似乎是随机的。
我究竟做错了什么?
java - 在 Berkeley DB Core 和 Berkeley DB JE 之间进行选择
我正在设计一个基于 Java 的网络应用程序,我需要一个键值存储。Berkeley DB 似乎对我来说足够合适,但似乎有两个 Berkeley DB 可供选择:用 C 实现的 Berkeley DB Core 和用纯 Java 实现的 Berkeley DB Java 版。
问题是,如何选择使用哪一个?对于 web-apps 的可扩展性和性能非常重要(谁知道呢,也许我的想法会成为下一个 Youtube),而我在两者之间找不到任何有意义的基准。我还没有熟悉 Cores Java API,但我很难相信它可能比 Java 版本差得多,这似乎相当不错。
如果其他一些键值存储会更好,也请随意推荐。我正在存储较小的二进制 blob,键可能是数据的哈希值或其他一些唯一 ID。
database - 如何获得 BerkeleyDB 中值的大小?
有没有办法只获取存储在 BDB 中的值的长度(以字节为单位)?我不需要整个数据数组,只需要它的大小。
database - Berkeley DB java 版本,Java 中有任何 LGPL 或 BSD 替代品吗?
我正在处理一个由键值对组成的庞大数据集。查询始终以键空间上的范围查询的形式(键是数字),因此任何持久的 B-Tree 类结构都可以处理这种情况。我想使用 BDB-Java 版,但该产品是封闭源代码,我的公司不想购买 BDB-JE 许可证。我想知道,请您分享您对任何基于非 GPL java 的键值存储系统的经验。
谢谢
performance - Berkeley DB Java 版 - 调整大量数据
我需要将超过 10 亿个密钥加载到 Berkley DB 中,因此我想提前对其进行调整以获得更好的性能。使用标准配置,我现在需要大约 15 分钟来加载 1'000'000 个键,这太慢了。是否有适当的方法来调整例如 Berkley DB 的 B+Tree(节点大小等)?
(作为对比,在调优 tokyo cabinet 后,25 分钟内加载了 10 亿个键)。
PS我正在寻找作为代码而不是为正在运行的系统设置的参数的调整技巧(如jvm大小等......)
java - 使用 Berkeley DB 的所有开源应用程序有哪些?
我正在学习 Berkeley DB 及其用法。有人可以指出使用 BerkeleyDB 的开源应用程序。
虽然我使用的是 Java(BDB Java 版),但我也愿意参考其他编程语言。
jta - 在 Berkeley DB Java 版中为分布式事务 (XA) 设置事务隔离级别
我在 BDB JE 应用程序中使用分布式事务来协调多个 BDB JE 环境中的事务。我想将事务隔离级别设置为可序列化。为了开始分布式事务,我使用我生成的 Xid,并且必须确保它是全局唯一的,避开 BDB JE 的本地 Transaction 类。启动的事务分支是 ThreadLocal,因此在操作中将 null 传递到事务字段中。那么如何设置隔离级别呢?隔离级别是否已经默认为可序列化?我的 Google-fu 没有出现任何问题...