データベーススペシャリスト(分散データベースシステム)
さて2日間おやすみしてしまいましたが、本日は分散データベースについて
進めます。 実際の運用だとかなり大変そうですね。
1:分散データベースシステム定義
・分散データベースシステムとは
地理的、論理的に分割した複数のシステムが
通信手段を介して結合、強調してまとまった処理を行うシステム
ローカルサイトとリモートサイトからなる。
・利点
危険分散:障害の局所化と災害時のリスク分散
負荷分散:複数マシンに分割して格納することで負荷を分散
2:分散データベースにおける透過性
・アクセス透過性
ローカルサイトでもリモートサイトでも同じ方法でアクセス可能
・位置透過性
データの場所を利用者に意識させない。
・重複透過性
1つの表が複数あったりサイト間でデータの複製が存在していても
利用者に意識させない。
・分割透過性
1つの表が複数のサイトにまたがって格納されていても意識させない。
・移動透過性
表を格納しているサイトを変更しても利用者に格納先の変更を意識させない。
・障害透過性
いずれかのサイトで障害が発生しても隠蔽してしまう。
・並行透過性
複数サイトから同時に並行して操作できる。
・規模透過性
アプリケーションやOSに影響を与えずにシステム規模を変更できる。
3:分散データベースでの表の結合方法
・セミ結合(Semi-Join)
通信負荷を小さくする方式。射影結果を結合相手のサイトに
送信して表を結合してから自サイトにその結合結果を転送する。
・分散入れ子ループ結合
一方のサイトから射影と選択を行った外表の行を1行ずつ他方の
サイトに転送して受け取った各行に結合処理を行う。
*結合する表がリモートサイトの場合はセミジョインのほうがいい。
・分散併合結合
一方のソート結果他方に転送してマージ処理を行ってから
リモートの処理結果をローカルに転送する。
・分散ハッシュ結合
行数が少ない方の表の検索結果を他方のサイトに転送して
ハッシュ表を作成してからハッシュ結合を行う。
4:2相コミットメントプロトコル
コミット準備→コミット最終指示というパターン
・サブトランザクション
各サイト内のトランザクション
・グローバルトランザクション
システム全体のトランザクション
5:データの分散配置
・水平分割
行の集まりごとに各サイトにデータを分割する。
・垂直分割
列の集まりごとに各サイトにデータを分割する。
・並列処理のためのパーテショニング
キーレンジ分割:特定のキー範囲毎で分割する。
ハッシュ分割 :ハッシングで格納先を決める。
ラウンドロビン方式: 順序で格納先を変えていく。
最初の就職先で各サーバに水平分散でデータを保持とかあった気がします。支店とか営業所単位でその営業所のデータを保管するとかいう内容でした。
今の職場のSFAでも一応水平分散してるみたいですね。こうしてみると
結構、使ってるもんですね分散データベース。
2相コミットメントはあまり使う機会はなかったです。そういう設計が必要な
局面は多くありました。しかしながら、OSコマンド使ったりするので処理を簡略化
しないと工数がかかるという理由でセキュア状態が省かれてました(泣)。
データベースの矛盾は絶対に防止しないといけないんで譲ってはいかんのでしょうが
運用系については発生頻度と工数のトレードオフにされてしまい。
最終は決裁権者に削れと言われる部分になるんでしょうね(苦笑)。
ちなみに 3相コミットもあるそうです。
こいつは全く想像ができないですが、時間があるときに調べてみようと
思います。
◆参照メモ
http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/499721c3388537bd49256b1a001aab28/4925722f004efcee49257355004d44e6/$FILE/%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%BB%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0.pdf
http://lets.postgresql.jp/documents/technical/partitioning/1
http://www.shift-the-oracle.com/table/partition-table.html
http://www-jp.mysql.com/products/enterprise/partitioning.html
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05765-03/partconc.htm
http://download.oracle.com/docs/cd/E16338_01/server.112/b56301/ds_txns003.htm
http://as0714.blogspot.com/2010/12/2.html
進めます。 実際の運用だとかなり大変そうですね。
1:分散データベースシステム定義
・分散データベースシステムとは
地理的、論理的に分割した複数のシステムが
通信手段を介して結合、強調してまとまった処理を行うシステム
ローカルサイトとリモートサイトからなる。
・利点
危険分散:障害の局所化と災害時のリスク分散
負荷分散:複数マシンに分割して格納することで負荷を分散
2:分散データベースにおける透過性
・アクセス透過性
ローカルサイトでもリモートサイトでも同じ方法でアクセス可能
・位置透過性
データの場所を利用者に意識させない。
・重複透過性
1つの表が複数あったりサイト間でデータの複製が存在していても
利用者に意識させない。
・分割透過性
1つの表が複数のサイトにまたがって格納されていても意識させない。
・移動透過性
表を格納しているサイトを変更しても利用者に格納先の変更を意識させない。
・障害透過性
いずれかのサイトで障害が発生しても隠蔽してしまう。
・並行透過性
複数サイトから同時に並行して操作できる。
・規模透過性
アプリケーションやOSに影響を与えずにシステム規模を変更できる。
3:分散データベースでの表の結合方法
・セミ結合(Semi-Join)
通信負荷を小さくする方式。射影結果を結合相手のサイトに
送信して表を結合してから自サイトにその結合結果を転送する。
・分散入れ子ループ結合
一方のサイトから射影と選択を行った外表の行を1行ずつ他方の
サイトに転送して受け取った各行に結合処理を行う。
*結合する表がリモートサイトの場合はセミジョインのほうがいい。
・分散併合結合
一方のソート結果他方に転送してマージ処理を行ってから
リモートの処理結果をローカルに転送する。
・分散ハッシュ結合
行数が少ない方の表の検索結果を他方のサイトに転送して
ハッシュ表を作成してからハッシュ結合を行う。
4:2相コミットメントプロトコル
コミット準備→コミット最終指示というパターン
・サブトランザクション
各サイト内のトランザクション
・グローバルトランザクション
システム全体のトランザクション
5:データの分散配置
・水平分割
行の集まりごとに各サイトにデータを分割する。
・垂直分割
列の集まりごとに各サイトにデータを分割する。
・並列処理のためのパーテショニング
キーレンジ分割:特定のキー範囲毎で分割する。
ハッシュ分割 :ハッシングで格納先を決める。
ラウンドロビン方式: 順序で格納先を変えていく。
最初の就職先で各サーバに水平分散でデータを保持とかあった気がします。支店とか営業所単位でその営業所のデータを保管するとかいう内容でした。
今の職場のSFAでも一応水平分散してるみたいですね。こうしてみると
結構、使ってるもんですね分散データベース。
2相コミットメントはあまり使う機会はなかったです。そういう設計が必要な
局面は多くありました。しかしながら、OSコマンド使ったりするので処理を簡略化
しないと工数がかかるという理由でセキュア状態が省かれてました(泣)。
データベースの矛盾は絶対に防止しないといけないんで譲ってはいかんのでしょうが
運用系については発生頻度と工数のトレードオフにされてしまい。
最終は決裁権者に削れと言われる部分になるんでしょうね(苦笑)。
ちなみに 3相コミットもあるそうです。
こいつは全く想像ができないですが、時間があるときに調べてみようと
思います。
◆参照メモ
http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/499721c3388537bd49256b1a001aab28/4925722f004efcee49257355004d44e6/$FILE/%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%83%BB%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0.pdf
http://lets.postgresql.jp/documents/technical/partitioning/1
http://www.shift-the-oracle.com/table/partition-table.html
http://www-jp.mysql.com/products/enterprise/partitioning.html
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05765-03/partconc.htm
http://download.oracle.com/docs/cd/E16338_01/server.112/b56301/ds_txns003.htm
http://as0714.blogspot.com/2010/12/2.html
コメント