BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OracleのNoSQLデータベースを検証する

OracleのNoSQLデータベースを検証する

原文(投稿日:2013/02/08)へのリンク

 

Oracleのキーバリュー型データベース,いわゆる "Oracle NoSQL Database" がバージョン2.0になった。基本的にはBerkley DBの分散フロントエンドだが,それをはるかに越える機能を備えたデータベースだ。

Oracle NoSQL DatabaseはOracleデータベースと緊密に統合されている。外部表の機能を利用すれば,NoSQLデータベースに対するクエリの記述や,さらにはリレーショナルテーブルに結合(Join)することも可能だ。ApacheのMap Reduce技術であるHadoopのサポートも提供されている。

操作面では,"SNMP/JMXをサポートすることによって, Oracleやサードパーティの管理ツールとの統合が可能" となっている。(JMX – Java Management Extensions はアプリケーションの状態を公開するための標準的手法で,Java5の時代から提供されている。)

MongoDBなどの一般的なデータベースと違う点として,Oracle NoSQL Databaseは結果整合性(Eventually Consistency)に加えて完全整合性(Absolute Consistency)も実現している。Peter Wayner 氏の説明によれば,

繰り返しになりますが,この構造によってOracleレベルの信頼性を備えたデータ格納を実現しているのです。大多数のNoSQLストアが提供するようなレベルの低い結果整合性を望まないのでしたら,OracleのNoSQLが複製ノードの全マシンにわたる完全整合性を提供します。ただし,書き込みパフォーマンスの損失は必然的にありますから,どちらを選ぶかはあなた次第です。

ちなみにこれは二者択一ではありません。ひとつのノードへの書き込み後に終了とするか,すべての書き込みが完了するまで待機するか,あるいは過半数のノードのディスクにデータが送信されるまで待つのか,いずれかの方法を選択してOracle NoSQLに指定することができるのです。マニュアルではこの機能をデュラビリティ・ポリシ (Durability Policy) と呼んでいます。

もし不安に思う部分があるのでしたら,プログラマであるあなた自身の手で,この柔軟性を使用することもできます。キーと値のペアにはすべて,バージョンナンバが設定されています。レプリケーションを利用して自分自身で処理を行いたい場合は,直接これを参照することも可能です。レコード更新時のパフォーマンスを何とかしたいと考えるならば,この方法が有効でしょう。

汎用オブジェクトのストアも可能だが,パフォーマンスを気にするのであれば Avroスキーマ も気になるところだろう。資料では次のように主張している。

Avroスキーマを使用することによって,シリアル化されたデータを非常にスペース効率のよいバイナリ形式でストアすることができます。1ないし4バイトというごく小さなスキーマ識別子を除けば,各データは一切のメタデータを持たずにストアされます。このようなリファレンスデータが,キーと値のペア毎に格納されるのです。このように,シリアル化されたAvroデータ形式は,それをシリアライズするために利用されたスキーマに対して,最小限のオーバーヘッドで関連付けられています。この関連付けは,アプリケーションに対して透過的に行われます。内部的なスキーマ識別子はArvoCaralogクラスの提供するバインディングによって管理されています。アプリケーションが内部識別子を直接参照したり,使用したりすることはありません。

NoSQL DatabaseのCommunity EditionにはAGPLライセンスが適用されて提供される。商用ライセンスの Enterprise Editionも用意されている。

 

この記事に星をつける

おすすめ度
スタイル

BT