问题标签 [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 投票
3 回答
1330 浏览

binary - 为什么 leveldb DB::Get API 使用 std::string 作为值类型?

我想在 leveldb 中存储键(url)和值(jpg 图像)。据说,

键和值是任意字节数组。

如何使用 DB::Get API?

0 投票
3 回答
4213 浏览

leveldb - 为什么 LevelDB 需要两个以上的级别?

我认为只有两个级别(级别 0 和级别 1)是可以的,为什么 LevelDB 需要级别 2、级别 3 等等?

0 投票
2 回答
1420 浏览

leveldb - Java的Leveldb:迭代时删除

我正在运行这个测试:

我期望密钥将从队列中删除,但在控制台中似乎只有一个相同的密钥被删除:

我是否错误地使用了 API?

0 投票
3 回答
767 浏览

node.js - 适用于 Windows/Node 0.8 的 Node.js 键值存储

我正在开发一个需要快速、嵌入式和持久键值存储(如 LevelDB)的项目,但开发环境仅限于 Windows 7 / Node 0.8。我的自然反应是尝试找到一个 LevelDB 绑定,但 LevelUP / my8bird 的 leveldb 在 Windows 下根本无法编译,而 LevelDOWN 仅适用于 Node.js > 0.10。

有任何想法吗?它不必LevelDB——只要是任何具有持久性和合理的崩溃容错的嵌入式(无服务器)键值存储,并且具有可以在该环境下工作的 Node.js 绑定。

0 投票
3 回答
1151 浏览

nosql - leveldb/Cassandra 的布隆过滤器是否有助于范围查询?

我知道 leveldb/cassandra 将他们的记录存储在 SSTable 中,并使用布隆过滤器在执行精确键查询时选择 SSTable,他们的布隆过滤器是否有助于键范围查询?

0 投票
2 回答
133 浏览

c++ - LevelDB:比较器、block_cache 和 filter_policy 的生命周期和责任?

关闭数据库后是否需要删除比较器、block_cache 和 filter_policy?它们是否需要在数据库的生命周期中存在?

我在任何文档中都找不到此信息。

通过查看源代码,我猜我需要在关闭数据库后删除它们,但它们需要在它打开的生命周期内持续存在。

谢谢

0 投票
3 回答
3255 浏览

leveldb - LevelDB:按插入顺序迭代键

在 LevelDB 中生成自动递增键的好策略是什么?我的目标是能够按照插入的顺序遍历键。

0 投票
2 回答
1419 浏览

c++ - 为什么在类声明中使用宏

我正在阅读 leveldb 的源代码,尤其是。关于互斥锁。

我发现了这个声明:

我发现它SCOPED_LOCKABLE被定义为空,那么为什么在类声明中使用它呢?

0 投票
3 回答
1272 浏览

c++ - LevelDB 随机读取——为什么官方基准这么好?

根据这个官方基准,它在随机读取时执行 129,000 ops/sec。但据我所知,随机读取至少需要对磁盘进行一次随机访问(缓存对随机读取没有帮助,因为整个数据库比缓存大得多),一个随机访问磁盘需要大约 10ms 的磁盘寻找时间。这应该使随机读取速度低于 100 ops/sec。

我在我的慢速机器上用 100,000,000 个 MD5 字符串做了一个简单的测试。随机写入执行大约 50,000 ops/sec(与官方基准不远),随机读取执行大约 20 ops/sec。

问题是:为什么leveldb的官方benchmark能拿到这么高的成绩?我没有看到对基准代码的特殊优化,并且基准不使用 SSD 磁盘之类的东西。

0 投票
1 回答
2287 浏览

c++ - LevelDB:IO错误:XXX.sst:打开的文件太多

我在具有 5 个数据库的应用程序中使用 LevelDB。每个数据库都使用选项打开max_open_files = 64

ulimit -Sn显示操作系统有 1024 个文件的限制。将限制设置为 2048 可以解决问题。因为我将这个应用程序分发给人们,所以它应该具有开箱即用的默认设置,而不需要人们配置他们的操作系统。

我收到很多这些错误,根本无法阅读。

在一个名为的子目录中有 5 个数据库database

我想为每个 .sst 文件更改 LevelDB 内的 2 MB 限制,但它似乎无法调整,我只在 Google 上看到了这个补丁:https ://github.com/basho/leveldb/pull/7

我正在使用 Ubuntu 13.04 64 位。

这是我用于打开数据库的代码。如果我open_options.max_open_files在调用 之前leveldb::DB::Open()显示 ,它会显示 64 (如预期的那样)。

即使我设置max_open_files = 20了我仍然遇到同样的问题。