A Research on Efficient and Scalable DBMS for Many-core Based Platform

(邦訳:メニーコアプラットフォームのための効率的かつスケーラブルなDBMSに関する研究)
 
西 方
ファーウェイ R&Dセンター

[背景]プロセッサチップ中のコア数の増加が著しい
[問題]コア数の著しく増加にDBMSの性能が十分に向上しない
[貢献]メニーコアのための効率的かつスケーラブルなDBMS


 本研究では,プロセッサチップ中のコア数が著しく増加している近年のメニーコア化の動向において,コア数の増加に比してデータベース処理性能が十分に向上しないスケーラビリティ阻害の問題を対象として,その要因を明らかにし,効果的な対応方法を提案するとともに,実際に複数のマルチコアを用いてその効果を確認しました.

 これまでデータベース管理システム(DBMS)をマルチコア上で実行する場合,各クエリをコアに適宜割り振り実行させていました.それらクエリは,ハードウェア・レベルとソフトウェア・レベルのリソースを共有しますが,同時実行クエリ数が増加すると,それらのリソース共有が処理のボトルネックとなります.本研究では,リソース共有の中でもキャッシュとバッファプールに着目しました.

 従来のDBMSのリソース共有に関する研究では,DBMSやOSの内部に手を入れるものがほとんどでした.しかし,DBMSやOSは複雑で規模の大きなソフトウェアで,内部を修正することは非常にコストがかかる上,汎用性がなくなります.本研究では,DBMSとOSに手を加えずに効率的なリソース共有を行うために,ミドルウェアを用いるアプローチを取りました.

 CARIC-DAと名付けたミドルウェアでは,各コアにDBMSプロセスを割り付け,そのプロセスで扱うデータの値の範囲(値域)を設定しておき,ミドルウェアでクエリを解析し,扱うデータの値域に従って対応するプロセスを決め,そこにクエリを投げます.同じ値域のクエリが同一コアで実行されることで,コアのプライベートキァッシュのヒット率が向上します.このアプローチは特にオンライントランザクション処理(OLTP)処理に効果的です.実際に,IntelとAMDの最新のメニーコア環境でOLTPのベンチマークであるTPC-CとPostgreSQLを用いて,CARIC-DAの評価を行い,キャッシュヒット率と実行性能の向上の効果を示しました.

 また,OLTPだけでなく異なるワークロードが混在する場合のメニーコア環境の性能を解析し,単一インスタンスのDBMSでのメインメモリ上のバッファプールにおけるリソース共有がボトルネックとなることを明らかにしました.インスタンスを複数にすることで,バッファプールのリソース競合を減らすことができますが,インスタンス間の一貫性制御が必要になります.マルチコア環境では,2相コミットの通信コストが低いことから,マルチコアにDBMSの複数インスタンスを置き,CARIC-DAと同様にミドルウェアで,クエリの内容に従って,それらのインスタンスにクエリを投げ,2相コミットを行うPM-DBと名付けたミドルウェアを提案しました.実際にマルチコア上にPostgreSQLの複数インスタンスを配置し,異なるワークロードが混在するベンチマークであるTPC-Wを用いて,PM-DBの評価を行いその効果を示しました.

 今後ますますメニーコア化が進み,複数コアが共有するメインメモリやキャッシュといったリソースの効率的利用がさらに重要になると予想します.既存ソフトやOSに手を加えずリソースを有効利用する本研究のアプローチが他にも適用できるのではないかと思っています.
 

 

 (2015年6月9日受付)
取得年月日:2015年3月
学位種別:博士(学術)
大学:東京工業大学



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


プロセッサチップ内のコア数増加が著しい近年のメニーコア化の動向において,コア数に比してデータベース処理の性能が十分向上しない問題に対し,スケーラビリティ向上を阻害する要因を明らかにし,有効な手法を複数提案し,その効果を示している.その内容は DASFAA2015,ICEIS2015,電子情報通信学会論文誌に採録されている.


著者からの一言


私の人生の旅での博士課程の期間は,辛いこともありましたが,いろいろ勉強ができ,研究の世界に入ることができ,とても美しいメモリになりました.先生や研究室の皆様から助けを受けたことを,心から感謝しております.博士課程で培った経験を活かし,今後研究を通して情報処理の発展に貢献します.最後に,研究会推薦博士論文に推薦していただき,身に余る光栄です.