SIGMOD’12勉強会 -Session 7-

27
Session 7: Storage Systems, Query Processing and Optimization 担当: 山室健(NTT) 1 SIGMOD2012勉強会】

description

 

Transcript of SIGMOD’12勉強会 -Session 7-

Page 1: SIGMOD’12勉強会 -Session 7-

Session 7: Storage Systems, Query

Processing and Optimization

担当: 山室健(NTT)

1

【SIGMOD2012勉強会】

Page 2: SIGMOD’12勉強会 -Session 7-

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)

Page 3: SIGMOD’12勉強会 -Session 7-

3 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

1. bLSM: A General Purpose Log Structured Merge Tree

- Russell Sears, Yahoo! Research; Raghu Ramakrishnan, Yahoo! Research

Page 4: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

論文概要

Update/insert-intensiveな環境向けのLSM木(’96年)の改良であるbLSM木*1を提案、 B木に近いlookup/scan性能と時間有界保証のあるmerge処理(後述)を実現

技術背景

B木の特徴

scan/lookup性能はほぼ最適

update/insertの際のシーク回数はやや多い

LSM木の特徴

ならし解析的にupdate/insertのコストが良い

scan/lookupの際のシーク回数が要素数の対数必要

update/insertが内部データのmerge処理に阻害される

4 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

*1Yahoo!のPNUTS[10]/Walnut[9]のバックエンドとして使用

update -- read&modify values

insert – append a new key/value pair

lookup – read a single key/value pair

scan – read a range of key/value pairs

Page 5: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

論文概要

Update/insert-intensiveな環境向けのLSM木(’96年)の改良であるbLSM木*1を提案、 B木に近いlookup/scan性能と時間有界保証のあるmerge処理(後述)を実現

技術背景

B木の特徴

scan/lookup性能はほぼ最適

update/insertの際のシーク回数はやや多い

LSM木の特徴

ならし解析的にupdate/insertのコストが良い

scan/lookupの際のシーク回数が要素数の対数必要

update/insertが内部データのmerge処理に阻害される

5 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

*1Yahoo!のPNUTS[10]/Walnut[9]のバックエンドとして使用

update -- read&modify values

insert – append a new key/value pair

lookup – read a single key/value pair

scan – read a range of key/value pairs

bLSM木

目標

改善

継承

Page 6: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

LSM木[25]の概要

update/insert-intensiveな環境に最適化された索引木

6 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

参考文献[25]のFigure2.2から引用

(Merge処理の概要)

変更内容をメモリ上(図のC0)で遅延させてバッチ的にディスク上のデータ(図でC1

*1)にmerge

merge処理は順読み込みのみ

シーク回数を最小化

検索は遅い

分割されている全てのデータ(図のC0とC1 )が検索対象となるため

merge処理がupdate/insertを阻害

*1ディスク上のデータは段階的に複数個で構成されていても良い、つまりC1、C2、C3・・・

Page 7: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

LSM木の様々な適用例

Google Bigtable

Apache HBase

Cassandra pre1.0

sizeに応じた2段階粒度のmerge処理: major&minor compaction

TokuDB

LevelDB

exponential-sized level、file partitioning、fractional cascading

Riak

LevelDB + customized merge scheduler & bloom filter

7 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

Page 8: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

LSM木の課題: merge処理がupdate/insertを阻害

merge処理中のinsertのlatencyが増大(下図)

8 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

引用: MySQL vs. LevelDB, https://github.com/m1ch1/mapkeeper/wiki/MySQL-vs.-LevelDB

Page 9: SIGMOD’12勉強会 -Session 7-

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処理の同期化

9 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 1から引用

Page 10: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

Level(Spring & Gear) Scheduler

update/insertで書き込むデータとmerge量との比率(ギア比)を調整して、それぞれのスレッドを同期化

APが行うupdate/insertを中断させず継続させることが目的

10 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

各スレッドをスケジューラで同期化

※絵で描くのは簡単だが、実装は大変らしいです→https://github.com/sears/bLSM

本論文内のFigure 1/5から引用

Page 11: SIGMOD’12勉強会 -Session 7-

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の場合は保証できない

11 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

シーク回数

本論文内のTable 1から引用

Page 12: SIGMOD’12勉強会 -Session 7-

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の場合は保証できない

12 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

シーク回数

本論文内のTable 1から引用

