Articles of leveldb

leveldb打开错误:IO错误locking./db/LOCK:已被进程占用

我是一个创buildleveldb的初学者,并不知道这里发生了什么。 我的db.js文件有一个造成locking错误的问题。 我想我只有一个过程,但它告诉我,我正在做一些我不明白的多进程。 有一个f.database函数来解决这个问题吗? // db.js var levelDb = require('level'); var dbPath = './db'; var options = { //keyEncoding: 'binary', valueEncoding: 'json' }; function puts(msg) { if(typeof msg === 'object') { msg = JSON.stringify(msg); } process.stdout.write(msg + '\n'); } puts('open db'); var db = levelDb(dbPath, options); module.exports = db;

Ubuntu下的节点leveldown:需求上的未定义符号错误

我有节点v0.11.9在Ubuntu 12.04精确安装nvm和leveldown@0.10.2(编译没有警告),但是当我尝试加载leveldown时,我得到以下错误: $ node > require ('leveldown') Error: /home/direvius/learn/leveldb/node_modules/leveldown/build/Release/leveldown.node: undefined symbol: _ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12) at Module.require (module.js:357:17) at require (module.js:373:17) at bindings (/home/direvius/learn/leveldb/node_modules/leveldown/node_modules/bindings/bindings.js:76:44) at Object.<anonymous> (/home/direvius/learn/leveldb/node_modules/leveldown/index.js:1:99) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12)

将leveldb数据库传输到浏览器

我正在构build一个使用leveldb将客户数据存储在(node.js)服务器端的应用程序。 当客户访问该网站时,为了性能原因,我想将一大堆数据发送到浏览器。 由于leveldb在浏览器中运行,通过level-js,我想我只是在服务器上为客户创build一个SubLevel ,把它写到磁盘上,然后作为一个文件发送给客户。 我还没有findpipe理这个过程的任何软件包,或任何有关最佳实践的讨论。 是否有更好的方法来同步leveldb和level-js实例之间的数据?

levelDB仍然损坏数据?

我正在写一个小型的NodeJS应用程序,我需要某种数据库。 LevelDB( LevelUP )和NeDB接缝是最stream行的,所以select… 据维基百科2016年11月18日 ,LevelDB经常破坏数据。 LevelDB被认为是不可靠的,而且它所pipe理的数据库容易腐败。[13] [14] [15] [16] [17] [18] [19] [20] 对以前版本的LevelDB进行的学术研究[21,22]发现,在某些文件系统下,存储在这些版本的LevelDB中的数据在系统崩溃或电源故障后可能会变得不一致。 LevelDB腐败非常普遍,腐败检测必须内置到使用它的应用程序中。 题 这是从过去的事情,不再是一个问题了吗?

levelup:get()需要键和callback参数 – 没有Promise?

levelup文档声称get() , put()等将返回一个Promise如果调用没有callback: https : //github.com/Level/levelup#promises 我有以下代码: db.get(gameName).then(JSON.parse).then( 但我的then()函数永远不会被调用。 该代码运行时不会崩溃,但在控制台中收到以下消息: get() requires key and callback arguments 我错过了什么吗? 也许依赖? 我愿意把get()和put()放在我自己的Promise中,但是如果它已经存在,重写这样的function似乎很愚蠢。

数据库连接完成后呈现 – Nodejs LevelDB

我是Nodejs,Express和Leveldb的新手。 我使用级别创build数据库,并希望传递参数。 exports.index = function(req, res) { var models_array = []; db.models.createValueStream() .on('data', function (data) { console.log(data.name); models_array.push(data.name); console.log(models_array); // 1st }); console.log(models_array); //2nd res.render('home', { title: 'Home', models:models_array }); }; 这是我的代码,但第二个console.log(models_array)返回null,因为它们是asynchronous运行。 即使第一个console.log正在返回我所期望的。 如何使这个工作正常? 这样我可以将适当的数据传递给模板。

无法find有效的方法倾销leveldb平面文件(S)

我使用LevelDB作为本地进程的一部分,当完成时,它拥有大约10-100万个JSON条目。 我需要将这些文件转换为可移植的格式,最好是将一个或多个csv(甚至是行分隔的json)文件导入到一个单独的mongodb系统中。 我在node.js中做了一个快速testing,将数据库内容传输到一个文件(使用node-levelup) ,在我的机器上花费了大约18.5分钟,处理1000万对,看起来很慢。 寻找leveldb快速转储/导出的build议。 我已经考虑使用mongodb作为本地处理的存储,因为mongoexport更快,但是在安装过程中会有更多的开销,因为我需要几个分片来获得更多的写入速度。

使用search索引进行过滤

我想实现* .epub-Files的全文search。 所以我分出了epub-full-text-search模块( https://github.com/friedolinfoerder/epub-full-text-search )。 我会有很多电子书进行search,所以我想有一种方法,只能在一个特定的电子书search一次。 我怎么能用search-index来做到这一点。 我编写了一个解决scheme,允许在字段中search文件名 (epub的唯一文件名)和正文 (章节的内容),但是这并不认为这是正确的方式来做到这一点,性能也不理想。 以下是我如何使用search-index进行search的一个示例: searchIndex.search({ query: [{ AND: [ {body: ['epub']}, {filename: ['accessible_epub_3']} ] }] }); 有一个更好的方法吗。 也许有桶,类别和filter? 谢谢你的帮助!

在Windows / Node 0.8下工作的Node.js的键值存储

我正在开发一个需要快速,embedded式和持久性键值存储(如LevelDB)的项目,但开发环境仅限于Windows 7 / Node 0.8。 我的自然反应是尝试find一个LevelDB绑定,但是LevelUP / my8bird的leveldb根本不能在Windows下编译,LevelDOWN只能用于Node.js> 0.10。 有任何想法吗? 它不必是LevelDB,只要是具有持久性和合理的崩溃容忍度的embedded式(无服务器)键值存储,就可以在该环境下使用Node.js绑定。

如何使用Node.js创buildmultithreading应用程序,访问LevelDB?

在LevelUP文档中有这个( https://github.com/rvagg/node-levelup#multi-process-access ): LevelDB是线程安全的,但不适合用多进程访问。 您应该只能从单个Node.js进程打开一个LevelDB数据库。 Node.js集群由多个进程组成,因此LevelUP实例不能在它们之间共享。 所以我不能使用Node Cluster( http://nodejs.org/api/cluster.html ) 是否有另一个选项可以使多进程(或multithreading)Node.js应用程序访问LevelDB数据库?