问题标签 [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.
python - 为什么使用 py-leveldb 的 WriteBatch 会导致内存泄漏?
因此,我正在编写一个 Python 脚本,用于使用 leveldb 数据库(py-leveldb)按地址索引比特币区块链,并且它会不断消耗越来越多的内存,直到崩溃。我在下面的代码示例中复制了该行为。当我运行代码时,它会继续使用越来越多的内存,直到耗尽我系统上的可用 RAM,并且进程要么被杀死,要么抛出“std::bad_alloc”。
难道我做错了什么?我一直在写入批处理对象,并每隔一段时间提交一次,但是即使我在 WriteBatch 对象中提交数据,内存使用量也会不断增加。我什至在提交后删除了 WriteBatch 对象,所以据我所知,这不可能是导致内存泄漏的原因。
我的代码是以错误的方式使用 WriteBatch 还是 py-leveldb 中存在内存泄漏?
代码需要 py-leveldb 才能运行,从这里获取:https ://pypi.python.org/pypi/leveldb
警告:如果运行时间足够长,运行此代码将耗尽您的内存。不要在关键系统上运行。此外,它会将数据写入与脚本运行所在文件夹相同的文件夹中,在我的系统上,该文件夹在内存耗尽之前包含大约 1.5GB 的数据库文件(最终消耗超过 3GB 的 RAM)。
这是代码:
nosql - 在键值数据库中存储列表
我搜索在键值数据库中存储与键关联的列表的最佳方法(如berkleydb
或leveldb
)
例如:我有用户和用户之间的订单我想为每个用户存储订单 ID 列表,以便通过范围选择快速访问(用于分页)
如何存储这个结构?
我不想为每个用户以可序列化的格式存储它:
因为列表可能很长
我考虑为每个用户使用单独的数据库文件,并将商店订单 ID 作为其中的键,但这并不能解决范围选择问题。如果我想获取具有范围的用户 ID[5000:5050]
怎么办?
我知道,但对诸如orredis
之类的键值实现感兴趣。berkleydb
leveldb
leveldb - leveldb源码中的mutex_.AssertHeld()是什么意思
最近看了leveldb的源码,源码url是https://leveldb.googlecode.com/files/leveldb-1.13.0.tar.gz
当我阅读 db/db_impl.cc 时,会出现以下代码:
我将它跟踪到文件 port/port_posix.h 中,我发现以下内容:
然后我在源目录中 grep,但再也找不到 AssertHeld() 的任何其他实现。所以这是我的问题,mutex_.AssertHeld() 在 db/db_impl.cc 中做了什么?谢谢
node.js - 每次都重新创建级别 DB 数据存储
我是网络应用程序开发的新手,仍在学习基础知识。我正在使用 nodejs 和 level db 开发一个基本应用程序。每次我重新启动我的 Web 应用程序时,都会重新创建 leveldb 数据存储,并且存储在其中的数据都消失了。
我的示例代码如下:
我的理解是,只有在缺少数据库时才会创建数据库。否则将使用现有数据库。就我而言,这没有发生..我做错了什么?
ios - 使用最新的 iOS SDK 构建时的 Xcode 链接问题
我一直在为我的 iOS 应用程序使用Google 的 LevelDB库,我对此非常满意。最近我将整个项目迁移到了最新的 Xcode 5,虽然部署目标仍然是 iOS 6.1,但基础 SDK 现在是 iOS 7。
一切都很好,直到它进入链接阶段,它无法找到所需架构的 leveldb 符号,即使 leveldb 的静态库是使用-isysroot
正确指向 iOS 7 SDK 的选项构建的。它像这样失败:
令人惊讶的是,如果我通过将 leveldb 的静态库指向旧的 iOS 6.1 SDK(为此我必须下载 Xcode 4.6、寻找 SDK 并将其存储在我的机器上的某个位置)来重建 leveldb 的静态库,链接工作正常。
所以,我的问题是,这是预期的行为吗?如果是这样,为什么?是否有可能/我必须改变什么才能不必保留旧版本的 iOS SDK 来构建这个库?
go - level-db golang 实现覆盖现有值?
我正在尝试使用 leveldb-g 实现并遇到一些问题。
这是我的实现(基于此处的另一个答案
和一个测试:
哪个输出:
这就像写第二个属性(“property.different”)覆盖我已经在那里的值。我确定我在做一些愚蠢的事情,任何帮助将不胜感激。
编辑
我在 findOne 函数中添加了一些错误处理(感谢@miltonb),实际上我在那里遇到了一个错误,尽管我不知道该怎么做:
java - 如何在 LevelDB 中存储关联实体列表
假设我有一个实体客户,它有许多实体产品。我正在寻找将这些信息存储在 LevelDB 中的最佳方式。
我曾考虑将这些数据编组到 xml/json 并保存到 LevelDB,但这需要付出努力,而且可能不是一个好方法。你能建议我其他解决方案吗?
leveldb - 如何检查leveldb是否为空
假设您不知道 leveldb 数据库中的确切键。
我尝试插入 3 个键并在键范围上使用 GetApproximateSizes,结果始终为零。
那么如何检查 leveldb 中是否有任何键?
ubuntu - Riak node terminated with I/0 error
My riak nodes are terminating unexpectedly with the following error. This thing started to happen after i made the following change. That's the only change i did.
{riak_kv, [ {storage_backend, riak_kv_eleveldb_backend},
Error in crash.log
2013-11-17 08:51:54 =SUPERVISOR REPORT==== Supervisor: {local,riak_core_sup} Context: child_terminated Reason: {{function_clause,[{riak_kv_vnode,terminate,[{bad_return_value,{stop,{db_open,"IO error: ./data/leveldb/45671926166590716193865151022383844364247891968/MANIFEST-000002: Cannot allocate memory"}}},undefined],[{file,"src/riak_kv_vnode.erl"},{line,838}]},{riak_core_vnode,terminate,3,[{file,"src/riak_core_vnode.erl"},{line,849}]},{gen_fsm,terminate,7,[{file,"gen_fsm.erl"},{line,586}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,227}]}]},{gen_fsm,sync_send_event,[<0.2083.0>,wait_for_init,infinity]}} Offender: [{pid,<0.161.0>},{name,riak_core_vnode_manager},{mfargs,{riak_core_vnode_manager,start_link,[]}},{restart_type,permanent},{shutdown,5000},{child_type,worker}]
I started my riak nodes with the sudo access and nodes working properly after i started. Then after a couple of seconds nodes are terminating unexpectedly with the above error.
Any suggestions to solve this problem will be a great help. Thank You.