The next version of the popular NoSQL database Couchbase Server will include a new approach to scaling out that aims to drastically increase performance for enterprises.
The multidimensional scaling feature is set to be introduced in Couchbase Server 4.0 when it debuts this summer. With it, a Couchbase admin can isolate query, indexing, and data services on select nodes in a Couchbase cluster, rather than have every node in the cluster attempt to perform those functions.
Couchbase CEO Bob Wiederhold stated in a telephone conversation that the company wants to allow enterprises with existing Couchbase deployments to feel free to ramp them up without running into issues of performance at scale.
The main advantage of being able to isolate querying, indexing, and data services on different Couchbase nodes, as Wiederhold explained, is to keep those functions from contending for the same resources. This way, the functions that make the most use of a particular resource -- CPU for querying, I/O for indexing, memory for data -- can be confined to the systems that have the particular resource to spare.
"All of this can be managed at runtime," Wiederhold stated, meaning that any changes to the topology -- which nodes perform what functions -- can be adjusted in place. "You don't have to take anything offline." Applications that use Couchbase do not have to be written to be aware of how scaling is implemented, either.
When asked if competing NoSQL products could in time create their own similarly designed scaling technology, Wiederhold believed it was possible, but only by implementing it in ways that were complementary to those other platforms. "MongoDB, for instance," he said, "has a master/slave scaling architecture, which is very different than our peer-to-peer architecture."
Wiederhold cited Couchbase's database change protocol as one of the major underpinnings for the development of this new scaling architecture. He also noted that in his view, most every other NoSQL product would in time have to offer some variety of this sort of scaling: "Conceptually, we think everyone's going to have to have multidimensional scalability, however they implement it architecturally."