NoSQL Zone is brought to you in partnership with:

Mitch Pronschinske is a Senior Content Analyst at DZone. That means he writes and searches for the finest developer content in the land so that you don't have to. He often eats peanut butter and bananas, likes to make his own ringtones, enjoys card and board games, and is married to an underwear model. Mitch is a DZone Zone Leader and has posted 2573 posts at DZone. You can read more from them at their website. View Full User Profile

VMware Hires Key NoSQL Developer

03.15.2010
| 16632 views |
  • submit to reddit
The VMware executive blog recently announced the hiring of Salvatore Sanfilippo, the key developer for Redis, a NoSQL database (Key Value/Tuple Store).  VMware believes Redis can help evolve their cloud and virtualization technologies.  Sanfilippo was courted by several companies, but he chose VMware because of their focus on the technology of Redis and their commitment to keeping it open source.

Redis is a key-value store that is extremely fast with a richer API than something like Tokyo Cabinet.  It's similar to memcached because values can be strings, but the dataset is not volatile.  Unlike memcached, Redis' values can also be lists, sets, hashmaps, blobs, and ordered sets.  It also allows you to append a value to the end of an item list that has already been stored for a given key.  All of its data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and more.  This is a distinguishing feature of Redis, and it means that it can be turned into a best-of-breed tally server.  

The data store's speed comes from its increased in-memory operations.  It only flushes to disk periodically, so in exchange for high speed, there's a greater risk that data could be lost during a crash.  Redis also claims to support sharding, but it actually just has the client run a hash function on its key to determine which server should receive the value.  Any database can do this.  Redis is written in ANSI C, so it works with many POSIX systems including Linux, Mac OS X, BSD, and Solaris.  Redis is released under the BSD license.  For a comparison of Redis and other NoSQL databases, you can check out this article.

VMware is interested in Redis technology because of the benefits for large scale systems when there are "alternatives to storing state within a centralized relational store (RDBMS)."  VMware says that some Redis users have made it there sole data storage solution because it offers several ways to persist data.  As cloud computing pushes the boundaries of application scalability, new data persistence technologies will play a key role in facilitating those large scale applications.  VMware cites Google App Engine's utilization of BigTable as the most evident example of scalable data storage.  

VMware has already proven itself as a company that nurtures open source.  Redis will join VMware's current open source divisions, which include SpringSource and Zimbra.  This is a major reason why Sanfilippo felt he could take Redis to VMware and maintain an open philosophy for the technology.

Before Redis became popular, Sanfilippo, was using it to scale a few critical things in one of his startup companies.  He decided to make it open source after just a few weeks and that's when the community started contributing and asking for more features.  Soon, Redis became a bigger deal than his day jobs (writing web apps and iPhone apps).  Once people started doing real business with Redis, Sanfilippo started getting job offers from various companies.  

Sanfilippo initially wanted to sell supporting tools for Redis in order to monetize his project, but instead he decided to join one of the companies that wanted him to work on Redis full-time.  When VMware contacted Sanfilippo, they immediately wanted to talk about Redis internals, use cases, possible optimizations, and other deep technical items of interest.  Sanfilippo enjoyed the tone of his conversations with VMware and to him it seemed that many of the engineers at the company were doing work that was similar to his.  This relationship, along with the reputation for open source stewardship, is what sealed the deal for Sanfilippo.

Redis is already a stable, production-ready data store, but with VMware Sanfilippo intends to strengthen that stability and establish better quality assurance.  This will also give Sanfilippo will some time to finish his book on Redis.  

Comments

Ashwin Jayaprakash replied on Wed, 2010/03/17 - 1:46am

Hopefully with Spring also under their wing, Redis will get a good Java Driver. Last time I checked, the Java driver looked like it was abandoned.

Joubin Houshyar replied on Fri, 2010/03/19 - 10:16am in response to: Ashwin Jayaprakash

Ashwin,

From your comment I gather you haven't actually tried JRedis. As misinformed comments regarding available options are neither good form or helpful to the Java/OSS community, let me add that:

JRedis has been under heavy development for the past year. Both Redis (stable) 1.2.n and (dev) 1.3.n are tracked. 1.3.n is obviously a moving target as of now. I've been quite conservative with release categorization, but you can expect the initial 1.0 RC 1 shortly.

Regarding the quality of the library, the feedback from the user community to date has been (generously) very positive. Certainly the intent remains to make available to the Java community a very high performance and quality product.

That said, the library is specification based and highly modular and includes a lightweight framework for creating your own custom connectors, should you find it necessary. You can use the protocol classes to create your own connectors, and at a higher abstraction level, you can use any of the many available connection classes to create your clients. And as a cursory glance at any command support commit log should make clear, the system is designed to make it quite painless to add support for any missing command.

The google code project site (http://code.google.com/p/jredis/) is for release notes and quick links to the jars and project archives. For everything else, including issue tracking, see the GitHub project site at http://github.com/alphazero/jredis.

Questions, comments, feedback are welcomed and you can use redis-db and/or jredis (google) group, or drop a note at the email provided in the release notes.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.