When I first came across NoSQL databases, I was a bit stunned. I appreciated their schema flexibility, fast write capabilities and the ability to scale out through clustering. But with no real query languages, joins or ability to index on anything but a key, the products in this category seemed unusable for the vast majority of business customers and applications.
We're past that now. Despite the "NoSQL" moniker, many databases in the category have adopted SQL as a query language interface. Indexing is better. And even the rigid division between NoSQL categories (key-value stores, JSON document stores, column family stores and graph databases) is beginning to soften.
Case in point is Couchbase's newest release, version 4.5, which hits general availability (GA) today. Assuming this product works as advertised, it's a poster child in the effort to eliminate unacceptable choices between NoSQL flexibility, on one hand, and the mature performance and functionality of conventional databases, on the other.
On the tooling side, this release of Couchbase adds a Query Workbench tool, which features a Web browser-based UI for authoring and executing queries in Couchbase's dialect of SQL, known as N1QL (pronounced "nickel"). No, this is not cutting edge, given the major relational databases had such tools 20 years ago. The point is that those long-standing expectations from RDBMS users are now being met.
New query monitoring and profiling tools similarly fill an erstwhile gap. And auto-schema discovery helps migrate RDBMS data into Couchbase.
Indexes, JOIN party
Performance is a big focus in the Couchbase 4.5 release. Global indexes can now be optimized for in-memory operation, making them faster and, says Couchbase, lock-free. Array elements in a document can now be indexed as well, which makes the data in them searchable without them having to be extracted and turned into redundant, scalar elements.
Lack of joins was yet another yawning gap between RDBMS and NoSQL databases. But Couchbase supports real joins between document collections, allowing for referential integrity between, say, an orders collection and customers referenced in its documents. And in Couchbase 4.5, N1QL has been extended to handle new query optimizations that make joins more efficient. According to Couchbase's press release, the extensions "[increase] performance of these queries by orders of magnitude."
That's not all
There are a few more nuggets. For example, Couchbase can now make incremental updates to just parts of a document, so that the entire document need not be read or written to, making for faster i/o and requiring lower network utilization. On the security side, Couchbase 4.5 supports X.509 certificates and role-based access controls for admin permissions. There's also certified support for container platforms, specifically Docker and Red Hat OpenShift.
We are approaching the era when RDBMS and NoSQL databases may be thought of as peers, instead of adversaries. Certainly, the focus on maturity, performance and usability, as well as closing the gap on "entitlements," like joins, strong indexing and query tooling, show that at least one NoSQL vendor is serious about competing with the RDBMS incumbents.