🚀 Meteor 3.5 (RC Available): Change Streams & Performance improvements

I opened an issue with production evidence from our 3.5-rc.1 rollout:

Short version: after moving to 3.5-rc.1, we saw a significant method/publication latency regression in production. Pinning Mongo reactivity back to ["oplog", "polling"] and restoring MONGO_OPLOG_URL brought latency back to normal. The issue includes Monti APM before/after data, MongoDB currentOp/profiler evidence, and our follow-up investigation plan.

cc @italojs @nachocodoner

3 Likes

Another one that could be helpful to check if you are testing Change Streams with MONGO_OPLOG_URL still present: Meteor 3.5-rc.1: Change Streams did not appear to activate until MONGO_OPLOG_URL was removed · Issue #14454 · meteor/meteor · GitHub

3 Likes

A public reproduction repo is now available at quavedev/meteor-changestream-fanout-repro. It reproduces the Change Streams fanout shape with many distinct publication selectors observing the same hot collection.

cc @nachocodoner @italojs

1 Like

My 2 cents in the issue Meteor 3.5-rc.1 Change Streams caused production method/pub latency regression; pinning to oplog/polling restored normal performance · Issue #14453 · meteor/meteor · GitHub
(Doens’t see your repro app @filipenevola before posting mine but nvm :+1: )

2 Likes

DX comment: it would be nice to be able to simply use oplog instead of CS in development (and CS in production). I already run multiple local MongoDB servers for multiple projects and doing replica sets would be a nightmare.

1 Like

Has anyone managed to deploy 3.5 with MUP?!

Oplog requires a replicatset too, if you run a standalone mongo intance locally, it should to try use CS → fallback to oplog → fallback to pooling
isnt it hapenning for you?

I haven’t set this and when I started my project I got a lot of errors related to the replica set in the server console and my M5 Macbook Pro started to ventilate like crazy.