Contenu connexe
Similaire à Voltdb - wikipedia (20)
Voltdb - wikipedia
- 1. VoltDB - Wikipedia http://ja.wikipedia.org/wiki/VoltDB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
VoltDB
VoltDBはIngresやPostgreSQLに携わったMichael
開発元 VoltDB Inc.
Stonebrakerにより設計されたインメモリデータベースである。
ACIDに準拠したリレーショナルデータベースシステムであり、 最新版 1.2.1.02(2010年12月17日)
シェアード・ナッシング・アーキテクチャによるものである。 対応OS Linux, Mac OS X
GPL バージョン3のもとでリリースされているフリーソフトウェ 種別 インメモリ型RDBMS
アである。VoltDBは学術的なH-Storeプロジェクトを基礎とし ライセンス GNU General Public License v3
ている。[1] 公式サイト voltdb.com (http://voltdb.com/)
VoltDBはリレーショナルデータベースであり、プリコンパイル
されたJavaストアドプロシージャからのSQLアクセスをサポートする。トランザクションの単位はストアードプロ
シージャであり、これはSQLとJavaが混合されたものである。VoltDBはスケーラビリティのために個々のハード
ウェアにおけるスレッドでの水平パーティショニングを利用し、堅牢性のためにk-safety(同期的レプリケーショ
ン)を利用している。
ストアドプロシージャをトランザクションの単位とし、必要なデータを含むパーティションにおいて実行すること
により、SQL命令間のメッセージ往復を除くことができる。ストアドプロシージャは順次に実行され、ロックや
ラッチなどを行わず、シングルスレッドの機構で処理される。データがメモリ上に格納され、パーティションごと
に局在しているため、ストアドプロシージャはミクロ秒単位で実行が可能である。ストアドプロシージャの初期
化スキームでは、すべてのノードがストアドプロシージャを初期化し、同時に単一のシリアライズ可能なグロー
バル順序があることを保証する。[2]
VoltDBはスケーラビリティ、信頼性、高可用性、高スループットを必要とするアプリケーションに重点を置いて
いる。これはOLTPアプリケーションと呼ばれるものを指している。これらのアプリケーションはボトルネックを回
避するため、スループットに対し、厳しい要求がある。また、許されるデータアクセスのパスや重要な通信を事
前に定義する明確に設計されたワークフローがある。 [3]
1 技術概要
1.1 パーティショニング
1.2 シリアライズ(シングルスレッド)処理
2 VoltDBの運用
3 参照
複雑なログ採取、ロック、ラッチ、バッファ管理などの処理を除くことでVoltDBは従来のシステムと比較し、50
倍の高速化を図っている。VoltDBはトランザクション内においてディスクの待ち時間や、ユーザ処理による待
ち時間がないため、OLTP SQL処理はシリアルに、ミリ秒単位で実行される。シェアードナッシング機構をコア
単位にまで拡張することにより、VoltDBは現代のコモディティサーバにおけるCPU当たりのコア数増加を活用
し、スケールすることができる。[4]
各データベースはスキーマ、ストアドプロシージャ、パーティショニング情報をコンパイルすることにより、特定
1 of 2 2011/04/04 13:12
- 2. VoltDB - Wikipedia http://ja.wikipedia.org/wiki/VoltDB
のアプリケーションに最適化される。これはVoltDBランタイムカタログと呼ばれる。このカタログは単一あるい
は複数のホストマシンにロードされ、分散データベースが作成される。[5]
パーティショニング
データアクセスロジックを解析し、ストアドプロシージャにプリコンパイルすることにより、VoltDBはデータとそ
れに関連する処理の両方をクラスタ内の個々のノードに分散することができる。これにより、クラスタの各ノー
ドがデータおよびデータ処理の固有の「スライス」を保有することになる。[6]
シリアライズ(シングルスレッド)処理
実行時にストアドプロシージャへの呼び出しはクラスタの該当のノードへ送られる。プロシージャが「単一サイ
ト処理」のものである場合、つまり、単一パーティションのデータにおいて実行される場合、個々のノードはプロ
シージャを独立して処理し、クラスタの残りのノードは他の処理を並行して処理することができる。
シリアライズ処理を利用することにより、VoltDBはロック、ラッチ、トランザクションログのオーバヘッド無く、トラ
ンザクションの整合性を保証できる。また、パーティショニングにより、データベースは複数のリクエストを同時
に処理することができる。[7]
VoltDBはデータアクセスをストアードプロシージャを経由して提供し、それによりクライアント・サーバ間の相
互通信時間を短縮する。ストアドプロシージャはJavaにより記述され、各プロシージャは単一のJavaクラスで
ある。ストアードプロシージャの定義において、ユーザはVoltDBデータベースに対し、標準的なSQLのうち
OLTPに特化したサブセットにより処理を行う。その例として、many-way join、group-by、序列化、集約、標準
的な数学処理、limitなどがある。
ユーザはアプリケーションに必要とされるスキーマやストアドプロシージャを管理し、VoltDBアプリケーションコ
ンパイラを使用し、VoltDBアプリケーションアーカイブを作成する。コンパイラは自動的にパーティションを行
い、必要に応じてデータのレプリケーションを行い、パフォーマンスの最適化を行い、高可用性を保証してい
る。このアーカイブは単一のあるいは複数のVoltDBクラスタへ適用可能である。
VoltDBはクラスタ内およびクラスタ間のレプリケーションにより、堅牢性を確保している。データはクラスタ内
の複数の実行サイトに同期的にコミットされ、ノード障害に対する対障害性を実現している。トランザクションは
クラスタ間において非同期的にコミットされ、データセンター災害などに対する全クラスタ単位での障害に対し
対障害性を提供している。
1. ^ http://hstore.cs.brown.edu/
2. ^ http://community.voltdb.com/node/118#comment-271
3. ^ http://community.voltdb.com/sites/default/files/UsingVoltDB.pdf
4. ^ http://www.voltdb.com/_pdf/VoltDBOverview.pdf
5. ^ http://community.voltdb.com/sites/default/files/UsingVoltDB.pdf
6. ^ http://community.voltdb.com/sites/default/files/UsingVoltDB.pdf
7. ^ http://community.voltdb.com/sites/default/files/UsingVoltDB.pdf
「http://ja.wikipedia.org/wiki/VoltDB」より作成
カテゴリ: オープンソース | データベースソフト
最終更新 2011年4月4日 (月) 04:14 (日時は個人設定で未設定ならばUTC)。
テキストはクリエイティブ・コモンズ 表示-継承ライセンスの下で利用可能です。追加の条件が適用
される場合があります。詳細は利用規約を参照してください。
2 of 2 2011/04/04 13:12