This is build #1941 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 build #1870 and build #1941 are described below:
New Features and Behaviour Changes in 2.0.0 #1941
The default node quota percentage has been reduced from 80% to 60% to provide capacity in the operating system for the view and indexing data to be cached.
Issues: MB-6973
Installation and Upgrade
For Mac OSX, we provide the correct version number in the README.
Issues: MB-6697
Database Operations
The default timeout for persisting a checkpoint had been 10 seconds. This default is still in place, but will now be adjusted upward or downward by the server to be the last duration required to persist a checkpoint. This is to better optimize server resources for indexing during rebalance.
Issues: MB-6976
In the past, we declared the revision value for a document to be 32- bit value and have changed this to 48- bit value. This is to support a larger number of document revisions and to support conflict resolution in XDCR.
Issues: MB-6945
Document revision numbers had been stored as 32 bit values but are now stored as larger 48 bit values. This enables more documents to be changed or deleted for the same database shard. A Couchbase cluster can run for more than three years performing 400,000 operations a second until revision sequence limits are met. This change is to support the functioning of XDCR and to support a larger number of document revisions.
This fix changes the on-disk data format. You will not be able to use data files from prior builds of Couchbase Server 2.0 on this new build.
Issues: MB-6945
For Windows, rebalanced has exited due to some concurrent file operations that are not allowed on this platform. This has been fixed by enabling retry of file operations for Windows during rebalance.
Issues: MB-6945
Document revision numbers had been stored as 32 bit but are now stored as 48 bit values. This is to support the functioning of XDCR and to support a larger number of document revisions.
Issues: MB-6945
By default we now provide garbage collection more frequently than the normal default for Erlang. This keeps memory usage by the Erlang virtual machine lower, and enables better performance.
Issues: MB-6974
We now provide more log information about errors during vBucket reset and deletion.
Issues: MB-6494
Couchbase Server had intermittently crashed during rebalance due to Erlang virtual machine issues; we now disable asynchronous threads and perform garbage collection more often to avoid timeouts and process crashes.
Issues: MB-6638
We now log all vBucket state changes as mccouch events.
Issues: MB-7057
To handle current limitations on open file descriptors allowed on MacOS, the number of vBuckets on MacOS have been reduced to 64 from 1024. This reduces the number of files that are created for data as well as for indexes. Overall this provides improved CPU and disk I/O for MacOS.
Note however that replication via XDCR between a MacOS and non-MacOS servers will not work due to the mismatch in the number of vBuckets between Mac OSX and other platforms.
In addition mixed clusters with Couchbase nodes running on Mac OSX and on non-Mac OSX platforms will not function. In general Mac OSX is supported by Couchbase only for developing with Couchbase Server and not for production.
Issues: MB-6781
In the past, the server would delete items even if a provided CAS value was a mismatch. This has been fixed.
Issues: MB-6985
Cluster Operations
Get-and-touch function were not providing the correct error information from the server. Get-and-touch now returns ENOENT if key does not exist.
Issues: MB-6840
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
Rebalanced had been delayed after failing-over a disconnected node. This is fixed.
Issues: MB-6992
The Erlang virtual machine had intermittently crashed when adding a node and rebalancing. By increasing the checkpoint timeout for XDCR replication we have resolved the issue.
Issues: MB-7056
Web Console
We have removed the automatic 5-minute timeout for Couchbase Web Console. This inhibited people from performing ongoing work and demonstrations of the server.
In the past, clicking on a document name shown in the View Results panel did not load the document in the sample document pane. This has been fixed.
Issues: MB-6500
A data request error had been returned when a user attempted to save spatial views containing map or reduce functions which could not compile. A new error handler has been added to display a more helpful message.
Issues: MB-7029
We now refresh the available design documents in the Web Console when you move to the views section.
Issues: MB-6978
We have removed the automatic 5-minute timeout for Couchbase Web Console. This was cumbersome and annoying for people performing ongoing work and demonstrations of the server.
Issues: MB-6679
Number of documents per page specified in the top right corner on the Documents page of Couchbase Web Console does not match the number of documents actually presented to the user. This is fixed.
Issues: MB-7011
The number of documents you can skip in the Web console is now 1000. This is to avoid overloading the user interface for a larger number of documents.
Issues: MB-7067
For Mac OSX, we had provided a drop-down UI menu for logs that pointed to the wrong location. This menu option has been removed since it is already provided in the Web Console.
Issues: MB-7075
We now provide memcached logs in the diagnostic reports available from the Couchbase Web Console.
Issues: MB-7048
Command-line Tools
Errors had occurred on windows trying to run Python workload generators. This has been fixed by adding the bin directory to the Python path.
Issues: MB-7086
Errors had occurred trying to access design documents associated with buckets requiring SASL authentication. This has been fixed by properly requiring authorization information to access these buckets.
Issues: MB-6757
For Mac OSX, the tool for collecting statistics for Couchbase technical support cbcollect_info was not functioning. We have fixed it.
Issues: MB-6958
Indexing and Querying
For geo/spatial indexes, which are experimental features in Couchbase 2.0, we now provide validation of spatial functions.
Issues: MB-6990
For geo/spatial indexes, after updating a design document, or deleting a design document, the old index files and erlang processes were not released. This unnecessarily took disk space and resulted in leaking file descriptors. After database shard compaction, spatial/geo indexes would never release the file handle of the pre-compaction database files. This meant that disk space couldn't be reclaimed by the OS. This has now been fixed.
For general indexes, after index compaction the pre-compaction index files were deleted but were somtimes held open for a long time. This prevented the OS from reclaiming the respective disk space and leaking one file descriptor per index compaction. This has been fixed.
For both geo/spatial and general indexes, we now avoid creating unnecessary empty index files and now avoid keeping them open for very long periods, such as waiting until bucket deletion. This is a more minor fix which helps decrease the number of open file descriptors, which is important if you are wroking on an operating sytem with a small limit of max allowed file descriptors, such as Windows and Mac OS X.
Issues: MB-6860
For geo/spatial indexes, which are experimental features in Couchbase 2.0, we had erroneously returned a 'node' key in the result set which is debug information. This is now fixed.
Note also that querying a spatial view will always return
total_rows = 0
as part of the result set.
This is information used for internal functioning of spatial
views.
Issues: MB-6942
For geo/spatial indexes, which are experimental features in Couchbase 2.0, we had experienced index file descriptor leaks. This is fixed.
Issues: MB-6860
Cross Datacenter Replication (XDCR)
Errors had occurred performing replication via XDCR due to improper handling of non- UTF-8 characters. We now handle errors due to non- UTF-8 characters and can continue replication via XDCR for JSON documents containing non- UTF-8.
Issues: MB-7092
XDCR checkpoint intervals have increased to 30 minutes from 5 minutes. This helps increase the chance that a checkpoint will successfully replicate and not fail; this also reduces the frequent overhead required to determine if a checkpoint completed.
Issues: MB-6939
XDCR had displayed error messages as if they were non-recoverable issues that required immediate attention. We now provide error messages with less dramatic color coding and label them as errors vs. urgent warnings.
Issues: MB-6934
Performance
Performance improvements have been made to reduce the time taken to rebalance when consistent query results are enabled for rebalances.
Issues: MB-7030
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のアンインストール.