Cassandra 2.0.0 リリース
Sep 03, 2013 -
いよいよCassandra 2.0.0 がリリースされました。と同時にこちらのランキングではちょうどTop 10入りを果たしたようです。
以下、2.0.0のNEWS.txtを日本語訳しましたのでご参考くださいませ。
アップグレード
- バージョン2.0.0へのアップグレードはバージョン1.2.9以上からのみサポートされています。これはネットワークプロトコルやSSTableのファイルフォーマットの互換性についても当てはまります。1.2.9より前のバージョンから2.0.0にアップグレードを行う場合、一旦1.2.9へアップグレードし、upgradesstablesコマンドを実行してから2.0.0へアップグレードしてください。
- CAS操作やCQLの新機能(DROP COLUMNなど)は、データのタイムスタンプがエポックからのマイクロ秒であることを前提としています。もしクライアント側でタイムスタンプを独自に指定している場合これらの機能は利用しないでください。
- DDLにおいて、レプリケーションやストラテジーオプションに不明なオプションをつけるとエラーとなるようになりました。CQL3ではすでにそのような振る舞いになっていましたが、Thrift経由での定義にも適用されるようになりました。
initial_token
が設定されていないノードのオートブートストラップは、以前の様に既存のトークン範囲を二分探索して決定するのではなく、ランダムに決定されるようになりました。バーチャルノードの利用を推奨します。もしくはinitial_token
を設定するようにしてください。reduce_cache_sizes_at
、reduce_cache_capacity_to
、およびflush_largest_memtables_at
オプションはcassandra.yamlから削除されました。CacheServiceMBean#reduceCacheSizes
は削除されました。代わりにCacheServiceMBean#set{Key,Row}CacheCapacityInMB
を利用してください。- cassandra.yamlの
authority
オプションは1.2.0から非推奨となっていましたが、2.0.0で削除されました。authorizer
オプションを利用してください。 - cqlshの
ASSUME
コマンドは削除されました。CQL3の型変換ファンクションblobAsType()
やtypeAsBlob()
を利用してください(CQL3ドキュメント参照)。 - blobの挿入に文字列リテラルを利用することは、blobリテラルの導入により非推奨となりました。1.2系をアプリケーションから利用している場合は、この新しいシンタックスを利用するように変更してから2.0.0へアップデートしてください(1.2は両方のシンタックスをサポートしています)。
index_interval
はColumnFamilyのプロパティとしてColumnFamily毎に設定するようになりました。ALTER TABLE ... WITH
文で設定することが可能となり、設定変更後に書き出されたSSTableから新しい設定値が有効となります。アップグレード時の互換性保持のため、cassandra.yamlにindex_interval
の設定値があれば既存のColumnFamilyすべてのデフォルト値として利用します。- 非推奨であった
native_transport_min_threads
オプションはcassandra.yamlから削除されました。
運用に関する変更点
- VNodes(バーチャルノード)がデフォルトで有効になりました。
initial_token
の設定はcassandra.yamlから取り除かれましたが、バーチャルノードを利用しない場合、以前と同じようにcassandra.yamlに設定することができます。 - メジャーコンパクション、cleanup、scrub、upgradesstablesは実行中の他のコンパクションを中断して実行されるようになりました(repairのバリデーションを除く)。
- コンパクションの自動実行を止めるには、しきい値(
min_
/max_compaction_threshold
)を0に設定していましたが、この方法は非推奨になりました。かわりにnodetool disableautocompaction
とnodetool enableautocompaction
を使用するか、コンパクションストラテジーのオプションに{enable: false}
を設定してください。 - CQL3のテーブルに対する
ALTER TABLE DROP
文が再度有効になりました(CQL3ドキュメントとCASSANDRA-3919を参照)。 - CASは
gc_grace_seconds
の設定値を用いて、Paxosの状態を保持する時間を決定します(ただし最小値は3時間)。 - Hinted hand offのメトリックが、ターゲットのノード単位で追跡されるようになりました(
countPendingHints
は削除されました)。 - パフォーマンステストの結果(CASSANDRA-5727), LeveledCompactionStrategyが出力するファイルサイズのデフォルト値が5MBから160MBに変更になりました。
- cqlshの
DESCRIBE SCHEMA
コマンドはsystem_*
キースペースのスキーマを出力しなくなりました。それらの情報を出力する場合、DESCRIBE FULL SCHEMA
コマンドを使用してください。 - CQL2は非推奨となりました。将来的に(バージョン2.2?)削除されます(CASSANDRA-5918参照)。
新機能
- 軽量なトランザクションのサポート
- SELECT文でのエイリアスのサポート(詳細はCQL3ドキュメント参照)。
- JEMallocのサポート(cassandra.yaml内の
memory_allocator
を参照)。 - トリガーの実験的なサポート。
examples
ディレクトリにサンプルがあります。”実験的”とは”まだ内部のデータ構造に強く依存している状況。将来的に疎結合にする予定であり、APIの変更も多いにあり得る”状況をさします。 - CQL3の多数の新機能およびネイティブプロトコルのバージョンアップ(詳細はこちら)。