Page 13: SIGMOD’12勉強会 -Session 7-

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の場合は保証できない

13 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

シーク回数

本論文内のTable 1から引用

Page 14: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

bLSMの性能結果

Schedulerの恩恵により、latencyのスパイクが減少

14 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 7から引用

左がbLSM木、右がLSM木(LSM木)

Page 15: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

bLSMの性能結果

lookup性能がB木(InnoDB)より良い結果に

未記載だがshort-range scanはInnoDBの性能が良い

15 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 8から引用

Page 16: SIGMOD’12勉強会 -Session 7-

1. bLSM: A General Purpose Log Structured Merge Tree

bLSMの性能結果

lookup性能がB木(InnoDB)より良い結果に

未記載だがshort-range scanはInnoDBの性能が良い

16 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 8から引用

bLSM木は100% writeで

33,000ops/sec.

Page 17: SIGMOD’12勉強会 -Session 7-

17 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

2. NoDB: Efficient Query Execution on Raw Data File

- Ioannis Alagiannis, EPFL; Renata Borovica, EPFL; Miguel Branco, EPFL;

Stratos Idreos, CWI; Anastasia Ailamaki, EPFL

Page 18: SIGMOD’12勉強会 -Session 7-

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)

Page 19: SIGMOD’12勉強会 -Session 7-

2. NoDB: Efficient Query Execution on Raw Data File

NoDBの目標

必要なデータをRawFile(CSVファイル等)から適宜読み込み解析する(In situ Processing)ことで、ロード時間をなくしロード済みのDBとほぼ同等の性能を目指す

19 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 1から引用

※Q1~Q4は任意のクエリを表している

DBMS w external files?

Oracle/PostgreSQL/MySQL等にはRawFileを内部Relationとしてみせる機能が実装済み

Page 20: SIGMOD’12勉強会 -Session 7-

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

一度読み込んだtupleを参照頻度に応じてcaching

20 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 2から引用

Page 21: SIGMOD’12勉強会 -Session 7-

2. NoDB: Efficient Query Execution on Raw Data File

性能評価

PostgresRaw PM + C (Positional Map + Cache enabled)

クエリQ1~Q9の詳細は明記無し・・・

単純なWHERE句を用いたSELECTでselectivity/projectivityを変化

21 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 7から引用

Page 22: SIGMOD’12勉強会 -Session 7-

22 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

3. Skeleton Automata for FPGAs

- Jens Teubner, ETH Zürich; Louis Woods, ETH Zürich; Chongling Nie, ETH Zürich

Page 23: SIGMOD’12勉強会 -Session 7-

3. Skeleton Automata for FPGAs

論文概要

部分的な処理をオフロードする 処理の記述能力を落とさずにFPGAにおけるコンパイルコストを解消したXML Projection(ストリームデータのFiltering処理)を実現

23 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

引用: wikipediaのFPGA項

※FPGAはプログラム可能なLSIのこと

技術背景

処理の高速化を目的に部分的処理をFPGAにオフロード

処理に応じたプログラムの組み替え(コンパイル)に数時間かかることも

Page 24: SIGMOD’12勉強会 -Session 7-

3. Skeleton Automata for FPGAs

余談

24 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

引用: http://japan.zdnet.com/development/analysis/35021200/

Page 25: SIGMOD’12勉強会 -Session 7-

3. Skeleton Automata for FPGAs

XML Projection[14]

クエリに記述された条件に合致する要素を抽出(Filtering)

25 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

XML Projection処理例:

本論文内のFigure 1から引用

右図の赤背景部を抽出

Page 26: SIGMOD’12勉強会 -Session 7-

3. Skeleton Automata for FPGAs

基本アプローチ XML ProjectionはNFAに変換可能

[N|D]FAはFPGA上で容易に表現可能

Skeleton Automata: FAの雛型をもちいることでパラメータの変更のみで処理の変更に対応

26 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 3/4から引用

NFAのイプシロン遷移に対応

Page 27: SIGMOD’12勉強会 -Session 7-

3. Skeleton Automata for FPGAs

性能評価 Saxon-EEを用いたFiltering(下図網掛け棒)との比較

in-memory処理向けのXMLプロセッサ

XMark benchmark suite [22].を使用

27 Session 7: Storage Systems, Query Processing and Optimization 担当:山室健(NTT)

本論文内のFigure 15から引用