子文档$push导致的副本集滞后



我有一个记录我网站内用户旅程的文档。

鼠标移动存储为本文档的子文档。我记录鼠标移动,然后定期使用 $push 附加到子文档数组。从我对Mongo的最初阅读来看,这似乎是一种明智/有效的方法。现在我不太确定。

我最近在我的副本集上遇到了一些问题 - 当我的使用高峰时,辅助数据库与主数据库不同步。查看我的oplog,我注意到有很多$set命令,每个命令都包含用户鼠标移动的整个历史记录,似乎Mongo正在进行此扩展,以便oplog记录可以无能

为力。

相信它与JIRA上的这个问题有关 https://jira.mongodb.org/browse/SERVER-9784

我是否正确解释了这个问题?如果是这样,似乎是一种通过网络传播更改的非常低效的方式。有什么办法可以解决这个问题吗?我将鼠标移动分离成单独的小文档会更好吗?或者我可以通过在子文档数组上使用动态键来解决这个问题(因此避免使用 $push 命令)。

感谢大家的建议。想想我现在已经到了它的底部。

看起来我的问题是一个错误。

在mongoDB中将$each与$push结合使用目前(v2.4.3)在复制方面效率非常低。更新了相关的 Jira 问题以缩小条件范围。

https://jira.mongodb.org/browse/SERVER-9784

最新更新