アウトオブオーダ型データベースエンジンにおける2表結合問合せの処理

DEIM Forum 2014 D8-4
アウトオブオーダ型データベースエンジンにおける
2 表結合問合せの処理時間見積り方式の提案と評価
土田 隼之† 清水 晃† 田中 美智子† 藤原 真二‡ 茂木 和彦‡ 合田 和生¶ 喜連川 優¶§
†㈱日立製作所 中央研究所 〒244-0817 神奈川県横浜市戸塚区吉田町 292 番地
‡㈱日立製作所 情報・通信システム社 IT プラットフォーム事業本部
〒244-0817 神奈川県横浜市戸塚区吉田町 292 番地
¶東京大学生産技術研究所 〒153-8503 東京都目黒区駒場 4-6-1
§国立情報学研究所 〒101-8430 東京都千代田区一ツ橋 2-1-2
E-mail: †{ takayuki.tsuchida.aj, akira.shimizu.wv, michiko.tanaka.ry }@hitachi.com,
‡{ shinji.fujiwara.yc, kazuhiko.mogi.uv }@hitachi.com, ¶{ kgoda, kitsure }@tkl.iis.u-tokyo.ac.jp
あらまし 実世界で発生するデータが爆発的に増加しており,ビッグデータ利活用への期待が高まっている.この
ような中,我々は内閣府最先端研究開発支援プログラムにおいて,アウトオブオーダ型データベースエンジン
(OoODE)と称する実行原理に基づく超高速データベースエンジンの研究開発を推進している. OoODE はアンフォ
ールドした処理を複数並行して進めるため,インデックスアクセス時に高多重リード要求を行う.ストレージ性能
の限界に達する場合, その影響を考慮しないと 2 表結合であっても処理時間見積りに誤差が生じる.本論文では,
OoODE の特性を踏まえた 2 表結合問合せの時間見積り方式の検討と評価結果について報告する.
キーワード OoODE,アウトオブオーダ型,データベースエンジン,結合方式,処理時間見積り
Takayuki TSUCHIDA†
Akira SHIMIZU†
Kazuhiko MOGI‡
Kazuo GODA¶
Michiko TANAKA†
and
Shinji FUJIWARA‡
Masaru KITSUREGAWA¶§
†Central Research Laboratory, Hitachi, Ltd. 292, Yoshida-cho, Totsuka-ku, Yokohama, 244-0817 Japan
‡IT Platform Division Group, Information & Telecommunication Systems Company, Hitachi, Ltd.
292, Yoshida-cho, Totsuka-ku, Yokohama, 244-0817 Japan
¶Institute of Industrial Science, The University of Tokyo 4-6-1 Komaba, Meguro-ku, Tokyo, 153-8505 Japan
§ National Institute of Infomatics 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo 101-8430 Japan
E-mail: †{ takayuki.tsuchida.aj, akira.shimizu.wv, michiko.tanaka.ry }@hitachi.com,
‡{ shinji.fujiwara.yc, kazuhiko.mogi.uv }@hitachi.com, ¶{ kgoda, kitsure }@tkl.iis.u-tokyo.ac.jp
1. は じ め に
立な処理を複数駆動し,ストレージ帯域などの資源を
近年,実世界で発生するデータが爆発的に増加して
十 分 に 活 用 し て 実 行 可 能 な 順 に 処 理 を 行 う .そ の た め ,
お り ,ビ ッ グ デ ー タ の 利 活 用 へ の 期 待 が 高 ま っ て い る .
インデックスアクセス時に高多重リード要求を行い,
IT 専 門 調 査 会 社 IDC に よ る と , 2012 年 の 国 内 外 付 型
高 速 に 処 理 を 行 う こ と が 出 来 る [3][4][5].
デ ィ ス ク ス ト レ ー ジ シ ス テ ム の 出 荷 容 量 は 903PB で あ
リレーショナル型のデータベースエンジンへの問
り ,2012 年 ~ 2017 年 の デ ィ ス ク ス ト レ ー ジ シ ス テ ム の
合 せ 言 語 に は , SQL (Structured Query Language) が 広
出 荷 容 量 成 長 率 の 予 測 値 は 41.1%に 達 す る [1].
く 用 い ら れ る .SQL は 宣 言 的 な 言 語 の た め ,デ ー タ ベ
このような大規模なデータに対する分析ニーズが
ー ス エ ン ジ ン で 実 行 プ ラ ン (内 部 的 な 処 理 実 行 方 法 )を
高まっている状況の中,我々は,内閣府最先端研究開
決 め る 必 要 が あ る .実 行 プ ラ ン を 複 数 作 成 可 能 な 場 合 ,
発支援プログラムにおいて,アウトオブオーダ型デー
最も処理時間が短いと思われる実行プランを選択する
タ ベ ー ス エ ン ジ ン (OoODE) と 称 す る 超 高 速 デ ー タ ベ
必要がある.この際,実行プランの処理時間見積りが
ー ス エ ン ジ ン の 研 究 開 発 を 進 め て い る [2].従 来 型 の デ
重 要 と な り , OoODE に お い て も 例 外 で は な い .
ータベースエンジンでは,レコードのフェッチからレ
リレーショナル型データベースにおける問合せ実
コード処理まで,プログラムされた決定的な順序で問
行 の 基 本 処 理 の 1 つ で あ る 結 合 (ジ ョ イ ン )処 理 の 実 行
合 せ 処 理 を 進 め て い く の に 対 し ,OoODE は ,互 い に 独
方 式 と し て , 現 在 で は ネ ス ト ル ー プ ジ ョ イ ン (NLJ) と
ハ ッ シ ュ ジ ョ イ ン (HJ)が 一 般 的 に 用 い ら れ る . こ こ で
おこなわれている.コストが小さい実行プランを選ぶ
結 合 処 理 方 式 と し て NLJ の 処 理 時 間 が HJ よ り 長 く な
コ ス ト ベ ー ス 最 適 化 [6]が そ の 代 表 例 で あ る .コ ス ト ベ
るのは,処理実行時に選択されるレコード数が多い場
ース最適化では,適切な実行プランを選択するために
合 で あ る .OoODE に お い て は ,前 述 の 高 多 重 リ ー ド 要
コストを精度良く見積ることが 重要となる.
求 の 効 果 に よ り ,従 来 型 エ ン ジ ン と 比 較 し て NLJ の 処
OoODE の 問 合 せ 言 語 に SQL を 用 い る 場 合 , 従 来 と
理時間の方が短い条件がよりレコード数が多い範囲に
同様に問合せ最適化が必要となる.コストベース最適
拡大する.この点を鑑みると,計算機システムの上限
化 を 用 い る 際 に 課 題 と な る の が ,OoODE に お け る 処 理
I/O 性 能 で 処 理 が 進 め ら れ る と し て 処 理 時 間 見 積 り を
コストの見積りである.
行い結合処理方式を選択するのが良いと考えられる.
以 下 ,OoODE に お け る コ ス ト ベ ー ス 最 適 化 の た め に ,
た だ ,OoODE は 互 い に 独 立 な 処 理 を 実 行 可 能 な 順 に
SQL で 基 本 的 な 処 理 で あ る 2 表 結 合 の コ ス ト 見 積 り 方
行うため,連続アクセスを行うテーブルスキャンとラ
式の検討を行う.初めに,簡素なコストモデルを構築
ンダムアクセスを行うインデックススキャンを同時に
すること目的に,従来型データベースエンジンと同様
行う混在アクセスを行う場合がある.この場合,スト
に I/O 性 能 が I/O 処 理 方 式 に よ り 固 定 で あ る と 近 似 し
レージ性能の限界に達してしまい,その影響を考慮し
た OoODE の コ ス ト 見 積 り 方 式 の 検 討 を 行 う . 次 に ,
ないと 2 表結合であっても処理時間見積りに誤差が生
より見積り精度を高めることを目的に, 互いに独立な
じると考えられる.
処 理 を 実 行 可 能 な 順 に 行 う OoODE の 動 作 特 性 を 考 慮
本論文では,上記を踏まえて行ったリレーショナル
データベースエンジンの基本的な処理である 2 表結合
に お け る OoODE の 処 理 時 間 見 積 り 方 式 の 検 討 と 評 価
したコスト見積り方式の検討を行う.
2.1. アウトオブオーダ型 データベースエンジンの動
作
結果について報告する.本論文の構成は以下の通りで
OoODE で は ,実 行 順 序 に 依 存 関 係 の な い DB 処 理 を
あ る .2 章 で は OoODE に お け る 2 表 結 合 問 合 せ の 処 理
レコード単位レベルまで細分化して複数のタスクに割
時間見積り方式として,従来型データベースエンジン
り 当 て , こ れ ら の タ ス ク を 並 列 動 作 さ せ て 非 同 期 I/O
と 同 様 に I/O 処 理 性 能 が 固 定 で あ る と 近 似 し た
を 発 行 し , I/O 完 了 順 に 検 索 処 理 を 実 行 す る . こ れ に
OoODE の 処 理 時 間 見 積 り 方 式 と ,互 い に 独 立 な 処 理 を
よ り , 超 高 多 重 な I/O 処 理 を 可 能 と し , ス ト レ ー ジ 装
実 行 可 能 な 順 に 処 理 を 行 う OoODE の 動 作 特 性 を 考 慮
置 の 持 つ I/O 性 能 を 最 大 限 引 き 出 す こ と で 処 理 時 間 が
した処理時間見積り方式の 2 種類を説明する.3 章で
大幅に短縮可能である.
は実際の処理時間と比較することで各方式の評価を行
い,最後に 4 章で本論文をまとめる.
2. ア ウ ト オ ブ オ ー ダ 型 デ ー タ ベ ー ス エ ン ジ ン
の 2 表結合問合せの処理時間見積り
ア ウ ト オ ブ オ ー ダ 型 デ ー タ ベ ー ス エ ン ジ ン OoODE
2 表結合時の動作を説明する.説明に用いる問合せ
を 図 1 に 示 し ,問 合 せ の 実 行 プ ラ ン を 図 2 に 示 す .な
お,ここでは意思決定支援システムのデータベースベ
ン チ マ ー ク で あ る TPC-H[7]の 表 定 義 を 想 定 し て い る .
SELECT o_orderstatus,
に お け る 問 合 せ の 見 積 り 処 理 時 間 (以 降 , 見 積 り 処 理
sum(l_extendedprice), count(*)
時間を「コスト」と呼ぶ) の計算方法,特に本論文で
FROM
は 2 表結合の問合せについて述べる.
WHERE l_orderkey = o_orderkey
lineitem, orders
リレーショナルデータベースエンジンへの問合せ
and l_returnflag = 'R’and l_shipmode = 'AIR'
言 語 と し て 広 く 使 わ れ て い る SQL は ,取 得 対 象 の デ ー
and l_shipinstruct = 'DELIVER IN PERSON'
この条件で
and l_quantity <= 30
タ属性のみ表現している.このため,表の結合順序な
どの取得対象データの生成手順である 実行プランをデ
ータベースエンジンで決定する必要がある. 問合せか
GROUP BY o_orderstatus
絞込み率を調整
図 1: 2 表 結 合 の 問 合 せ 例
ら 実 行 プ ラ ン を 決 定 す る 機 能 を 問 合 せ 最 適 化 と 呼 ぶ .1
つの問合せに対して実行プランが複数存在する場合が
HJ プ ラ ン (図 2 の (a)) で は , OoODE は lineitem 表
あり,その場合問合せ最適化では実行プランを一つ選
の テ ー ブ ル ス キ ャ ン (TS) と Orders 表 の TS は 同 時 に
ぶ必要がある.例えば,複数の表を結合する場合,ネ
処 理 で き る .し か し ,HJ に お い て lineitem 表 の 処 理 対
ス ト ル ー プ ジ ョ イ ン (NLJ) や ハ ッ シ ュ ジ ョ イ ン (HJ)
象となる全レコードのハッシュ値が作成されなければ
などの実行方式を選択可能である.表のサイズやレコ
orders レ コ ー ド を 使 っ た Probe 処 理 を 完 了 で き な い .
ードの件数,問合せの条件により適切な結合処理方式
そ こ で , 大 局 的 に 見 た 場 合 Build 側 処 理 を 行 っ た 後 に
が異なるため,問合せ最適化に関しては幅広く研究が
Probe 側 処 理 を 行 う と す る .
OoODE の コ ス ト 見 積 り 方 式 を 考 え る .一 番 大 き な 違 い
HJ
Build側
lineitem
は , OoODE で は CPU 処 理 と I/O 処 理 を オ ー バ ー ラ ッ
Probe側
【凡例】
orders
表名
(a) HJプラン
NLJ
外表側
lineitem
内表側
orders
TS
外表側
lineitem
(b) NLJプラン1
NLJ
内表側
orders
プ さ せ て 動 い て い る と 考 え ら れ る た め ,CPU コ ス ト と
I/O コ ス ト の 大 き い 方 が 問 合 せ の コ ス ト と な る .
こ こ で ,CPU コ ス ト の 計 算 は ,基 本 的 に 従 来 型 デ ー
タベースエンジンと同様の方式により見積もれると考
表名
え ら れ る .一 方 の I/O コ ス ト に 関 し て は ,OoODE に お
IS
け る I/O 処 理 挙 動 は 従 来 型 デ ー タ ベ ー ス エ ン ジ ン と 大
(c) NLJプラン2
図 2: 2 表 結 合 問 合 せ の 実 行 プ ラ ン 例
NLJ プ ラ ン の 処 理 は ,外 表 側 レ コ ー ド を 用 い て 内 表
側レコードを探すといった依存関係以外は互いに独立
な レ コ ー ド 単 位 の 処 理 で あ る .こ の た め ,OoODE で は
レコードごとに外表側の処理と内表側の処理を同時に
実行する.外表側処理と内表側処理がともに インデッ
ク ス ス キ ャ ン (IS) で あ る NLJ プ ラ ン 1 (図 2 の (b)) は
全 て ラ ン ダ ム ア ク セ ス と な る が , 外 表 側 処 理 が TS で
あ り ,内 表 側 処 理 が IS で あ る NLJ プ ラ ン 2 (図 2 の (c))
で は , TS の 連 続 ア ク セ ス の 間 に IS の ラ ン ダ ム ア ク セ
スが混ざることになる.連続アクセスとランダムアク
セ ス が 混 ざ る I/O パ タ ー ン を 混 在 ア ク セ ス と 呼 ぶ .
OoODE は , 実 行 プ ラ ン に 内 在 す る 並 列 性 を 活 用 し ,
高多重なリード要求を行うことでストレージ装置の性
能を引き出している.このため,外表側の選択率が 高
く , 引 き 出 せ る I/O 多 重 度 が 高 い 場 合 に よ り 高 い 性 能
を 発 揮 す る 特 徴 が あ る . [4]
2.2. 固 定 I/O 性 能 による OoODE コスト見 積 り方 式
最初に,従来型のデータベースエンジンにおける処
理コストについて簡単に述べる. 従来型のデータベー
ス エ ン ジ ン で は ,基 本 的 に CPU 処 理 と I/O 処 理 が 逐 次
的 に 行 わ れ る た め , CPU 処 理 の コ ス ト (CPU コ ス ト )
きく異なるため,どのように扱うかが問題になる.
2.1 節 で 述 べ た よ う に , OoODE は 実 行 プ ラ ン か ら 引
き出せる多重度が高い場合により高い性能を発揮する.
そ こ で , ま ず 簡 素 な コ ス ト 見 積 り 方 式 と し て I/O 性 能
が I/O 処 理 方 式 に よ り 固 定 で あ る と 近 似 す る I/O コ ス
ト 見 積 り 方 式 を 考 え る . I/O コ ス ト の 計 算 に は , 計 算
機 シ ス テ ム の 最 大 ス ル ー プ ッ ト (上 限 ス ル ー プ ッ ト )
と 計 算 機 シ ス テ ム の 最 大 IOPS (上 限 IOPS) を 用 い て
計算する.
なお,選択率が小さい場合は処理すべきレコード数
が 少 な く , そ れ が 原 因 で I/O 多 重 度 を 出 せ ず に 上 限
IOPS よ り 低 い 性 能 で 結 合 処 理 を 行 う 可 能 性 が あ り ,そ
の 場 合 NLJ の I/O コ ス ト は 実 際 よ り 小 さ く 見 積 も ら れ
る .し か し ,OoODE の 問 合 せ 処 理 に お け る IOPS 性 能
がシステム上限性能から乖離するほど選択率が低い場
合は,一般に処理時間が短いためプラン選択を誤って
も実用上は問題無いと考えられる .
従来型データベースエンジン向けコスト見積りを,
OoODE に 適 用 し た 場 合 の I/O コ ス ト 式 を 下 に 示 す (数
式 1).
TSのデータ量[ MB]
ISのI / O数[個]

