Release Notes
Couchbase Server 4.5 leaps forward with simplified transitioning from RDBMS to NoSQL, advanced database performance and scale, and enhanced management and security controls on your data. Take a look at What’s new for a list of new features and improvements that are available in this release.
Release 4.5.1
Couchbase Server 4.5.1, released in October 2016, is the first maintenance release in the 4.5.x series for Couchbase Server.
Behavior Changes
This section lists the behavior changes in the product compared to the previous release.
Path expression in the FROM clause is no longer supported. Any queries that use the path expression in the FROM clause will fail. For example, the following query will fail:
SELECT <field2> FROM <bucket1>.<field1>;
You must rewrite the queries using the path expression in the projection instead. For example, rewrite the query above as follows:
SELECT <field1>.<field2> FROM <bucket1>;
Known Issues
This list covers some of the known problems with Couchbase Server 4.5.1. Please read this before reporting any new bugs, and watch for updates as new bugs are discovered.
Issue | Description |
---|---|
The
For more information about the Merge functionality, see cbbackupmgr merge. Workaround: In the interim, the recommendation is to perform a full backup if you experience any of the above scenarios. This will lead to longer backup times than performing incremental backups, but will avoid potential data corruption due to to the aforementioned issue. |
|
In the case of concurrent sub-document API operations from multiple clients, Couchbase Server does not honor the atomicity. This can result in one update overwriting the previous update, even though the previous update was successful as far as the client is concerned. Workaround: For use cases where sub-document API is being used and are covered by an Enterprise Edition license, contact Couchbase Support. For all other cases, Couchbase recommends that you do not use the sub-document API feature for concurrent updates. |
|
During rolling upgrade from Couchbase 4.0 to 4.5, if the query node is upgraded to 4.5 and the index node is on 4.0, Workaround: Upgrade the index node to 4.5 first before query nodes. |
|
Couchbase Server 4.5.x is not supported on the macOS Sierra (OS X 10.12) platform. Workaround: We are working on a fix and recommend that you do not upgrade the OS X version to macOS Sierra until the patch with the fix is available. |
|
During the source cluster rebalancing, in some cases when a node is removed, the outbound XDCR mutation statistics show a negative number. |
|
XDCR does not send all the mutations when the target cluster is rebalancing. Workaround: Wait for a few minutes (3-4mins) after the rebalance operation completes for XDCR to pick up from the last checkpoint.. |
|
A rebalance failure due to DCP disconnection can occur on an idle DCP connection if no-op messages cannot be exchanged due to network congestion and/or heavy CPU usage. |
|
Online upgrade from versions 2.x or 3.x to 4.5.x may fail. Workaround: Upgrade to version 4.0/4.1 first, and then upgrade to the latest 4.5.x version. For more information, see Upgrade Matrix. |
|
An error is thrown when trying to create more than 10 full-text indexes. Workaround: Reduce the setting |
Fixed Issues
Issue | Description |
---|---|
Windows 10 Anniversary Edition Developer Preview for Couchbase Server 4.5.1 is available. Get the Windows 10 Anniversary Edition Developer Preview build from the Downloads page. |
Issue | Description |
---|---|
Support for Amazon Linux Version 2016.03 has been added. |
|
Certain types of disk write failures did not trigger the correct alert and the |
|
Memory leak in XDCR when replication streams are restarted. |
|
Auto-compaction settings for indexes could not be altered after changing any GSI settings. |
|
Pausing and resuming an existing XDCR replication caused XDCR to panic. |
|
Memory leak occurred in Cluster Manager when query service was enabled. |
|
The collection operators FIRST, ARRAY, ANY, EVERY, and ANY AND EVERY did not work with covering indexes if there was a condition in the collection operator. |
|
When XDCR getMeta receives an error that is not a network timeout type, it repairs the network connection and continues in a loop to read from the client until a timeout occurs after 2 minutes. In this window, XDCR replication appeared stuck. |
|
Data service (memcached): Increment/decrement operation could hang when used on buckets with full eviction mode. |
|
If a value being inserting using N1QL exceeded MAXINT64, the value was truncated. |
|
Although |
|
Memory optimized indexes showed varying fragmentation levels in the UI. |
|
ForestDB iterator returned |
|
During index selection, we compare the expression in the index key with the expression in the query predicate for equivalence. NULL was not compared equivalent to NULL, and MISSING was not compared equivalent to MISSING. |
|
Indexer service when using memory optimized indexes did not correctly honour the memory quota and kept consuming memory causing out of memory situations for the operating system. |
|
Updating the administrator password with couchbase-cli removed the read-only user account. |
|
N1QL failed to recognize the DistinctScan operator when using DISTINCT in a prepared statement. |
|
The query engine internally represents all numbers as float64. This lead to rounding errors at the margins. In particular, with large CAS values, the rounding errors caused CAS mismatch errors. |
|
Bucket level auto-compaction settings based on size did not work properly when the document size reached or exceeded the configured size thresholds. |
|
During secondary indexes client instantiation, a race condition while waiting for multiple indexes nodes resulted in the index service crashing. |
|
Canceling the index service request or a network write error caused the indexer to crash. |
|
Race condition in the index service caused it to hang while going to a paused state when recovery was in progress. |
|
Double-free causes segmentation fault in ForestDB. |
|
Re-inserting documents to same offset caused ForestDB to assert. |
|
The compaction daemon incorrectly passed the |
|
When two threads are operating on one bucket, with one thread adding documents in batches and the second thread using an iterator to read and validate every document key, the iterator skipped some documents that should have been returned. |
|
When a subquery had the aggregate function |
|
Attempting to delete a bucket when there are non-zero number of items pending to be sent (DCP backfill) caused Memcached to abort. |
|
The |
|
Security upgrade for cURL to version 7.49.1. |
|
The DELETE statement with RETURNING clause caused the query engine to panic. |
|
Following a failed backup, restarting the backup with the |
|
When using DISTINCT with RAW and ORDER BY, the results were not ordered. |
|
Data Service would memory leak or even crash if a DCP producer was closed when backfills were still present. |
|
An error occurs when invoking the |
|
When restoring a lot of backups, |
|
Different query results were returned depending on whether an index was present or not. |
|
View engine failed with DCP start sequence number greater than end sequence number error and failed to roll back. This caused view engine indexing issues. |
|
XDCR would temporarily get stuck in a loop when a node, which was previously removed from a cluster, rejoined the cluster. This issue was observed when the cluster contained multiple Couchbase Server versions and no mutations had previously been replicated. |
|
Stopping and restarting V1 (CAPI) XDCR caused XDCR to fail. |
|
Empty IN and WITHIN predicates caused queries to time-out. |
|
An Index service crash was caused by a race condition when the indexer was trying to roll back and was using standard global indexes. |
|
When the character "!" was used instead of "NOT" in N1QL, incorrect results were produced instead of throwing an error. |
|
Malformed or unknown roles error was thrown when using CLI to configure RBAC for administrators. |
|
Some FIRST and ARRAY expressions in the SELECT statement were not recognized as aggregate expressions. |
|
TLS configuration on the port 11207 was lost when the data service was restarted. |
|
On Windows platform, allocating memory for the document key could result in a stack overflow error when the number of documents was large. |
|
When a document containing large array was indexed and the value of max_array_seckey_size was set to a very small value, a mutation in the document array caused the indexer to panic. |
|
More than one XDCR replication instance might start after replication is resumed, resulting in incorrect functional behavior and performance impact. |
|
The query |
|
The Couchbase Web Console and REST API over HTTPS did not work for center web clients such as Chrome 50 or higher that send elliptic curve X25519 requests for TLS. |
|
Query with encoded plan erroneously set the wrong plan in prepared statement cache. |
|
Executing Couchbase log collection from the UI would hang on SUSE 11. |
|
Query execution time was higher when the encoded plan was sent along with the name on a prepared query. |
|
Rebalance would fail or be slow when re-balancing large buckets. This has been fixed to make rebalance more reliable and performant. |
|
Data service performance has been improved by decreasing the default number of concurrent compactions to 1. |
For the full list of issues fixed in release 4.5.1, check the following JIRA query.
N1QL Enhancements
Issue | Description |
---|---|
Added a new N1QL string function |
|
Performance improvement for DISTINCT operator processing. |
|
The UPDATE statement is enhanced to evaluate functions and expressions in the FOR-clause. Its syntax is enhanced to support multiple nested FOR clauses to access and update fields in nested arrays. |
|
When constructing objects in a N1QL query, the names of fields in name-value pairs can be dynamically generated. |
|
When constructing objects in a N1QL query, the names of fields in name-value pairs is made optional. For example, the following query is valid in 4.5.1 and implicitly assigns names "type" and "name" for respective values: SELECT {type, name} FROM `travel-sample` LIMIT 2; |
|
Prior to 4.5.1, many expressions and predicates that can use an index did not do so. This optimization fixes this issue. For example, the type of queries that can benefit from this are : CREATE INDEX idx_b ON default(b); EXPLAIN SELECT * FROM default WHERE 1 IN b; CREATE INDEX idx_and ON default(a = 5 AND b = 6); EXPLAIN SELECT * FROM default WHERE a = 5 AND b = 6; |
|
Added a new N1QL array function |
|
Performance optimization for COUNT() queries with LIKE "prefix%". When applicable, N1QL uses the IndexCountScan operator and pushes down the count to indexer. |
|
This enhancement enables queries with LIKE predicates to use an index that is defined with a covering predicate. For example, if index is created with LIKE ‘string1%’ , then queries with LIKE ‘string1string2%’ will use the index. |
|
A new query parameter pretty is added to enable/disable pretty formatting of query result. When set to false, the white space characters are stripped from the query results, which reduces the number of bytes transferred over the network. The performance benefits are significantly visible with large result sets. |
|
Performance optimization to push down LIMIT to the indexes, resulting in fewer rows emitted from indexes, faster query filtering, and quicker stop. |
For the complete list of N1QL enhancement in this release, check the following JIRA query.
Release 4.5.0
Couchbase Server 4.5 was released in June 2016.
The version 4.5 of Couchbase Server includes new features and behavior changes. The following sections list the behavior changes, fixed issues, known issues, and deprecated items.
Behavior Changes
Here are the behavior changes in the product, compared to the previous release:
-
Disabling scientific notation for integers. With this change, large integers are no longer displayed in the scientific notation in N1QL. For example, large numbers will no longer be reported in the scientific format:
"Column1": 9.223372036854776e+18
. Instead, Couchbase Server will return"Column1": 9223372036854775807
. Details for the change can be found in MB-14720. -
PENDING
index state is now represented asDEFERRED
andBUILDING
. With this change, global secondary indexes no longer display aPENDING
state under the status inSYSTEM:INDEXES
. Instead, global secondary indexes that are actively being built displayBUILDING
and global secondary indexes that are created with theDEFER_BUILD
option displayDEFERRED
for the status attribute in theSYSTEM:INDEXES
output in N1QL. Details for the change can be found in MB-14679. -
When the GROUP BY clause is present in a N1QL query, it is not valid to have any fields in SELECT <
projection_list
> expressions that are either not referred in GROUP BY expressions, or not in the aggregate functions in the <projection_list
>. Further, the GROUP BY clause is required (on the non-aggregated field) if the <projection_list
> has some fields aggregated and some not. This correct GROUP BY behavior is enforced, because each result row might otherwise have more than one possible value for the ungrouped columns/fields. If a query doesn’t follow this rule, error code 4210 with message "Expression must be a group key or aggregate: .... " is thrown. -
The new backup tool is called
cbbackupmgr
, and it is not backward compatible with older backup files from previous releases. If you want to take a backup of a previous release and then load and restore it in Couchbase Server 4.5, you should use the oldcbbackup
tool (not the newcbbackupmgr
). After you restore the data into version 4.5, you can start using thecbbackupmgr
for subsequent backup/restore operations to other Couchbase Server 4.5 nodes. -
With the new
cbbackupmgr
tool, if you’re trying to restore a SASL protected bucket, then you need to first create a bucket with a SASL password on the target cluster before you run the restore operation. -
New network ports:
Table 3. New Network Ports in Couchbase Server 4.5 Port Description Node-to-node Node-to-client Cluster administration XDCR v1 (CAPI) XDCR v2 (XMEM) 8094
External FTS HTTP port
Yes
Yes
Yes
No
No
Known Issues
This list covers some of the known problems with Couchbase Server 4.5.0. Please read this before reporting any new bugs, and watch for updates as new bugs are discovered.
Issue |
Description |
The
For more information about the Merge functionality, see cbbackupmgr merge. Workaround: In the interim, the recommendation is to perform a full backup if you experience any of the above scenarios. This will lead to longer backup times than performing incremental backups, but will avoid potential data corruption due to to the aforementioned issue. |
|
In the case of concurrent sub-document API operations from multiple clients, Couchbase Server does not honor the atomicity. This can result in one update overwriting the previous update, even though the previous update was successful as far as the client is concerned. Workaround: For use cases where sub-document API is being used and are covered by an Enterprise Edition license, contact Couchbase Support. For all other cases, Couchbase recommends that you do not use the sub-document API feature for concurrent updates. |
|
Couchbase Server 4.5 is not supported on Windows 10 Anniversary Update. Updated October 18, 2016: Windows 10 Anniversary Edition Developer Preview for Couchbase Server 4.5.1 is now available. Get the Windows 10 Anniversary Edition Developer Preview build from the Downloads page. |
|
Couchbase Server 4.5 is not supported on the macOS Sierra (OS X 10.12) platform. We are working on a fix and recommend that you do not upgrade the OS X version to macOS Sierra until the patch with the fix is available. |
|
When backup fails and you restart the backup with the Workaround: When restarting backup, use the |
|
After a hard failover, you may not be able to re-add a node with data service because the old vBucket files were not deleted. Workaround: Restart Couchbase Server on the removed node before adding it back to the cluster. |
|
Different query results are returned depending on whether the index is present or not. Workaround : This happens when the UNION/INTERSECT is within the subquery of the FROM clause when one branch is a covering scan and other is not. The workaround is to create covered indexes for both the branches. |
|
A rebalance failure due to DCP disconnection can occur on an idle DCP connection if no-op messages cannot be exchanged due to network congestion and/or heavy CPU usage. |
|
Malformed or unknown roles seen when using the CLI. Workaround: Retry your command in the CLI using the following role strings - admin, ro_admin, cluster_admin, replication_admin, bucket_admin |
|
When using RAW in N1QL query with the ORDER BY clause, the output result set is not sorted. Workaround:
|
|
Online upgrade from 2.x or 3.x versions to 4.5 may fail. Workaround: Upgrade to version 4.0/4.1 first, and then upgrade to the latest 4.5. For more information, see the supported Upgrade Matrix. |
|
The Server Web Console UI and REST API over HTTPS doesn’t work for center web clients like Chrome 50 or higher that send elliptic curve X25519 requests for TLS. Workaround: Use other browsers that do not use X25519 such as Firefox, Internet Explorer, or Chrome (version 49 or below). |
|
Backing up a cluster when rebalance is in progress causes an error. Workaround: Wait for the rebalance to complete before taking a backup. |
|
Rebalancing during indexing with 5 or more indexes and replicas is observed to be slow. Workaround: Allow sufficient time for rebalance to complete. You may want to consider deleting indexes before rebalancing if that is an option. |
|
On SuSE 11, log collection from the UI hangs. Workaround: Run |
|
Idle nodes with the search service were observed to suddenly consume 100% CPU. Workaround: This behavior typically occurs every 8 hours and the CPU usage typically returns to normal levels in a few minutes. Consider adjusting the ForestDB compaction settings to trigger more frequent compactions or run compactions when the cluster is idle. |
|
An error is thrown when trying to create more than 10 full text indexes. Workaround: Try reducing the setting |
Fixed Issues
Issue |
Description |
Pauses in creating and closing a DCP stream were observed even if there were just a few mutations. |
|
Index path was case sensitive and caused trouble when communicating with the indexer. |
|
On a multi-node cluster, two cbq shell sessions connected to distinct nodes could have a window where index metadata was not fully synchronized. |
|
When XDCR replication experiences issues with connections to target, it recovers by dropping the existing connection and setting up new connections.
Sometimes the attempt to set up new connections failed with " |
|
When adding a node to the cluster, |
|
When using |
|
During a delta node recovery, rebalance did not complete if the nodes were down. |
|
ForestDB would hang during initial index build. |
|
ForestDB files were not deleted from disk if index drop was executed when index building was in progress. |
|
When using GSI, the interactive query shell, cbq, timed out if the result was not returned within 2 minutes. Although the index was successfully created, the error message is unclear. |
|
Starting Couchbase Server on an undersized AWS instance can result in the server continually crashing and restarting. |
|
Rebalancing failed when replica indexes were enabled on Views as the data service was returning an incorrect high sequence number to the View engine. |
|
View queries with the options reduce and group set to true when parameterized by a list of keys that are not in ascending order can produce results that are not properly reduced. |
|
Querying a view with a reduce function based on a subset of partitions resulted in a massive memory usage. |
|
When view building was in progress, and the view is dropped, indexing still continued to happen consuming CPU resources. |
For the full list of issues, check the following JIRA query.
Deprecated Items
The following functionality is deprecated, will be deprecated or is unsupported.
Function | Description |
---|---|
|
The Also, use the |
Server-side moxi proxy is deprecated in 4.5 |
Use Couchbase client SDKs or client-side moxi in your applications. |
CRAM-MD5 for bucket authentication |
Use SCRAM protocol supporting clients for bucket authentication in Couchbase Server version 4.5. SCRAM protocol for bucket authentication will first be introduced in Java, followed by other SDK clients. |
Deprecate XDCR API from /internalSettings REST endpoint in 4.5 |
/Settings/replications REST endpoint will be available for all replication settings and provides the same functionality. |
N1QL: Deprecated the use of path-expressions in |
FROM and JOIN clauses should use only keyspaces. Paths can be used for expressions in other clauses, operators, projections, and so on. For example: SELECT count(*) FROM `travel-sample`.schedule; can be rewritten as: SELECT count(*) FROM `travel-sample` WHERE schedule IS NOT MISSING; |
CAPI based XDCR is deprecated. |
CAPI based XDCR is deprecated and will be removed in a future version of Couchbase Server. Note that the support for Elasticsearch Plugin has not been removed. However, the Elasticsearch Plugin may be modified in the future to use an alternative connection method such as DCP or XMEM XDCR (XDCR v2). |
Couchbase Enterprise Backup and Restore tool |
The tools, |
Unsupported Platforms
The following platforms are no longer supported:
-
Microsoft Windows 32-bit OS
-
Mac OS 10.8