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
370
データサイエンス13_解析.pdf
jnlp
0
460
データサイエンス12_分類.pdf
jnlp
0
320
データサイエンス11_前処理.pdf
jnlp
0
450
Recurrent neural network based language model
jnlp
0
130
自然言語処理研究室 研究概要(2012年)
jnlp
0
120
自然言語処理研究室 研究概要(2013年)
jnlp
0
88
自然言語処理研究室 研究概要(2014年)
jnlp
0
100
自然言語処理研究室 研究概要(2015年)
jnlp
0
160
Other Decks in Education
See All in Education
統計学に必要な数学(線形代数含む)
kosugitti
0
360
Moodle 4.5 LTS : Guide des nouvelles fonctionnalités 2025-2027
pimenko
0
170
Tangible, Embedded and Embodied Interaction - Lecture 7 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.6k
複式簿記から純資産を排除する/eliminate_net_assets_from_double-entry_bookkeeping
florets1
1
360
Monaca Education 活用事例セミナー:「年間通してMonaca Educationを活用する授業実践のご報告」
asial_edu
0
250
あきた地域課題解決インターンMarch2025
toyodome
0
410
Introduction - Lecture 1 - Advanced Topics in Big Data (4023256FNR)
signer
PRO
1
1.7k
いにしえの国産データベース~桐~って知っていますか?
masakiokuda
2
140
保育士チームが実践している連続的な観察と多面的な観察を共有するための振り返り / Reflection to share “continuous and multifaceted observations” as practiced by a team of childcare professionals
psj59129
0
3.9k
女子商アプリ開発の軌跡
asial_edu
0
340
【みんなのコード】文科省生成AIガイドラインVer.2.0 入門編
codeforeveryone
0
200
Training Alchemy: Converting ordinary training into memorable experiences
tmiket
1
110
Featured
See All Featured
Done Done
chrislema
184
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Thoughts on Productivity
jonyablonski
69
4.6k
Practical Orchestrator
shlominoach
187
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
RailsConf 2023
tenderlove
30
1.1k
4 Signs Your Business is Dying
shpigford
183
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
570
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
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 レプリケーションの種類 • 同期レプリケーション – 同期がリアルタイム、またはトランザクションごと – ネットワークの負荷が増大する可能性
• 非同期レプリケーション – 複製と同期が一定間隔ごと(バッチ型) – 複製サイトに更新ログを送信し、複製サイトではそのロ グが反映される形で同期される – データベースイメージ(スナップショット)を送信する方式 もある – 複製サイトは読み取り専用のことが多い