Some more Titbits on CouchDB
In an earlier blog http://itknowledgeexchange.techtarget.com/enterprise-IT-tech-trends/couchdb-nosql-for-document-based-applications/ covered some technical details behind CouchDB. In this, just listing down some interesting points I could gather about this NOSQL database.
- Damien Katz started the CouchDB project in 2005 as a way to build a scalable database that can easily be replicated.
- CouchDB is a NOSQL database of type document store and is similar to Tokyo Cabinet (a blazing fast, open-source, embeddable key-value store DB) in that it essentially maps keys to data. Instead of arbitrary data, its data has structure and uses JSON to facilitate database requests. In addition to being able to query by keys, you can upload functions that index your data and then you can call those functions using a very simple REST interface.
- CouchDB uses the Erlang open source language originally developed by Ericsson for use in telecommunications.
- CouchOne (earlier CouchIO) is a startup company with just 16 people founded in 2009 by Damien Katz in an effort to commercialize CouchDB. CouchOne customers – Canonical, Apple, the BBC and Mozilla – are currently paying for support and services.
- Right now CouchOne is targeting Mobile and Clouds – as they are seen as cash-rich and high growth areas.
- CouchDB is the first release of the open source database that hasn’t been tagged as having an alpha or beta status. CouchDB 0.11 version, released in April 2010, introduced new features and performance improvements while locking down development (feature freeze) to ensure future stability.
- The Apache CouchDB open source NoSQL database CouchDB 1.0 was released in July 2010 – five years after development. It includes features for application data synchronization for Web servers and desktops and improved stability and performance.
1. In CouchDB 0.11 version, it was found that the configuration was not making effective use of asynchronous threads for I/O and the issue has been addressed in 1.0 providing a performance boost and enabling the database to take advantage of the multi-core CPU resources allocated to it.
2. Windows support is also a key part of CouchDB 1.0, done by making patches to Erlang so that it could support Windows system calls.
3. Improvements to the stability of the replicator system (the CouchDB replication strategy is considered innovative and relevant) – which helps to enable offline application usage – are also a key part of the 1.0 release.
- CouchDB version 1.0.1 released in August 2010 fixed the bug that caused version 1.0.0 to be vulnerable to data loss in its default configuration. The release includes a repair tool for users who are suffering data loss. The update also adds support for replication through HTTP / HTTP proxy servers, fixes some replication bugs when interoperating with older versions of CouchDB and adds the ability to audit deletes by showing fields saved when a record is deleted. The Apache licensed source code for CouchDB 1.0.1 is available to download from the project’s web site.
- In the next release 1.1, the key feature to be included is a new configuration patch for the CouchDB replicator to make it easier for developers to configure offline-to-cloud synchronization.
- CouchOne plans to start charging customers from October 2010, to store their documents in CouchDB on Amazon through CouchOne Hosting, though the prices are not yet revealed.
- CouchDB has some interesting case studies in http://www.couchone.com/case-studies, though none would fall under the standard application in general domain. But it effectively gives a picture of where CouchDB would make sense.
- Future of CouchDB can be best summarized by what Katz said “There’s a lot more experience with relational databases and that’s a challenge to get them accustomed to the NoSQL world and mindset. Getting Enterprise developers to the point where they see CouchDB as a viable option with things like Oracle and SQL Server is a big challenge and I’d love to get there”.