News for hackers. Stuff that matters.
Re:PostgreSQL 9.4 Released by pmontra on Thursday December 18, 2014 @06:38PM (#8770333)
> Mongo is kind of the worst in this - it clusters in one weird way, has bad tooling, and subtly destroys your data at scale.

I'm genuinely interested. How does Mongo corrupts data? Thanks.

Re:PostgreSQL 9.4 Released by norkakn on Thursday December 18, 2014 @08:07PM (#8770657)
The most infuriating way is that it will roll back its oplog on an election, and sometimes throw away confirmed writes.

Mongos does weird magic as well when it gets confused, and will confirm writes to the wrong shards during "interesting" situations.

Re:PostgreSQL 9.4 Released by pmontra on Friday December 19, 2014 @04:18AM (#8771564)
This is more than worrysome. I googled for it and found this http://docs.mongodb.org/v2.6/core/replica-set-rollbacks/

Is this behaviour what you are referring to?

> A rollback reverts write operations on a former primary when the member rejoins its replica set after a failover. A rollback is necessary only if the primary had accepted write operations that the secondaries had not successfully replicated before the primary stepped down. When the primary rejoins the set as a secondary, it reverts, or “rolls back,” its write operations to maintain database consistency with the other members.

Re:PostgreSQL 9.4 Released by norkakn on Friday December 19, 2014 @06:42PM (#8775199)
Yeah, it's worse than it sounds though. If you write to 2/3 nodes, and the third gets elected, you can roll back majority confirmed writes. I think it did even worse things when near capacity, but those are harder to pin down.
Re:PostgreSQL 9.4 Released by pmontra on Monday December 22, 2014 @05:03AM (#8782592)
So the "majority" write concern is not safe. However it seems that the number of nodes that must confirm a write can be configured http://docs.mongodb.org/manual/core/replica-set-write-concer... From what I read there it seems that if you want to get a confirmation from all the nodes and one gets offline you'll be waiting forever (but there is wtimeout). I'm afraid that any db cluster with any technology has similar problems.