I had wondered aloud more than once if VMware would feel compelled to buy a database for their growing middleware business what with Microsoft, IBM and Oracle all having their own. If they did I imagined it would be an Open Source offering as that’s pretty much how the company is evolving.
Maybe they’d work on Postgres? Maybe they’d buy EnterpriseDB? What I didn’t expect is that they’d leap over all of that and start commercially funding Redis.
What I know about databases I know just from getting my hands dirty and having a go when the opportunity arose, but to me Redis doesn’t look like SQL Server or DB2 or Oracle or MySQL.
For one thing after I started up my Mint 8 Virtual Appliance, which I’d grabbed off VMware’s Virtual Market Place, I downloaded the latest stable release of Redis from Google Code using wget. We’ve all seen DB installs so I expected this would take a while, a little over 2MBs of tarball later it was sitting in my home folder.
I did wonder if I had grabbed the wrong file. Maybe I downloaded just the documentation? Nope. Correct file.
Unzip and untar and you end up with a bunch of files in a directory. There’s no autoconfig or installation script so after setting make loose on them out popped a couple of binaries. I started up the Redis server and watched it listen on port 6379, connecting to that port via telnet I could send it commands and get responses but I spotted Redis comes with a CLI binary which allows you to do the same thing.
Using set and get commands I found I could store and retrieve values. okay so right now it sounds like someone’s first attempt at a database, it stores and retrieves data. Woo! But here’s the thing it appears to be blazingly fast as it’s written in C and it’s an in-memory database.
Everything sits in RAM with writes being written out in asynchronous bursts or in an append only format.
It also supports replication. It’s not Oracle DataGuard but you can’t set up DataGuard by modifying one line in a configuration file!
So, are you going to run SAP on this? Right now perhaps not. What about your distributed computing cloudy app? Oh yes and there’s Java support so you can see a touch point for the Spring Folks.
I think I see what VMware is doing here, they’re jumping over the traditional apps requiring the large DBs on the big tin and going after the hyperscale speed freaks. Twitter and the like could probably be implemented in Redis. Keep the DBs in memory and scale out across numerous servers all while keeping up with the voluminous store and read operations a site like that has.
I like this. I think it’s more important in the long term than a lot of us have grasped.
How all of this comes together, Redis, Spring, Zimbra, and how it’s delivered with VMware as a suite will be interesting to watch.