是否有可能在mongo中获取地图减少进度通知?

时间:2012-08-14 16:41:14

标签: mongodb mapreduce

Mongo中的Map Reduce很慢。这是给定的。所以,我想知道是否有可能收到地图减少进度通知。

感谢。

1 个答案:

答案 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
        }
    ]
}