by anarchyrucks on 5/23/20, 6:33 PM with 399 comments
by madhadron on 5/23/20, 7:44 PM
I had the misfortune to use MongoDB at a previous job. The replication protocol wasn't atomic. You would find partial records that were never fixed in replicas. They claimed they fixed that in several releases, but never did. The right answer turned out to be to abandon MongoDB.
by naked-ferret on 5/23/20, 6:49 PM
"""
Curiously, MongoDB omitted any mention of these findings in their MongoDB and Jepsen page. Instead, that page discusses only passing results, makes no mention of read or write concern, buries the actual report in a footnote, and goes on to claim:
> MongoDB offers among the strongest data consistency, correctness, and safety guarantees of any database available today.
We encourage MongoDB to report Jepsen findings in context: while MongoDB did appear to offer per-document linearizability and causal consistency with the strongest settings, it also failed to offer those properties in most configurations.
"""
This is a really professional to tell someone to stop their nonsense.
by thomascgalvin on 5/23/20, 8:38 PM
* Mongo: I like things easy, even if easy is dangerous. I probably write Javascript exclusively
* MySQL: I don't like to rock the boat, and MySQL is available everywhere
* PostgreSQL: I'm not afraid of the command line
* H2: My company can't afford a database admin, so I embedded the database in our application (I have actually done this)
* SQLite: I'm either using SQLite as my app's file format, writing a smartphone app, or about to realize the difference between load-in-test and load-in-production
* RabbitMQ: I don't know what a database is
* Redis: I got tired of optimizing SQL queries
* Oracle: I'm being paid to sell you Oracle
by dang on 5/24/20, 12:55 AM
Edit: never mind, I think the other URL - http://jepsen.io/analyses/mongodb-4.2.6 - deserves a more technical thread, so will invite aphyr to repost it instead. It had a thread already (https://news.ycombinator.com/item?id=23191439) but despite getting a lot of upvotes, failed to make the front page (http://hnrankings.info/23191439/). I have no idea why—there were no moderation or other penalties on it. Sometimes HN's software produces weird effects as the firehose of content tries to make it through the tiny aperture of the frontpage.
by VonGuard on 5/24/20, 1:38 AM
I'd pay to watch Kyle screaming at people in the MongoDB offices, not that he screams or anything. Just a spectacular mental image: "IT'S NOT ATOMIC! IT COULDN'T SERIALIZE A DOG'S DINNER!"
by ncmncm on 5/23/20, 8:24 PM
The stock market wants to see the product as a competitor with Oracle, so demands all the certifications that say so. MongoDB marketing wants to be able to collect money as if the product were competitive. Many of the customers have management that would be embarrassed to spend that kind of money on a database that is not. And, ultimately, many of the applications do have durability requirements for some of the data.
So, MongoDB's engineers are pulled in one direction by actual (paying) users, and the opposite direction by the money people. It's not a good place to be. They have very competent engineers, but they have set themselves a problem that might not be solvable under their constraints, and that they might not be able to prove they have solved, if they did. Time spent on it does not address what most customers want to see progress on.
by jedberg on 5/23/20, 7:56 PM
People have told me that they have since changed, but the evidence is overwhelmingly and repeatedly against them.
They seem to have been successful on marketing alone. Or people care more about speed and ease of use than durability, and my assumptions about what people want in a database are just wrong.
by speedgoose on 5/23/20, 6:45 PM
by erulabs on 5/24/20, 1:24 AM
I absolutely agree it's been used by people who just don't want to write SQL queries, or being used as a text-search-engine in place of something like more appropriate like ElasticSearch, but to mock successful projects who were based on it seems silly. It reminds me of interviewing candidates at a startup who primarily used PHP/MySQL. Most of them openly laughed and called it all horrible. I voted "no" on them, and sometimes injected a somewhat toxic "ah, you're right - we should close up shop. Someone call Facebook - tell them their tech stack is horrible - shut it all down!".
You can learn a lot about a developer by asking "What do you think about Mongo, JavaScript, or PHP", and if their response isn't a shrug, they're probably more concerned with what editor is correct than if the product they're building is useful. It's an exceptional filter to reject zealots and find pragmatists.
All that said, MariaDB with MyRocks is _awesome_, but certainly not with the default settings :)
by Ice_cream_suit on 5/24/20, 2:06 AM
"MongoDB’s default level of write concern was (and remains) acknowledgement by a single node, which means MongoDB may lose data by default.
...Similarly, MongoDB’s default level of read concern allows aborted reads: readers can observe state that is not fully committed, and could be discarded in the future. As the read isolation consistency docs note, “Read uncommitted is the default isolation level”.
We found that due to these weak defaults, MongoDB’s causal sessions did not preserve causal consistency by default: users needed to specify both write and read concern majority (or higher) to actually get causal consistency. MongoDB closed the issue, saying it was working as designed"
by crazybit on 5/24/20, 1:14 PM
What do I use in this situation:
1) I need to store 100,000,000+ json files in a database
2) query the data in these json files
3) json files come from thousands upon thousands of different sources, each with their own drastically different "schema"
4) constantly adding more json files from constantly new sources
5) no time to figure out the schema prior to adding into the database
6) don't care if a json file is lost once in awhile
7) only 1 table, no relational tables needed
8) easy replication and sharding across servers sought after
9) don't actually require json, so long as data can be easily mapped from json to database format and back
10) can self host, no cloud only lock-in
Recommendations?
by NelsonMinar on 5/23/20, 6:56 PM
by seemslegit on 5/23/20, 7:16 PM
That sounds like a valid redress, or am I missing something ?
by arpa on 5/23/20, 6:44 PM
by sacks2k on 5/24/20, 2:41 AM
I'm glad my gut instinct was correct and that it really wasn't worth the hype. It reminds me of Ruby on Rails.
by veritas3241 on 5/24/20, 12:26 AM
by winrid on 5/24/20, 12:13 AM
by holoduke on 5/24/20, 12:19 AM
by Too on 5/24/20, 9:19 AM
If you set w: majority and r: linearizable/snapshot, both on collection, client and on transactions. Plus assuming you accept snapshot over Isolation. How bad are those remaining cases in reality and how do these issues compare to other databases? The final "read your future writes" error looks quite scary and does not seem to be caused by configuration error, same with "duplicate effects".
by twoodfin on 5/23/20, 6:57 PM
by matthewborden on 5/24/20, 9:32 AM
by mmackh on 5/24/20, 5:19 AM
[1] https://community.ui.com/questions/MongoDB-corrupt-after-eve...
by numlock86 on 5/24/20, 11:31 AM
by KingOfCoders on 5/24/20, 6:18 AM
by whoevercares on 5/24/20, 2:55 AM
by aphyr on 5/24/20, 11:44 AM
https://jepsen.io/analyses/mongodb-4.2.6
... and the corresponding HN thread here:
by jwr on 5/24/20, 10:35 AM
Data point: I have been running my production system (a fairly complex SaaS) on RethinkDB for the last 4 years.
by rmdashrfstar on 5/24/20, 3:30 PM
by pier25 on 5/24/20, 2:03 AM
https://news.ycombinator.com/item?id=23253870
(not Mongo obviously)
by hartator on 5/23/20, 7:25 PM
And the recent change to a restrictive license is worrisome as well. I have been thinking of forking 3.4 and make it back to “true” open source and awesome performance. (If any C++ devs want to help out, reach out to me! username @gmail.com)
by codecamper on 5/24/20, 7:22 AM
This corruption is brought on by the stock market.
Have a look also at Shopify. They go and tack on 2% fees when customers use Google Pay or Apple Pay to checkout with. They recently announced that FB would be pulling ecom sales within app, and yet Shopify plans to charge 2% on top of FB fees. That's what I could gather despite the pricing being rather opaque.
Is this a step forward or backwards? Charging 2% / transaction for modern Internet protocols running on cheap hardware across a public network?
</rant>
by jpxw on 5/23/20, 10:10 PM
by crackinmalackin on 5/24/20, 12:07 PM
by Hydraulix989 on 5/23/20, 7:18 PM
https://hackingdistributed.com/2013/01/29/mongo-ft/
MongoDB: Broken By Design
by etxm on 5/24/20, 4:23 AM
by therealdrag0 on 5/23/20, 10:59 PM
by m0zg on 5/24/20, 7:40 AM
by jtdev on 5/24/20, 3:10 PM
by gigatexal on 5/23/20, 9:24 PM