What’s New in Version 7.1
Couchbase is the modern database for enterprise applications. Couchbase Server 7.1 combines the strengths of relational databases with the flexibility, performance, and scale of Couchbase.
For information about platform support changes, deprecation notifications, notable improvements, and fixed and known issues, refer to the Release Notes.
This section describes the new features and enhancements in this release. See also Features Added in 7.1.2, below.
Prior to Couchbase Server Version 7.1, Analytics Service data was not replicated. This meant that when an Analytics node failed over, the Analytics Service stopped working cluster-wide. If the failed-over Analytics node was then recovered, data ingestion had to begin again from scratch.
Analytics shadow data may now be replicated up to 3 times. When replicas exist, and an Analytics node fails over, the Analytics Service continues to work: one of the replicas is promoted to serve the shadow data stored on the failed over node. If the failed-over Analytics node is then recovered, the shadow data on the recovered node is updated from the promoted replica.
Analytics replicas can be managed using the user interface, the
setting-analytics command line tool, or the Analytics Settings REST API.
For further details, refer to General Settings.
Analytics replicas can also be monitored using the Analytics Cluster Status REST API. Refer to Cluster Status.
Analytics now supports Analytics views, which are virtual Analytics collections derived from actual stored Analytics collections. Analytics views might be used to present a subset of the stored data, or to present a join or other transformation of stored data for some particular purpose. Queries may operate on Analytics views in exactly the same way as they do on real stored data.
Analytics also supports tabular Analytics views, a type of view that presents data in the form of a table with uniform rows and columns and with a well-defined schema. Tabular views enable Analytics to interact with software tools that are designed for relational databases, such as Tableau.
For further details on Analytics views and tabular Analytics views, refer to Analytics Views.
The new Tableau Connector provides integration between Couchbase Analytics tabular views and the Tableau interactive data visualization platform. Refer to Couchbase Tableau Connector.
Analytics now provides array indexes, which enable you to index values within an array, or fields within an object nested in an array. In Analytics, array indexes are not meant to serve as covering indexes. Instead, array indexes are simply meant to accelerate queries involving multi-valued fields. For further details, refer to Using Indexes.
The data definition language has been extended to support the creating and dropping of array indexes. Refer to Data Definition Language (DDL).
Prior to Couchbase Server Version 7.1, the cost-based optimizer was unable to rewrite queries to use the optimal join order. Joins were performed in the order in which they are specified in the query, and no reordering of joins was considered.
The cost-based optimizer may now consider different join orders, and can choose the optimal join order based on cost information. This is the default behavior when the cost-based optimizer is active and the optimizer statistics are up-to-date. Refer to Cost-Based Optimizer.
You can use an optimizer hint, if required, to over-ride the cost-based optimizer and specify that the query should use the join order as written. Refer to Query Block Hints.
You can now include optimizer hints within queries to supply directives to the optimizer. Optimizer hints request that the optimizer should consider specific indexes, join methods, join ordering, and so on, when creating the plan for a query. This may be useful in situations where the optimizer is not able to come up with the preferred plan, due to lack of optimizer statistics, high level of skew in data, data correlations, and so on.
You can supply hints to the operator within a specially-formatted hint comment, similar to the type of hint comment found in many relational databases. Many optimizer hints have legacy equivalents using the USE clause. For further details, refer to Optimizer Hints.
Prior to Couchbase Server Version 7.1, a Couchbase-Server cluster could maintain at most one root certificate: all nodes and all clients were obliged to rely on this certificate’s authority. From version 7.1, Couchbase Server permits multiple root certificates to be maintained in a trust store for the cluster. This allows an individual node either to use a CA that is also used by one or more other nodes; or to use a CA that is used by no other node. This procedure may be used during CA certificate rotation: a new CA is uploaded, node certificates are changed one by one, and finally, the old CA is removed.
Couchbase Server additionally uses its list of trusted certificates to verify:
Client certificates (when client certificate authentication is enabled).
The identities of cluster nodes (when node-to-node encryption is enabled).
The identities of nodes that join the cluster (when the server has been provisioned with certificates).
The identity of LDAP servers (when TLS has been turned on, in the LDAP settings).
For more information, see Using Multiple Root Certificates.
Note that prior to Couchbase Server Version 7.1, node-to-node encryption, which is managed by means of the Couchbase CLI, needed to be disabled before management of either root or intermediate certificates could be performed. This restriction is lifted in version 7.1: therefore, root and intermediate certificates can now be managed while node-to-node encryption is enabled.
Prior to Couchbase Server Version 7.1, running Functions under the Eventing Service required admin permissions of either "Full Admin" or "Full Eventing Admin".
This limiting restriction is lifted in version 7.1. Now any user can securely create or manage Eventing Functions provided they have proper RBAC permissions configured.
Use of encrypted private keys is now supported for certificate management.
In version 7.1, Couchbase Server supports PKCS #1 and PKCS #8 — in each case, only for use with private keys:
PKCS #1 can be used for unencrypted private keys only.
PKCS #8 can be used for both unencrypted and encrypted private keys: note that the user-specified
EncryptedPrivateKeyInfomust use PKCS #5 v2 algorithms.
If a node-certificate to be loaded is associated with an encrypted private key, a procedure can be defined to allow Couchbase Server to access and use the key’s passphrase, when use of the key is required: the passphrase can be registered by means of a JSON object. For information, see JSON Passphrase Registration.
System events are generated to record significant occurrences on the cluster. Events are provided for the Cluster Manager, the Data Service, the Index Service, the Search Service, the Eventing Service, the Backup Service, and the Analytics Service. Events are also generated for XDCR, security, and Views.
Each event is provided as a JSON document containing a number of key-value pairs: some key-value pairs are included in all system events, others are specific to the service for which the event is generated. Each key-value pair provides definitive information on the event.
For detailed information, see System Events.
New roles are provided for the administration of Sync Gateway, especially in the context of Couchbase Capella. These roles are listed at Roles.
TLS 1.3 cipher-suites can now be used by all services; and by the Cluster Manager, XDCR, and Views. For information, see On the Wire Security.
XDCR checkpointing is now entirely persistent through topology-changes on the source cluster. This provides improved performance when failover and rebalance occur on the source cluster.
The new Magma Storage Engine has been added to 7.1 as an Enterprise Edition feature, allowing for higher performance with very large datasets. Magma is a disk-based engine, so is highly suited to datasets that will not fit in available memory. You can find more details on Magma in Storage Engines.
The Plasma Storage Engine has been enhanced, with per page Bloom filters and in-memory compression. For information, see Plasma Memory Enhancements.
Automatic failover can now fail over more than three nodes concurrently: this has permitted the deprecation of pre-7.1 interfaces that were specific to triggering auto-failover for server groups. Consequently, in order now to ensure successful auto-failover of a server group, the maximum count for auto-failover must be established by the administrator as a value equal to or greater than the number of nodes in the server group.
In 7.1, automatic failover of the Index Service is supported. Improvements have also been made to rebalancing algorithms, so that active buckets, services, and replicas will be spread across different server groups, even when server groups are unequal.
- Scope Hierarchy Support
- N1QL Support
- UI Support
A number of improvements have been made to Full-Text Search:
- Croatian Language Support
The FTS engine now supports the Croatian language for search-term input.
- Improved Search in the UI
The FTS UI will now accept complex full text search terms as well as basic search strings.
- File-Based Rebalance in FTS
Prior to version 7.1, FTS index partitions were rebuilt from scratch on each node during rebalance operations. Under version 7.1, the index partition files are copied to the nodes, allowing for faster rebalancing. File-based rebalancing can be enabled and disabled through a REST-API call described in the Disable File Transfer Balance API call document.
- Increase in the Number of Full-Text Indexes Supported
The Search Service now supports up to 500 index partitions per cluster.
This is partially based on improvements made in 7.0.3, whereby Search indexes may use up to 90% less disk space. For the potential savings to take effect, the index will need to be rebuilt; or at least will need to ingest data for the segments to be merged and rebuilt on the disk.
The Index Service now provides:
- Smart Batching
Allows the rebuilding of indexes, during rebalance, to be maintained at an optimal performance-level. For information, see Smart Batching.
- Array Flattening
Whereby the elements of arrays can be more efficiently indexed. See Format of Query Predicate.
- Indexing documents with Missing Key Fields
Prior to version 7.1.2, documents that did not hold a field given as part of an index definition where not included in index.
Couchbase 7.1.2+ will include these documents if the optional
INCLUDE MISSINGclause is used when the index is defined.
See the Creating Indexes guide for more information.
- Direct Backup to Google Cloud Platform (GCP) Cloud Storage
The cbbackupmr CLI and the Backup Service now supports direct backup to GCP cloud storage. See cbbackupmgr cloud.
- Resume option for cbbackupmgr restore
The --resume option for cbbackupmgr restore allows you to resume a restore that has failed due to a temporary environmental issue. See cbbackupmgr restore.
- [GA in 7.1.2] Direct Backup to Azure Blob Containers
The cbbackupmgr CLI direct backup to Azure blob containers is available for Developer Preview in 7.1 (GA in 7.1.2). See cbbackupmgr cloud.
- [Developer Preview] Encrypted Backups
Encrypted backups is available for Developer Preview in 7.1 with both cbbackupmgr CLI and the Backup Service. See cbbackupmgr encryption.
- [Deprecation Reminder] cbbackup and cbrestore
The cbbackup and cbrestore utilities have been deprecated for the Community Edition (CE) since 7.0, and they will be removed in the future. (For the Enterprise Edition, cbbackup and cbrestore have been deprecated since 5.0.) The cbbackupmgr CLI can be used on both CE and EE.
The following features have been added in 7.1.2.
The Search, Eventing, and Analytics Services now support the Magma storage engine. See Storage Engines.
The Search Service now supports a Hebrew analyzer. See Understanding Analyzers.
A REST API is now provided to ensure that only nodes with conformant FQDN and CIDR patterns can be added to the cluster. See Restrict Node-Addition.
A user’s password can now be changed by means of the REST API without roles needing to be specified. See Create a Local User and Assign Roles.
The Search Service now supports higher dimensional spatial structures via GeoJSON, for both query requests and documents. See Geospatial Queries.
The Index Service can now optionally create indexes on missing leading keys. See Index Key Attributes.
Couchbase Server now provides configurable alerts, to be triggered when memory thresholds are exceeded. See Setting Alerts.
The Eventing Services now allows multiple collections to be listened to. See Eventing Keyspaces.