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
350
データサイエンス13_解析.pdf
jnlp
0
410
データサイエンス12_分類.pdf
jnlp
0
310
データサイエンス11_前処理.pdf
jnlp
0
430
Recurrent neural network based language model
jnlp
0
110
自然言語処理研究室 研究概要(2012年)
jnlp
0
110
自然言語処理研究室 研究概要(2013年)
jnlp
0
76
自然言語処理研究室 研究概要(2014年)
jnlp
0
89
自然言語処理研究室 研究概要(2015年)
jnlp
0
140
Other Decks in Education
See All in Education
Canva
matleenalaakso
0
430
Web 2.0 Patterns and Technologies - Lecture 8 - Web Technologies (1019888BNR)
signer
PRO
0
2.4k
Blogit opetuksessa
matleenalaakso
0
1.6k
ルクソールとツタンカーメン
masakamayama
1
860
Padlet opetuksessa
matleenalaakso
4
12k
Repaso electricidade e electrónica
irocho
0
200
"数学" をプログラミングしてもらう際に気をつけていること / Key Considerations When Programming "Mathematics"
guvalif
0
570
Qualtricsで相互作用実験する「SMARTRIQS」入門編
kscscr
0
320
Flinga
matleenalaakso
2
13k
勉強する必要ある?
mineo_matsuya
2
1.6k
1030
cbtlibrary
0
300
世界のオープンソースロボットたち #1
shiba_8ro
0
140
Featured
See All Featured
Being A Developer After 40
akosma
87
590k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Unsuck your backbone
ammeep
668
57k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
A designer walks into a library…
pauljervisheath
204
24k
RailsConf 2023
tenderlove
29
900
Teambox: Starting and Learning
jrom
133
8.8k
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 レプリケーションの種類 • 同期レプリケーション – 同期がリアルタイム、またはトランザクションごと – ネットワークの負荷が増大する可能性
• 非同期レプリケーション – 複製と同期が一定間隔ごと(バッチ型) – 複製サイトに更新ログを送信し、複製サイトではそのロ グが反映される形で同期される – データベースイメージ(スナップショット)を送信する方式 もある – 複製サイトは読み取り専用のことが多い