问题标签 [berkeley-db]

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 投票
5 回答
21284 浏览

java - 使用 PostgreSQL 数据库作为简单键值存储的最佳方式

我被要求使用 postgreSQL 数据库,它将取代我目前使用的 berkeleyDB。虽然; 我意识到这不是一个理想的情况,它超出了我的控制范围。

所以问题是……如果你需要将 postgreSQL 变成一个键值存储,你将如何做这件事,同时让它尽可能高效?

我的值是字节数组,我的键是字符串,我可以对这些字符串的长度施加一些限制。

我假设我应该为我的值和主键列使用一个 blob 来保存键,但是当我刚刚冒险进入这个旅程时,我很好奇堆栈溢出社区中是否有人这样做,或者是否有任何特定的“陷阱”我应该注意。

0 投票
1 回答
45 浏览

security - berkeleydbje 设置身份验证

如何在 berkeley db java 版本中对我的数据库应用程序设置用户身份验证。

0 投票
1 回答
770 浏览

java - Berkeley DB JE Base API 二级数据库和序列的问题

我有一个类 Document ,它由Id (int)和组成Url (String)。我想有一个主索引Id和二级索引Url。我还想有一个 Id 自动递增的序列。所以我创建了一个 SecondaryDatabase,然后我创建了一个序列。在序列初始化期间,我得到一个异常:

似乎在序列初始化期间,辅助数据库被迫更新。当我调试 MyDocumentBiding 的 entryToObject 方法时,它尝试转换为对象的字节似乎是随机的。

我究竟做错了什么?

0 投票
4 回答
1106 浏览

c++ - C++:强制转换为 void* 并返回

* ---编辑 - 现在是整个源*

当我最后调试它时,“get”和“value”有不同的值!可能,我转换为 void* 并以错误的方式返回给用户?

解决方案

创建一种“序列化器”,它将所有 POD 转换为 void*,然后将这些部分合并

PS 或者我希望将 User 重写为 POD 类型,一切都会好起来的。

添加

这很奇怪,但是......我将一个明确的非 pod 对象投射到 void* 并返回(它里面有 std::string)并且没关系(没有将它发送到数据库并返回)。怎么会这样?在我投递并发送“槽”db 后,明确地发送 pod 对象(没有额外的方法,所有成员都是 pod,它是一个简单的 struct {int a; int b; ...})我回来弄脏了一个。我的方法有什么问题?

在第一次“添加”后大约一周添加

该死的...我已经编译了它,只是为了看看它返回哪种污垢,哦!没关系!...我不能!... 啊!.. 上帝... 一个合理的问题(在 99.999% 的情况下,正确答案是“我的”,但是...这里...) - 这是谁的错?我的还是VS的?

0 投票
4 回答
15019 浏览

java - 伯克利数据库的 GUI

我正在通过 DPL 接口使用 Berkeley DB Java 版本。
我想问是否有人知道任何可以轻松浏览数据库中保存的数据的 GUI 库。

我知道 BDB 文档说关于存储实体的元数据没有保存在任何地方,因此只有编写数据的人才能知道将从那里返回的类的类型。这就是为什么我正在寻找一个将包含在主项目中的库(不是一个完整的程序),因此它会知道我的类的类型并能够正确显示数据。

ps 我找到了这个bdb 浏览器,但它似乎是一个死项目。

更新:
到目前为止,我找到了一个 GUI,它显示了通过 JMX 为 BDB 收集的统计信息。以下是如何使用它:http
://www.oracle.com/technology/documentation/berkeley-db/je/jconsole/JConsole-plugin.html 仍在搜索数据浏览器...

0 投票
1 回答
361 浏览

ruby - 如何在 Ruby 中读取 Perl DB_Files

我正在将 Perl 脚本迁移到 Ruby。Perl 脚本在DB_HASH模式下使用 DB_File。如何从 Ruby 中的此类文件中读取所有键和值?

0 投票
3 回答
4939 浏览

svn - 如何确定我拥有的 SVN 存储库的类型?

如何确定给定 SVN 存储库使用的文件系统类型?我想用 svnadmin 创建一个新的存储库,但想确保我创建的新存储库与服务器上已有的其他存储库具有一致的设置。

如果系统上的所有其他人都是 FSFS,我不想设置 berkley 数据库存储库。

我可以可靠地查看 /repositoryname/db/fs-type 吗?

0 投票
1 回答
1228 浏览

c - 为什么我的 Berkeley DB 并发数据存储应用程序挂起?

尝试打开并发数据存储 (CDB) 数据库进行读取时,我的应用程序挂起:

我怀疑数据库环境认为另一个进程已打开数据库以供写入。然而,情况并非如此,因为所有访问数据库的应用程序都是通过我编写的接口库来访问数据库的,该接口库通过 atexit() 系统调用注册终止函数,以确保 DB 和 DB_EN​​V 句柄都正确关闭——并且所有先前执行的应用程序都正常终止。

接口库像这样打开数据库:

此代码没有遇到任何错误。

接口库还注册了以下代码,以便在任何使用接口库的进程退出时执行:

正如我所指出的,所有先前执行的使用接口库的进程都正常终止。所有此类进程都是单线程的。

我在以下平台上使用 Berkeley DB 的 4.8.24.NC 版本:

有任何想法吗?

0 投票
5 回答
45566 浏览

svn - subversion 究竟是如何将文件存储在存储库中的?

我阅读了颠覆书,我很清楚颠覆不存储单个文件,而只存储增量以最小化磁盘空间。Subversion 也对二进制文件做同样的事情(这曾经是 CVS 的一个巨大弱点)。

但是我不明白确切的机制。当我提交文件时会发生什么?

  1. Subversion 仅存储差异(并且已经有旧版本)
  2. Subversion 删除以前的版本,完整地存储新文件并创建反向差异,以便在需要时“重新创建”旧版本。
  3. 还有一些我没有想到的。

第一种情况似乎是最合乎逻辑的。然而,这提出了另一个问题。如果我在 subversion 存储库中有一个包含 1000 次提交的文件并且新开发人员签出了一个干净的副本,那么 subversion 必须获取原始版本(初始导入)并在返回结果之前对其应用 1000 个差异。它是否正确?是否对保存最新版本的文件进行某种缓存?

基本上我在哪里可以找到关于 svn 存储库内部的信息?

更新:显然,颠覆的后端在这方面发挥了重要作用。当时或编写 FSFS 使用选项 1,而 BDB 使用选项 2。感谢 msemack!

0 投票
0 回答
3858 浏览

c# - Berkeley DB:我在这里做错了什么?

我编写了一个小程序来探索将 Berkeley DB 与 C# 结合使用。

它创建一个用作表的数据库和许多辅助数据库作为该表的索引。问题是崩溃并出现以下错误:

在将一定数量的记录写入表后,它总是崩溃。此外,当我增加 nIndexes 的值时,在崩溃之前写入的记录数会下降。如果这些值足够低(例如 nIndexes = 5,nRecords = 50),则程序将顺利完成。这让我觉得我正在用完有限的资源,但我就是看不出问题出在哪里。