问题标签 [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.

0 投票
0 回答
337 浏览

java - Oracle Berkeley DB Java 版 - 辅助键唯一性

我有一个简单的实体类,它应该包含唯一的名称

由于大量修改,我想使用延迟写入选项。这是我尝试过的测试及其输出。

输出

所以我的问题是,即使它在放置第二个包时抛出异常,为什么它会列出两个包。有什么方法可以在不使用事务的情况下避免这种情况?

谢谢。

0 投票
1 回答
108 浏览

java - 在重新加载应用程序 .jar 时将 BDB JE 保留在内存中

当 BDB JE 在他的应用程序进程中运行时,我想找到构建系统的最佳方式,我可以在其中运行 BDB 并重新加载我不断变化的应用程序逻辑和依赖项。

理想情况下,我会在一个单独的进程中运行 BDB,但随后我需要使用共享内存来执行 IPC 以保持带宽。

我的另一个想法是使用 OSGi 来刷新应用程序包。

任何人都有任何聪明的技术来做到这一点。我很欣赏 BDB JE 的嵌入性,但我想吃我的蛋糕。

0 投票
1 回答
150 浏览

berkeley-db-je - 在 BerkeleyDB JE 中选择不同的辅助键值

我有一个使用 DPL 的 Berkeley DB JE 设置。

我有一个辅助键字段,它是一个字符串,我想检索该键的所有不同值。不需要额外的过滤,我只想要所有不同的值。

我可以遍历所有条目并将值添加到集合中,但这似乎非常低效,因为我从数十万行中获取了大约 10 个值。

0 投票
0 回答
189 浏览

java - Berkeley-db-je dbverify 工具慢

所以我使用 bdb je dbverify 来检查大约 250GB 的大型 bdb 数据库中的损坏情况。下面是我用来运行该工具的命令,它需要很长时间。估计8或9个小时。

我厌倦了大约 2.5GB 的较小 bdb,它需要 6 分钟,当按 100 缩放时,大约需要 10 小时。有什么办法可以加快速度吗?设置还是什么?

dbverify 工具的源代码在这里,它似乎没有提供任何其他选项来进行更快的检查。

0 投票
1 回答
694 浏览

berkeley-db-je - 伯克利数据库Java版主键自动递增

我想自动增加伯克利数据库中的主键。我使用@PrimaryKey(sequence="Id")。它工作得很好。但是当我输入另一个数据时,顺序出错了。作为一个例子,当我执行数据库时,主键是“1”,但下一次是“101”,下一次是“201”。这是我的代码。有什么要补充的吗?我+ 没有使用 SequenceConfig config = new SequenceConfig(); config.setAllowCreate(true);。我需要使用它吗。请帮我。

@PrimaryKey(sequence="ID")

长身份证;字符串名称;

0 投票
1 回答
446 浏览

java - 类无法加载或不持久:Berkeley DB JE 中的 scala.collection.immutable.List

当我在我的 scala 项目中使用 Berkeley DB JE 时,我定义了一个带有 List 成员的实体。但是,当我运行该项目时,它会抛出一个异常,告诉Class could not be loaded or is not persistent: scala.collection.immutable.List. 那么我该如何解决这个问题呢?或者只是将 scala List 转换为 java.util.List?

0 投票
1 回答
304 浏览

java - Berkeley DB 中的外键

我有两个实体:

第一个是:

第二个是:

我想wordId成为LexiconEntity的外键WordEntity。我怎样才能做到这一点?

0 投票
1 回答
85 浏览

java - Berkeley JE StoredMap:替换现有值而不加载前一个

我想更新一个 StoredMap 值,我不关心旧值。我找不到避免加载先前值的方法。

有没有办法优化我的代码并更新现有值而不加载它(或至少防止绑定以处理旧的 DatabaseEntry 字节)?

注意:调用 remove 然后 put 更慢。

0 投票
1 回答
377 浏览

berkeley-db - 应用重启后 Berkeley DB 主键序列跳跃 100

(我已经在网上的某个地方看到了这个问题,但是一个依赖于“100”作为搜索词的搜索查询显然不是一个有希望的查询 - 如果这个问题已经被问过,请原谅我)

我刚刚开始使用 Java 中的 berkeley DB 使用其 DPL 功能。我创建了一个“客户端”类,它具有以下主键和序列:

我正在使用主索引添加一些示例实体:

我第一次启动应用程序时,一切正常。序列从 1 开始并增加 1。下次我启动应用程序时,它从 101(步进仍然是 1)开始,而不是从 4 开始(我有 3 个示例实体)。是否有可能以某种方式影响这种行为?我想要一个持续的序列。

编辑: 这是我的测试代码:

商店看起来像这样:

ClientAccessor 是这样的:

客户端看起来像这样:

0 投票
1 回答
838 浏览

java - 为什么 Titan 创建配置唯一的重复顶点键?

简要总结

使用最新的 Titan-0.5 快照。我们的代码在并发线程中创建顶点。我们最终会处于一个状态,即我们有多个具有相同键的顶点。由于我们的限制,我们预计这不会发生。

使用以下配置键:

全文

我们有一个配置有唯一顶点属性键的 Titan DB。在并发线程中写入数据库时​​,我们发现 Titan 使用相同的键持久化多个顶点。

我已将问题提炼为一个测试文件: https ://gist.github.com/ubit-ee/8520304273cd2024af29 这是针对 0.5 分支的最新版本构建的。

该代码生成三个线程,它们通过倒计时锁存器同步以同时启动(尽可能多地)。然后线程: 使用键“KEY_VALUE_A”创建顶点 使用键“KEY_VALUE_B”创建顶点 在两者之间创建一个标签 如果线程要按顺序运行,则可能会因重复键而出现异常。我已经能够强迫这个案子了。

当线程并发运行时,我希望至少有一个线程成功并且任何数量都失败。无论如何,我希望图的最终状态是两个顶点和两者之间的一条边。

不幸的是,当我运行它时,数据库反复处于具有超过 2 个顶点和边的状态。存在具有重复键的顶点。测试将图形转储到 XML。示例: https ://gist.github.com/ubit-ee/d5530e4fa4b87c752294

为 berkeleydb 配置的测试代码,但我也针对 Cassandra 重复了这个问题。

问题

  • 我是否正确配置了模式,使得顶点键应该是唯一的?
  • 我应该对交易做任何不同的事情吗?
  • 我是否误解了泰坦的预期行为?