May 29th, 2013

Open letter to Oracle DBAs


This is for my brothers and sisters out there managing databases. If you are a developer or manager or anything else I’m going to have to ask you to step out while we talk. Go ahead, we’ll wait…


Ok. Are they gone? Good. Now we can get to the meat of the matter. Thing is, we in the Cassandra community need your help. For years Cassandra has been managed by developers or sysadmins and they have done a great job so far. This community is maturing fast and well, we need some database pros to help take it to the next level. 


I was an Oracle DBA for years. I remember when Oracle 8i came out and man what a game changer. What little Informix and Sybase DBs we had left were quickly replaced. We had applications being built for the web and needed a DB to keep up. Along the way we were developing some tighter controls on how dev teams accessed the servers. Java was quickly becoming the app programming language of choice in our shop and developers were living large with JDBC (ok, not all roses but they had direct access. Epic for them) At first we just gave people SYS access if they had a vague reason for that much access. Let’s just say that backfired. “You changed what setting? Are you out of your mind?!!” Raise your hand if you ever said that! Or hearing that sheepish “Uh no, we didn’t have a backup” Ah yes. Good times. 


We put all that to an end pretty quick. The secret to us getting a good nights sleep was in helping our dev teams get what they needed in a controlled manner without complete anarchy. Having a dev environment gave them a playground but the closer you get to prod, the tighter things got. We also learned to ask more questions about the application and their data model. “No, I think doing a right outer join with a full table scan on a 1 million row table isn’t a good idea. Can I help you fix that?” Our job was to be THE database experts and protect our poor production servers from the tornado of crappy code sure to come. Later I transitioned to being a developer and when I did, I relied on those same pros to make sure my code was bullet proof. I didn’t have time to keep up with all the cool new features and methods but that was their job. I could count on their help when needed. 


So here we are years later and it’s like what was old is new again. We’ve got a lot of choices on how to store data now. Given the pain I endured to get the hammer of Oracle to pound in every nail, I’m totally cool with that. I spent too much time trying to get things to scale or stay constantly available. Funky de-normalization schemes or worse, sharding things to the point my apps were almost a DB themselves. Not too mention every time I had to do any of that, I was contributing large sums of money to Larry Ellison’s private island or crazy plane collection or whatever. It was pricey to say the least. I tried a lot of new databases along the way and eventually found Cassandra solved most of my needs in the scaling and uptime department and as a friend told me “It just #$%! works.” Well put. Having come from the DBA world, I applied what came naturally to me. Put some process around deployment and operations, enjoy those extra hours of sleep. Take a good look around though, I think that was more the exception than the rule. 


So here’s my urgent plea: We need your skills! Cassandra is not a threat to your job. It’s not a fancy new shiny thing that will disappear soon. (I had a CIO tell me the same thing about the web. Ahem) It solves a different set of problems that fit a lot of applications. Developers moved on it quick to solve application issues, but it’s time to add your skills to the party. You know that just tossing any old code at your DB is a bad plan, and that hold’s true with Cassandra. The deep knowledge of how the database works, stores data and stays online will set you apart. We need database professionals that can manage the complexity of daily operations. 


Here’s how you can help. Learn as much as you can about Cassandra. Take it for a spin and see what it can do. You can download a package or tarball in the Planet Cassandra download center or you can use the DataStax AMI to get a cluster up and running in a few minutes. There is a lot of documentation, tutorials and presentations on Planet Cassandra and the DataStax web site. Oh and if you really want to get serious, the Cassandra Summit is the place to be on June 11th – 12th in San Francisco. There will be a lot of people just like you talking about how they did it. (Oh and if you send me an email and mention this rant, I’ll get you a super special price.) The goal should be understanding how it works and how you can use it effectively to solve your persistence problems. I’ll bet along the way you will find a few. What are you waiting for? If you need some help, don’t hesitate to ask. I’m here to help!