SlideShare a Scribd company logo
R24-4: The DBMS - your Big Data Sommelier
(R24: Query Processing 3)
R27-3: A Comparison of Adaptive Radix Trees
and Hash Tables
(R27: Indexing)
Masafumi Oyamada
ICDE’15 勉強会
R24-4: The DBMS - your Big Data Sommelier
Yagiz Kargin , Martin Kersten , Stefan Manegold , Holger Pirk (CWI)
(目的) “インスタント分析” を実現したい
– 課題: DBMS で巨大なデータを分析しようと思うと、データのロー
ド・索引付けに時間がかかって、すぐに分析が開始できない
(発想) メタデータを利用し、ロードするデータを絞り込む
– 科学分野ではデータが複数の “ファイル” からなり、各ファイルが
“メタデータ” を持つ(例: 取得時刻)
– クエリの条件にはメタデータから得られる情報が指定されることが
多い(例: 「昨日取得したデータの平均値を計算して」)
–  まずはメタデータだけをロードしておいて、実際にロードする
データ(ファイル)は条件にマッチするものだけにしよう!
(方式) メタデータを考慮した問合せ最適化 in MonetDB
– “メタデータに対する処理” が最初におこなわれるような問合せプ
ランの書き換えルールを MonetDB のオプティマイザに導入
MonetDB チーム
発想: メタデータをつかってデータのロードを減らす
問合せ例
– place = “Japan” のデータを取得するモノ
– 本来 T_part2.csv のロードは必要ない
• place = “US” なので (メタデータ情報)
従来の DBMS
– メタデータ/実データどちらも全てロード
してから処理する
–  T_part2.csv のロードは無駄に
提案方式
– 方針: メタデータだけ事前にロード
–  T_part2.csv が問合せ対象に入らないこ
とを確認し、ロードを省くことができる
Z
[date] 2015 05/17
[place] Japan
[date] 2014 08/20
[place] US
メタデータ
ロードが楽
実データ
ロードが大変
T_part1.csv
T_part2.csv
SELECT * FROM T
WHERE place = “Japan”
R24-4: The DBMS - your Big Data Sommelier
アプローチ: オプティマイザの拡張
 実データ と メタデータ をプラン内で区別するようオプ
ティマイザを拡張
プランの最適化時には、メタデータに対する処理をできる
だけ最初にやるよう、プランを書き換え
メタデータは既にロードされており、すぐに処理できる
その処理結果をつかって、ロードする実データを pruning する
R24-4: The DBMS - your Big Data Sommelier
評価
データ: 地震波形の実データ (mSEED フォーマット)
– sf27: 4384ファイル, 36GB (DB にロード後は伸張され 627 GB)
問合せ: 集計値の計算
– T_4: 特定期間の波形の平均値の計算
R24-4: The DBMS - your Big Data Sommelier
(データのロードも含めた)
問合せを完了するまでの時間
インデックスを作成して利用するもの
(インデックス作成コストが大きく
フルスキャンよりも遅い)
データをフルスキャンするもの
提案方式
選択率が極めて高い場合を除き
従来方式よりもよい性能
R27-3: A Comparison of Adaptive Radix Trees and
Hash Tables
Victor Alvarez, Stefan Richter, Xiao Chen, Jens Dittrich (Saarland University)
(概要) ART [Leis, ICDE’13] の性能測定を “ちゃんと” やる
– Adaptive Radix-Tree (ART): インメモリDB向けのインデックス
– ART は “ハッシュテーブル並みの性能でレンジクエリもサポートす
る夢の索引” とうたわれているが、実際のところどうなの?
(目的) [Leis, ICDE’13] で欠けていた3つの評価をやる
1. 類似するデータ構造である Judy Array との比較
2. ちゃんとチューニングしたハッシュテーブルとの比較
3. レンジクエリの性能測定
 (結果) ART は銀の弾丸ではない!
– ポイントクエリではハッシュテーブルに勝てず、レンジクエリでは
B+ Tree に勝てない(が、どちらも二番手となる性能)
Radix Tree と ART (Adaptive Radix Tree)
 Radix Tree (中間ノードを圧縮したトライ / パトリシア木)
– Good: 探索時に条件分岐が発生しない (単なる配列アクセス) ため、CPU
キャッシュミスが少ない (↔ 二分木)
– Bad: まだまだメモリ利用効率が悪く、キャッシュ効率も悪い
• データがスパースでも、最大の子供数分の容量を食う
 ART (Adaptive Radix Tree) [Leis, ICDE’13]
