X
Business

​How Couchbase 4.0 is cranking up its developer appeal

The latest release of open-source document store Couchbase is aiming to make life easier for developers with, among other things, a new SQL-based query language.
Written by Toby Wolpe, Contributor
bobwiederholdcouchbasejun14220x286.jpg
CEO Bob Wiederhold: In many cases you'll need to write far fewer lines of code.
Image: Couchbase

Couchbase says today's general availability of version 4.0 of the document store marks a shift of focus to the developer, with features such as a new SQL-based query language to make it easier to build a wider range of apps on the open-source distributed database.

As well as the addition of the N1QL language, pronounced 'nickel', to help develop apps on top of the JSON data model, there is multi-dimensional scaling to improve performance by allowing querying, indexing, and read-writes to be allocated to specific servers.

"It's not just a query language that's based on SQL. We have a great implementation. We'll be the only ones, for example, that allow you to handle joins. Joins are extremely important in terms of the way you want to model your data," Couchbase CEO Bob Wiederhold said.

"In general, the use of N1QL is going to allow you to be much more agile and develop your code much more efficiently. Most people already know how to use SQL, and in many cases you'll need to write far fewer lines of code because of our particular implementation and things like joins. We've a lot of examples - how something that takes 50 lines of code in MongoDB takes four lines in Couchbase."

With version 4.0, standard SQL reporting and visualisation tools can also now access data stored in Couchbase using new ODBC and JDBC Simba drivers.

"Certainly in the Hadoop space, obviously everyone long ago has moved to providing its SQL-based query language and for obvious reasons. Just eliminating that barrier to people using NoSQL is very significant, whether it's from a business-intelligence and reporting perspective or from just the perspective of developers writing applications," Wiederhold said.

According to Couchbase, developers can use N1QL to create new indexes and queries without restructuring the data model, and employ JSON to nest data in a single document or to query data stored across multiple documents.

The addition of multi-dimensional scaling to Couchbase is designed to improve performance significantly, use fewer resources, and reduce network bandwidth.

"Let's say you have 10 nodes in your cluster, you can run the basic reads and writes and indexing and query on all 10 of those nodes. That's how it works today before 4.0," Wiederhold said.

"If you run all three of those services on those 10 nodes, if you're doing some kind of index building or running some kind of a complex query, that's going to suck up resources from those 10 machines. It might slow down your basic reads and writes, which for many applications you do not want to do."

With multi-dimensional scaling, operators can optimise the underlying server resources more efficiently and adjust them according to the type of task being run.

It can also be used to assign global secondary indexes specific resources, to minimise the degree of scatter-gather and improve performance in the distributed system.

Another new feature in Couchbase 4.0 is cross-datacentre replication filtering, which could be particularly useful for high availability and disaster recovery, the company said.

"Any reasonably big enterprises with global digital economy businesses operate through multiple datacentres around the world. That's to reduce network latency. You don't want someone in China having to access an app that's sitting in California," Wiederhold said.

"But you don't necessarily want to mirror all the data that you have across every datacentre. Sometimes that's regulatory-oriented. So for example, in a lot of European countries you can't move the data from the citizens of Germany to a datacentre and mirror it in California.

"So you need to have this pretty sophisticated ability - we call it filtering - to identify what data can and should be mirrored between different datacentres."

More on databases

Editorial standards