That No SQL Thing – Key / Value stores – Operations
I mentioned before that the traditional API for Key / Value stores is pretty simplistic, Get/Put/Delete over blob values. That doesn’t really give us much options,
I have a long series of posts talking about how to do a whole host of operations using this minimal API.
In practice, it is usually much better to have support for such things directly in the Key / Value store implementation. Rhino DHT has intrinsic support for lists, and Redis support plenty of operations over lists, sets and ordered sets. Most Key/Value stores offer at least the option to atomically increment a value.
For the most part, however, you can assume that if you need a lot of operations support from the Key/Value store, you are probably using the wrong backend for your tasks. Key/Value stores are just for that, if you need complex operations on the values stored there, you might be using the wrong tool.
Comments
It's good to see you're devoting a lot of attention to Key/Value data stores. I'm not exactly sure what your motivation for adopting the technology is but mine lies in its ability to create high-performance web sites / web services, something which I've articulated in my own recent post: NoSQL vs RDBMS http://www.servicestack.net/mythz_blog/?p=129.
Because of your reach, I think your single-handedly going to raise the adoption and awareness of the technology with your contribution of knowledge on the subject. Rhino DHT does look good, and knowing your high quality of work I would most likely have adopted if it wasn't for the existence of Redis. Unfortunately it's raw speed and advanced features like effortless replication, blocking pop's, publish/subscribe and bindings for almost every language in existence is going to be hard to match. In this way I consider Redis to be a broker facilitating high performance atomic communication across language boundaries.
I'm not sure if it's your intention, but merging 'Divan DB' and 'Rhino DHT' into a single integrated solution may be your biggest USP and will go a long way into solving one of Key/Value data stores biggest limitation - querying.
Comment preview