Couchbase, creator of a commercial variant of the NoSQL CouchDB database, has earned praise for giving MongoDB -- and CouchDB -- stiff competition.
But Couchbase isn't resting on its laurels, so the new Couchbase Server 3.0 sports two major new features -- and one preview of an upcoming feature -- designed to improve performance and make Couchbase a more attractive NoSQL solution.
In many ways, the preview feature is the most forward-looking of the new offerings. Called ForestDB, it's a new storage engine for all incarnations of Couchbase.
In a blog post made last week, Couchbase described ForestDB's workings, particularly how it was engineered to resolve the limitations created by the existing key/value storage engine in Couchbase. Two other projects, LevelDB and Facebook's RocksDB (the latter is a fork of the former), have also been created to improve performance in NoSQL systems, but Couchbase claims ForestDB is more than twice as fast in write-only performance and provides "a great deal of improvement on SSD (Solid State Drive) performance."
Ravi Mayuram, senior vice president of engineering for Couchbase, touched on the growing prevalence of SSDs as a standard element of the systems used to run software like Couchbase. Systems today, he stated in a phone conference, have "memory-centric architectures," where more memory, faster networks, and SSD secondary storage are all becoming commonplace, "and those technology trends all influence what things will need to be."
The other two major new Couchbase features also involve leveraging memory and upping storage-engine performance. The first is tunable memory, a way of managing Couchbase's memory consumption for different use cases. A high-performance database, such as an ad-targeting system, could be set to use more memory and thus operate on nanosecond response times. "Businesses do not know how the applications they're going to deploy are going to actually behave," Mayuram stated, so this feature is intended to provide flexibility.
The other major feature, the database change protocol, synchronizes data changes between the nodes in a given Couchbase cluster or between data centers. Mayuram billed it as "the NoSQL industry's first stream-based protocol for database changes" and said "it gives us the ability to control the data replication in a very fine-grained manner -- ability to snapshot, to start from a given sequence number, to have failover capability." From this, he said, they can build other enterprise-grade features like delta-node recovery and incremental backup, and queries against nodes return the freshest data possible.
Another development Couchbase has in mind is a SQL-like query language it calls N1QL (pronounced "nickel"), created as a way to expand Couchbase's utility with a broadening variety of database developers. This isn't a way to run conventional SQL queries against Couchbase, where the results would be returned as if they had been queried against a conventional tabular database. Rather, N1QL is designed to use SQL-like syntax, such as
SELECT * FROM, to query against documents and document stores. Version 2.0 of Couchbase's SDK provides support for N1QL, although an official release for the language is still a ways off.
"What we call big data now will look really small a few years down the line, so we need to build something to address that," said Mayuram.