– 最適化された 256-way の Radix Tree
– ノードの圧縮: 実際の子供の数に応じて (Adaptive) ノードのデータ構造を
変えることで、ノードを圧縮する
– 探索効率化: 探索処理は SIMD を活用して高速に実行
各ノードは「子ノードへのポインタ」の配列
子ノードが少ない場合でも、最大子共数分の容量を消費
子ノードの数に応じて、ノードを異なるデータ構造で表現
子ノードが多い (Dense)  Radix Tree と同様の表現
子ノードが少ない (Sparse)  圧縮表現
R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
ART: 子ノードの数に応じてノードのデータ構造を変更
If (子ノード数 ≤ 16)
If (子ノード数 ≤ 48)
If (子ノード数 > 48)
(1) 子ノードを持つキーのキー値を N 個並べる (探索時は、線形探索)
(2) 続いて、キーと同じ順で、子ノードへのポインタを N 個並べる
(1)256個の配列を用意し、インデックスの示すキーが子ノードを持つなら、
子ノードへのポインタのポインタを格納 (探索時は、配列アクセス)
(2) 子ノードの数だけ、子ノードへのポインタを並べる
Radix Tree と同様に、子ノードへのポインタをそのまま並べる。イン
デックスがキー値となる
R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
評価
 ポイントクエリ (1Billion のタプルに対する検索)
– 比較対象 (抜粋)
• Judy Array
• Cuckoo hashing (モダンな Open addressing アルゴリズム) をつかった
ハッシュテーブル実装
– 結果
• Judy Array には勝つ (ART は Judy 比 2x の性能だが 2x 容量を食う)
• ハッシュテーブルには負ける (ハッシュテーブルは ART とくらべて数倍の
性能)
 レンジクエリ
– 比較対象
• Judy Array
• Cuckoo hashing をつかったハッシュテーブル実装
• B+-Tree
– 結果
• Judy, ハッシュテーブルには勝つ (2x の性能)
• B+-Tree には負ける
Radix Tree の改良版で ART に類似。細かな違いは論文参照
※ ART には B+-Tree と比べると木の管理がはるかに楽、という利点も
R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
ポイントクエリ (Lookup throughput)
R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
レンジクエリ (Lookup throughput)
R27-3: A Comparison of Adaptive Radix Trees and Hash Tables

More Related Content

What's hot

これからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですかこれからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですか
yumi_chappy
 
先端技術 No sql
先端技術 No sql先端技術 No sql
先端技術 No sql
聡 中川
 

What's hot (20)

Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食い
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
クラウド時代のデータストア選択"秘伝の書"
クラウド時代のデータストア選択"秘伝の書"クラウド時代のデータストア選択"秘伝の書"
クラウド時代のデータストア選択"秘伝の書"
 
Asakusaではじめるhadoop sparkプログラミング
Asakusaではじめるhadoop sparkプログラミングAsakusaではじめるhadoop sparkプログラミング
Asakusaではじめるhadoop sparkプログラミング
 
これからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですかこれからはNo sqlの時代って本当ですか
これからはNo sqlの時代って本当ですか
 
Pivotal Greenplumで実現する次世代データ分析基盤のご紹介
Pivotal Greenplumで実現する次世代データ分析基盤のご紹介Pivotal Greenplumで実現する次世代データ分析基盤のご紹介
Pivotal Greenplumで実現する次世代データ分析基盤のご紹介
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
 
Ca arcserve at cloudian seminar 2013
Ca arcserve at cloudian seminar 2013Ca arcserve at cloudian seminar 2013
Ca arcserve at cloudian seminar 2013
 
分散処理のすゝめ?
分散処理のすゝめ?分散処理のすゝめ?
分散処理のすゝめ?
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しようMicrosoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
Microsoft Azureのビッグデータ基盤とAIテクノロジーを活用しよう
 
研究支援のためのアカデミッククラウド(CloudWeek2013@Hokkaido University)
研究支援のためのアカデミッククラウド(CloudWeek2013@Hokkaido University)研究支援のためのアカデミッククラウド(CloudWeek2013@Hokkaido University)
研究支援のためのアカデミッククラウド(CloudWeek2013@Hokkaido University)
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
 
NASクラウドの連携3.pdf
NASクラウドの連携3.pdfNASクラウドの連携3.pdf
NASクラウドの連携3.pdf
 
社会ネットワーク分析第7回
社会ネットワーク分析第7回社会ネットワーク分析第7回
社会ネットワーク分析第7回
 
Azure Datalake 大全
Azure Datalake 大全Azure Datalake 大全
Azure Datalake 大全
 
