Couchbase Server DP4が3/21にリリースされました。
JIRA上ではこの後
DP5(5/15)、Beta(6/12)、
GA(7/12)という予定となっています。
是非、皆さんも触ってみてください。
Couchbase Server 2.0.0 DP4 ダウンロードページ
Couchbase Server 2.0.0 DP4 リリースノート
以下、リリースノートの内容を簡単に訳してみました。
長くなってしまいますが、取り合えずメールで共有させていただきます。
次のmeetupではDP4についても少し話合いたいですね :)
What's new
=======================
インデックスのレプリカ
----------------------------------
map/reduce Viewによって生成されたインデックスはクラスタ間でレプリケーションされます。
これによりフェイルオーバ発生時にインデックスの情報を再生性する必要がなくなります。
実験的な地理空間情報インデックス
----------------------------------
地理空間情報インデックスの作成とクエリに対応しました。
2次元のジオメトリ情報のストレージが利用できます。
この情報をインデックスするViewを作成し、ジオメトリデータに対してバウンディングボックスを投影することで地理空間情報を取得するクエリを利用できます。
サンプルデータベース
----------------------------------
Couchbase Serverインストールとセットアッププロセスの一部としてはサンプルデータベースを含むようになりました。
サンプルデータと関連するViewをロードすることが出来ます。これは独自のデータセットやviewを理解し、作成することができるように、サンプルデータ構造とmap/reduceクエリの両方を提供します。
新規機能と2.0.0 DP4で変更のあった機能
=======================================
+ View作成時の問題を早期に発見するためにデバッグ機能が追加されました。
"debug=true"を指定することで有効化できます。
+ プロダクション向け、開発向けのindex/viewに関連する改善は"full_set=true"を指定します。
+ Viewエンジンの動作を制御する新しいオプション、"on_error"が追加されました。
デフォルトでは"continue"となっており、viewエンジンはエラーが発生しても結果を返し続けるようになっています。"stop"を設定し、エラーが発生した場合はviewの結果を返すことを止めることも出来ます。
+ Viewシステムにより生成されたインデックスは、フェイルオーバ時に再作成する必要が無いように、ノード間で複製されます。
+ Viewシステムはリバランスやフェイルオーバ操作によりクラスタリポジトリが変化している間でさえ動作するようになりました。
+ デザインドキュメントとViewシステムは複数のデザインドキュメントを作成し、これら全てのデザインドキュメントを並列にクエリできるように更新されました。
+ 実験的に地理空間インデックスが追加されました。
+ インストールとセットアッププロセスでサンプルデータ(そしてView)を生成するオプションが増えました。これにはPython 2.6が必要です。
+ Viewをクエリ、マージする際の数多くのバグが修正されました。
+ "stale"オプションのデフォルト値が"update_after"に変更されました。
これはデフォルトではViewの情報は常に"stale"で返却され、viewへのリクエストが完了した後にアップデートされるということです。
"stale"に"false"を指定することで強制的にviewをアップデートできます、あるいは"ok"を指定して古いviewを許容し、viewの結果を返却した後に明示的な更新を行わないようにすることもできます。
2.0.0 DP4で解決した問題
=======================================
(訳は省略します)
2.0.0 DP4の既知の問題
=======================================
testスクリプト環境を利用した複数のviewにアクセスした際に"default"バケットが予期せずシャットダウンしてしまいます。
Issues: MB-4940
CouchbaseサンプルバケットローダスクリプトはデフォルトバージョンとしてインストールされたPython 2.6が必要。Pythonがインストールされているが、2.6ではない場合、サンプルバケットローダのスクリプトは失敗します。
解決策
Python 2.6をインストールして/usr/bin/pythonでインストールした/usr/bin/python2.6にリンクを張ります。
Issues: MB-4724
クラスタ内への情報の保存の仕方により、ディスクに永続化する場合、そしてViewが更新される
ディスクに永続化されてから、Viewが更新されるというクラスタへの保存方法により、クラスタに保存された直後に関連するデータがViewで取得出来ないという状態が発生します。
クラスタ内にバケットが10構成されているWindows上でのリバランスは、クラスタへの新規ノード追加時に、{wait_for_memcached_failed,"bucket-9"}のエラーで失敗することがあります。
Issues: MB-4849
memcachedが認証要求の最中にコネクションを閉じようとするため、リバランスが失敗することがあります。
Issues: MB-4890
flush操作を実行した場合、Viewクエリは"inconsistent state"エラーを返します。
Issues: MB-4717
Couchbase Serverはフェイルオーバされたノードをクラスタに戻す際、リバランス操作中に次のエラーで失敗する可能性があります:
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
解決策
故障したノードを再度追加する前に、そのノードのCouchbase Serverを再インストールしてからリバランスを実行します。
Issues: MB-4959
ユーザが大量のデザインドキュメントに対して同時にViewクエリを実行している場合、コンパクションと進行中のインデックスにより、ディスク書込みキューの処理が大量かつ非常に低速になることがあります。
Issues: MB-4846
Couchbase Serverはシャットダウン後のリスタートに失敗することがあります。
Issues: MB-4933
ノードをフェイルオーバと共に新規ノード追加し、リバランスをせずにViewをクエリすると、次のエラーが発生します。
{
"error":"error",
"reason":"A view spec can not consist of merges exclusively."
}
Issues: MB-4804
インデックス作成が終了するまでコンパクションが実行されないため、ディスク使用量が増えることがあります。デザインドキュメントの数が多いシステムではインデックス作成に長い時間がかかります。
Issues: MB-4849