 によるデータアフィニティを考慮した
並列分散処理の提案と性能評価
理学専攻 情報科学コース 菱沼 直子
ᵢᶃᶄᶇᶌᶃᴾᶒᶆᶃᴾ ᵆᵏᵇᶎᶐᶍᶁᶃᶑᶑᴾᵶ

はじめにクラウド技術の普及により，個人が生み出す情報が大量にネットワーク上に保存されるようになり，ネットワーク上に存在するデータが爆発的に増加している．このような大容量データの保持には，厳密な一貫性が必ずしもが利用必要ではないため結果一貫性を保証する分散されている．これらのデータから，ユーザが必要とする情報を抽出するためには，データの統計処理やマイニンはそのような処理を念グ処理が不可欠となる．分散のような頭に置いて設計されておらず，処理系を利用することで，高速に処理することが出来る．
を用いる際には分散から処理を行
しかし，等の分散ファイルシステムへデータを転送するう必要があり，その際に大きなコストが発生してしまう．
そこで，本研究では転送コスト発生を防ぎ，データを上で直接高速データ処理を行う手法を蓄積した分散提案し，実装する．本提案手法では，大容量データを高型データベースを速に蓄積可能な分散用い，データアフィニティを考慮して大容量データを格のデータノード上で高速に処理す納しているの読み出しコマンドる．我々は，上記手法をを拡張し並列データ処理機構という形で実装した．評価
実験より，並列データ処理機構の特性を明確にする．

ᶔᵿᶊᶓᶃᴾᵟᵆᵐᵇᶐᶃᵿᶊᴾᶂᵿᶒᵿᵡᶊᶇᶃᶌᶒ      ᶐᶃᵿᶊᴾᶂᵿᶒᵿᵆᵒᵇᶎᶐᶍᶁᶃᶑᶑᴾᵆᵑᵇ
ᵶᶎᶐᶍᶁᶃᶑᶑᴾᵶ

ᶔᵿᶊᶓᶃᴾᵟᶐᶃᶎᶊᶇᶁᵿ

ᶔᵿᶊᶓᶃᴾᵠḚᶐᶃᵿᶊᴾᶂᵿᶒᵿ

ᶔᵿᶊᶓᶃᴾᵠᶔᵿᶊᶓᶃᴾᵟḚ

ᵮᶐᶍᶖᶗ



ᵆᵑᵇ

ᶐᶃᵿᶊᴾᶂᵿᶒᵿ

図ᶎᶐᶍᶁᶃᶑᶑ
ᵶᵆᵑᵇᶔᵿᶊᶓᶃᴾᵟḚᶐᶃᶎᶊᶇᶁᵿ

% 提案手法の概要! を並列実行し，処理結果を値 &#$& とする．
' 値 &#$& をリクエストの答えとして返す．
本研究では，上記手法を   の標準読み出しコマた処理

ンド， ，   を拡張し，並列データ処理機構という形で実装した．並列データ処理機構は，をで定義しており，読み出しリクエストを送信する
ファと，読み出しリクエストと共に定義した処理のイルをデータノード上へ転送し，処理を各データノード上で実行して，結果のみをリクエストの答えとして返す実装
ファイルとなっている．本実装では定義した処理のをデータノード上へ転送することで任意の処理を実行可能にしている．



()

