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

mar*_*ark 3 mapreduce mongodb

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

谢谢.

Ser*_*sev 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
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • +1,因为这确实回答了问题. (2认同)