Your M0/M2/M5 Atlas cluster(s) will be automatically upgraded to MongoDB 8.0 in November 2024.
What’s in the update?
MongoDB 8.0 delivers unprecedented performance for your workloads compared with previous versions. While precise gains will vary from application to application, industry benchmarks and MongoDB’s internal testing indicate the following improvements vs MongoDB 7.0:
54% faster for bulk writes (Yahoo! Cloud Serving Benchmark, YCSB)
27% faster for reads (YCSB)
25% faster for 95/5 mix of reads & writes (YCSB)
18% faster according to Meta’s social graph benchmark (Linkbench)
60% faster for time series data (Timescale Time Series Benchmark Suite, TSBS)
What do I need to do?
MongoDB version 7.0-compatible drivers will continue to work with MongoDB version 8.0. To take advantage of new server features, upgrade your driver.
MongoDB version 8.0 introduces some compatibility changes. To determine if your workload may be impacted and if changes may be necessary, review the compatibility changes in 8.0.
Note: Most upgrades do not require any application changes. If you are concerned about compatibility, we recommend exploring MongoDB’s Stable API.
Not ready?
Control version upgrades and configure maintenance windows at your convenience when you upgrade to an M10 cluster. In addition to flexibility and control, M10 clusters come with premium features such as:
@storyteller tag the upgrade of the node driver for Meteor 3.1
Checking the driver compatibility, the current version of the node driver (4.17.2) supports MongoDB 7 (except for new features). Therefore, the current version will support MongoDB 8.
In short term we are fine where we are with the driver, but we need to get the driver updated asap. The issue is that in v5 there is a change on response away from callbacks. I just did the first step and we need to discuss there how to best approach the upgrade (there is a compatibility package for the old way, but I don’t think we want to go that route if we can avoid it).
But there’s a catch for people using transactions:
Batch Multi-Document Insert Operations
Starting in MongoDB 8.0, insert operations for multi-document transactions no longer produce individual oplog entries. Instead, multi-document inserts are batched as a single entry. The change stream insert event for each document has the same clusterTime.
This change increases performance of multi-document insert operations and eliminates possible replication lag caused by multiple oplog writes.
So both Meteor and oplogtoredis are affected (i.e., may no longer understand transactions; it’ll require an update in oplog handling if the format has changed (I guess it had to)) while changestream-to-redis is not (i.e., will work without changes).
Just a heads up to @storyteller now that the compatibility table explicitly excluded the current drivers as supporting mongodb 8 even if Atlas said otherwise
We will work on it in the next minor (3.1), which we should start sometime this week or next. I suspect our current driver version would break only some specific scenarios. In any case, v4.17 seems quite old to me and even surprising. Hopefully, there aren’t many accommodations we have to make in the core.
When I looked into this, the issue with v5 of the node driver is that callback have been removed. There is a transitional compatibility package, but that is a stop-gap measure.
We’re not using transactions at aleno, but I can confirm that Meteor 2.5.8 (I know, I know) with changestream-to-redis works just fine with MongoDB 8.0. We already updated our local and test environments (including E2E tests) with no issues whatsoever and plan to switch production soon.
EDIT: No, we’re not using any of the 8.0’s new features – we’re upgrading only for the performance improvements.
With all of the environments (including production) running on MongoDB 8.0 for some time now, I can confirm that the performance has improved a little for our workload:
Extremely heavy analytical aggregations are ~7% faster and use ~21% less CPU.
Average daily CPU usage is ~10% lower.
Average daily RAM usage is ~2% lower but significantly more stable.
Thanks for this info! Are these the impacts on your Mongo instance or the Meteor app? (If the latter, have you seen CPU/RAM usage improvements on the Mongo instance itself as well?)