Today, we’re very excited to pull back the curtain and announce Couchbase Server 4.5 Developer Preview (DP). This release is an early developer milestone that comes with many exciting features for more efficient querying, advanced data access, powerful indexing and more comprehensive administration.
So, what’s new in the 4.5 Developer Preview?
Let’s take a look at brief overview of what’s new in these freshly released bits –
Do you dream about writing queries and browsing your data within the Couchbase admin web console? In 4.5 DP, the query workbench allows developers and administrators to execute ad-hoc queries directly from the admin web console and interact with the system. You can also browse data models with automatically inferred schemas. Learn more about the integrated query editor here.
Extended Join Syntax
Do you need to write JOINs commutatively? With extended join syntax in Couchbase 4.5 DP, the new JOIN ON KEY … FOR keyword allows developers to specify JOIN operations that can use the left or the right keyspace for the JOIN. This extended syntax in N1QL, makes better use of indexes to perform the JOIN operation faster across the two sides, and substantially lowers JOIN latencies. Learn more about extended join syntax here.
Consider the following N1QL example on beer-sample data:
SELECT * FROM `beer-sample` beer JOIN `beer-sample` brewery ON KEYS beer.brewery_id WHERE beer.type="beer" AND brewery.type="brewery" AND brewery.state="California";
This query cannot use any index on brewery to directly access breweries in California because “brewery” is on the RHS.
Now, if a new index is created on the brewery_id attribute like:
CREATE INDEX beer_brewery_id ON `beer-sample`(brewery_id) WHERE type="beer";
Using the new index joins, the same query can be written as :
SELECT * FROM `beer-sample` brewery JOIN `beer-sample` beer ON KEY beer.brewery_id FOR brewery WHERE beer.type="beer" AND brewery.type="brewery" AND brewery.state="California";
Integrated Full Text Search
Does your application need to search data stored in Couchbase? Search is a key technology when it comes to search documents that contain human-language text information. Couchbase Server 4.5 DP includes a sneak preview of full text search, fully integrated as a Couchbase service for the first time. Built on the popular open-source project Bleve, Couchbase Full Text Search adds support for a variety of query types including match, phrase, fuzzy, prefix, regex, range queries and more, as well as faceting, scoring, and highlighting. You can learn more about integrated full-text search in Couchbase Server here.
Partial updates, reads, and more
Want to selectively update only a part of a JSON document in your application? With 4.5 DP, developers now have extended APIs to operate only on parts of the document without having to send the entire document back and forth between client and server. The result – better performance and efficiency in the network IO path, especially when working with large documents. Check out our documentation for further details on partial document updates here.
Memory-Optimized Global Indexes
Do you need faster indexes? Couchbase 4.5 DP introduces in-memory global indexes, a new memory-optimized storage option that provides much faster indexing by performing index maintenance completely in memory. This new option for global indexes supplements the regular storage option that has been available since Couchbase Server 4.0. Memory-optimized indexes provide a fresh index that is up to date even under aggressive mutation rates. Compared to the earlier global index storage option, it can process mutations (INSERT/UPDATE/DELETE operations) at a much faster pace and provide much lower latency queries. You can learn more about memory-optimized global indexes here.
Do you have documents with embedded arrays? NoSQL gives developers flexibility to experiment with newer ways of modeling data, and developers commonly embed arrays in their documents. While N1QL (SQL for JSON) supports array processing within queries, it’s now possible to create an index of array elements ranging from plain scalar values to complex arrays or JSON objects nested deeper in the array, and further improve N1QL query performance. This is a huge leap from the previous versions where secondary indexes could only be created and subsequently queried on whole arrays. You can learn more about array indexing in Couchbase 4.5 DP here.
CREATE INDEX isched
ON `travel-sample` ( DISTINCT ARRAY v.day FOR v IN schedule END )
WHERE type = "route";
WHERE type = "route"
AND ANY v IN schedule SATISFIES v.day = 3 END;
Query Profiling and Monitoring
Do you want to know what are your top N slow queries in the system? Couchbase Server 4.5 DP introduces a new set of system catalogs and APIs for monitoring the operation of individual queries and query service nodes. Using these APIs, Administrators can now monitor active queries and connections as well as profile queries to identify and diagnose performance issues. Learn more about query profiling and monitoring here.
SELECT * FROM system:active_requests;
SELECT * FROM system:completed_requests;
SELECT * FROM system:prepareds;
Enterprise Grade Backup and Restore
Do you want to backup and restore large datasets fast? Couchbase Server 4.5 provides a new enterprise backup and restore tool that can backup larger datasets with significantly higher performance than before. The newly engineered, scalable, high-performance backup and restore tool allows Couchbase Server to provide faster and more scalable recovery options to better integrate with disaster recovery planning. Learn more about enterprise grade backup and restore tool here.
Do you need to secure your client-server and cross datacenter communications? With X.509 certificates, Couchbase Server strongly encrypts client-server communications and cross datacenter replication. You can generate and load certificates from any CA authority that you choose, and use those certificates in Couchbase to encrypt on-the-wire communication and establish strong trust between client-and-server, or between clusters. Learn more about X.509 certificates in Couchbase here.
That’s not all. Couchbase Server 4.5 DP also added several other enhancements. Some of the notable ones in the developer preview release are:
- Support for Debian 8 Platform
- N1QL enhancements such as array insert function, object add, put, and remove functions, and more. See Other N1QL Enhancements for details.
- Simplified administration for large node counts (>100 node clusters).
So, how do I get my hands on 4.5 DP?
Remember this before you take the plunge: This is a Developer Preview version of Couchbase Server 4.5 and is intended for development purposes only. This release is not supported in production. We consider Developer Preview releases to have some rough edges and bugs. Couchbase Server 4.5 is still under active development, which means that it may change significantly before the final GA release.
There are many ways to learn more about the newest developer preview release of Couchbase –
- If you want to jump right in, you can download the developer preview from our downloads page.
- If you’re a docker fan, you can even spin-up Couchbase 4.5 DP in a docker container from docker hub.
- Check out our documentation for the developer preview release.
- Check out the release notes.
- If you are looking to develop in Java, .NET, Node.js, or other languages with native SDKs, download the latest SDKs version under the “client libraries” section of the downloads page.
Visit our Couchbase Server 4.5 DP page for more details.