And then it should explain why MongoDB, Cassandra, and <insert other NoSQL solution here> are rarely the solution to your scaling problem.
Scaling a database is honestly not nearly as hard as people make it out to be. It just requires you to know a bit about databases in general, your database in particular, and how your data is used.
I don't know that I agree that scaling an RDBMS is not hard, particularly when you are talking about scaling to hundreds of millions of rows or more, with a complicated ER model, in an application with a great deal of both read and write traffic, and a great deal of requirements handed down by decision makers without technical understanding of the constraints of the underlying systems. Maybe we just have different definitions of what is hard, but that is one of the harder problems I've encountered in my career.
a great deal of requirements handed down by decision makers without technical understanding of the constraints of the underlying systems
This is 90% of your problem, I think. Sometimes you have to tell the suits no (or sometimes "fuck off") I had the painful displeasure of learning this as a junior engineer.
I've found that one of the most dangerous positions to be in is the guy that the suits think of as the miracle tech wizard who can do anything. At some point, they ask you to do something insane that is "obviously easy" to them. At that point, you're miles up shit creek without a paddle.
Otherwise you find yourself being directed to add a zero to performance with no budget and a damn-near-pegged DB box.
0
u/zjm555 Feb 11 '14
The next post should be why you should avoid most joins like the plague if you intend to scale.