This is build #1870 of Couchbase Server 2.0. Couchbase Server is a NoSQL document database for interactive web applications. It has a flexible data model, is easily scalable, provides consistent high performance and is "always-on," meaning it can serve application data 24 hours, 7 days a week. For more information about Couchbase Server 2.0, visit Couchbase Server 2.0.
The major improvements made between Beta and build #1870 include:
General Changes in Rebalance Behavior.
During rebalance, Couchbase Server now has new internal logic that will wait for data to be persisted at a new node before the new node takes responsibility for serving the data. In situations where you want a very high level of durability, this can provide you more assurance that your data can be recovered after node failures.
Querying Views during Rebalance.
If you perform queries during rebalance, this new feature will ensure that you receive the query results that you would expect from a node as if it is not being rebalanced. During node rebalance, you will get the same results you would get as if the data were on an original node and as if data were not being moved from one node to another. In other words, this new feature ensures you get query results from a new node during rebalance that are consistent with the query results you would have received from the node before rebalance started.
With this new feature, you will get the same query results before rebalance, during rebalance and after rebalance. Without this new functionality querying a view during rebalance would have provided results inconsistent with the results from a source node. With this new functionality enabled, data that is being moved from one node to another node will be incrementally added to an index available at the new node so that you get query results that are consistent with your expectations.
XDCR (Cross Data-Center Replication) Enhancements.
This includes the following features and enhancements:
Performance improvements. Performance for outbound replication from a source cluster to a destination has been improved. CPU utilization on destination clusters has been reduced for better performance.
Improved Error Handling and Logging. More information about documents and the size of documents awaiting replication now available.
UI Improvements for XDCR in the Couchbase Web Console.
The Couchbase Web Admin Console has been expanded to show the number of documents waiting to be replicated via XDCR and the total size of all documents waiting for replication. Low-level errors and statistics have been moved to a Couchbase Web Console log file to avoid information overload and confusion. Messages that are more appropriately categorized as recoverable states have been labeled warnings, not errors.
Improve and enable data flush for entire cluster via individual data buckets. Ability to disable and enable the configuration setting for safe cluster administration. For more information, see 「Couchbaseバケットの編集」.
Server logs have been split and have been provided logical naming. This makes it easier for you to spot or diagnose server issues. For more information, see 「ログとログ出力」.
New Features and Behaviour Changes in 2.0.0 build #1870
There is also now a new REST-API in Couchbase Server 2.0 where you can enable or disable flush for each data bucket in a cluster. This also enables you to flush an individual bucket in a cluster or multiple buckets on a cluster with a single REST-API command. For more information, see 「バケットのフラッシュ」.
Issues: MB-6776
Database Operations
Now provide timestamp for when a TAP queue backfill starts. The TAP backfill queue is used to send a snapshot of a vbucket to another node.
Issues: MB-6753
Couchbase Server had created new checkpoints even in the case where empty, current checkpoints were available. The server provided extraneous notifications when various changes to checkpoints ID occurred due to constant polling by XDCR. Now when an empty checkpoint is available, the server uses this checkpoint for additional replication and provide this checkpoint ID to XDCR. The server also pushes a single notification to XDCR when a checkpoint is empty.
Issues: MB-6632
Couchbase Server kept requesting to mark a group of partitions as indexable when they were already marked as indexable, or when they are already correctly marked as unindexable. This triggered redundant effort by processes. It is now fixed.
Issues: MB-6804
During XDCR replication, an incorrect cache-miss-ratio had been
displayed in Web Console, and had been returned in response to a
cbstats command. We had erroneously
incremented ep_bg_fetched
for
GET_META
background fetches. As a fix, we now
provide a separate stat for GET_META
background fetches.
Issues: MB-6628
Get-and-touch returned incorrect error messages when an error
occurs. Get-and-touch now returns ENOENT
if
key does not exist.
Issues: MB-6840
This enables users to change the disk location of an index without destroying persisted data. You can now set index_path and it will delete an existing index only and create a new disk location for use.
Issues: MB-6423
When you try to automatically failover a node, Couchbase Server will not perform the failover if there are not enough replica vBuckets in the cluster to support the failed node.
Issues: MB-6209
Querying a view during rebalance had resulted in several errors due to the way database storage files were managed and named. We now exclude opening databases that are meant to be excluded from indexing and we now synchronously open databases for indexing to resolve the problem.
Issues: MB-6612
Querying a view on a single node incorrectly returned
inconsistent_state
error if a bucket is
empty. This is corrected.
Issues: MB-6736
Provide additional XDCR information on Logs tab of Couchbase Web Console.
Issues: MB-6888
We added missing checks to state transition requests. Also erroneous error messages had occurred while the server monitored partition in pending transition. This has been corrected.
Issues: MB-6490
The collect_info logs was missing the mapreduce_errors log file. Now this log also contains mapreduce_errors.
Issues: MB-6859
Change the frequency that internal timeouts on Windows were occurring to be more efficient.
Issues: MB-6653
Node rebalance was failing when new nodes were added to the cluster. This occurred due to processes being triggered after defining partitions for indexing. The processes are now being triggered at the correct time.
Issues: MB-6706
Replication had exited with replicator_died message after multiple attempts to update. Problem was caused by using old revision numbers for new database files. Now new database files use new revision numbers, resolving the problem.
Issues: MB-6711
Sporadic failures occurred while running a unit test for testing duplicate items on disk. Test now modified to use less items.
Issues: MB-6647
Keys stored in the access log were not correctly scheduled to load, due to a broken logic for detecting duplicate items. Now keys properly load during warmup from access log.
Issues: MB-6616
Couchbase Server had returned a HTTP 404 error when a node is rebalanced and a client tried to cache a list of nodes for a bucket. Now the server sends a HTTP 302 redirect with the URL of an available node.
Issues: MB-6922
The thread responsible for persisting data in Couchbase Server had been crashing during vBucket state changes. This was caused by not handling file not found exceptions. The cause of the crashes has been fixed.
Issues: MB-6676
Check-and-set value was not returned in response to a successful delete request. Now it is returned as part of the response.
Issues: MB-6661
Cluster Operations
Server now releases returned document that is being marked
deleted. This fixes a rebalance failure where memcached crashes
on one of the nodes and rebalance exits with the error:
{mover_failed,{badmatch, known macro:
{error,closed}}}
.
Issues: MB-6806
The Couchbase REST-API has changed to enable you to change the default maximum number of buckets used in a Couchbase cluster. The maximum allowed buckets in this request is 128, however the maximum suggested number of buckets is ten per cluster. This is a safety mechanism to ensure that a cluster does not have resource and CPU overuse due to too many buckets. The following illustrates the endpoint and parameters used:
shell> curl -X -u admin:password -d maxBucketCount=6 http://ip_address:8091/internalSettings
For this request you need to provide administrative credentials for the cluster. The following HTTP request will be sent:
About to connect() to 127.0.0.1 port 8091 (#0) Trying 127.0.0.1... connected Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) Server auth using Basic with user 'Administrator' POST /internalSettings HTTP/1.1
If Couchbase Server successfully changes the bucket limit for the cluster, you will get a HTTP 200 response:
HTTP/1.1 200 OK Server: Couchbase Server 2.0.0r_501_gb614829 Pragma: no-cache Date: Wed, 31 Oct 2012 21:21:48 GMT Content-Type: application/json Content-Length: 2 Cache-Control: no-cache
If you provide an invalid number, such as 0, a negative number, or an amount over 128 buckets, you will get this error message:
["Unexpected server error, request logged."]
For more information about setting buckets per cluster via REST-API, see 「クラスタの最大バケットの設定」.
Issues: MB-5684
Automatically prevent a user from creating more than the maximum number of supported buckets in a Couchbase cluster. The default maximum is six.
Issues: MB-5684
Web Console
Provide cleaner, simplified output on error messages from XDCR replication.
Issues: MB-6763
Command-line Tools
Incorrect message had been sent in response to a cbstats vkey command. Server had returned the string 'not found' for valid request. Now correct the memcached protocol error is returned. For more information about cbstats, see 「cbstatsツール」.
Issues: MB-6751
Fixed stats vkey status for evicted keys. Stats vkey was
returning item_deleted
instead of valid for
evicted keys. This change fixes that problem.
Issues: MB-6840
cbepctl help options now show option for setting the expiry_pager, a maintenance process for removing deleted items from disk.
Issues: MB-6764
Indexing and Querying
Remove an internal setting dialog used internally by Couchbase for testing consistent views.
Issues: MB-6713
On Window platform, errors occurred trying to update a design document. This is now fixed.
Issues: MB-6653
When consistent views were enabled and rebalance was being performed, the rebalance would fail. This was due to incorrect handling of empty partitions and by accidentally performing disk cleaning before updating partitions which would not be indexed. This is fixed.
Issues: MB-6612
Cross Datacenter Replication (XDCR)
In the past we had displayed several confusing error messages and warnings for XDCR. We had provided low level information in the Couchbase Web Console that is now provided to low files to avoid overwhelming users with information. We were also reporting errors that were actually more appropriately called warnings since they were recoverable issues. We have changed those errors to warning/advisories.
Issues: MB-6934
By default, the server automatically disables flushing data from a source data bucket when XDCR replications exist for that bucket.
Issues: MB-6809
Renamed "XDCR replication queue" in summary section to "XDCR docs to replicate" for clarity.
Issues: MB-6924
Replication via XDCR had experienced performance degradation
when a data bucket contained a higher ratio of expired items.
This has been fixed by ignoring the expiration time set for an
item, SET_WITH_META
.
Issues: MB-6662
We have added 3 new outbound operation stats, namely, 1) data replicated, which is amount of data XDCR have replicated to the remote data center through inter- cluster network; 2) active vb replications, which shows the number of ongoing active replications to the remote clusters; 3) waiting vb replications, which is the number of vb replications in the waiting pool to wait for turn to start replication. These stats will be useful for performance monitoring and diagnosis.
Issues: MB-6919
Couchbase Server was dropping connections from client libraries too quickly when a node in a cluster was being rebalanced. Now there will be more delay until a connection is dropped.
Issues: MB-5406
By default, the server automatically disables flushing data from a source data bucket when XDCR replications exist for that bucket.
Issues: MB-6809
Performance
Increase maximum number of retries to open the database file.
Issues: MB-6844
Prioritize flushing pending vbuckets over regular vbuckets. This is a performance improvement used for rebalancing buckets that have no views or design docs when consistent view mode is enabled.
Issues: MB-6796
Couchbase Server had experienced a one second delay to mark empty and closed checkpoints on a persistence queue. Performance improvements made to eliminate delay.
Issues: MB-6714
Known Issues in 2.0.0 build #1870
Installation and Upgrade
It is not possible to perform an upgrade between Couchbase Server 2.0 pre-releases including beta, or to perform an offline upgrade from Couchbase Server 1.8 to a pre-release or beta of Couchbase Server 2.0. To upgrade between these versions use cbbackup to backup your data, delete the existing installation, install the new version, and restore the stored data.
For more information, see 「バックアップとリストア」, 付録B Couchbase Serverのアンインストール.
Documents identified as Non-JSON stored within Couchbase Server may appear as binary, or text-encoded binary data within the UI.
Issues: MB-7069
During periods of moderate CPU load on the Couchbase Server
cluster, you may see warnings that IP address seems to
have changed. Unable to listen to node X.X.X.X
.
Command-line Tools
The cbbackup, cbrestore,
and cbtransfer command-line tools require the
zlib
module for Python to have been
installed. If Python was installed from source, you must have
enabled zlib
using the
--with-zlib
option during the build process.
Issues: MB-7256
For more information, see 「バックアップとリストア」, 付録B Couchbase Serverのアンインストール.