上限スループット[ MB / s] 上限IOPS [iops ]
数 式 1: 固 定 上 限 I/O 性 能 に よ る I/O コ ス ト 式
と I/O 処 理 の コ ス ト (I/O コ ス ト ) の 和 を 問 合 せ の コ ス
2.1 節 で 動 作 の 説 明 に 用 い た 図 1 の 問 合 せ と , 図 2
ト と 考 え る . CPU コ ス ト は , 問 合 せ で 必 要 な CPU 処
の実行プランを用いて,2 表結合の処理時間見積りを
理の総時間を見積り,処理を行うコア数で割った値と
説 明 す る .CPU コ ス ト は 従 来 型 デ ー タ ベ ー ス エ ン ジ ン
考 え る . I/O コ ス ト は , レ コ ー ド へ の ア ク セ ス 方 式 に
と 同 様 の 方 式 と な る た め , 主 に I/O コ ス ト に つ い て の
よって計算方法が異なる.表を構成するページを連続
み説明する.
的 に ア ク セ ス す る TS で は , 表 サ イ ズ を 単 位 時 間 当 た
HJ プ ラ ン (図 2 の (a)) で は Build 側 処 理 を 行 っ た 後
り の デ ー タ 転 送 量 (こ れ を ス ル ー プ ッ ト と 呼 ぶ ) で 割
に Probe 側 処 理 を 行 う た め , Build 側 処 理 の コ ス ト と
っ た 値 が I/O コ ス ト と な る . 一 方 , イ ン デ ッ ク ス を 使
Probe 側 処 理 の コ ス ト の 和 が HJ プ ラ ン の コ ス ト と 考 え
っ て レ コ ー ド を ア ク セ ス す る IS で は ,多 く の 場 合 ペ ー
る こ と が で き る .Build 側 処 理 お よ び Probe 側 処 理 の コ
ジ 単 位 で ラ ン ダ ム に ア ク セ ス す る た め , 総 I/O 回 数 を
ス ト は ,そ れ ぞ れ の CPU コ ス ト と I/O コ ス ト の 最 大 値
単 位 時 間 当 た り の 処 理 I/O 数 (こ れ を IOPS (I/O per
を と る . 表 へ の ア ク セ ス は TS か IS の い づ れ か で I/O
second) と 呼 ぶ ) で 割 っ た 値 を I/O コ ス ト と 考 え る .TS
コストが小さいほうを採用する.
と IS を 行 う 問 合 せ の 場 合 は , TS の I/O と IS の I/O が
NLJ プ ラ ン で は , 外 表 側 の 処 理 と 内 表 側 の 処 理 を 同
逐 次 的 に 処 理 さ れ て い る と 考 え ,TS の I/O コ ス ト と IS
時に実行する.このため,外表側処理と内表側処理を
の I/O コ ス ト の 和 が 問 合 せ の I/O コ ス ト と 考 え る .
ま と め て CPU コ ス ト と I/O コ ス ト を 計 算 し ,そ の 最 大
従来型データベースエンジンとの差分の形で
値 が NLJ プ ラ ン の コ ス ト と な る . NLJ プ ラ ン 1 (図 2
の (b)) の 場 合 は 外 表 側 と 内 表 側 と も に IS の た め ,全 て
スとランダムアクセスが時間方向に均一に分布してい
ラ ン ダ ム ア ク セ ス と な り , そ の I/O コ ス ト は 総 I/O 数
ることを仮定すると,連続アクセスの量とランダムア
を 上 限 IOPS で 割 っ た 値 と な る .一 方 ,NLJ プ ラ ン 2 (図
クセスの量の割合により,実効スループットと実効
2 の (c)) で は 外 表 側 の TS の I/O コ ス ト と 内 表 側 の IS
IOPS が 決 ま る と 考 え ら れ る . そ こ で , I/O の み 行 う テ
の I/O コ ス ト の 和 が NLJ プ ラ ン の I/O コ ス ト と な る .
ストプログラムで連続アクセスの量とランダムアクセ
NLJ プ ラ ン 2 で は , TS と IS を 同 時 に 行 う . 本 I/O
スの量の割合を変化させた測定を行い ,測定結果から
コ ス ト の 見 積 り 方 式 で は , TS と IS が 共 に 上 限 I/O 性
定 ま る 実 効 ス ル ー プ ッ ト と 実 効 IOPS の 関 係 を モ デ ル
能で処理されると近似したコストとなる. 実際は,上
化 し た 式 (混 在 I/O 性 能 モ デ ル 式 ) を 用 い て 処 理 時 間
限 ス ル ー プ ッ ト と 上 限 IOPS を 維 持 し な が ら 処 理 を 進
を 見 積 る . 具 体 的 に は , 混 在 I/O 性 能 モ デ ル 式 が 実 効
められない可能性があり,この点が誤差要因になり得
IOPS を 引 数 と し て 実 効 ス ル ー プ ッ ト を 返 す 関 数 f に よ
る.
り 表 現 さ れ る 場 合 ,数 式 2 の 連 立 方 程 式 を 解 き ,そ こ
2.3. 混 在 アクセス時 の I/O 性 能 を考 慮 したOoODE
で 求 ま っ た 実 効 ス ル ー プ ッ ト も し く は 実 効 IOPS に よ
り 処 理 時 間 を 見 積 る . こ の 見 積 り 処 理 時 間 が I/O コ ス
コスト見 積 り方 式
前述のように,連続アクセスとランダムアクセスが
混 在 す る よ う な 混 在 ア ク セ ス 時 の I/O コ ス ト に 誤 差 が
生 じ る 可 能 性 が あ る . つ ま り , 混 在 ア ク セ ス 時 の I/O
性能をより正確に反映することで,従来方式のコスト
見積り方式に比べ実際の処理時間との誤差が小さくな
る こ と が 期 待 さ れ る . そ こ で , 混 在 ア ク セ ス 時 の I/O
トとなる.
実効スループット=f 実効IOPS 
TSのデータ量[ MB]
ISのI / O数[個]
=
実効スループット[ MB / s] 実効IOPS [iops ]
性 能 を 考 慮 し た OoODE の コ ス ト 見 積 り 方 式 を 考 え る .
数 式 2: 実 効 I/O 性 能 を 決 め る 連 立 方 程 式
混 在 ア ク セ ス で は ,図 3 に 示 す よ う に ,連 続 ア ク セ
数 式 2 を 用 い て 実 効 I/O 性 能 で I/O コ ス ト を 求 め る
スとランダムアクセスの双方ともスループットと
方 式 を 実 効 I/O 性 能 方 式 と 呼 ぶ .こ れ に 対 し ,2.2 節 で
IOPS の 両 性 能 値 に 寄 与 す る .あ る ス ル ー プ ッ ト で 行 わ
説 明 し た よ う に 上 限 ス ル ー プ ッ ト と 上 限 IOPS の 上 限
れ て い る 連 続 ア ク セ ス は , そ れ に 応 じ た IOPS で 処 理
I/O 性 能 で I/O コ ス ト を 求 め る 方 式 を 上 限 I/O 性 能 方 式
し て い る . 一 方 , あ る IOPS で 行 わ れ て い る ラ ン ダ ム
と呼ぶ.
アクセスは,それに応じたスループットで処理してい
る .数 式 1 で 示 し た I/O コ ス ト 式 で は ,TS は ス ル ー プ
ッ ト に 対 す る 寄 与 の み , IS は IOPS に 対 す る 寄 与 の み
3. I/O コ ス ト 見 積 り 方 式 の 評 価
本 章 で は , 上 述 し た I/O コ ス ト 見 積 り 方 式 の 評 価 を
行 う .初 め に ,2.1 節 で 述 べ た 選 択 率 に よ る I/O コ ス ト
を考えており誤差を生じることになる.
見積りに対する影響を図 4 の問合せを用いて確認す
る .次 に ,図 1 の 問 合 せ を 用 い て ,混 在 ア ク セ ス に お
処理時間t
上限
スループット
上限IOPS
ランダムアクセス
実効
スループット
連続アクセス
t0
t1
時刻
IOPS
スループット
処理時間t
ランダムアクセス
実効IOPS
連続アクセス
t0
t1
時刻
図 3: 混 在 ア ク セ ス 時 の ス ル ー プ ッ ト と IOPS
ここで,連続アクセスにおける実際の処理速度であ
る実効スループットと,ランダムアクセスにおける実
際 の 処 理 速 度 で あ る 実 効 IOPS を 考 え る . な お , 実 効
ス ル ー プ ッ ト と 実 効 IOPS を ま と め て 実 効 I/O 性 能 と 呼
ぶ.その定義から,実効スループットで連続アクセス
のデータ量を割ることにより求める処理時間と,ラン
ダ ム ア ク セ ス の I/O 数 を 実 効 IOPS で 割 る こ と に よ り 求
める処理時間は一致し,実際の処理時間になると考え
られる.
この際に問題となるのは,実効スループットと実効
IOPS の 決 め 方 で あ る .混 在 ア ク セ ス で は ,連 続 ア ク セ
け る コ ス ト 見 積 り 式 を 検 証 す る .図 1 の 問 合 せ か ら 生
成 さ れ る ,図 2 の HJ プ ラ ン お よ び NLJ プ ラ ン 1 は 混
在 ア ク セ ス が 発 生 し な い た め , NLJ プ ラ ン 2 の コ ス ト
の み を 扱 う . ま た , I/O コ ス ト 見 積 り 方 式 の 違 い を 評
価 す る た め に , I/O ネ ッ ク と な る 環 境 に お い て NLJ プ
ラ ン 2 の 実 際 の 処 理 時 間 を 測 定 し , 上 限 I/O 性 能 方 式
の I/O コ ス ト お よ び 実 効 I/O 性 能 方 式 の I/O コ ス ト と
の比較を行う.
SELECT
count(l_shipdate) l_year,
sum( case
when n2.n_name = 'CHINA'
then l_extendedprice
else 0
end) /
sum(l_extendedprice * (1 - l_discount))
I/O の み 行 う テ ス ト プ ロ グ ラ ム (TP) を 用 い て 混 在 ア
mkt_share,
ク セ ス 時 の I/O 性 能 を 測 定 し た . orders 領 域 へ の ラ ン
n2.n_name
ダ ム ア ク セ ス と lineitem 領 域 へ の 連 続 ア ク セ ス の 割 合
FROM
part,
を 変 化 さ せ ,lineitem 領 域 の 実 効 ス ル ー プ ッ ト と orders
customer,
supplier,
領 域 の 実 効 IOPS を 採 取 し た .
lineitem,
orders,
nation n1,
この条件で
nation n2,
region
絞込み率を調整
TP 測 定 に お け る 実 効 ス ル ー プ ッ ト と 実 効 IOPS の 関
係 を 上 限 性 能 比 で 示 し た (図 5). こ の た め , 本 測 定 環
境における実効性能モデル 曲線を図 5 の実線とした.
WHERE
and s_suppkey = l_suppkey
and l_orderkey = o_orderkey
and o_custkey = c_custkey
and c_nationkey = n1.n_nationkey
and n1.n_regionkey = r_regionkey
and r_name = 'AMERICA'
and s_nationkey = n2.n_nationkey
L表領域のスループット
上限性能比
p_partkey = l_partkey
and o_orderdate between DATE '1995 -01-01' and
1.2
1
0.8
0.6
0.4
0.2
0
0
DATE '1996-12-31'
0.1
0.2
O索引・O表領域のIOPS
上限性能比
0.3
and p_type = 'ECONOMY ANODIZED STEEL'
and p_size = 3
図 5: TP 測 定 結 果 と 実 効 I/O 性 能 モ デ ル 曲 線
and p_brand = 'Brand#24'
and p_partkey < 100000
GROUP BY
n2.n_name
ORDER BY
n2.n_name;
図 4 : 問 合 せ (低 選 択 率 で の 性 能 確 認 )
3.1. データベースと評 価 環 境
デ ー タ ベ ー ス の ス キ ー マ は TPC-H で 定 義 さ れ て い
るものを用いる.図 1 の問合せで使用するデータは
Scale Factor(SF)が 1,000 の も の で ,lineitem レ コ ー ド が
60 億 件 , orders レ コ ー ド が 15 億 件 , 合 計 約 1TB の デ
ー タ で あ る . 図 4 の 問 合 せ で 使 用 す る デ ー タ は SF が
3.3. 選 択 率 による I/O コスト見 積 りへの影 響 に関 す
る考 察
図 4 の 問 合 せ を ベ ー ス に , part 表 の 選 択 率 を 5E-11
~ 5E-6 に 変 化 さ せ た 時 の 測 定 結 果 を , 5E-11 の 処 理 時
間 を 1 と し て 相 対 値 で プ ロ ッ ト し た (図 6). 本 評 価 に
お い て は ,図 2 の NLJ プ ラ ン 1 の よ う に ,す べ て の テ
ーブルアクセスをインデックスアクセスとなっている.
結 果 を 見 る と , 1.0E-7 以 下 の 絞 込 み 率 の 領 域 で I/O コ
スト見積り値との差が広がっているが,この領域では
処理時間がおよそ 1 秒以下となっている.
100,000 の も の で そ の デ ー タ サ イ ズ は 約 100TB で あ る .
ラムの成果を基にした商用アウトオブオーダ型データ
ベ ー ス エ ン ジ ン Hitachi Advanced Data Binder[8]を 用 い
た.
評 価 環 境 を 表 1 に 示 す .I/O コ ス ト を 確 認 す る た め ,
処理時間[sec]
OoODE の 測 定 に は ,内 閣 府 最 先 端 研 究 開 発 支 援 プ ロ グ
100
10
NLJ(実測)
1
NLJ(コスト)
I/O ネ ッ ク と な る 環 境 に て 測 定 を 行 っ た .
表 1: 測 定 環 境 の 構 成
日 立 製 ブ レ ー ド サ ー バ BS2000
サーバ
(128 論 理 コ ア , 1TB メ モ リ )
日 立 製 ス ト レ ー ジ 装 置 AMS2500
ストレージ
(16 筐 体 ,15krpm HDD 合 計 2,048 台 )
0.1
1.E-11 1.E-10 1.E-09 1.E-08 1.E-07 1.E-06 1.E-05 1.E-04
lineitem表選択率
図 6: 実 測 処 理 時 間
ハードウェア構成を変化させることを考えたとき,
一 番 影 響 が 大 き い と 考 え ら れ る の は HDD 性 能 が 低 下
3.2. 実 効 I/O 性 能 モデル式
評 価 環 境 で の 実 効 I/O 性 能 モ デ ル 式 を 求 め る た め に ,
す る 場 合 で あ る .こ の 場 合 ,IOPS 性 能 の シ ス テ ム 上 限
に 達 す る I/O 多 重 度 に 必 要 な レ コ ー ド 件 数 は あ ま り 変
化 し な い と 考 え ら れ ,HDD 性 能 の 変 化 に 応 じ 処 理 時 間
4. お わ り に
が 延 び る と 考 え ら れ る .た だ ,こ の と き は CPU 処 理 の
本論文では,著者らが研究開発を進めているアウト
余裕が大きくなり元来有する処理の並列性をより引き
オブオーダ型データベースエンジンにおける 2 表結合
出 せ る 状 況 に あ り ,HDD 性 能 の 反 比 例 を 超 え て 悪 化 す
問合せの処理時間見積りの課題と,その解決方式を報
る こ と は な い と 考 え ら れ る .従 っ て ,選 択 率 に よ る I/O
告した.連続アクセスやランダムアクセスそれぞれの
コストに対する影響は,処理時間が数秒より大きけれ
実 際 の I/O 性 能 で あ る 実 効 I/O 性 能 に よ り I/O コ ス ト
ばこの誤差は十分小さいと考えられ,大規模データに
を 算 出 す る 実 効 I/O 性 能 方 式 を 検 討 し た . TPC-H ベ ン
お い て NLJ と HJ の 選 択 に 利 用 し て も 実 用 上 許 容 さ れ
チ マ ー ク の デ ー タ を 用 い た 評 価 で は , 商 用 OoODE を
ると考える.
用 い た 実 測 結 果 と I/O コ ス ト を 比 較 す る こ と に よ り ,
提案方式が有効であることを確認した.
3.4. 混 在 アクセスにおける I/O コストと実 測 時 間 の
謝
辞
本研究は, 内閣府最先端研究開発支援プログラム
比較
評 価 環 境 に お け る 実 際 の 処 理 時 間 と , 上 限 I/O 性 能
「超巨大データベース時代に向けた最高 速データベー
方 式 に よ る I/O コ ス ト お よ び 実 効 I/O 性 能 方 式 に よ る
スエンジンの開発と当該エンジンを核とする戦略的社
I/O コ ス ト を 比 較 す る . 図 1 に 示 し た 問 合 せ を ベ ー ス
会サービスの実証・評価」の助成により行われた.
に ,l_quantity の 条 件 を 変 化 さ せ て lineitem 表 の 選 択 率
を 0.0E+0~ 5.3E-3 に 変 化 さ せ た 問 合 せ 8 個 を 用 い る .
l_quantity 以 外 の 条 件 が 存 在 す る た め ,選 択 率 の 最 大 値
が 5.3E-3 と な っ て い る .
図 7 に 実 測 し た 処 理 時 間 と I/O コ ス ト を プ ロ ッ ト し
た グ ラ フ を 示 す . lineitem テ ー ブ ル の 選 択 率 が 0.0E+0
の時の実測処理時間を 1 とした時の処理時間を示した.
処理の相対時間
2.5
2
実測
1.5
1
上限I/O
性能方式
0.5
実効I/O
性能方式
0
0.E+00
2.E-03
4.E-03
6.E-03
lineitem表選択率
図 7: 実 測 と I/O コ ス ト の 比 較
上 限 I/O 性 能 方 式 の I/O コ ス ト は , 2E-3 よ り 小 さ い
選 択 率 で は 実 測 と の 誤 差 が 4%以 下 で あ っ た .し か し ,
2E-3 よ り 大 き い 選 択 率 で は ,ラ ン ダ ム ア ク セ ス の 量 が
増 加 す る に 従 い , 実 測 と I/O コ ス ト の 差 が 拡 大 し て い
き , 最 大 31%ま で 誤 差 が 拡 大 し た . 一 方 , 実 効 I/O 性
能 方 式 の I/O コ ス ト は ,0.0E+0 以 上 5.3E-3 以 下 の 選 択
率 の 領 域 で , 実 測 と の 誤 差 が 11%以 下 に 抑 え ら れ て い
る.
本 評 価 に よ り , 実 効 I/O 性 能 方 式 に よ り , 実 測 と の
誤差が小さくできていることが確認できた.
文
献
[1] IDC Japan, 国 内 外 付 型 デ ィ ス ク ス ト レ ー ジ 市 場
の実績と予測を発表,
http://www.idcjapan.co.jp/Press/Current/20130617A
pr.html, 2013
[2] 喜 連 川 優 ,合 田 和 生 ,ア ウ ト オ ブ オ ー ダ 型 デ ー タ ベ
ー ス エ ン ジ ン OoODE の 構 想 と 初 期 実 験 , 日 本 デ
ー タ ベ ー ス 学 会 論 文 誌 , Vol.8, No.1, pp.131-136,
2009.
[3] 合 田 和 生 , 豊 田 正 史 , 喜 連 川 優 , ア ウ ト オ ブ オ ー
ダ 型 デ ー タ ベ ー ス エ ン ジ ン OoODE の 試 作 と そ の
実行挙動, 第 5 回データ工学と情報マネジメント
に 関 す る フ ォ ー ラ ム , 2013.
[4] 早 水 悠 登 , 合 田 和 生 , 喜 連 川 優 , ア ウ ト オ ブ オ ー
ダ 型 デ ー タ ベ ー ス エ ン ジ ン OoODE に よ る ク エ リ
処理性能の実験的評価, 第 5 回データ工学と情報
マ ネ ジ メ ン ト に 関 す る フ ォ ー ラ ム , 2013.
[5] 清 水 晃 , 徳 田 晴 介 , 田 中 美 智 子 , 茂 木 和 彦 , 合 田
和生, 喜連川優, アウトオブオーダ型データベー
ス エ ン ジ ン OoODE に お け る タ ス ク 管 理 機 構 の 一
実装方式の評価, 第 5 回データ工学と情報マネジ
メ ン ト に 関 す る フ ォ ー ラ ム , 2013.
[6] P. Griffiths Selinger, M. M. Astrahan, D. D.
Chamberlin, R. A. Lorie, and T. G. Price. 1979.
Access path selection in a relational database
management system. In Proceedings of the 1979
ACM SIGMOD international conferen ce on
Management of data (SIGMOD '79). ACM, New York,
NY, USA, 23-34.
[7] Transaction Processing Performance Council, TPC
BENCHMARK T M H, Standard Specification,
http://www.tpc.org/tpch/spec/tpch2.16.0.pd f, 2013.
[8] 日 立 , 東 京 大 学 と の 超 高 速 デ ー タ ベ ー ス エ ン ジ ン
の共同研究開発成果を製品化,
http://www.hitachi.co.jp/New/cnews/month/2012/05/
0528.html, 2012.