What’s New in Version 6.5?
Couchbase Server 6.5 brings many sought-after relational capabilities to the NoSQL world. This release seeks to improve developer agility, reduce total cost of ownership, enhance manageability, and provide more enterprise-grade security and performance.
For more information about platform support changes, deprecation notifications, notable improvements, and fixed and known issues, refer to the release notes.
This release introduces Developer Preview mode, which provides the ability to enable early access to features that are still under active development. Developer Preview mode is disabled by default and needs to be enabled explicitly using the CLI or REST API. Features in this release that are enabled by Developer Preview mode are marked with (Developer Preview) in the sections that follow.
Interested to learn more about Developer Preview mode and play with these features in development? See Developer Preview Mode and Features for details.
This release brings many sought-after relational capabilities to application developers — distributed ACID transactions, advanced query capabilities like window functions, an index advisor, a cost-based optimizer, eventing enhancements, and major updates to SDKs, to name a few.
With distributed ACID transactions, application developers can simplify their application logic by relying on all-or-nothing semantics from Couchbase for durably modifying multiple documents distributed on different nodes. Replicas are immediately consistent with the transaction commit while indexes and Cross Data Center Replication (XDCR) are eventually consistent with the transaction commit. Read committed isolation is provided for concurrent readers. Durability is provided at three different levels: Replicate to the majority of the nodes; replicate to the majority and persist to disk on primary; or persist to disk on the majority of the nodes.
Couchbase transactions are architected to provide ACID guarantees at scale while ensuring there are no single points of failure or performance bottlenecks.
For more information, see Transactions.
Couchbase SDKs are bringing in major new features and updating to the latest interfaces for the platform. They support many new features available in this Server release while ensuring compatibility with older releases.
For more information, see the SDK 3 documentation.
This release packs numerous additions to N1QL and the Query Service to provide a comprehensive query development toolkit for building applications.
RDBMS ANSI standard equivalent window functions are introduced in Couchbase to take complex queries like financial and statistical reporting and simplify them with intuitive N1QL constructs.
Window functions are used to compute an aggregate or cumulative value, based on a group of objects. The objects are not grouped into a single output object — each object remains separate in the query output.
For more information, see Window Functions.
Couchbase Common Table Expression is yet another ANSI CTE equivalent to enhance the manageability of complex queries where the developer can isolate the SQL statement into an ad hoc named result set, which can be referenced as a source table in the context of a larger query.
You can use the WITH clause to create a common table expression. For more information, see WITH Clause.
Couchbase’s powerful full-text search capability can now be fully integrated with N1QL. This feature extends N1QL search functionality with fuzzy and non-exact text searches across multiple fields and any order. By enabling developers to use full-text search queries directly within a N1QL query, it eliminates the need to write complex code to process and combine the results from separate SQL and search queries.
For more information, see Search Functions.
Couchbase delivers a cost-based optimizer, deriving access patterns based on statistical data for query tuning to the NoSQL world. This feature helps developers by eliminating the time spent on tweaking a query using a rule-based optimizer to choose the most optimal execution plan.
For more information, see Cost-Based Optimizer.
Index advisor provides index suggestions to optimize query tuning and improve the performance of the queries. Running workloads are monitored and analyzed to suggest appropriate indexes for improving response times.
For more information, see ADVISE Statement.
For more information, see User-Defined Functions.
Window functions are also available in the Analytics service. While the syntax and semantics are portable between query and analytics services, the Query service runs in SMP mode while the Analytics service runs in an MPP architecture.
For more information, see Window Functions.
With scan consistency in Analytics, cluster operations like rebalance and failover will not affect the business-critical reports and dashboards that are being used to glean insights and drive business decisions.
For more informaiton, see Query Parameters.
It has also improved the stability and robustness of the underlying text indexing engine bleve and newer rest endpoints to support more manageability.
Couchbase Functions now supports native cURL that lets users propagate events to other APIs when mutation rates are low. The source bucket could be updated from inside the Function which lets developers write applications that need inline data enrichment capabilities. For an example, see source bucket mutation. Also, other bucket operations, like sub-document changes, could be performed from within the Function. By leveraging ‘From Prior’ as a feed boundary, Couchbase Functions could be undeployed, edited, and redeployed without losing a single mutation; continuity is maintained.
Buckets in Couchbase provide physical, logical, and access isolation. Starting with version 6.5, you can create up to 30 buckets in a single cluster, which bolsters the opportunities for supporting multi-tenancy and microservices-based applications with improved resource utilization.
For more information, see Create a Bucket.
As a step toward seamless migration from relational to NoSQL, collections are introduced to allow applications to structure their data by keeping similar documents together, just like tables do in relational databases. Further, related collections can be held together in a single scope. With collections and scopes, application developers will find it much easier to migrate their schemas and data to Couchbase from relational systems like Oracle and SQL Server, as well as translate their SQL queries to Couchbase N1QL. Collections and scopes can be individually access-controlled, hence also enabling many microservices and/or applications to share a single Couchbase database (bucket).
For more information, see Collections Overview.
XDCR’s advanced filtering provides the capability to build filters based on document attributes such as keys, values, and extended attributes with a N1QL-like syntax. Filters can also be modified dynamically for ongoing replication to ensure users only replicate the data relevant to their business needs at any point during the replication.
For more information, see Advanced Filtering in XDCR.
XDCR’s Quality of Service feature enables administrators to prioritize on-going replication streams over the initial replication to ensure the replications are serviced in the order of criticality. Priorities assigned will dictate the quality of service for every replication stream and enable efficient resource utilization.
For more information, see XDCR Priority.
Rebalance is now much more robust and resilient, enabling Couchbase administrators to automate management of their cluster rebalance. Some of the improvements include automatic restart of rebalance after failure, automatic rebalance after node failover, and enhanced monitoring of rebalance progress.
For more information, see Rebalance Overview.
Significant improvements are made to backup and recovery in terms of performance, storage, and scalability.
Improved rate of backup and restore is one of the most important factors in adopting Couchbase as an enterprise-grade tool. In order to improve performance, some fundamental changes have been made to the backup tool. Some of these improvements include leveraging value compression on the server, replacing the storage engine, modifying the storage format, limiting the size of the backup file, metadata isolation, etc.
This has resulted in significant improvement in various backup functionalities (such as full backup, incrementals, merge, list, etc.) as well as scalability for data sets in the range of single digit TBs. Internal tests have shown ~4x improvement compared to previous versions of backup.
Historically, backup was stored as one big file, which at times, led to the need for ~20-30% more storage compared to the size of the original data set, especially for merge operations. With the changes made to the storage engine, compression, file formats, and metadata isolation, the required storage is reduced to ~40% of the original data set.
cbbackupmgr info command is introduced to provide a detailed listing of backup files with information on the type of backup (such as full, incremental, merge, number of views, indexes, FTS indexes, indication of backup completion, etc.) in addition to the repositories and their sizes. A JSON output option is also included, which can be used for automation purposes.
For more information, see cbbackupmgr-info.
Since Couchbase Server is a completely distributed database, it takes a certain amount of time for data to be distributed across nodes. With 6.5, consistency can now be measured for backups. To attain maximum consistency, a full backup can be run, followed by small incrementals to make up for the delta. “Disk-only” mode is used where the documents persisted to the disk are backed up, which provides better consistency across vBuckets.
Unique service-specific stats are made available in the UI to assist with troubleshooting. These stats are updated with a new charting framework which enables users to completely customize them, with features such as the ability to select time ranges, sizes for display, aggregation across multiple nodes, edit, drag, drop, and more.
For more information, see Monitor with the UI.
Couchbase Server continues to extend its security capabilities to meet stringent security and regulatory compliance requirements. Node-to-node encryption adds an additional layer of security by encrypting data in transit between cluster services which are deployed across servers. This prevents potential attackers from intercepting sensitive intra-cluster traffic.
For more information, see Node-to-Node Encryption.
With group support, you can leverage existing organizational groups in your LDAP domain to control Couchbase Server access. In addition, user groups can also be configured for local domain users to better manage and control which Couchbase resources are accessed. Groups can be mapped to real-life development teams, business units, or departments.
For more information, see Authentication.
With security becoming more and more important than ever, hardening your servers and removing old or weak cipher suites is becoming a major priority for many organizations. Couchbase Server provides a consistent approach to modify TLS cipher suites and settings across services, which persists across server upgrades and restarts.
For more information, see Encryption.