190 likes | 314 Views
ラウンドロビン法で分割された分散地理データベースの並列 Spatial Join 演算の高速化. 九州大学大学院システム情報科学府 九州大学大学院システム情報科学研究院* 田村 慶一, 金子 邦彦*, 牧之内 顕文*. Spatial Join. 2つの空間データの集合をある空間的な関係で結びつける演算. (11,( x1,y1),(x2,y2),…). 土地利用. 降水量. (‘ Forest1’,100,(x1’,y1’)). 概要. 並列 Spatial Join [ 従来手法] Partition Parallelism – データを分割
E N D
ラウンドロビン法で分割された分散地理データベースの並列Spatial Join演算の高速化 九州大学大学院システム情報科学府 九州大学大学院システム情報科学研究院* 田村 慶一, 金子 邦彦*, 牧之内 顕文*
Spatial Join • 2つの空間データの集合をある空間的な関係で結びつける演算 (11,(x1,y1),(x2,y2),…) 土地利用 降水量 (‘Forest1’,100,(x1’,y1’))
概要 • 並列Spatial Join [従来手法] • Partition Parallelism –データを分割 • 分割したデータ毎にR*-treeを作成 [提案手法] • Partition Parallelism –データを分割 • すべてのデータのR*-treeを1つ作成
内容 • 2つの手法の比較 • 条件によりどちらが良い(仮説) • 応答時間 • 測定環境に左右されてしまう • コスト(ページアクセス数) • 測定環境が違っても同じ値 • ページアクセス数での比較 • ページ数は,データ数とオブジェクト数で見積もり可 • ページアクセス数が小さければ応答時間も小さい
従来研究 • Paradiseプロジェクト [SIGMOD 1997][ACM GIS 2000] • Partition Parallelism • データを分割し,複数のサイトが分割したデータに対してoperationを実行 • 空間分割 ネットワーク サイト1 サイト2 データベース 分割 パーティション1 パーティション2 パーティション1 パーティションN
Paradiseでの並列Spatial Join • 分割したデータ毎にR*-treeを持つ • 他のパーティションが必要であれば取りにいく ネットワーク サイト1 サイト2 polygonデータ R*-tree Object R*-tree pointデータ Object パーティション1 パーティション2 パーティションN
提案手法 ネットワーク サイト1 サイト2 R*-tree R*-tree Object R*-tree R*-tree Object パーティション1 パーティション2 パーティションN
Queryの例 Polygonの実際の形状 と交差するpointを求める Refinement R*-treeを使用し PolygonのMBRと交差 するpointを求める Spatial Join Filter 土地利用番号11の Polygonの識別子 Selection pointデータのR*-tree polygonデータのB+ツリー 「土地利用番号11のpolygonデータと交差するすべての pointデータのペアを求める」
分割したデータ毎のpointのR*-tree 1 Refinementへ Filter 2 Filter 3 Filter 4 Filter 1 2 Merge 3 土地利用番号11の Polygonの識別子 4 select 分割したpolygonの B+-tree 方式(1)
すべてのデータで作成したpointのR*-tree Filter Refinementへ Filter 1 2 3 Filter 4 select Filter 分割したpolygonの B+-tree 土地利用番号11の Polygonの識別子 方式(2)
実験環境 • Sun Ultra/5 Workstation × 4 • Processor 177Mhz ×1,Memory 128Mbyte • Disk 30GB • Sun Ultra/10 Workstation× 1 • Processor 440Mhz ×1,Memory 1024Mbyte • Disk 100GB • Network 100M-Ethernet Switch • DBMS 出世魚 • Extended Sequoia 2000 Benchmark • カリフォルニア州(米国) 1600Km × 2400km • Pointデータ 約24万個 • Polygonデータ 約37万個
ページアクセス数の見積もり (各サイト)ページアクセス数の見積もり (各サイト) PR - アクセスしたpointのR*-treeのページ数 PB - アクセスしたpolygon(MBR)のページ数 C - B+ツリー およびRefinement Stepでのページアクセス数 n - サイト数
(1) PB > PRの時、 • 方式(1)の方がページアクセス数が大 • PB = 約 polygonの数/(1ページに格納されているpolygonの数=4) • PR = 約 pointの数/(R*-treeの1ノードのエントリ数=150) • polygonの数が10000個以上の時, PB>PRが成り立つ • (2) PB < PRの時、 • 方式(2)の方がページアクセス数が大 • polygonの数が10000個以下の時, PB<PRが成り立つ • 但し,(1)(2)ともにR*-treeにすべてアクセスすることが前提の見積もり
すべてのデータで作成した R*-treeを使用 分割毎にR*-treeを作成 したものを使用
すべてのデータで作成した R*-treeを使用 分割毎にR*-treeを作成 したものを使用
考察 • 提案手法が良い場合と従来手法が良い場合の2つがある • ページアクセス数の見積もりはすべての実験値とは一致しなかった • 原因 R*-treeのページアクセス数の見積もりの誤差 • ページアクセス数が大きい方が応答時間が大きくなる
これからの展開 • ページアクセス数 • 見積もりを立てやすい • 測定環境に左右されない • 応答時間を裏付ける • Queryの実行時にページアクセス数を使って,どちらを選択するかを決める方法 • 複数の実行方法が考えられる並列地理DBのQueryを実行時に最適な方法を選択する