The Apache CouchDB open source NoSQL database has passed a major milestone this week with the official release of CouchDB 1.0. The debut comes after five years of development on the database, which includes features for application data synchronization for Web servers and desktops.
With the CouchDB 1.0 release, project developers have improved both stability and performance. The release also marks the stable debut of CouchDB for Windows users, expanding the open source database beyond its Linux roots.
"A 1.0 release is always a big deal for an open source project," Apache CouchDB committer Chris Anderson told InternetNews.com.
Though CouchDB is just now hitting 1.0, Anderson -- who is also the co-founder of commercial CouchDB vendor Couchio alongside CouchDB founder Damien Katz -- stressed that the open source database has already been in production use for years, with large deployments at the BBC and with Ubuntu Linux as part of its Ubuntu One data-synchronization service. Canonical, the lead commercial sponsor behind Ubuntu, is a Couchio customer.
For the 1.0 release, project developers focused not on adding new features but rather on improving performance and adding support for additional platforms. The 0.11 release of CouchDB, which made its debut in April, was considered by the project to be feature-complete.
Anderson noted that after the 0.11 release, developers ran CouchDB through a series of benchmarking tests to identify areas of the code that could be optimized. Among the fixes they made is one relating to how the project was configured for the open source Erlang language in which CouchDB is written. Anderson explained that CouchDB developers discovered that the way the project had configured Erlang wasn't making full use of asynchronous threads for I/O. As a result, the 0.11 version was using more CPU resources that it should have been. Anderson noted that in 1.0, that issue has been addressed, thereby providing a performance boost for CouchDB and enabling the database to take advantage of whatever multi-core CPU resources are allocated to it on hardware.
Windows support is also a key part of CouchDB 1.0, which came by way of making patches to Erlang so that it could support Windows system calls.
"Our use case is running at the edge of the network, and Windows is 90 percent of the machines out there, so it was really mission-critical that we run on Windows machines," Anderson said.
Improvements to the stability of the replicator system -- which helps to enable offline application usage -- are also a key part of the 1.0 release. Anderson explained that with CouchDB, developers can write applications that will allow users to run on a local machine or in the cloud, and the replicator function is what keeps data synchronized across local and cloud-based instances.
For current CouchDB users, the process of migration from previous versions of the open source database should be straightforward, according to Anderson, who said that the new version of CouchDB will be able to read data from previous installations.
With the 1.0 release now available, project developers are starting to look ahead to the 1.1 release. Anderson said that a key feature that he hopes will be included in that upcoming version is a new configuration patch for the CouchDB replicator to make it easier for developers to configure offline-to-cloud synchronization.