Meteor 使用oplog尾矿观察大型收集的成本

Meteor 使用oplog尾矿观察大型收集的成本,meteor,Meteor,我有一些大的收集,需要观察以进行更改。在以前的轮询中每隔10秒会将整个集合与内存中的版本进行比较,以确定是否有更改 对于oplog跟踪,这不再是必要的。拥有一个没有任何参数的observe是否仍然很昂贵,或者这是在集合上创建触发器的好方法?当前的Oplog observe驱动程序实现(从Meteor 0.8.1开始)要求所有发布的文档都在内存缓存中。i、 e.如果在一个集合上有3个不同但重叠的观察,则至少一个观察到的每个文档将分别存储在每个观察的缓存中。但是,如果有多个观测具有相同的参数,如选择

我有一些大的收集,需要观察以进行更改。在以前的
轮询中
每隔10秒会将整个集合与内存中的版本进行比较,以确定是否有更改


对于oplog跟踪,这不再是必要的。拥有一个没有任何参数的
observe
是否仍然很昂贵,或者这是在集合上创建触发器的好方法?

当前的Oplog observe驱动程序实现(从Meteor 0.8.1开始)要求所有发布的文档都在内存缓存中。i、 e.如果在一个集合上有3个不同但重叠的观察,则至少一个观察到的每个文档将分别存储在每个观察的缓存中。但是,如果有多个观测具有相同的参数,如选择器、字段投影、排序和限制,它们之间将共享观测驱动程序。

您提到所有“已发布”文档都需要在内存中。如果观察到的文档没有发布怎么办?@DrGorb在Oplog-Observe-Driver(我参与了该驱动程序)“published”一词表示“covered by query”。i、 e.如果您的查询是
find({x:1},{sort:{x:-1},limit:3})
您将“发布”3个文档。您可以通过使用
字段
选项过滤掉不需要的字段来减少消耗的内存。