2. Today Outline
1. bLSM: A General Purpose Log Structured Merge Tree
Russell Sears, Yahoo! Research; Raghu Ramakrishnan, Yahoo!
Research
2. NoDB: Efficient Query Execution on Raw Data File
Ioannis Alagiannis, EPFL; Renata Borovica, EPFL; Miguel
Branco, EPFL; Stratos Idreos, CWI; Anastasia Ailamaki, EPFL
3. Skeleton Automata for FPGAs: Reconfiguring without
Reconstructing
Jens Teubner, ETH Zürich; Louis Woods, ETH Zürich;
Chongling Nie, ETH Zürich
2 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
3. 1. bLSM: A General Purpose Log Structured Merge Tree
- Russell Sears, Yahoo! Research; Raghu Ramakrishnan, Yahoo! Research
3 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
4. 1. bLSM: A General Purpose Log Structured Merge Tree
論文概要
Update/insert-intensiveな環境向けのLSM木(’96年)の改良
であるbLSM木*1を提案、 B木に近いlookup/scan性能と時間
有界保証のあるmerge処理(後述)を実現
技術背景 update -- read&modify values
insert – append a new key/value pair
B木の特徴 lookup – read a single key/value pair
scan – read a range of key/value pairs
scan/lookup性能はほぼ最適
update/insertの際のシーク回数はやや多い
LSM木の特徴
ならし解析的にupdate/insertのコストが良い
scan/lookupの際のシーク回数が要素数の対数必要
update/insertが内部データのmerge処理に阻害される
*1Yahoo!のPNUTS[10]/Walnut[9]のバックエンドとして使用
4 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
5. 1. bLSM: A General Purpose Log Structured Merge Tree
論文概要
Update/insert-intensiveな環境向けのLSM木(’96年)の改良
であるbLSM木*1を提案、 B木に近いlookup/scan性能と時間
有界保証のあるmerge処理(後述)を実現
技術背景 update -- read&modify values
insert – append a new key/value pair
B木の特徴 lookup – read a single key/value pair
scan – read a range of key/value pairs
scan/lookup性能はほぼ最適
update/insertの際のシーク回数はやや多い
目標
LSM木の特徴 bLSM木
継承
ならし解析的にupdate/insertのコストが良い
改善
scan/lookupの際のシーク回数が要素数の対数必要
update/insertが内部データのmerge処理に阻害される
*1Yahoo!のPNUTS[10]/Walnut[9]のバックエンドとして使用
5 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
8. 1. bLSM: A General Purpose Log Structured Merge Tree
LSM木の課題: merge処理がupdate/insertを阻害
merge処理中のinsertのlatencyが増大(下図)
引用: MySQL vs. LevelDB, https://github.com/m1ch1/mapkeeper/wiki/MySQL-vs.-LevelDB
8 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
9. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの概要
lookup/scan処理の最適化
C0、C1とC2の3-level固定の構成/bloom filter/file partitioning
Merge処理の最適化
Level Schedulerによるupdate/insertとmerge処理の同期化
本論文内のFigure 1から引用
9 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
10. 1. bLSM: A General Purpose Log Structured Merge Tree
Level(Spring & Gear) Scheduler
update/insertで書き込むデータとmerge量との比率(ギア
比)を調整して、それぞれのスレッドを同期化
APが行うupdate/insertを中断させず継続させることが目的
各スレッドをスケジューラで同期化
本論文内のFigure 1/5から引用
※絵で描くのは簡単だが、実装は大変らしいです→https://github.com/sears/bLSM
10 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
11. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能概要
Update系の処理はLevelDB(LSM木)に対しても有利
R/Wの際のRの処理をBloom-Filterで最適化
Lookup/scan系の処理もB+Treeに近い性能
Bloom FilterとPartitioning
UniformなUpdateは有界時間で完了
ただし、集中したUpdateの場合は保証できない シーク回数
本論文内のTable 1から引用
11 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
12. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能概要
Update系の処理はLevelDB(LSM木)に対しても有利
R/Wの際のRの処理をBloom-Filterで最適化
Lookup/scan系の処理もB+Treeに近い性能
Bloom FilterとPartitioning
UniformなUpdateは有界時間で完了
ただし、集中したUpdateの場合は保証できない シーク回数
本論文内のTable 1から引用
12 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
13. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能概要
Update系の処理はLevelDB(LSM木)に対しても有利
R/Wの際のRの処理をBloom-Filterで最適化
Lookup/scan系の処理もB+Treeに近い性能
Bloom FilterとPartitioning
UniformなUpdateは有界時間で完了
ただし、集中したUpdateの場合は保証できない シーク回数
本論文内のTable 1から引用
13 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
14. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能結果
Schedulerの恩恵により、latencyのスパイクが減少
本論文内のFigure 7から引用
左がbLSM木、右がLSM木(LSM木)
14 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
15. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能結果
lookup性能がB木(InnoDB)より良い結果に
未記載だがshort-range scanはInnoDBの性能が良い
本論文内のFigure 8から引用
15 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
16. 1. bLSM: A General Purpose Log Structured Merge Tree
bLSMの性能結果
lookup性能がB木(InnoDB)より良い結果に
未記載だがshort-range scanはInnoDBの性能が良い
bLSM木は100% writeで
33,000ops/sec.
本論文内のFigure 8から引用
16 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
17. 2. NoDB: Efficient Query Execution on Raw Data File
- Ioannis Alagiannis, EPFL; Renata Borovica, EPFL; Miguel Branco, EPFL;
Stratos Idreos, CWI; Anastasia Ailamaki, EPFL
17 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
18. 2. NoDB: Efficient Query Execution on Raw Data File
論文概要
データ規模が大きくなるにつれてコストが高くなるDBへのデー
タロードの課題に着手、データのロードをなくしつつ既存のDB
機能を利用する新たなシステムデザイン(NoDB)の提案、ま
たこれをPostgreSQL上に実装したPostgreRawを提示
研究背景
CIDER’11の”Here are my Data Files. Here are my Queries.
Where are my Results?”[15]のAdaptive Loadingが先駆け
ICDE’12でAilamaki先生が「The Future of Scientific Data
Bases」パネリストとして参加、NoDBの話題
SIGMOD’12採択←いまここ
18 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
19. 2. NoDB: Efficient Query Execution on Raw Data File
NoDBの目標
必要なデータをRawFile(CSVファイル等)から適宜読み込み
解析する(In situ Processing)ことで、ロード時間をなくしロード
済みのDBとほぼ同等の性能を目指す
DBMS w external files?
Oracle/PostgreSQL/MySQL等
にはRawFileを内部Relationとし
てみせる機能が実装済み
本論文内のFigure 1から引用
※Q1~Q4は任意のクエリを表している
19 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
20. 2. NoDB: Efficient Query Execution on Raw Data File
「DBMS w external files」との差分機能
1. Selective tokenizing/parsing/tuple formation
RawFileにおける各行の必要カラムのみを変換
2. Adaptive indexing (positional map)
B木のように全ての行の対応関係を保持
するのではなく参照
に応じて適宜記憶
3. Tuple caching 本論文内のFigure 2から引用
一度読み込んだtupleを参照頻度に応じてcaching
20 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
21. 2. NoDB: Efficient Query Execution on Raw Data File
性能評価
PostgresRaw PM + C (Positional Map + Cache enabled)
クエリQ1~Q9の詳細は明記無し・・・
単純なWHERE句を用いたSELECTでselectivity/projectivityを変化
本論文内のFigure 7から引用
21 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)
22. 3. Skeleton Automata for FPGAs
- Jens Teubner, ETH Zürich; Louis Woods, ETH Zürich; Chongling Nie, ETH Zürich
22 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)