【发布时间】:2012-11-12 14:25:46
【问题描述】:
我正在结合 riak / riak-js 开发 nodejs 应用程序并遇到以下问题:
运行这个请求
db.mapreduce
.add('logs')
.run();
正确地返回存储在存储桶日志中的所有 155.000 个项目及其 ID:
[ 'logs', '1GXtBX2LvXpcPeeR89IuipRUFmB' ],
[ 'logs', '63vL86NZ96JptsHifW8JDgRjiCv' ],
[ 'logs', 'NfseTamulBjwVOenbeWoMSNRZnr' ],
[ 'logs', 'VzNouzHc7B7bSzvNeI1xoQ5ih8J' ],
[ 'logs', 'UBM1IDcbZkMW4iRWdvo4W7zp6dc' ],
[ 'logs', 'FtNhPxaay4XI9qfh4Cf9LFO1Oai' ],
....
如果我指定一个 map-Funktion 并且只使用存储桶日志中的少数项目
db.mapreduce
.add([['logs', 'SUgJ2fhfgyR2WE87n7IVHyBi4C9'], ['logs', 'EMtywD1UFnsq9rNRuINLzDsHdh2'], ['logs', 'ZXPh5ws8mOdASQFEtLDk8CBRn8t']])
.map( function(v) {return ["asd"]; } )
.run();
一切正常,并返回以下预期输出:
[ 'asd', 'asd', 'asd' ]
如果我现在想要 riak 映射存储桶“日志”中的所有项目(大约 155.000 个小型 json 文档)
db.mapreduce
.add('logs')
.map( function(v) {return ["asd"]; } )
.run();
我只收到错误:
{ [Error: [object Object]] message: '[object Object]', statusCode: 500 }
这里发生了什么?在 Error-Object 中没有写任何有用的东西。
更新: riak-console 多次说以下内容:
[notice] JS call failed: All VMs are busy.
将riaks app.config中的map_js_vm_count增加到36后,消息变成:
[error] Pipe worker startup failed:fitting was gone before startup
【问题讨论】:
标签: javascript database mapreduce riak