ALTIBASE(アルティベース)|シアンス・アール
会社概要 プレスリリース サイトポリシー サイトマップ
TOPページへ 製品 / サービス 導入事例 ダウンロード パートナー ニュース / イベント お問い合わせ
TOP > ALTIBASE > トランザクション処理

読み取り一貫性で高い同時実行性とデータの整合性を保証

トランザクション処理

Concurrency Control

ハイブリッド メモリデータベースでの同時性制御は、従来の RDBMS とは異なる特徴を持っています。ハイブリッド メモリデータベースは、従来の RDBMS より 10 倍以上のパフォーマンスを達成できるため、高速なデータ処理が強く要求される領域で使用されます。そのため、できるだけ同時性制御にかかるコストが少なくし、データベース全体の性能をアップさせなければならないという要件が存在します。
伝統的な 2PL(two phase locking)プロトコルを使うデータベースでは、仮に該当ロックのレベルがレコードだとしても、該当レコードに対する変更処理が発生すると、該当レコードに対する読込み処理が遅延する問題が発生します。また、特定のレコードに対する読込み処理が発生した後は、そのトランザクションが commit されるまで、そのレコードに対する変更トランザクションが待ち状態となる状況も発生します。更に、大量のレコードに対する読込みまたは変更処理が発生した場合は、レコードに対する読込みや書込みコストより同時性制御を行うロックに対する処理演算により多くコストがかかることになり、ロックエスカレーション(Escalation)が発生しトランザクション性能が低下する危険性があります。
ALTIBASE が提供するマルチバージョン技法は、トランザクション実行時間に対し、それぞれ異なったバージョンを維持するため、レコードレベルの読込み処理は、変更処理と関係なく進めることができ、変更処理も読込み処理とは関係なく進めることができます。
特に、ALTIBASE は、レコードレベルのロックメカニズムをサポートしつつ、該当レコードに対するロック情報を直接レコード内部に保存するため、ロック処理にかかるコストがほとんどゼロに近いだけでなく、読込み処理の場合は、ロック情報を持たずに処理を進められるように設計されました。また、一つのトランザクションが大量のレコードに対して読込みや変更処理を実行しても、ロック管理に対するコストがほとんど発生しないため、高速な応答速度を保証します。
ALTIBASE は、メモリテーブルやディスクテーブルに対し、外見上は同じ機能を提供しますが、異なる実装方式で MVCC を実現しています。メモリテーブルは、行を変更する度に新しいバージョンを生成する out-place MVCC で実現されており、ディスクテーブルの場合は、変更されたデータを既存の行に上書きし、変更前の情報を undo table space に保存して参照する in-place MVCC 方式を採用しています。
ハイブリッド メモリデータベースが、メモリ方式の out-place マルチバージョン技法をサポートすることにおいて負担となる部分は、トランザクションがそれ以上アクセスできない前のバージョンのレコードに対する処理です。ハイブリッド メモリデータベースは、システムメモリを持続的に使うため、削除・変更されたレコードを解放しなければ、システムが使用可能なメモリを全部使い切ってしまう可能性があります。
このような理由からハイブリッド メモリデータベースでは、必要のないレコードまたはインデックスノードが存在した場合、すぐ回収して再利用できるメカニズムが必要です。ALTIBASE では、このような役割をするガーベージコレクション(Garbage Collection)スレッドを生成し、最適なメモリ状態が維持できるよう保障します。

Transaction

ALTIBASE は、ハイブリッド メモリデータベースの構造に合わせて最高の性能が出せるトランザクション構造やそれと関連した様々な機能を提供します。
ALTIBASE は、マルチバージョン技法(MVCC : Multiversion Concurrency Control)を利用して同時性制御を行いますが、一般的なトランザクション管理技法では、最適の性能を発揮することがが困難です。MVCC 環境では、特定の時点に特定のレコードに対するアクセスを行った他のトランザクションの状態、つまり現在実行中なのか、あるいは既に終了したものなのかなどの情報を数ナノ秒(nano sec)内に決めなければならない制約が存在しますが、このような判断のためのコストが多くかかる場合、マルチバージョン技法の処理コストが非常に大きくなり、返って逆効果となるためです。
このような要件を満たすために 
ALTIBASE では、トランザクションプール(Transaction Pool)を維持し、そのプールに対する直接的なアクセスにより高速にトランザクションの実行の有無を判断できるようにしています。特に、トランザクションプールを予め作成しておく構造は、デッドロック(Dead Lock)処理にも大きなメリットを持ちます。一般的なデッドロック検知技法は、トランザクションの間にサイクルが存在するのかどうかを検査する別のプロセスあるいはスレッドが存在し、一定周期で全ての使用中のトランザクションを検査するものです。この構造は、必然的にデッドロックに参加したトランザクションの一時的なサービスの中止をもたらします。高速な応答速度を保障しなければならないハイブリッド メモリデータベースにおいて、デッドロックが発生した後、一定時間の間サービスが中止されるということは極めて致命的な結果をもたらすため、このようなデッドロック検知技法は適切ではありません。この問題を解決するため、ALTIBASE では、トランザクションのロック要求の際に、トランザクションプールを利用して即時に非常にデッドロックを発生させたかどうかを検査するアルゴリズムを適用し、デッドロックによるトランザクションの致命的な遅延現象を根本的に解決しています。
また、
ALTIBASE のトランザクションの分離レベル(isolation level)は、commit read を基本として、repeatable read や no phantom read レベルを動的にサポートするため、ユーザの必要に合わせて適切な分離レベルを選択して使うことができます。
↑ページTOPへ
概要
特長
高速性
高い費用対効果
安心のサポート体制
サービス
製品サポート
コンサルティング
トレーニング
機能
主要機能
アーキテクチャ
メモリ管理
ロギングとリカバリー
トランザクション処理
コンカレントユーザサポート
クエリ処理
プログラムインタフェース
レプリケーション
メッセージキューイング
ツール
パフォーマンス
アプリケーション適用範囲
データベース連携
データシート
最大容量仕様
開発環境
システム要件
プラットフォーム
ライセンス
FAQ
Copyright 2003 - 2011 Science Arts, Inc. All Rights reserved.