This week, the Apache Software Foundation announced the long-awaited release of Apache® CouchDB™ 2.0, which brings vastly improved scalability, as well as performance and UI enhancements, to the open source JSON database.
The new version enables CouchDB users to tap into the core clustering capabilities previously only accessible via the open source BigCouch project and IBM Cloudant. CouchDB 2.0 also offers full compatibility with Cloudant, as the two now share the same code base.
In honor of CouchDB 2.0’s release, let’s take a look at how CouchDB got here, and what new opportunities it creates for developers.
A Little History
More than ten years ago, CouchDB entered life when former IBM Lotus developer, Damien Katz, started a project to build a data management system purpose-built for web-scale computing. CouchDB, among the first modern, open source data stores that defined the ‘NoSQL’ movement, became an Apache project in 2008.
That same year, Adam Kocoloski, Alan Hoffman and Michael Miller founded Cloudant (later acquired by IBM), which extended the power of CouchDB by transforming it into a large scale distributed system, delivered as a fully managed cloud service. The three co-founders used their experience working with big data sets at MIT to create a CouchDB-based solution that (using clustering) could persist large amounts of data in the cloud, while meeting the performance requirements of web-scale applications.
The long-awaited release of CouchDB 2.0 finally brings the clustering and performance enhancements in Cloudant (previously open sourced as the BigCouch project) into the CouchDB code base. In other words, a highly scalable, clustering version of CouchDB is freely available to developers for the first time!
As explained by CouchDB VP Jan Lehnardt in a recent blog post, the biggest advantages that clustering brings to CouchDB 2.0 include:
- Fault tolerance, because data can be stored on more than one machine, eliminating the need for manual failover instances;
- Performance, because data sharding distributes workloads across multiple nodes in a cluster, reducing the amount of work each individual machine needs to do; and
- Capacity, because storing data in multiple nodes means that you’re not limited to the capacity of one machine, providing the scalability needed for web-scale applications.
Additional updates in the new release include Mango, a MongoDB-inspired query language based on Cloudant Query, which includes full text search; a new admin interface with advanced features, including the ability to manage document conflicts; faster replication between CouchDB instances as well as PouchDB instances; and a new logo.
Apache CouchDB Project Management Committee (PMC) members Jan Lehnardt and Robert Newson recently joined The New Builders podcast to discuss these enhancements in more depth. You can listen to the interview here:
How to Get Started
With Apache CouchDB 2.0, developers now have free access to a large scale distributed version of CouchDB, one of the most battle-hardened NoSQL data stores out there. That means developers can take advantage of CouchDB’s unique offline capability and reliable data sync for web, mobile and IoT apps at any scale.
To get started, you can download Apache CouchDB 2.0 for free at http://couchdb.apache.org/#download.
© “Apache”, “CouchDB”, “Apache CouchDB”, and the CouchDB logo are trademarks or registered trademarks of The Apache Software Foundation. All other brands and trademarks are the property of their respective owners.