我们在与mongodb副本集和复制延迟相关的生产环境中遇到了奇怪的行为。
基本上,我们安装了一个mongodb副本集和一个写入副本集的主节点的应用程序。有时应用程序可能会变得写得很密集(这不是完全可以预测的,而且与用户负载相关,用户负载可能会不时变化)。我们有一个分布在两个数据中心上的六节点副本集。
一切都很好,直到新版本的应用程序已经改变了数据写入数据库的模式。
应用程序的两个版本之间的主要区别是后者对DROP集合命令进行密集使用(数据被写入临时集合),然后重命名临时集合,如果存在同名的集合,则删除这样的集合。这是通过
this mongodb instruction
通过将选项dropTarget设置为true)
.
我们现在遇到的症状是,一些辅助节点在复制延迟中呈现随机峰值。从日志来看,峰值似乎与drop collection命令有关,但我们无法重现
在我们的测试环境中有相同的行为,我们不能确定应用程序的更改是复制延迟增加的根本原因。
从mongodb官方文档来看,drop collection命令和复制延迟增加之间似乎没有一个清晰且有良好文档记录的关联。
有没有人已经经历过同样的问题?