CouchDB is one of the few “key / value stores” available, others include old ones like BDB , targeted to websites like Persevere , MongoDB and CouchDB, new super-fast like memcached (RAM only) and Tokyo Cabinet , and huge stores like Hadoop and Google BigTable (MongoDB also claims to be in this space).
Of course, space for key / value stores and relational databases. Traditionally, most RDBs are considered a layer above the key / value. For example, MySQL used BDB as an additional backend for tables. In short, key / values do not know anything about the fields and relationships that are the foundation of SQL.
Keys / values tend to scale more easily, making them an attractive choice when growing, like Twitter. Of course, this means that any relationship between stored values should be controlled by your code, and not just declared in SQL. CouchDB's approach is to store large “documents” in terms of value, making them (mostly) autonomous, so you can get most of the necessary data in a single request. Many use cases are suitable for this idea, others are not.
The current topic that I see is that after "Rails does not scale!" scary, now many people understand that this is not about your web infrastructure; but also about intelligent caching, to avoid getting into the database and even web applications when possible. Rising star has memcached.
As always, it all depends on your needs.
Javier Aug 20 '09 at 16:16 2009-08-20 16:16
source share