问题标签 [leveldb]

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 回答
1723 浏览

java - leveldbjni IO 错误 LOCK: 没有这样的文件或目录

我们正在尝试在 redhat 机器上使用 leveldbjni。它在 ubuntu 上完美运行。但是在redhat上它给出了以下错误:

org.fusesource.leveldbjni.internal.NativeDB$DBException:IO 错误:<文件位置>/LOCK:没有这样的文件或目录

我们尝试在 redhat 上创建 leveldb C++ 库(使用https://github.com/fusesource/leveldbjni上的说明),但仍然遇到同样的问题。

0 投票
5 回答
5413 浏览

activemq - 有人使用 LevelDB 存储进行 ActiveMQ 消息持久化吗?

目前我们正在使用 KahaDB 存储在 ActiveMQ 中进行消息持久性,到目前为止效果很好。
根据 ActiveMQ5.6 的发行说明,LevelDB提供增强的性能。
有没有人试过usign LevelDB,如果是的话,你能提供利弊吗?

0 投票
2 回答
4612 浏览

key-value-store - 如何在单级数据库实例中创建多个逻辑表?

我正在开发一个分布式键值系统(或数据存储),它在后端使用levelDB作为其嵌入式数据库库。

我希望一台节点/机器托管多个表(出于复制和负载平衡的目的)。我知道 levelDB 没有表的概念,所以我不能以表的形式对我的数据进行逻辑分区(因此不能将这些表用作我的基本分布单位)。

我的问题是:是否有规定在 levelDB 的单个实例中拥有多个“逻辑表”?

据我所知,我可以在我的节点上运行多个 levelDB 实例,每个实例处理一个表。但我不想这样做,因为在这种情况下,当同时访问这些多个数据库实例时,会出现严重的争用(我相信在磁盘上)。虽然在单个 DB 实例中拥有多个逻辑表可以为我提供 levelDB 优化的优势,以最大限度地减少磁盘访问。

0 投票
3 回答
3511 浏览

go - leveldb-go 示例,文档

LevelDB-Go是 Go 语言中 LevelDB 的移植。LevelDB-Go 通常被称为 Go 应用程序的原生替代方案。网站没有示例,也没有文档。

我应该通过阅读源代码来学习它吗?或者有另一个网站有示例和文档?

库是否支持并发?

0 投票
1 回答
3755 浏览

c - mmap 返回不能分配内存,即使有足够的内存

我正在使用 leveldb 进行压力测试。

util/env_poisx.cc : NewRandomAccessFile()

在插入 300 万个数据(每个 100k)之后。errno 说Cannot allocate memory

为什么?

更多细节:

最佳:

免费-m:

ulimit -a:

系统控制:

0 投票
3 回答
4444 浏览

database - LevelDB 是否支持热备份(或等效)?

目前,我们正在评估几个键+值数据存储,以替换 owr 主应用程序当前正在使用的较旧的 isam(20 多年!)...

问题是我们当前的 isam 不支持崩溃恢复。

所以 LevelDB 对我们来说似乎没问题(也检查 BerkleyDB 等)

但是我们遇到了热备份的问题,而且,鉴于 LevelDB 是一个库,而不是服务器,要求“热备份”很奇怪,因为它直观地暗示了一个外部备份过程。

也许有人想提出选择(或已知的解决方案)?

例如: - 通过主应用程序的内线程进行热备份?- 仅通过复制 LevelDB 数据目录进行热备份?

提前致谢

0 投票
1 回答
1244 浏览

database - LevelDB 的替代方案,允许您读取数据记录的一部分

我喜欢 LevelDB 作为我的应用程序数据库的外观,但有一个问题。

我想将数据存储到数据库中,但是当我读取数据时,有时我只需要数据的特定部分。以及leveldb_get(db, readOptions, key, keySize, &size, &err)我想要类似leveldb_get_subsection(db, readOptions, key, keySize, offset, size, &err)但不存在的东西。

当然,我可以将数据索引到更小的部分,但我想知道是否有一个很好的替代 LevelDB 的方法,它允许我读取更有意义的记录/值的子部分。有什么建议吗?

我需要安全同步到磁盘的原子操作,因为数据完整性很重要。我还需要一个C接口。

谢谢。

0 投票
2 回答
930 浏览

python - 检查大量字符串是否存在的有效方法

我有一组 100+ 百万个字符串,每个最多 63 个字符。我有很多磁盘空间和很少的内存(512 MB)。我需要单独查询存在,并且不存储其他元数据。

我事实上的解决方案是 BDB btree。有没有更好的选择?我知道 leveldb 和京都内阁,但不够熟悉以确定优势。

0 投票
2 回答
7024 浏览

database - 如何快速获取 leveldb 中的确切键数?

好像没有这个界面。。

我是否必须迭代所有键才能获得计数?

这样做的设计目的是什么?或者实现此功能的限制是什么?

0 投票
3 回答
1199 浏览

indexing - 使用键值数据库作为具有持久索引的集合

由于以下内容有点长:这是 tl;dr; 版本:是否存在用于快速键值查找的键/值最佳实践,例如具有持久索引的基于哈希的集合?

我对键值数据库的世界很感兴趣,但到目前为止还没有弄清楚如何有效地实现以下用例:

假设我们想要序列化一些数据并通过一个持久的、唯一的整数索引在其他地方引用它们。因此例如:Key = unsigned int,Value = MyData。

数据库应具有快速键查找并确保 MyData 是唯一的。

现在,当我在我的数据库中插入一个新值时,我可以为其分配一个新的索引键,例如数据库的当前大小或防止删除项目后发生冲突,我可以在外部保留一些计数器。

但是我如何确保我不会将相同的 MyData 值插入到我的数据库中?到目前为止,在我看来,键值数据库似乎无法有效地实现这一点 - 这是正确的吗?即我不想迭代整个数据库只是为了确保 MyData 值不在那里......

那么,实现这一点的最佳做法是什么?

背景:我在 KDevelop 上工作,我们使用上面的代码分析缓存。我们实际上有上述用例1的自定义实现。如果您对内部结构感兴趣,请搜索 Bucket 和 ItemRepository,有关 ItemRepository 的示例性用法,请参见2

但是您可能会同意,这段代码很难理解,因此也很难维护。我想将其性能与可能导致代码更简单的替代解决方案进行比较——但前提是它不会导致严重的性能损失。考虑到围绕 OpenLDAP MDB、Kyoto Cabinet 和 LevelDB 等键值存储性能的炒作,这就是我想开始的地方。

我们在 KDevelop 中所拥有的——据我所知——基本上是一种混合的磁盘/内存哈希映射,它会定期保存到磁盘(这当然会在崩溃等情况下导致重大数据损坏)。 )。项目根据它们的散列值存储在一个位置,只要散列函数速度快,这当然也允许相对快速的值查找。增加的转折是您还可以获得某种持久性数据库索引,可用于非常有效地查找项目。

所以——长话短说——如何用一个键/值数据库来做到这一点,比如 LevelDB、Kyoto Cabinet、OpenLDAP MDB——你说的吗?