Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースと応用システム:分散データベース
Search
自然言語処理研究室
July 04, 2014
Education
0
2.9k
データベースと応用システム:分散データベース
自然言語処理研究室
July 04, 2014
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
360
データサイエンス13_解析.pdf
jnlp
0
420
データサイエンス12_分類.pdf
jnlp
0
310
データサイエンス11_前処理.pdf
jnlp
0
430
Recurrent neural network based language model
jnlp
0
120
自然言語処理研究室 研究概要(2012年)
jnlp
0
110
自然言語処理研究室 研究概要(2013年)
jnlp
0
79
自然言語処理研究室 研究概要(2014年)
jnlp
0
92
自然言語処理研究室 研究概要(2015年)
jnlp
0
150
Other Decks in Education
See All in Education
Flinga
matleenalaakso
2
13k
人々はさくらになにを込めたか
jamashita
0
130
Adobe Express
matleenalaakso
1
7.6k
Ch2_-_Partie_1.pdf
bernhardsvt
0
120
1106
cbtlibrary
0
430
勉強したらどうなるの?
mineo_matsuya
10
6.8k
Medicare 101 for 2025
robinlee
PRO
0
330
Nodiレクチャー 「CGと数学」講義資料 2024/11/19
masatatsu
1
260
LinkedIn
matleenalaakso
0
3.4k
勉強する必要ある?
mineo_matsuya
2
2.3k
The Gender Gap in the Technology Field and Efforts to Address It
codeforeveryone
0
280
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
290
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Agile that works and the tools we love
rasmusluckow
328
21k
The Cult of Friendly URLs
andyhume
78
6.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Gamification - CAS2011
davidbonilla
80
5.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Producing Creativity
orderedlist
PRO
342
39k
Adopting Sorbet at Scale
ufuk
73
9.1k
Transcript
(c)長岡技術科学大学 電気系 1 データベースと応用システム 分散データベース 山本和英 長岡技術科学大学 電気系
(c)長岡技術科学大学 電気系 2 分散データベース • 地理的または論理的に分散しているデータベース • 危険分散 – 災害やシステムの障害を最小限に抑える
• 負荷分散 – 複数運用することで負荷が集中しない – システムの拡張が容易
(c)長岡技術科学大学 電気系 3 分散データベースの形態 • 垂直分散 – データベースに主従関係がある。主サイトは従サイトに アクセスせず、従サイト間のアクセスもない。 –
実現・管理が容易 – 主サイトにアクセスが集中 • 水平分散 – 各データベースが対等な関係で、互いにアクセスし得る – 拡張性や耐障害性が高く、負荷の集中もない – 管理がかなり複雑になる
(c)長岡技術科学大学 電気系 4 データベースの透過性 • 透過性:分散していることを利用者に意識させず、 あたかも一つのデータベースのように見せること • 透過性要素: –
位置:どこに保存されているかを意識不要 – 移動:サイトを移動した場合もこれを意識させない – アクセス:分散かどうかに関係なく同一アクセス可能 – 重複(複製):重複保存されていても意識不要 – 分割:表が分散されていることを意識不要 – 障害:障害を隠蔽し、適切に復旧する – 規模:大規模化しても環境に影響しない
(c)長岡技術科学大学 電気系 5 データの分散配置
(c)長岡技術科学大学 電気系 6 データベースの表分割 表が大量である場合は表を分割して保存する必要が ある。 • 垂直分割(縦分割) – 独立性の高い列集合ごとにサイト分割
• 水平分割(横分割) – 行の集まりごとにサイト分割。下記3方法がある。 – ラウンドロビン(格納順)分割 – キーレンジ分割 – ハッシュ分割
(c)長岡技術科学大学 電気系 7 ラウンドロビン方式 (格納順分割) • キーの値に全く関係なく、1行ごとに一定順序で保 存場所を決める方式 – 1行目はここ、2行目はあそこといった感じで
• すべての保存場所が均等な規模になる • 検索時には、すべての保存場所を検索対象とする 必要がある
(c)長岡技術科学大学 電気系 8 キーレンジ分割 • 特定のキーの値ごとに、その行を保存する場所を決 定する分割方式 – あるキーの値が1~10ならこのサイト、11~20ならあの サイト、といった感じ。
• どこに何が保存されているのかが把握できるので 運用が容易 • 保存領域規模が均等になるようにキー値を分割す る必要がある
(c)長岡技術科学大学 電気系 9 ハッシュ分割 • 特定のキー値に対して、ハッシュ関数を用いて保存 場所を決定する分割方式 – あるキーを7で割った余りが1ならここ、余り2ならあそこ、 といった雰囲気で。
• ハッシュを用いるため、一般にはある程度均等に分 割される。ただしキーとハッシュ関数によっては偏る こともある。
(c)長岡技術科学大学 電気系 10 分散問い合わせ処理
(c)長岡技術科学大学 電気系 11 分散問い合わせ処理 分散されている複数サイトの表を結合する際は、通信 負荷も考慮する必要がある。 主なテーブルの結合方法: • 入れ子ループ法 •
ソートマージ法 • セミジョイン(準結合)法
(c)長岡技術科学大学 電気系 12 入れ子ループ法 サイトAが、サイトBとCの結合処理を行う場合、 • サイトB(アウターリレーション)から1行ずつサイトC に送る • サイトC(インナーリレーション)は送られてきた行ご
とに照合して結合 • サイトBが全行送り終わったらサイトCの結合結果 をサイトAに送る • 処理回数は、アウターリレーションの行数 × イン ナーリレーションの行数(インデックスがない場合)
(c)長岡技術科学大学 電気系 13 ソートマージ(マージ結合)法 • 各サイトで結合対象の列でソート • 一方のサイトから他方のサイトへ表全体を転送 • マージ処理で結合演算する方法
• 結合対象の表が入出力バッファに収まらない場合 に用いる • 効率は悪い
(c)長岡技術科学大学 電気系 14 セミジョイン(準結合)法 前ページと同様のタスクについて、 • サイトBの結合対象列を射影演算で抽出、サイトCに送 る • サイトCで結合演算を行い、結果をサイトBに返す
• サイトBで再度結合演算を行い、結果をサイトAに返す • 通信量は大幅に減少して効率がいい • 結合演算を2度行う必要があるのがちょっと面倒
(c)長岡技術科学大学 電気系 15 分散トランザクション
(c)長岡技術科学大学 電気系 16 分散トランザクション • 一つのトランザクションが複数のサイトに関係する 場合、トランザクションの原子性を満たすように注 意する必要がある。 – この処理機構をコミットメント制御と呼ぶ
– 制御するほうを「主サイト」、されるほうを「従サイト」と 呼ぶ • コミットメント制御の方法 – 1相コミットメント – 2相コミットメント – 3相コミットメント
(c)長岡技術科学大学 電気系 17 1相コミットメント • 主:コミット要求 – すべての従サイトが一斉に更新される • 問題点:従サイト1のコミット完了後に従サイト2に
障害発生すると、トランザクションの原子性が保た れなくなる
(c)長岡技術科学大学 電気系 18 主サイト 従サイト2 更新処理要求 更新処理 応答 コミット要求 コミット
従サイト1 更新処理 コミット
(c)長岡技術科学大学 電気系 19 2相コミットメント • 主:コミット準備指示(可否問い合わせ) – 準備ができた従サイトは応答する(セキュア状態) – 主サイトは全従サイトがセキュアとなるまで待つ
• 主:コミット要求 – すべてのデータベースが一斉に更新される – もしどこかの従サイトで異常発生すると、それを主サイ トに伝え、主サイトは全従サイトにロールバック命令 • 問題点:すべてのサイトがセキュア状態の時に障 害があると障害の回復を待ち続けてしまう。
(c)長岡技術科学大学 電気系 20 主サイト 従サイト2 更新処理要求 更新処理 応答 コミット要求 コミット
従サイト1 更新処理 コミット コミット準備 コミット準備 コミット準備 指示 応答 (セキュア 状態)
(c)長岡技術科学大学 電気系 21 3相コミットメント • セキュア状態確認後に、さらに準備指示の確認 (プリコミット)を送信する。 • 2回確認すると何が違う? –
2相:全サイトがセキュア状態であれば待ち続 けるしかない – 3相:タイムアウトによるアボートが実施できる
(c)長岡技術科学大学 電気系 22 レプリケーション
(c)長岡技術科学大学 電気系 23 レプリケーション • 遠隔地で分散している分散データベース間で、ある データベース内容の全部(または一部)を、一定間 隔で複写すること – 複写された側のサイトをレプリカと呼ぶ
• 複数サイトでデータのコピーを持つことで負荷分散 が可能 • DBMSの障害発生時も複製されたデータの利用が 可能
(c)長岡技術科学大学 電気系 24 レプリケーションの種類 • 同期レプリケーション – 同期がリアルタイム、またはトランザクションごと – ネットワークの負荷が増大する可能性
• 非同期レプリケーション – 複製と同期が一定間隔ごと(バッチ型) – 複製サイトに更新ログを送信し、複製サイトではそのロ グが反映される形で同期される – データベースイメージ(スナップショット)を送信する方式 もある – 複製サイトは読み取り専用のことが多い