 |
概要
|
| |
eXtremeDB-HAはeXtremeDBのフォルトトレラントオプションで、停止しない組込みシステムを実現するためにデザインされました。eXtremeDB-HAは無比の性能と小さなフットプリントと共に、最も高い信頼性を実現します。
プロセスコントロールやテレコム、ネットワークデバイスなどの高稼働率(稼働率99.999%)を要求されるシステムは、急成長している組込みソフトウェアを含んでいます。組込みシステムを総合的に見ても、アプリケーションが管理するデータはより複雑になってきて、信頼のおける軽くて早いデータベースシステムの必要性が著しく高まってきています。
典型的な既存のフォルトトレラントシステムはデータベースのバックアップコピーを作成する方法をとっています。しかし、複製すると言うことは、プライマリデータがアップデートされてからレプリカのデータベースに伝わるまで待ち時間が必要であることを意味します。そのような遅延はリアルタイムの組込みシステムの要求を満たせないことがあります。
(▼Embedded
Systems Europeの記事を参照してください。)
eXtremeDB-HAのランタイムは別のアドレスに存在する複数の独立したデータベースを管理します。以下のハードウェア構成でも利用できます。
・同一ハードウェア上の複数のプロセスやスレッド
・高速バスで接続されたシャーシ内の複数のボード
・業界標準バス(RS-485/RS-232, Control Area Network (CAN),
Ethernet等)で接続されたボード
・独自のバスで接続されたボード<
・LAN内の別のコンピュータ
|
 |
eXtremeDB-HA コミットプロトコル
|
| |
McObjectのeXtremeDBハイアベーラビリティソリューションは、時間を認識した厳しい2フェーズコミットプロトコルを用いることで、メインのデータベースとスタンドバイベータベースが共にトランザクションが成功・失敗することを保証します。eXtremeDB-HAランタイムによって伝えられるハイアベーラビリティの制御インターフェースは、eXtremeDB-HA接続の構成、確立、維持、終了する方法を提供します。時間を認識したHAプロトコルは、タイムアウトが起こるような状況を検知する通信を可能にします。
|
| |
|
| |
|
マスター側
|
レプリカ側
|
| ● |
コミットデータの開始(フェーズ1)
|
| ● |
レプリカへのデータ送出
|
| ● |
コミット結果を待つ
|
| ● |
タイムアウト時にはレプリカを切り離す
|
| ● |
コミット結果の確認(フェーズ2)
|
| ● |
コミットの完了
|
| ● |
コミット結果が正しくない場合はレプリカを切り離す
|
| ● |
コミットが完了したことをレプリカに通知
|
| ● |
マスター自身のアプリケーションに戻る
|
|
| ● |
データベースの初期化
|
| ● |
自分自身のマスターへのアタッチしDBを初期化する
|
| ● |
マスターからのコミットデータを待つ
|
| ● |
データを受信したらレプリカデータベースへコミットする
|
| ● |
コミット結果をマスターへ送出
|
| ● |
マスター側のトランザクションがコミットされたかロールバックされたかの確認を待つ
|
| ● |
次のコミットメッセージを待つ
|
| |
|
|
|
 |
eXtremeDB-HA アプリケーションフレームワーク
|
| |
eXtremeDB-HAは、マスターとレプリカのトランザクション処理中にユーザーが定義した通信チャネルでデータ交換できるように、抽象化された通信チャネルを用います。この柔軟なアプローチは、eXtremeDBが通信に使用される媒体やOSから独立することを可能にしました。このことは、アプリケーション側で実際に通信するためのレイヤーを実装する必要があります。耐障害性の高いデータベースソリューションを早く簡単に実現するために、eXtremeDB-HAパッケージは、eXtremeDB-HAハイアベーラビリティアプリケーションをどのように構築するかを示すアプリケーションフレームワークを含んでいます。このeXtremeDB-HAアプリケーションフレームワークは、様々な方式で動作する通信チャネルでの実施例を含んでいます。また、このフレームワークで提供される各種のチャネルを用いて構成できるハイアベーラビリティのアプリケーションの例(TCP/IP,
UDP, Named Pipes, Qnet)も含んでいます。更に、このサンプルアプリケーションはeXtremeDBのスタンダードメモリ版でもシェアードメモリ版のどちらでも使用することができます。
HAサブシステムが提供するAPIはプラットフォームに依存するものや通信媒体から独立しています。HAサブシステムが使用する通信プロトコルのAPIは2つの層に分かれています。
・下位層はプロトコル層を参照します。プロトコル層は、アプリケーションとHAサブシステムをプラットフォームの依存部と通信媒体から分離して、マスタとレプリカの保証されたデータ転送方法を提供します。プロトコル層は、マスタ・レプリカ間の独立したポイントトゥポイントのチャネルとなります。
・上位層はインターフェース層と呼ばれ、アプリケーションをプロトコル層の細かな実装から分離し、APIを単純化します。一般的に、ユーザーは各自で実装したチャネルの定義に従いプロトコル層を使用するだけです。もし、アプリケーションでMcObjectのアプリケーションフレームワークで提供したチャネルのどれかを使用するのであれば、インターフェース層のAPIを使用するだけです。
|
| |

|
HAアプリケーションフレームワークは
一般的なほとんどの通信チャネルに
対応しています。
・TCP/IP
・UDP/IP
・Named Pipes
・Qnet(QNX Neutrino)
・CAN (開発中)
・USB (開発中)
|
|
 |
eXtremeDB-HAサポートプラットフォーム
|
| |
|
組込み向けプラットフォーム
|
サーバー、デスクトッププラットフォーム
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Microsoft Windows Embedded プラットフォーム
|
|