分散データベース
◆2相コミットメント
two-phase commitment
- 分散データベースなど、複数のデータベースでの更新同期の制御方式。
- 第1相で、同期要求元が、処理先へ更新保証処理を依頼する。
この状態では、各分散サイトは処理終了(COMMIT)も、元の状態に戻す(ROLLBACK)も
可能な「セキュア状態」にある。
第2相で、指揮プロセスが、第1相の結果を見て、コミットをするか
ロールバックをするかを決める。
- 2相コミットメントでも、コミット後の一部の遠隔サイトの障害のために
不整合が起きる可能性はあるため、3相コミットメント制御の導入も考えられる。
これは、セキュア状態確認後、更にプリコミット状態で確認を取る方式である。
3相コミットメント制御は、データの一貫性保証を高度に高めるが、
トランザクションの応答性能を悪くし、ネットワーク負荷上昇、
回線使用料の増加といった問題もあり、実用性には問題がある。
◆分散データベース化の注意点
- 問合せの最適化処理。DBMSのデータ集合操作を活用し、
無駄なデータを検索してネットワーク負荷を上げることの無いように注意する。
- 変更の同期化。2相コミット処理などを用いて、
障害発生時にもデータの一貫性が保たれるように工夫する。
- データ透過性。データの存在場所や公開範囲の設計をしっかり行い、
管理を行い、利用者にはデータの物理的な存在場所を意識させないようにする。
- オープン化。異機種、異アプリケーション間でのやりとりが
実現できるか、考慮する必要がある。
◆分散データベースシステムの要件
- 位置透過性 location transparency
データの物理的位置を意識せずにデータにアクセスできること。
- 移動透過性 migration transparency
分散されたデータを移動した場合でも、
業務プログラムや操作手順を変更することなくアクセスできること。
- 分割透過性 fragmentation transparency
一つの表のデータが、複数のサイトに分割して格納されていても、
利用者が意識することなくアクセスできること。
- 重複透過性 replication transparency
一つの表が複数のサイトに存在しても、
利用者が意識することなくアクセスできること。
- 障害透過性 failure transparency
あるサイトに障害が発生しても、
代替データベースサイトがその機能を代行し、
システム全体のサービスを停止させないこと。
- データモデル透過性 data model transparency
各サイトのデータモデルが、リレーショナルモデル、階層モデル、
ネットワークモデル、ランダムファイルなどのように異なっていても、
利用者が意識することなくアクセスできること。
- HW/OS独立性 Hardware/OperatingSystem independency
サイト間のハードウェアおよびOSの差異を意識することなく
お互いのデータベースがアクセスできること。
- ネットワーク独立性 Network independency
ネットワークプロトコルや、ネットワーク構成を意識せずに利用できること。
- 整合性 integrity
各サイト間で、データの整合性が保たれていて矛盾が起きないこと。