第一回IoT関連技術勉強会 分散処理編
第一回IoT関連技術勉強会 分散処理編第一回IoT関連技術勉強会 分散処理編
第一回IoT関連技術勉強会 分散処理編
 
Dvx update 20180605
Dvx update 20180605Dvx update 20180605
Dvx update 20180605
 
先端技術 No sql
先端技術 No sql先端技術 No sql
先端技術 No sql
 

Similar to ICDE 2015 Study (R24-4, R27-3)

RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
Takeshi Yamamuro
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
moai kids
 
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
Insight Technology, Inc.
 

Similar to ICDE 2015 Study (R24-4, R27-3) (20)

Effective DBMS (2018)
Effective DBMS (2018)Effective DBMS (2018)
Effective DBMS (2018)
 
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ  by トレジャーデータ株式会社 斉藤太郎
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
 
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 TokyoPrestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
 
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
[INSIGHT OUT 2011] A12 ひとつのデータベース技術では生き残れない part1 カラムナーデータベース(Shinkubo)
 
昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴昨今のストレージ選定のポイントとCephStorageの特徴
昨今のストレージ選定のポイントとCephStorageの特徴
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
 
Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014
 
クラウド上のデータ活用デザインパターン
クラウド上のデータ活用デザインパターンクラウド上のデータ活用デザインパターン
クラウド上のデータ活用デザインパターン
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deployments
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
 
Core Data
Core DataCore Data
Core Data
 
Bigdata 2012 06-03
Bigdata 2012 06-03Bigdata 2012 06-03
Bigdata 2012 06-03
 

More from Masafumi Oyamada (7)

SIGMOD 2019 参加報告
SIGMOD 2019 参加報告SIGMOD 2019 参加報告
SIGMOD 2019 参加報告
 
BlinkDB 紹介
BlinkDB 紹介BlinkDB 紹介
BlinkDB 紹介
 
OSC 2011 KeySnail
OSC 2011 KeySnailOSC 2011 KeySnail
OSC 2011 KeySnail
 
ES.next WeakMap
ES.next WeakMapES.next WeakMap
ES.next WeakMap
 
Rios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLIRios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLI
 
ES Harmony Proxy on Firefox 4
ES Harmony Proxy on Firefox 4ES Harmony Proxy on Firefox 4
ES Harmony Proxy on Firefox 4
 
defjs をひも解く
defjs をひも解くdefjs をひも解く
defjs をひも解く
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (10)

論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

