A Study on Optimization of Concurrency Control for Distributed B-trees on Parallel and Distributed Systems

(邦訳:並列分散システムにおける分散B-tree並行性制御の最適化に関する研究)
 
吉原 朋宏
(株)日立製作所 研究員

[背景]多数のサーバや多コアCPUで構成されるITシステム
[問題]ITシステム上のインデクスアクセスの高性能化
[貢献]インデクスアクセスを高性能化するロック制御技術の提案


 近年のITシステムは,多数のCPUコア,ストレージデバイス,主記憶から成るサーバとサーバ間ネットワークによって構成されている.主流CPUであるマルチコアCPUの性能向上は鈍化し,CPUベンダは1チップで60コアを超える「メニーコア」CPUを開発してきている.CPU間をつなぐネットワークとしてイーサネットが主流であるが,イーサネットの価格と性能は上がりづらい.高速なストレージデバイスであるSSDと巨大な主記憶がストレージデバイスのボトルネックを解消してきており,ネットワーク,CPUコアを有効活用する最適化が重要である.

 そのITシステムでは,RDBMS,key-value store,グラフDB,ファイルシステムなどさまざまなアプリケーションが動作している.これらのいずれのアプリケーションの性能にとっても,データに対するインデクスとインデクスへのアクセスは重要であり,性能向上するために分散インデクスを用いた並列分散処理を行っている.分散ストレージシステムや並列データベースは上記アプリケーションにおけるキーコンポーネントであり,それらのインデクスとして主に分散B-treeが用いられる.インデクスである分散B-treeを並列アクセスするための排他制御である並行性制御は,インデクスへのアクセス性能に大きな影響を与え,上記アプリケーション性能にも大きな影響を与える.近年のハードウェアのキーコンポーネントであるメニーコアやネットワークの特徴を考慮した並行性制御の最適化が重要になる.

 分散B-treeの並行性制御は,並列分散処理の1つである.並列分散処理の性能向上のための重要な課題は,並列分散処理間の①「通信処理」,②「負荷偏り制御の最適化」である.並列分散処理の性能を,並列数に対して性能をスケールするためには,楽観的なアプローチが主に用いられ,楽観的処理に伴う③「リトライ処理」の最適化も重要な課題である.また,ITシステム上の多くのアプリケーションは,性能面だけでなく,信頼性,可用性のためにも,複数のサーバに冗長データを分散し管理する.④「冗長データへのアクセス」の最適化も重要な課題である.

 本研究では,分散B-treeの並行性制御に関して上記①〜④の課題に取り組んだ.①通信処理の最適化に関して,排他制御に伴う通信回数を削減する最適化を行う並行性制御手法を提案した.②負荷偏り制御の最適化に関して,負荷偏りが起きづらいように処理振り分けを行うとともに,排他制御による衝突を削減する技法を組み合わせる並行性制御手法を提案した.③リトライ処理の最適化に関して,ツリーにヒント情報をマーキングすることにより不必要なトラバースを削減する並行性制御手法を提案した.④冗長データへのアクセスの最適化に関して,冗長データを保持するサーバやデータを保持していないサーバを有効活用する分散B-treeおよびその並行性制御を提案した.サーバクラスタやメニーコアサーバ上の実験を通して,提案手法を既存手法と比較し,各提案手法によりスループットがそれぞれ2倍以上向上する等の実測による優位性を示した.

 

 
 (2018年5月31日受付)
取得年月日:2018年3月
学位種別:博士(工学)
大学:東京工業大学



推薦文
:(データベースシステム研究会)


本論文は,並列分散システムの高性能化を実現するための分散B-tree並行性制御の最適化に関する手法を提案し,評価したもので,EDBT,DEXA といったレベルの高い国際会議に採択され,国際的にも評価されている.また,実験を通しさまざまな分散環境での高いスケーラビリティを示しており,適用性も高い.以上より,本論文を推薦する.
 


研究生活


研究テーマを決めたきっかけは,学部で研究室に配属されたときにFat-Btree(研究テーマとなった分散B-treeの一種)という非常に難しいインデクス構造があるということを先輩方から教えられて,それに興味を持ったことでした.まず,関連する論文を読んだり,プロトタイプを実装したりして,理解を深めているうちに,課題があることに気づきました.その課題を解決し,実験で検証したことをゼミで発表したら,それを研究テーマにしようということになりました.

博士課程にあがってからは,社会人ドクターとして,社会人としての業務と学業の両立に苦労しました.最初は,両方を同時に進めるように頑張ろうとしましたが,1つのことに没頭する私の性格上それが難しいことに気づきました.指導教員の先生や会社にご理解,ご支援いただき,3カ月,半年と区切って,学業に集中する期間,業務に集中する期間を作って取り組むことを許していただきました.

指導教員の先生を始めとした先生方や研究室の皆様,会社の上司,同僚の温かいご指導・ご協力のおかげで,博士号を取得することができました.