> "... making it the only database to combine the speed, flexibility, and power of the document model with ACID guarantees."<p>PostgreSQL with JSONB columns seems to have beat them to the race by quite a wide margin. MySQL too, for that matter.
Following through the blog to the actual docs: <a href="https://docs.mongodb.com/master/release-notes/4.0/" rel="nofollow">https://docs.mongodb.com/master/release-notes/4.0/</a><p>> By default, multi-document transactions wait 5 milliseconds to acquire locks required by the operations in the transaction. If the transaction cannot acquire its required locks with the 5 milliseconds, the transaction aborts.<p>Automatic cancellation rather than actual deadlock detection is going to be one hell of a footgun.<p>I'd argue this is a double barreled footgun as most usage of MongoDB is from garbage collected languages. One wrongly time GC and your transaction is dead.
MongoDB represents to me a very good way to build a product. There has always been so much derisive criticism about MongoDB opting to prioritize convenience of customer workflows above all else, and to go back and add best practices, basic data safety, etc., on a piecemeal basis after the fact. Customers are surprisingly willing to put up with problems as long as usability and user experience is high, and they will wait for other features. Meanwhile, plenty of other database projects may start out with a more deliberate focus on classical database safety and guarantees, yet hardly build any customer base.<p>Even though I may like e.g. Postgres features more, there is still something to be respected about how MongoDB has operated, and the constant vitriol about their chosen priorities has always sounded hollow to me, even accounting for stories about data loss, etc.<p>Incidentally, I once had the chance to tour the MongoDB office near Times Square, and boy, I can tell you it is not an office environment for me. Extremely loud, and they even have things like scooter parking slots and signs for “scooter etiquette” for rolling around the office on a scooter.<p>I’m not sure how they are able to focus on any engineering work, but kudos to them for finding a way.
This seems great, but I think until 4.2 they don't plan to have global point-in-time consistency - just per replica set. I wonder how this affects ACID semantics?<p>Also: This is going to be really nice, but I sure hope a major cloud provider starts providing a managed service. It's very nice having a managed service like Amazon RDS or Google Cloud SQL.
Good bye MMAPv1. I like the changes about the date formatting and type conversions. In my current project I shortly had values store both as bigdecimal and float until I moved the calculations app-wards into Ruby.
Is there really anything Mongo does, that actually makes it worth choosing over postgres or even mysql w/ jsonb?<p>I mean, I think if I needed to think beyond sql, a graph db like arango or neo might make more sense...
This comes at a perfect time for me, because I've been working on an application running on MongoDB and although I can get away without transactions, they would help significantly.