Mongo中的Map Reduce很慢。这是给定的。所以,我想知道是否有可能收到地图减少进度通知。
感谢。
答案 0 :(得分:9)
我不知道任何内置功能。但是,您可以在一个单独的脚本中偶尔运行db.currentOp()
,阅读map-reduce进度并通知相关方。
这是我能看到的一个例子:
> db.currentOp()
{
"inprog" : [
{
"opid" : 249198781,
"active" : true,
"lockType" : "read",
"waitingForLock" : false,
"secs_running" : 14,
"op" : "query",
"ns" : "mydb.mycoll",
"query" : {
"mapreduce" : "mycoll",
"map" : function cf__9__f_() {
emit(this.aid, 1);
},
"reduce" : function cf__10__f_(k, vals) {
var result = 0;
vals.forEach(function (v) {result += v;});
return result;
},
"out" : {
"inline" : 1
}
},
"client" : "127.0.0.1:44254",
"desc" : "conn",
"threadId" : "0x7e98f24e4700",
"connectionId" : 1958947,
"msg" : "m/r: (1/3) emit phase 644165/7670157 8%",
"progress" : {
"done" : 644165,
"total" : 7670157
},
"numYields" : 644
}
]
}