Tuesday, May 25, 2010

NoSQL, a DBAs Perspective

In order to summarize this post I'll just start with this. We will shortly have Redis deployed in our production environment. I can't really tell you how happy this makes me.

As a DBA, and more importantly an "Open Source DBA", I find many of the new NoSQL options intriguing.

I've been following the MongoDB project for a while now, and while it's not my cup of tea it does seem very interesting. I've been a web developer for 12+ years and can see where some might think it's a perfect fit, but the traditional developer in me wants data structures that make more sense to programmers. Developers have been struggling with SQL for so long it seems odd and off-putting to replace it with JSON and another query language. It just doesn't seem like the way to go. ActiveRecord is very popular because it feels like regular OOP and fits the developer mindset.

Redis and Ohm:
Wow. It's almost like an epiphany. All my data structures including queues, hashes, arrays, even time series data(sorted lists) stored conveniently in a wicked fast central location. It's like the grail for programmer happiness. Developers don't have to learn anything new. Great libraries handle the interaction with the DB and make it feel as natural as possible to work with these data structures.

All I can say is watch this space. If you're reading this and haven't been following the Redis project. Go check it out. You'll be glad you did. I've been looking for an optimal mechanism for storing time series data for 10+ years now. I'm a huge telemetry geek and Redis with sorted sets is a game changer.

Hashes for storing variable length object data is sweet too. The newest Ohm libraries are using this new functionality and I'm sure the speed is amazing. Forking to save the data is a bit memory intensive for large sets, but it's a nearly optimal solution to the problem of persistence.

I could go on but I won't. You can probably tell I'm very interested in Redis and look forward to many projects using this novel new tech.

I suspect that SQL databases are here to stay, but options are always welcome. If NoSQL does end up taking over the world I'm one DBA who's happy to go back to dev and use these great new alternatives.

No comments: