gpt4 book ai didi

MongoDB oplog 包含许多 Noops

转载 作者:行者123 更新时间:2023-12-03 23:09:59 25 4
gpt4 key购买 nike

我正在尝试改进我的 MongoDB 服务器的 oplog,因为现在它覆盖的时间比我想要的要少(我现在不打算增加 oplog 文件的大小)。我发现oplog集合中有很多noops记录-{“op”:“n”}+“o”上的整个文档。它们可能占用物理 oplog 大小的大约 20%-30%。

我怎么能找到原因,因为它似乎不太好?

我们使用的是 MongoDB 3.6 + NodeJS 10 + Mongoose

附言它出现在许多不同的集合和用例中,因此很难理解所有这些项目背后的应用程序逻辑是什么。

最佳答案

为了支持 Max Staleness specification,在 MongoDB 3.4+ 副本集中需要无操作写入。这有助于应用程序避免从陈旧的辅助设备中读取数据,并提供更准确的复制延迟度量。这些无操作写入仅在主节点空闲时发生。空闲写入间隔当前不可配置(如 MongoDB 4.2)。

Max Staleness 规范包括一个示例场景和更详细的理由说明为什么 Primary must write periodic no-ops以及其他设计决策。

设计原理的相关摘录:

An idle primary must execute a no-op every 10 seconds (idleWritePeriodMS) to keep secondaries' lastWriteDate values close to the primary's clock. The no-op also keeps opTimes close to the primary's, which helps mongos choose an up-to-date secondary to read from in a CSRS.

Monitoring software like MongoDB Cloud Manager that charts replication lag will also benefit when spurious lag spikes are solved.

关于MongoDB oplog 包含许多 Noops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59269111/

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