ICDE 2015 Study (R24-4, R27-3)

  • 1. R24-4: The DBMS - your Big Data Sommelier (R24: Query Processing 3) R27-3: A Comparison of Adaptive Radix Trees and Hash Tables (R27: Indexing) Masafumi Oyamada ICDE’15 勉強会
  • 2. R24-4: The DBMS - your Big Data Sommelier Yagiz Kargin , Martin Kersten , Stefan Manegold , Holger Pirk (CWI) (目的) “インスタント分析” を実現したい – 課題: DBMS で巨大なデータを分析しようと思うと、データのロー ド・索引付けに時間がかかって、すぐに分析が開始できない (発想) メタデータを利用し、ロードするデータを絞り込む – 科学分野ではデータが複数の “ファイル” からなり、各ファイルが “メタデータ” を持つ(例: 取得時刻) – クエリの条件にはメタデータから得られる情報が指定されることが 多い(例: 「昨日取得したデータの平均値を計算して」) –  まずはメタデータだけをロードしておいて、実際にロードする データ(ファイル)は条件にマッチするものだけにしよう! (方式) メタデータを考慮した問合せ最適化 in MonetDB – “メタデータに対する処理” が最初におこなわれるような問合せプ ランの書き換えルールを MonetDB のオプティマイザに導入 MonetDB チーム
  • 3. 発想: メタデータをつかってデータのロードを減らす 問合せ例 – place = “Japan” のデータを取得するモノ – 本来 T_part2.csv のロードは必要ない • place = “US” なので (メタデータ情報) 従来の DBMS – メタデータ/実データどちらも全てロード してから処理する –  T_part2.csv のロードは無駄に 提案方式 – 方針: メタデータだけ事前にロード –  T_part2.csv が問合せ対象に入らないこ とを確認し、ロードを省くことができる Z [date] 2015 05/17 [place] Japan [date] 2014 08/20 [place] US メタデータ ロードが楽 実データ ロードが大変 T_part1.csv T_part2.csv SELECT * FROM T WHERE place = “Japan” R24-4: The DBMS - your Big Data Sommelier
  • 4. アプローチ: オプティマイザの拡張  実データ と メタデータ をプラン内で区別するようオプ ティマイザを拡張 プランの最適化時には、メタデータに対する処理をできる だけ最初にやるよう、プランを書き換え メタデータは既にロードされており、すぐに処理できる その処理結果をつかって、ロードする実データを pruning する R24-4: The DBMS - your Big Data Sommelier
  • 5. 評価 データ: 地震波形の実データ (mSEED フォーマット) – sf27: 4384ファイル, 36GB (DB にロード後は伸張され 627 GB) 問合せ: 集計値の計算 – T_4: 特定期間の波形の平均値の計算 R24-4: The DBMS - your Big Data Sommelier (データのロードも含めた) 問合せを完了するまでの時間 インデックスを作成して利用するもの (インデックス作成コストが大きく フルスキャンよりも遅い) データをフルスキャンするもの 提案方式 選択率が極めて高い場合を除き 従来方式よりもよい性能
  • 6. R27-3: A Comparison of Adaptive Radix Trees and Hash Tables Victor Alvarez, Stefan Richter, Xiao Chen, Jens Dittrich (Saarland University) (概要) ART [Leis, ICDE’13] の性能測定を “ちゃんと” やる – Adaptive Radix-Tree (ART): インメモリDB向けのインデックス – ART は “ハッシュテーブル並みの性能でレンジクエリもサポートす る夢の索引” とうたわれているが、実際のところどうなの? (目的) [Leis, ICDE’13] で欠けていた3つの評価をやる 1. 類似するデータ構造である Judy Array との比較 2. ちゃんとチューニングしたハッシュテーブルとの比較 3. レンジクエリの性能測定  (結果) ART は銀の弾丸ではない! – ポイントクエリではハッシュテーブルに勝てず、レンジクエリでは B+ Tree に勝てない(が、どちらも二番手となる性能)
  • 7. Radix Tree と ART (Adaptive Radix Tree)  Radix Tree (中間ノードを圧縮したトライ / パトリシア木) – Good: 探索時に条件分岐が発生しない (単なる配列アクセス) ため、CPU キャッシュミスが少ない (↔ 二分木) – Bad: まだまだメモリ利用効率が悪く、キャッシュ効率も悪い • データがスパースでも、最大の子供数分の容量を食う  ART (Adaptive Radix Tree) [Leis, ICDE’13] – 最適化された 256-way の Radix Tree – ノードの圧縮: 実際の子供の数に応じて (Adaptive) ノードのデータ構造を 変えることで、ノードを圧縮する – 探索効率化: 探索処理は SIMD を活用して高速に実行 各ノードは「子ノードへのポインタ」の配列 子ノードが少ない場合でも、最大子共数分の容量を消費 子ノードの数に応じて、ノードを異なるデータ構造で表現 子ノードが多い (Dense)  Radix Tree と同様の表現 子ノードが少ない (Sparse)  圧縮表現 R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
  • 8. ART: 子ノードの数に応じてノードのデータ構造を変更 If (子ノード数 ≤ 16) If (子ノード数 ≤ 48) If (子ノード数 > 48) (1) 子ノードを持つキーのキー値を N 個並べる (探索時は、線形探索) (2) 続いて、キーと同じ順で、子ノードへのポインタを N 個並べる (1)256個の配列を用意し、インデックスの示すキーが子ノードを持つなら、 子ノードへのポインタのポインタを格納 (探索時は、配列アクセス) (2) 子ノードの数だけ、子ノードへのポインタを並べる Radix Tree と同様に、子ノードへのポインタをそのまま並べる。イン デックスがキー値となる R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
  • 9. 評価  ポイントクエリ (1Billion のタプルに対する検索) – 比較対象 (抜粋) • Judy Array • Cuckoo hashing (モダンな Open addressing アルゴリズム) をつかった ハッシュテーブル実装 – 結果 • Judy Array には勝つ (ART は Judy 比 2x の性能だが 2x 容量を食う) • ハッシュテーブルには負ける (ハッシュテーブルは ART とくらべて数倍の 性能)  レンジクエリ – 比較対象 • Judy Array • Cuckoo hashing をつかったハッシュテーブル実装 • B+-Tree – 結果 • Judy, ハッシュテーブルには勝つ (2x の性能) • B+-Tree には負ける Radix Tree の改良版で ART に類似。細かな違いは論文参照 ※ ART には B+-Tree と比べると木の管理がはるかに楽、という利点も R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
  • 10. ポイントクエリ (Lookup throughput) R27-3: A Comparison of Adaptive Radix Trees and Hash Tables
  • 11. レンジクエリ (Lookup throughput) R27-3: A Comparison of Adaptive Radix Trees and Hash Tables