Over the course of nearly the last two years, Couchbase has been working on a new type of NoSQL database the melds both key-value and document data models.
It's an effort that began with the merger of CouchOne and Membase back in 2011 as the two companies combined to build a new joint product. Couchbase has since moved beyond its core Apache CouchDB roots though it still benefits from them.
"Historically we have been a pure key value database, with the Couchbase 2.0 release we are now a document value database," Couchbase CEO Bob Weiderhold, explained to DatabaseJournal. "That allows developers to store JSON documents in the databases and allows you to build indexes and do queries on those JSON documents."
Weiderhold admitted that when Membase and CouchOne merged, he had hoped to have document database capabilities availability much sooner then now.
"At first we thought we could leverage Apache CouchDB without having to rewrite it in C, Apache CouchDB is written in ERlang," Weiderhold said. "It turned out that in order to achieve the performance that we needed,we did have to rewrite in C and that was a pretty significant delay for us."
Weiderhold stressed that Couchbase remains a completely separate open source technology that leverages some elements of Apache CouchDB. The CouchStore storage engine is being leveraged in part by Couchbase and CouchDB creator Damien Katz is a Couchbase employee. The rewritten storage engine is combined with what was formerly known as Membase to create Couchbase.
"CouchDB is not a sub-component of Couchbase 2.0, we just leverage the technology," Weiderhold said. "We do the same thing with memcached."
Memcached is a popular caching layer for databases. Weiderhold noted that many of the core developers of memcached work for Couchbase now as well.
"We have leveraged memcached technology and integrated it into Couchbase 2.0, " Weiderhold said. "So memcached in essence provides the built-in caching tier of Couchbase."
Cross Data Center Replication
From a scalability perspective, Couchbase 2.0 includes Cross Data Center Replication (XDCR) technology. With XDCR, Couchbase 2.0 can be deployed across multiple data centers and all the instances will stay in sync with each other.
"It's master/master replication so it's full cross data center replication capabilities," Weiderhold explained. "So if you have an east coast and a west coast data center, changes that are made in the database used by east coast users will be mirrored over to the west coast and vice versa."