(*(*

本 研 究 で は ，  型 デ ー タ ベ ー ス で あ る 
  に 着 目 し た ．   は ，  性能評価
実装した並列データ処理機構の性能評価として基本性  社が開発した分散データベース管理システム
能，データ処理中にバックグラウンドで書き込み処理が行である．  の特徴としては，読み出しコストをわれている場合の性能を評価する．ノード数 " 台，+ 台，多少犠牲にしながら，書き込み性能を向上させた分散,台からなるクラスタに，機能拡張を行った   であること，単一故障点   がないこと，一貫をインストールした．今回の開発では，  バー
性の程度をユーザが自由に設定可能といった事が挙げら
ジョン --. を用いた．測定に用いたノードの性能を表 れる．に示す．

提案手法の設計 

本研究では上に蓄積された大容量データに対して，データアフィニティを考慮して高速データ処理を可能にするための手法を提案する．本提案手法では，で，ユーザが実行したい処理をプラグインとして定義する．定義された処理を，処理対象データを保存している各データノード上でローカルに実行し，処理結果のみをクライアントに返すことで，転送コストを削減し，高速データ処理を実現する．提案手法の概要を図 に示す．

'"()$      として，処理 ! を定義する．
 データを格納している各データノードへリクエストを送信する．
" 各データノード上にある，値 #$ に対して定義され表

% マシンスペック         !"  #  $%  !"  # &$% *+)
+ ,' - ./  

基本性能

前章で説明した実装を用いて，各データノード上でワードカウント  を行い処理結果のみを取得する場合サーバ側処理 と，から対象の値を取得後 を行う場合 クライアント側処理 での性能比較を行った．
図 ， にデータノード数を変化させた際の  処理

 "

  …‧ᵱᶃᶐᶔᶃᶐᵋᶑᶇᶂᶃᶎᶐᶍᶁᶃᶑᶑᶇᶌᶅᵓ
ᵬᶓᶋᶀᶃᶐᴾᶍᶄᴾᶂᵿᶒᵿᴾᶌᶍᶂᶃᶑᵰᶓᶌᵲᶇᶋᶃ ᵹᶑᶃᶁᵻ⁠⁧ ⁔⁗⁤ ⁡⁘‒⁨⁓⁞⁧⁗⁥‥•․‧⁨⁓⁞⁧⁗‒‧•․•⁨⁓⁞⁧⁗‒‣••‣‧⁨⁓⁞⁧⁗‒․••

‣•
‧
•

ᵖ

% 処理対象の値を . とした場合の各処理の実行時間‣⁝‣•⁝‣••⁝‣‿‣•‿⁉⁤⁛⁦⁗‒⁦⁚⁤⁡⁧⁙⁚⁢⁧⁦⁍⁔⁫⁦⁗‡⁥⁗⁕⁏'%

図ノード数理実行時間" の場合の書き込み処理中の高速データ処‧•ᵓᵎᵒᵓᵒᵎᵑᵓᵑᵎᵐᵓᵐᵎᵏᵓᵏᵎᵓᵎ…‧…•ᶕᶁᵡᶊᶇᶃᶌᶒᵋᶑᶇᶂᶃ
ᶎᶐᶍᶁᶃᶑᶑᶇᶌᶅᵱᶃᶐᶔᶃᶐᵋᶑᶇᶂᶃ
ᶎᶐᶍᶁᶃᶑᶑᶇᶌᶅ
ᵓᵬᶓᶋᶀᶃᶐᴾᶍᶄᴾᶂᵿᶒᵿᴾᶌᶍᶂᶃᶑ



書き込み処理中の高速データ処理性能

本実装では つのシステム上で書き込み処理とデータ処理を行っているため，書き込み処理中にデータ処理を実行すると影響が出ることが予想される．そこで本章では，並列データ処理機構がデータ処理中にバックグラウンドで書き込み処理を実行するとどの程度性能に影響が出るのか調査する．
図 ， にデータノード数を 台， 台，処理対象の値，とし，書き込みを 〜の数を ，まで変化させた場合のそれぞれの実行時間，書き込みの変化を示す．縦軸が実行時間を表す．
図 ， よ り ，書 き 込 み 負 荷 を 与 え な い 場 合 と程度の書き込み負荷を与えた場合の実行時間を比較した結果，実行時間増加の傾向があることから書き込み負荷がデータ処理性能に影響を与えていることが確認できる．ただし，データノード数が少ない場合
台 には程度の書き込み負荷を与えるとデータ処理性能の劣化が大きいが，データノード数が多い
台 には程度の書き込み負荷を加え場合ても効率よく処理することができていた．以上の結果か
ら本実装はデータノード数を増加させることでスケールアウトできていることも示せた．

' ++. .. ..
.01212' +.012" , .012

.012"⁨⁓⁞⁧⁗‒‧•․‧⁨⁓⁞⁧⁗‒‣••․•⁨⁓⁞⁧⁗‒․••‣‧
‣•
‧
•


. "⁠⁧ ⁔⁗⁤ ⁡⁘‒⁨⁓⁞⁧⁗⁥‥••

台のマシン上で実行 ，クライアント側処理，サーバ側処，横軸がデー理の実行時間を示す．縦軸が実行時間
タノード数で，図 が処理対象の値を ，図 が処理対とした際の実行時間を表している．グラフよ象の値をり，データノード数，処理対象の値に関わらず提案手法であるサーバ側処理の実行時間が短くなっていることから，本提案手法の有効性が示せた．この結果は，提案手法が処理結果のみを返していることによる通信データ量の削減が出来ているためである．

".

‥‧

ᵖ

"% 処理対象の値を ". とした場合の各処理の実行時間

‥‧

•

ᵑ

図⁄⁧⁠⁆⁛ ⁗ ⁍⁥⁗⁕⁏ᵡᶊᶇᶃᶌᶒᵋᶑᶇᶂᶃᶎᶐᶍᶁᶃᶑᶑᶇᶌᶅ

ᵑ

図…•

ᶕᶁ

⁄⁧⁠⁆⁛ ⁗ ⁍⁥⁗⁕⁏ᵰᶓᶌᵲᶇᶋᶃ ᵹᶑᶃᶁᵻ‧•ᵓᵎᵒᵓᵒᵎᵑᵓᵑᵎᵐᵓᵐᵎ
ᵏᵓᵏᵎ
ᵓ
ᵎ,
 / .

 /3+%

図
ノード数理実行時間

‣⁝‣•⁝‣••⁝⁉⁤⁛⁦⁗‒⁦⁚⁤⁡⁧⁙⁚⁢⁧⁦⁍⁔⁫⁦⁗‡⁥⁗⁕⁏‣‿‣•‿, の場合の書き込み処理中の高速データ処

まとめと今後の課題

大容量データを高速処理する際に発生するコストを抑の実装の つであるえるため，分散に着目しデータアフィニティを考慮した並列分散処理手法を提案した．格納された値に対して直接高速の標準コマンドを機能データ処理を行うため拡張し並列データ処理機構を実装した．
を単なるストレージとして評価結果から，利用するクライアント側処理に比べ，本提案手法を用いたサーバ側処理の方が実行時間が短いことが確認でき，本実装の有効性が示せた．また，書き込み処理がデータ処理に影響を与えることが確認でき，本実験環境ではデータノー程度の書き込み負荷をド数が 台の場合は与えるとデータ処理性能の劣化が見られるのに対し， 台の書き込み負荷を与えても効率よの場合はく処理を実行できていた．
今後の課題としては，ワードカウント以外の処理での比較やより大規模な環境での比較を行うことがあげられる．
やなどの集約演算実装面の課題としては，処理を実行可能にするため，集約演算処理のフェーズを追加することがあげられる．本実装でこのような機能を追と呼ばれるライクな言語を利加する場合には用して集約演算する手法が考えられる．

  3  "

.012

.012,4 )/

56

参考文献

56

 -64  -07 - 8  3  37 9   / 14#8 3
/ 14 *) :# ) 7-''# ; -# -"+3'.#  7
.. < : -# % =   ) / #-     =  1 &* 771 (;# .-