News for hackers. Stuff that matters.
Re:MongoDB gets support for multi-document ACID transactions by andy_ppp on Thursday February 15, 2018 @10:30AM (#16384786)
I agree here, but I’d go further; build things people want, not the idealistic future some day version where we eventually get to a priority feature for a lot of people like releasing fast scalable software quickly (I’m not saying Rethink didn’t do this but they prioritised correctness and sharding, features fewer people need). For most apps built with Mongo this transaction support isn’t a problem (until it is).
Re:MongoDB gets support for multi-document ACID transactions by nathan_long on Thursday February 15, 2018 @10:46AM (#16384909)
Both approaches have downsides.

The TCP/IP stack was built and used while the OSI model was being designed, and it won all the mindshare. Perhaps it would have been better to have separate presentation and session layers, but we don't; the application layer handles that stuff. It works well enough.

OTOH, this quote is wise:

> It is easier to optimize correct code than to correct optimized code (Bill Harlan)

I think this is doubly true for databases; at least with obfuscated code, you can recover the underlying meaning with work and exploration.

Losing or corrupting data is the worst thing a database can do. Given "this will be correct and hopefully we can scale it" vs "this will be fast and hopefully we can keep it correct", I'd choose the former for any "source of truth" data every time.

There are tricks for speeding up queries - indexes, cacheing (including materialized views), sharding, read replicas, etc.

There are no tricks for recovering data you lost.

Re:MongoDB gets support for multi-document ACID transactions by andy_ppp on Thursday February 15, 2018 @10:57AM (#16384989)
> I think this is doubly true for databases; at least with obfuscated code, you can recover the underlying meaning with work and exploration.

True for databases, but not true for businesses.

> Losing or corrupting data is the worst thing a database can do.

Clearly people building simple crud websites with slick JS features didn’t agree otherwise Mongo would be gone and Rethink would be worth hundreds of millions of dollars.

Re:MongoDB gets support for multi-document ACID transactions by crdoconnor on Thursday February 15, 2018 @11:15AM (#16385154)
>Clearly people building simple crud websites with slick JS features didn’t agree

I doubt it's that they didn't agree, it's more likely that the thought simply never occurred to them.

Mongo's marketing is directed with laser like focus on the beginner developer seeking out tutorials to build a website, etc. Questions about data consistency simply never arise in that context.

Later on that developer who was gently guided towards using mongo by all of the slick marketing will likely try to defend their decision when somebody attacks it ("their data consistency problems aren't that bad" or "data consistency isn't that important"), but that's something else.

Re:MongoDB gets support for multi-document ACID transactions by gameswithgo on Thursday February 15, 2018 @11:17AM (#16385168)
>Clearly people building simple crud websites with slick JS features didn’t agree otherwise Mongo would be gone

Popularity is not always a good measure of what ideas are good ones.

Re:MongoDB gets support for multi-document ACID transactions by makmanalp on Thursday February 15, 2018 @11:28AM (#16385252)
> build things people want, not the idealistic future some day version where we eventually get to a priority feature

FWIW, I don't think this was what happened. RethinkDB started out as an SSD optimized database, and quickly repositioned itself (due to "is this what people want") to something more generally useful, and was one of the most feature-rich databases at the time, I thought.

MongoDB however got first mover advantage and a bunch of cash that comes with it. They could afford to invest heavily in developer evangelism. Then they bought WiredTiger. If I sound bitter, I am a bit - not that Mongo did well in the end, but that RethinkDB went the way it did.