Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースと応用システム:分散データベース

 データベースと応用システム:分散データベース

More Decks by 自然言語処理研究室

Other Decks in Education

Transcript

  1. (c)長岡技術科学大学 電気系 1
    データベースと応用システム
    分散データベース
    山本和英
    長岡技術科学大学 電気系

    View full-size slide

  2. (c)長岡技術科学大学 電気系 2
    分散データベース
    ● 地理的または論理的に分散しているデータベース
    ● 危険分散
    – 災害やシステムの障害を最小限に抑える
    ● 負荷分散
    – 複数運用することで負荷が集中しない
    – システムの拡張が容易

    View full-size slide

  3. (c)長岡技術科学大学 電気系 3
    分散データベースの形態
    ● 垂直分散
    – データベースに主従関係がある。主サイトは従サイトに
    アクセスせず、従サイト間のアクセスもない。
    – 実現・管理が容易
    – 主サイトにアクセスが集中
    ● 水平分散
    – 各データベースが対等な関係で、互いにアクセスし得る
    – 拡張性や耐障害性が高く、負荷の集中もない
    – 管理がかなり複雑になる

    View full-size slide

  4. (c)長岡技術科学大学 電気系 4
    データベースの透過性
    ● 透過性:分散していることを利用者に意識させず、
    あたかも一つのデータベースのように見せること
    ● 透過性要素:
    – 位置:どこに保存されているかを意識不要
    – 移動:サイトを移動した場合もこれを意識させない
    – アクセス:分散かどうかに関係なく同一アクセス可能
    – 重複(複製):重複保存されていても意識不要
    – 分割:表が分散されていることを意識不要
    – 障害:障害を隠蔽し、適切に復旧する
    – 規模:大規模化しても環境に影響しない

    View full-size slide

  5. (c)長岡技術科学大学 電気系 5
    データの分散配置

    View full-size slide

  6. (c)長岡技術科学大学 電気系 6
    データベースの表分割
    表が大量である場合は表を分割して保存する必要が
    ある。
    ● 垂直分割(縦分割)
    – 独立性の高い列集合ごとにサイト分割
    ● 水平分割(横分割)
    – 行の集まりごとにサイト分割。下記3方法がある。
    – ラウンドロビン(格納順)分割
    – キーレンジ分割
    – ハッシュ分割

    View full-size slide

  7. (c)長岡技術科学大学 電気系 7
    ラウンドロビン方式
    (格納順分割)
    ● キーの値に全く関係なく、1行ごとに一定順序で保
    存場所を決める方式
    – 1行目はここ、2行目はあそこといった感じで
    ● すべての保存場所が均等な規模になる
    ● 検索時には、すべての保存場所を検索対象とする
    必要がある

    View full-size slide

  8. (c)長岡技術科学大学 電気系 8
    キーレンジ分割
    ● 特定のキーの値ごとに、その行を保存する場所を決
    定する分割方式
    – あるキーの値が1~10ならこのサイト、11~20ならあの
    サイト、といった感じ。
    ● どこに何が保存されているのかが把握できるので
    運用が容易
    ● 保存領域規模が均等になるようにキー値を分割す
    る必要がある

    View full-size slide

  9. (c)長岡技術科学大学 電気系 9
    ハッシュ分割
    ● 特定のキー値に対して、ハッシュ関数を用いて保存
    場所を決定する分割方式
    – あるキーを7で割った余りが1ならここ、余り2ならあそこ、
    といった雰囲気で。
    ● ハッシュを用いるため、一般にはある程度均等に分
    割される。ただしキーとハッシュ関数によっては偏る
    こともある。

    View full-size slide

  10. (c)長岡技術科学大学 電気系 10
    分散問い合わせ処理

    View full-size slide

  11. (c)長岡技術科学大学 電気系 11
    分散問い合わせ処理
    分散されている複数サイトの表を結合する際は、通信
    負荷も考慮する必要がある。
    主なテーブルの結合方法:
    ● 入れ子ループ法
    ● ソートマージ法
    ● セミジョイン(準結合)法

    View full-size slide

  12. (c)長岡技術科学大学 電気系 12
    入れ子ループ法
    サイトAが、サイトBとCの結合処理を行う場合、
    ● サイトB(アウターリレーション)から1行ずつサイトC
    に送る
    ● サイトC(インナーリレーション)は送られてきた行ご
    とに照合して結合

    サイトBが全行送り終わったらサイトCの結合結果
    をサイトAに送る
    ● 処理回数は、アウターリレーションの行数 × イン
    ナーリレーションの行数(インデックスがない場合)

    View full-size slide

  13. (c)長岡技術科学大学 電気系 13
    ソートマージ(マージ結合)法
    ● 各サイトで結合対象の列でソート
    ● 一方のサイトから他方のサイトへ表全体を転送
    ● マージ処理で結合演算する方法
    ● 結合対象の表が入出力バッファに収まらない場合
    に用いる
    ● 効率は悪い

    View full-size slide

  14. (c)長岡技術科学大学 電気系 14
    セミジョイン(準結合)法
    前ページと同様のタスクについて、

    サイトBの結合対象列を射影演算で抽出、サイトCに送


    サイトCで結合演算を行い、結果をサイトBに返す

    サイトBで再度結合演算を行い、結果をサイトAに返す

    通信量は大幅に減少して効率がいい

    結合演算を2度行う必要があるのがちょっと面倒

    View full-size slide

  15. (c)長岡技術科学大学 電気系 15
    分散トランザクション

    View full-size slide

  16. (c)長岡技術科学大学 電気系 16
    分散トランザクション
    ● 一つのトランザクションが複数のサイトに関係する
    場合、トランザクションの原子性を満たすように注
    意する必要がある。
    – この処理機構をコミットメント制御と呼ぶ
    – 制御するほうを「主サイト」、されるほうを「従サイト」と
    呼ぶ

    コミットメント制御の方法
    – 1相コミットメント
    – 2相コミットメント
    – 3相コミットメント

    View full-size slide

  17. (c)長岡技術科学大学 電気系 17
    1相コミットメント
    ● 主:コミット要求
    – すべての従サイトが一斉に更新される
    ● 問題点:従サイト1のコミット完了後に従サイト2に
    障害発生すると、トランザクションの原子性が保た
    れなくなる

    View full-size slide

  18. (c)長岡技術科学大学 電気系 18
    主サイト 従サイト2
    更新処理要求
    更新処理
    応答
    コミット要求
    コミット
    従サイト1
    更新処理
    コミット

    View full-size slide

  19. (c)長岡技術科学大学 電気系 19
    2相コミットメント
    ● 主:コミット準備指示(可否問い合わせ)
    – 準備ができた従サイトは応答する(セキュア状態)
    – 主サイトは全従サイトがセキュアとなるまで待つ
    ● 主:コミット要求
    – すべてのデータベースが一斉に更新される
    – もしどこかの従サイトで異常発生すると、それを主サイ
    トに伝え、主サイトは全従サイトにロールバック命令
    ● 問題点:すべてのサイトがセキュア状態の時に障
    害があると障害の回復を待ち続けてしまう。

    View full-size slide

  20. (c)長岡技術科学大学 電気系 20
    主サイト 従サイト2
    更新処理要求
    更新処理
    応答
    コミット要求
    コミット
    従サイト1
    更新処理
    コミット
    コミット準備
    コミット準備
    コミット準備
    指示
    応答
    (セキュア
    状態)

    View full-size slide

  21. (c)長岡技術科学大学 電気系 21
    3相コミットメント
    ● セキュア状態確認後に、さらに準備指示の確認
    (プリコミット)を送信する。
    ● 2回確認すると何が違う?
    – 2相:全サイトがセキュア状態であれば待ち続
    けるしかない
    – 3相:タイムアウトによるアボートが実施できる

    View full-size slide

  22. (c)長岡技術科学大学 電気系 22
    レプリケーション

    View full-size slide

  23. (c)長岡技術科学大学 電気系 23
    レプリケーション
    ● 遠隔地で分散している分散データベース間で、ある
    データベース内容の全部(または一部)を、一定間
    隔で複写すること
    – 複写された側のサイトをレプリカと呼ぶ

    複数サイトでデータのコピーを持つことで負荷分散
    が可能
    ● DBMSの障害発生時も複製されたデータの利用が
    可能

    View full-size slide

  24. (c)長岡技術科学大学 電気系 24
    レプリケーションの種類
    ● 同期レプリケーション
    – 同期がリアルタイム、またはトランザクションごと
    – ネットワークの負荷が増大する可能性
    ● 非同期レプリケーション
    – 複製と同期が一定間隔ごと(バッチ型)
    – 複製サイトに更新ログを送信し、複製サイトではそのロ
    グが反映される形で同期される
    – データベースイメージ(スナップショット)を送信する方式
    もある
    – 複製サイトは読み取り専用のことが多い

    View full-size slide