NoSQL is a good idea with a bad name. You wouldn’t put on your NoJeans to drive to work in your NoFord. But put away the crappy label for a minute and check out what the NoSQL movement has going for it, because they’ve got some good points.
In the Microsoft Certified Master training, I’ve been stunned to learn some of the things that go on under the covers of SQL Server. The good thing is that MSSQL offers a ton of functionality few of us actually use, but the drawback is that there’s a lot of overengineered plumbing.
I train database administrators around the world, and if there’s one thing I see over and over, it’s that people just don’t use the features built into the product. They’re not using the built-in index tools that can make their servers faster. They’re not checking fragmentation. Hell, half the time they’re not even checking data integrity or doing backups.
So it occurred to me – maybe these DBAs aren’t on something – they’re onto something.
Traditional relational database management systems like Microsoft SQL Server have inherent weaknesses that prevent them from scaling to handle real load. All these features they’ve built in over the years have added up to real overhead. During several sessions, I heard phrases like “just adds 2% overhead” and “only uses 1-2% CPU.” Add up all these features, and it’s clear: SQL Server 2008 is the Windows Vista of databases. It’s a miracle queries ever complete.
And I’ve had enough.
NoSQL databases don’t have transactions, but frankly, that’s fine. You know what kind of transactions I want? Cash transactions. I want a brand new house on an episode of Cribs and a bathroom I can play baseball in. I can’t get there working with SQL Server because none of the cool new startups are using it.
I’m tired of working for suit-and-tie companies that tout their long histories and big balance sheets. I wanna roam the halls of companies like Digg, Reddit, and Twitter – companies chock full of venture capital. Those guys are all distracted by how the database software is free, and they haven’t thought through the process of hiring good DBAs for a database platform that got compiled last Thursday. Presto, I can charge ginormous fees.
After doing a lot of research, I’ve settled on Cassandra, the NoSQL database created by Facebook. It does have some weaknesses – for example, you can’t add tables without restarting – but I think that’s an advantage. I won’t have to do nearly as many schema deployments if the developers know the servers will have to get restarted, and that means less work for me.
Most NoSQL databases have what’s called eventual consistency – sooner or later, all of the nodes will catch up and have the same data. I’m fine with that. What’s the rush? The inserts, updates, and deletes will probably be caught up before these guys even have a business plan. DBAs have such a big issue with integrity, but I work for a software vendor, remember? I sold my integrity already.
I, for one, welcome our new Database 2.0 overlords. Or 4.1. Whatever.
Update 4/2: since you’re reading this late, you should probably be aware that it was originally published on April 1. You may also be interested in my post from 4/1/2009 about becoming a Natural Keyboard MVP.