Transcript

"And in conclusion, we have found MySQL to be an excellent database for our website. Any questions?"

Yes, I have a question. Why didn't you use MongoDB? MongoDB is a web scale database, and doesn't use SQL or JOINs, so it's high-performance.

"That's an excellent question. We evaluated several NoSQL databases and concluded that the options are still too immature for our production needs. MySQL is a proven database that is used across the web and has the features we need."

But it doesn't scale. Everybody knows that relational databases don't scale because they use JOINs and write to disk.

"Scalability is a complicated topic and it's hard to make a general statement like that."

Relational databases weren't built for web scale. MongoDB handles web scale. You turn it on and it scales right up.

"It may surprise you that there are a handful of high-profile websites still using relational databases and in particular MySQL."

Relational databases have impotence mismatch.

"I think you mean 'impedance'."

MySQL is slow as a dog. MongoDB will run circles around MySQL because MongoDB is web scale.

"MongoDB does have some impressive benchmarks, but they do some interesting things to get those numbers. For example, when you write to MongoDB, you don't actually write anything. You stage your data to be written at a later time. If there's a problem writing your data, you're fucked. Does that sound like a good design to you?"

If that's what they need to do to get those kickass benchmarks, then it's a great design.

"..... If you were stupid enough to totally ignore durability just to get benchmarks, I suggest you pipe your data to /dev/null. It will be very fast."

If /dev/null is fast in web scale I will use it. Is it web scale?

"You are kidding me, right? I was making a joke. I mean, if you're happy writing to a database that doesn't give you any idea that your data is actually written just because you want high performance numbers, why not write to /dev/null? It's fast as hell."

Does /dev/null support sharding?

"Holy shit. For my own mental health I'm going to assume you're just messing with me and aren't actually retarded. Do you even know what a shard is?"

Shards are the secret ingredient in the web scale sauce. They just work.

"Please tell me you don't actually make a living in the technology field."

I'm a web programmer.

"As of this moment I officially resign from my job as software engineer and will take up work on the farm shovelling pig shit, and administering anal suppositories to sick horses because that will be a thousand times more tolerable than being in the same industry as dipshits like you. You read the latest post on highscalability.com and think you're a fucking Google architect and parrot slogans like 'web scale' and 'sharding', but you have no idea what the fuck you are talking about. You're going to blow some project to hell because you get a woody playing with software like it's a sexdoll. Relational databases have been around since the fucking 70's and are some of the most mature technology you can find. Yet somehow everything needs to be reinvented because Google and Amazon post some white papers. If you need to build a globally distributed search engine that manages petabytes of data, fine, build your own database. But if you're like 99.9% of companies you can probably get by very well with something like MySQL and maybe memcache."

Redis will kick memcache's ass. It's so fast and scalable.

"Right, now I'm thinking of how much fun it will be to castrate my first bull, down on the farm. I cannot wait to cut off the testicles of a 3000 pound raging bull as it tries to kick my head in."

MongoDB is a document database that doesn't need JOINs. It uses map/reduce.

"Now I'm cleaning a cistern of chicken shit, but I don't care because I don't have to listen to the NoSQL fanboys reciting the feature list of their favourite schema-free database."

By writing to memory mapped files, MongoDB can improve its write-throughput factor by 10.

"What the fuck? Lets abandon transactions, consistency, durability and pin our mission crititcal data to a table and give it a night it will never forget. I mean, who cares what we store as long as we do it quickly. Oh. Sorry. That's right. I'm on the farm now suffocating from the stench of a thousand cow farts. But it smells like roses to me, because I'm nowhere near this moronic conversation."

MongoDB uses atomic modifiers for contention-free performance.

"Now I've contracted hemorragic e-coli from cleaning cow stalls and I'm bleeding out my asshole. I'll be dead soon, but that is a welcome relief. I will never have to witness the collapse of the world economy because NoSQL radicals talked financial institutions into abandoning perfectly good datastores because they didn't support distributed fucking map/reduce."

MongoDB stores files of any size without complicating your stack.

"...... Thank you for your questions. This presentation is over and I'm fucking off to the farm to start my new career."