gpt4 book ai didi

mongodb - MongoDB 中 db.currentOp() 输出中的奇怪操作

转载 作者:行者123 更新时间:2023-12-03 08:45:27 26 4
gpt4 key购买 nike

启动我的 MongoDB 服务器(独立实例,版本 4.2.2)后,如果我运行 db.currentOp()我看到这个操作:

    {
"type" : "op",
"host" : "menzo:27017",
"desc" : "waitForMajority",
"active" : true,
"currentOpTime" : "2020-05-06T16:16:33.077+0200",
"opid" : 2,
"op" : "none",
"ns" : "",
"command" : {

},
"numYields" : 0,
"waitingForLatch" : {
"timestamp" : ISODate("2020-05-06T14:02:55.895Z"),
"captureName" : "WaitForMaorityService::_mutex"
},
"locks" : {

},
"waitingForLock" : false,
"lockStats" : {

},
"waitingForFlowControl" : false,
"flowControlStats" : {

}
}

看来这个操作一直都在,不管过去多久。另外,它在某些方面是一个奇怪的操作:

  • 它有一个非常日志opid数量 (2)
  • 这是 op"none"
  • 它没有通常的 secs_runningmicrosecs_running参数
  • 它在某些文字中提到了“多数”,但我运行的不是副本集而是独立实例

我想这应该是某种内部操作(也许是一种“等待线程”?),但我没有在 currentOp command documentation 中找到有关它的文档。 .

有人知道这个操作和/或可以指出描述它的文档吗?提前致谢!

最佳答案

等待多数服务已定义 here 。查看此文件的历史记录,它似乎是作为 improving startup performance 工作的一部分添加的。 .

阅读票证描述,似乎在启动过程中,多个操作可能需要等待多数提交。以前可能每个人都创建了一个单独的线程来等待;对于多数等待服务,只有一个线程正在等待最近所需的提交。

因此:

It's op is "none"

线程未执行操作 as defined in the docs .

It has a very log opid number (2)

这是因为该线程是在服务器启动时启动的。

It mentions "majority" in some literals, but I'm not running a replica set but an standalone instance

可以指示mongod以副本集模式运行并将其指向由独立节点创建的数据目录,反之亦然。在这些情况下,您可能希望进程保留数据库中已有的信息,例如待处理(或需要中止)的事务。因此,启动过程可能执行不直观地属于所请求的操作模式的操作。

关于mongodb - MongoDB 中 db.currentOp() 输出中的奇怪操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61637710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com