Couchbase Server 2.0.0 Developer Preview 4 contains a number of new features and functionality.
What's new in this release
Replica Indexes
The indexes generated by the map/reduce view interface are replicated across the cluster. This ensures that if there is a failover scenario, the index information does not have to be regenerated by the replacement node.
Experimental Geospatial Indexing
Support has been added for supporting geospatial indexing and querying. The geospatial interface enables the storage of two-dimensional geometry points. Views can then be written that index this information, and queries can be written that return the geospatial information based on the provision of a bounding-box to the geometry data.
For more information, see 「地理空間ビューの作成」.
Sample Databases
Couchbase Server now includes sample databases as part of the installation and setup process. You can load the sample data and associated views. This provides both the sample data structures and map/reduce queries to enable youf to understand and create your own datasets and views.
For more information, see 付録C Couchbaseのサンプルバケット.
New Features and Behaviour Changes in 2.0.0DP4
The index/view related improvements are for production views or
development views with full_set=true
.
The indexes created by the view system are now replicated among nodes to ensure that indexes do not need to be rebuilt in the event of a failover.
A new option, on_error
has been added to
control the behaviour of the view engine when returning a
request. By default the value is continue
,
which indicates that the view engine should continue to return
results in the event of an error. You can also set the option to
stop
to stop the view results being returned
on failure.
For more information, see 「エラー制御」.
Tags: views
The view system has been stabilised to work even while the cluster topology is changing through rebalance and failover operations.
The design document and view system has been updated with the ability to create multiple design docs and query all these design docs in parallel.
Experimental support for geospatial indexing has been added.
For more information, see 「地理空間ビューの作成」.
Tags: experimental, geospatial
You now have the option to have sample data (and views) created during the installation and setup process. This operation requires Python 2.6.
For more information, see 付録C Couchbaseのサンプルバケット.
A number of stability bugs have been fixed when querying and merging views.
The default value of the stale
argument when
querying views has been changed to
update_after
. This means that by default view
information will always be returned 'stale', and updated after
the view request has completed.
You can force a view update by specifying
false
to the stale
, or
ok
to enable stale views without an implied
update after the view data has been returned.
For more information, see 「ビューへのクエリ」.
Tags: views
Support for changing (and accessing) the number of parallel indexing processes used to build the view index information has been added to the Couchbase Management REST API.
For more information, see 「最大並列インデクサの設定」.
Tags: restapi, views
Cluster Operations
Rebalancing in a new Couchbase Server 1.8 node if there are less than 500,000 items results in an imbalanced cluster.
Issues: MB-4595
When upgrading from Couchbase Server 1.8.0 to 1.8.1 or Couchbase
Server 1.8.0 to 2.0, an offline upgrade may fail with a
rebalance failure reporting the error
{wait_for_memcached_failed,"bucket-1"}
.
Issues: MB-5532
Unclassified
The web console UI had an incorrect query parameter,
start_key_docid
available for selection. This
should have been start_key_doc_id
.
Issues: MB-4781
When deleting a bucket, and then creating a new bucket with the same name, the views associated with the deleted bucket would reappear.
Issues: MB-4562
The ep-engine
component did not persist the
mutated replica items to disk.
Issues: MB-4629
The number of threads started when building indexes could increase to an unmanageable level causing a significant performance problem. The indexing system has been configured so that the main indexers get 4 exclusive slots, and the replica index builders 2 exclusive slots to ensure that the indexing process proceeds effectively.
Issues: MB-4848
Accessing a view query would fail if the user changes a design document while a rebalance was occurring, and then accesses the updated view.
Issues: MB-4626
Accessing a view using a reduce could report different counts from different nodes after a cluster has been rebalanced with the addition of new nodes.
Issues: MB-4500
Querying a view when deleting items and performing a rebalance simultaneous leads to invalid results.
Issues: MB-4518
The ns_server process could crash on Linux because of too many open file descriptors if more than 10 views were defined on a single bucket.
Issues: MB-4514
Creating a view with a reduce
function, and
querying while changing the cluster topology through a rebalance
could cause incorrect results.
Issues: MB-4692
Accessing the timings
statistics through the
cbstats command would fail.
Issues: MB-4718
The compaction process on a node can be terminated while data is still being loaded, but fail to restarted again while the node is still under load.
If you remove and rebalance a node out of a running cluster while clients are awaiting view results from that node, the node would fail to be rebalanced properly.
Issues: MB-4752
An incorrect total cluster storage figure could be reported if
the index_path
and
data_path
configurations are on the same
disk.
Issues: MB-4512
When accessing information using the basic create, read, update
or delete operations, the $flags
and
$expiration
flags are returned through the
HTTP API for individual documents. This matches the output
available through the view API when including the entire
document.
Issues: MB-4549
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のアンインストール.
Indexing and Querying
Accessing a recently created view (with other, existing active views) may return a error if the corresponding design document and view definition have not been replicated across the cluster. The error return will be returned in error of the view output detailing the missing design document. The workaround is to add views and design documents to your node or cluster after you have performed rebalance. For more information about resolving issues with Couchbase Views, see 付録D ビューのトラブルシューティング(技術的背景).
Note also that stopping a rebalance operation on a cluster may take a long time if compaction and indexing operations are in progress on the cluster at the point of rebalance. Again, the workaround is to add views and index and query views after you have performed compaction or rebalance. For more information about rebalance, and considerations on when to rebalance, see 「クラスターの拡張と縮小(リバランス)」.
Unclassified
The default
bucket may be shutdown
unexpectedly when accessing multiple views using the test script
environment.
Issues: MB-4940; Tags: windows
Because of the way information is stored within the cluster, persisted to disk, and views are updated, it is possible to store a value into the cluster and be unable to immediately retrieve that value through a corresponding view.
Tags: views
For more information, see 「ドキュメントストレージとインデックスの処理順序」.
A rebalance on Windows may fail when adding a new node to the
cluster with the error
{wait_for_memcached_failed,"bucket-9"}
on a
cluster configured with 10 buckets.
Issues: MB-4849; Tags: windows
Couchbase Server can fail when adding a failed over node back into a cluster during a rebalance operation with the error:
Core was generated by `/opt/couchbase/bin/memcached -X /opt/couchbase/lib/memcached/stdin_term_handler'. Program terminated with signal 11, Segmentation fault. #0 LoadStorageKVPairCallback::callback (this=0xb9dd8c0, val=...) at stored-value.hh:168 in stored-value.hh
Workaround: Reinstall Couchbase Server on the node that failed before adding the node back and performing the rebalance.
Issues: MB-4959
Rebalance may fail because memcached is closing the connection during the authentication request.
Issues: MB-4824
A rebalance when removing a single node from an existing cluster
can fail on Windows with the error
wait_for_memcached_failed,"default"
.
Issues: MB-4890; Tags: windows
View queries return "inconsistent state" error if user calls the
flush
operation.
Issues: MB-4717,
The disk write queue can become high and very slow to drain if user is running view queries on a large number of design docs simultaneously, with compaction and index still in progress.
Issues: MB-4846
Couchbase Server may fail to restart properly after having been shutdown.
Issues: MB-4933; Tags: windows
Querying views when new nodes are added and not rebalanced into the cluster, with another node failed over generate an error:
{ "error":"error", "reason":"A view spec can not consist of merges exclusively." }
Issues: MB-4804
The Couchbase sample bucket loader scripts require Python 2.6 as the default version of Python installed. If Python is installed, but the default is not Python 2.6 the sample bucket loader script will fail.
Workaround:
You can install Python 2.6 and then create a link between
/usr/bin/python
to point to the installed
/usr/bin/python2.6
.
Issues: MB-4724
Disk usage can grow because compaction does not run until the indexing process has finished. In a system with a high number of design docs, the indexing takes too long.
Issues: MB-4849