本応募課題では,大量のメモリを活用しているデータベース管理システム(DBMS)を稼動した仮想マシン(VM)を稼動させたまま移送する方式について研究する.これまで独立性の高かった DBMS レイヤと VM モニタレイヤのメモリ管理を互いに協調させることによって総移送時間の短縮を試みる.本研究では,ビッグメモリ DBMS のメモリは多くの領域がバッファプールで支配されており,また,バッファプールはディスク上の DB ファイルから構築可能であることに着目する.移送先のVM モニタでディスク上の DB ファイルからバッファプールを構築し,それと同時にその他のメモリ領域を移送元から転送することで,VM の構築を並列化する.これにより従来の VM モニタだけに頼った移送方式での性能限界を打ち破る.しかしながら,通常,VM モニタは計算機資源の低レベルな情報しか扱えず,VM に割り当てたメモリページがどのような用途で利用されているか,またディスク上にどのファイルがあるかといった情報は把握できない.提案する移送方式では,こうしたギャップを埋めるべく,DBMS が能動的に VM モニタにメモリ情報およびファイル情報を提供することで,VM モニタ上で高レベルな情報を扱えるようにする.プロトタイプを Xen 上に実装して,様々なワークロードを用いて定量的に評価した.具体的には読み込みや一部テーブルの更新といった人工的なワークロードだけではなく,TPC-H や TPC-C などの実環境を模したワークロードを与え,その際の移送時間や資源使用率の変化を計測した.
|