标签: mongodb-oplog

为什么观察oplog在meteor/mongo中需要这么多时间?

我有一个MongoLab集群,它允许我使用Oplog拖尾来改善我的Meteor.js应用程序的性能,可用性和冗余.

问题是:自从我使用它以来,我的所有出版物都需要更多的时间来完成.当它只需要200ms时,这不是问题,但它通常需要更多,就像在这里,我订阅我在这里描述的出版物.

这个出版物的响应时间已经太长了,而且oplog观察也在减慢它的速度,尽管它远远不是观察oplog花费那么多时间的唯一出版物.

谁能向我解释发生了什么?我在网上搜索的任何地方都找不到为什么观察oplog会减慢我的出版物的任何解释.

以下是Kadira的一些截图,用于说明我在说什么:

你可以看到oplog观察需要花费很多时间

这是另一个pub/sub的截图:

在此输入图像描述

最后,观察oplog需要一段合理的时间(但仍然会减慢我的pub/sub):

在此输入图像描述

javascript mongodb meteor mongodb-oplog

8
推荐指数
1
解决办法
504
查看次数

多路复用器,observeChanges持续时间和OplogTailingin mongo/meteor

我正在使用Meteor.js开发应用程序.为此,我确实有一个用于oplog拖尾的mongo实例集群.另外,我正在使用Kadira来追踪我的应用程序性能.

因为我启用了oplog拖尾,所以我的很多pub/sub都比以前慢.我看到的是,当oplog"query"将其"wasMultiplexerReady"属性设置为false时,速度会慢一些,这就是我在Kadira上看到的大多数observeChanges的情况.

问题是网上绝对没有任何关于它的东西.我一直在寻找关于它的任何资源以及它是如何工作的,但是没有任何文章.

可以给我一些关于这里发生了什么的暗示/解释吗?就像这个属性"wasMultiplexerReady"一样,它是如何使用的,如何减少oplog尾部计算时间等...

在此输入图像描述

谢谢.

javascript mongodb meteor kadira mongodb-oplog

6
推荐指数
1
解决办法
191
查看次数

MongoDB:如何获取集合中最新文档的最新时间戳

是否有一个简单的或优雅的方法(或我可以写的查询)来检索集合中(最后更新的文档的)最后更新的时间戳。我可以编写这样的查询来查找最后插入的文档

db.collection.find().limit(1).sort({$natural:-1})
Run Code Online (Sandbox Code Playgroud)

但我需要有关最新更新文档的信息(可以是插入内容或更新内容)。

我知道一种方法是从集合中查询oplog集合中的最后一条记录。但是考虑到oplog的大小可能非常大(似乎也不可靠,因为它是一个受限制的集合),这似乎是一项昂贵的操作。有一个更好的方法吗?

谢谢!

mongodb mongodb-query mongodb-oplog

5
推荐指数
3
解决办法
1万
查看次数

MongoDB 更改流:我可以在更新/删除之前获取值吗?

更新操作上的更改流事件仅返回更改的文档,与 oplog 相同。我可以在更新之前获取文档(或一些更新的值)吗?

MySQL 基于行的 binlog 可以使用完整的binlog_row_image 来完成此操作。

mongodb mysqlbinlog mongodb-oplog changestream

4
推荐指数
1
解决办法
2714
查看次数