BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース BashoがRiakのアップデートを発表

BashoがRiakのアップデートを発表

原文(投稿日:2014/09/16)へのリンク

高可用性を備えた分散NoSQLデータベースRiakの開発元であるBashoは、Riak 2.0のリリースを発表した。この新しいバージョンは、開発に1年かかり、さまざまな重要なアップデートが含まれている。検索の実装の再設計や分散データ型、強い一貫性の保証、セキュリティなどだ。

コードネームYokozunaと呼ばれる、新しい検索の実装は、Riak 1.4の検索の実装を完全に書き換えた。新しい設計では、Riakの中に検索を組み込むのではなく、Solrを使っている。SolrはApacheが開発している強力な検索エンジンだ。古い設計では、RiakのキーバリューインターフェースのトップにSolrのようなAPIを提供していたが、新しい検索システムは、Riakの分散キーバリューストアとSolrの間の統合レイヤとして動作する。Yokozunaプロジェクトには技術の細部を知りたい開発者のためにリソース一覧を提供している。

Riak 1.4では結果整合性カウンタの実装が導入された。Riak 2.0では、4つの新しい結果整合データ型が導入された。フラグ、レジスタ、セット、マップだ。これらのデータ型はすべてConflict-free Replicated Data Types(CRDTs)として知られる分散システムの研究の成果だ。CRDTsの基礎になる研究について興味がある人のために、Bashoの開発者のChris Meiklejohn氏CRTDsに関する読み物のリストを提供している。

RiakはCAPのトレードオフの中で一貫性よりも可用性を選択していることで知られている。しかし、Riak 2.0は強力な一貫性のオペレーションをサポートし、結果一貫性とキー毎の強力な一貫性の間を選択できる。この新しい機能は、Riak Ensembleプロジェクトの成果だ。このプロジェクトはErlangのマルチpaxosの実装であり、4つの原子的な操作をサポートする。ゲット、条件付きプット、条件付き変更、削除の4つだ。技術的な詳細はRiak Ensembleのリポジトリで確認できる。

認証と許可はデータストレージシステムにとってとても重要だ。Riak 2.0以前は、セキュリティのベストプラクティスはRiakを信頼されたネットワーク上に配置し、ファイアウォールやルーティングルールで制限をかける方法だった。このような制限を実現するため、Riak 2.0は機能を制限するさまざまなアクセス制限を提供する。アクセスや変更、オブジェクトの削除、バケット属性の変更、MapReduceジョブの実行などが制限できる。

Riak 2.0ではバージョンベクタの実装の改善として、ドットバージョインベクタを導入した。Riakの以前のバージョンでは、sibling explosionという問題の影響を受けやすかった。リトライの書き込みや割り込みの書き込みが、多くの値を動かしてしまう問題だ。ドットバージョインベクタは書き込みに関する追加の情報を捕捉してこのsibling explosion問題に対処する。この情報を用いて、重複した値を特定し、排除するのだ。

以前のバージョンのRiakは構成ファイルにErlangの固有のシンタックスを使っていた。しかし、このシンタックスはErlangに親しんでいないと、直感的に理解しにくく、自動配置ツールで操作しにくい。この問題に対処するため、Bashoはcuttlefishプロジェクトを立ち上げた。このプロジェクトはシンプルなキーバリュー構成のシンタックスをサポートする。最初の時点では、cuttlefishは新しいシンタックスを読み、古いシンタックスでファイルを生成し、生成した構成でRiakのプロセスを起動する。

Riak 2.0はApache 2ライセンス提供されているドキュメントも豊富だ。

この記事に星をつける

おすすめ度
スタイル

BT