That's a really cool technique oggy, I don't think I've heard of anything exactly like it. If you haven't told the TLA+ community about it yet, I'm sure they'd like to learn about your approach, either on the mailing list[1] or at the next TLA+ conference[2] in 2026.
Thank you for the kind words! I haven't really talked about it anywhere yet since it's fresh off the press, I'll definitely post it on the mailing list.
I hope that the "Paxos vs Raft" debate can die down, now that engineers are learning TLA+ and distributed systems more thoroughly. These days we can design new protocols and prove their correctness, instead of always relying on academics. For example, at MongoDB we considered adopting the reconfiguration protocol from Raft, but instead we designed our own and checked it with TLA+. See "Design and Verification of a Logless Dynamic Reconfiguration Protocol in MongoDB Replication" for details: https://arxiv.org/pdf/2102.11960.pdf
"Avoid instant messaging at all costs" is definitely good advice. I usually forget to take three breaths before answering there, but I usually remember before I answer an email. Plus, I have GMail's "undo send" feature enabled so I have a few more secrets to repent before my message cannot be untyped.
MongoDB, Inc. in New York City, Palo Alto, and worldwide. H1B welcome.
We make the open-source document database. Virtually all the software we make is open source. We solve very hard problems using C++, C, Java, Python, and a half-dozen other languages. I'm a Python programmer who's been working here for two years, it's the best gig I've had, and I've had many. Do you like coding, blogging, speaking at conferences, solving problems for customers, contributing to other people's open source projects? See the list of positions and apply here:
Saw you on here last month and popped resumes in for the Technical Consultant and Tech Writer roles; radio silence ever since. Possible that something went wrong?
None, almost certainly -- if you have enough RAM to fit your working data set, then MongoDB's writes are just changing memory. If it does need to read data from disk before changing it, the new yielding architecture that others have mentioned will help prevent lock contention.
One of the reasons DB-level locking is actually quite important is that the replication oplog is on the 'local' database and your data is on other databases -- so your application is no longer fighting with replication for the write lock.
[1] https://groups.google.com/g/tlaplus
[2] https://conf.tlapl.us/home/