CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に続いて、2022年に公開された論文「CacheSack: Admission Optimization for Datacenter Flash Caches」を元にして、Googleのデータセンターで使用されている、フラッシュディスクによるファイルキャッシュシステムを紹介します。この論文では、数理最適化を用いて最適なキャッシングポリシーを選択するアルゴリズムが紹介されており、ITシステムにおける数理最適化の応用例としても興味深い内容です。今回は、実環境におけるベンチマーク結果のデータを紹介します。
前回説明したように、CacheSackは、過去のアクセス履歴データを用いたシミュレーションに基づいて、最適なポリシーの割り当て方法を決定します。この際、実際に発生するアクセスパターンは時間と共に変わるため、最適なポリシー割り当ては定期的に再計算する必要があります。冒頭の論文によると、実環境では5分ごとに再計算を行っているということです。過去データを元にした最適化というと、ニューラルネットワークを用いた機械学習処理を想像する方も多いかも知れませんが、機械学習モデルを5分ごとに再トレーニングするというのは、それほど簡単ではありません。CacheSackは、シンプルな数理最適化モデルを利用しているため、このような高頻度での再学習が可能になります。
次に、シミュレーションで最も重要になるのは、ハードディスクに対するIO発生回数の見積もりです。ハードディスクへのアクセス回数を減らすことがファイルキャッシュシステムの目的ですので、この部分を正確に予測することが大切です。論文内では、シミュレーションで予測したハードディスクからの読み込み回数と、その後、実際に発生した読み込み回数の比較を行っており、結果は図1のようになります。この結果によると、51%のデータについて予測誤差は10%以下、82%のデータについて予測誤差は20%以下ということです。
図1 ハードディスクからの読み込み回数に関する予測誤差の累積分布(論文より抜粋)
もうひとつの興味深いデータは、最適化の結果として得られたポリシーの分布です。図2は複数のデータセンターにおいて、CacheSackが割り当てたポリシーの比率を表します。データセンター1では大部分がAdmitOnSecondMissを使用している一方、データセンター2では大部分がAdmitOnMissを使用するなど、データセンターによって使用するポリシーが大きく異なることがわかります。データセンターによってColossusに対するアクセスパターンが異なっており、CacheSackによるポリシー割り当ての最適化が重要な役割を果たしていることが想像できる結果です。
図2 データセンターごとのポリシー分布の違い(論文より抜粋)
それでは、CacheSackが割り当てたこのようなポリシーは、単純に固定的なポリシーを使用した場合に比べて、本当に優れていると言えるのでしょうか? これを示すのが図3の結果です。図3上のグラフは、AdmitOnMiss、AdmitOnSecondMissの2種類の固定的なポリシーを使用した場合と、CacheStackが割り当てたポリシーを使用した場合について、ハードディスクに対する読み込みアクセスの発生回数を比較しています。これを見ると、CacheSackが割り当てたポリシーが、最も少ないアクセス数を実現していることがわかります。その結果、図3下のグラフにあるように、発生する「コスト」についても、CacheSackが割り当てたポリシーの場合に最も小さくなっています。
図3 固定的なポリシーとCacheSackが最適化したポリシーの比較結果(論文より抜粋)
そして、図4のグラフは、AdmitOnMiss、AdmitOnSecondMissの2種類の固定的なポリシーを使用した場合と、CacheSackが割り当てたポリシーを使用した場合について、キャッシュのヒット率を比較した結果です。これを見ると、AdmitOnMissを固定的に使用した方が、CacheSackを利用するよりもキャッシュのヒット率は高くなることがわかります。しかしながら、前々回に説明したように、Colossusのバッファーキャッシュがあるため、単純にキャッシュのヒット率を高めればハードディスクへのアクセス回数が減るというわけではありません。CacheSackは、バッファーキャッシュの動作を含めたシミュレーションを行っており、その効果が現れた結果と言えるでしょう。
図4 キャッシュのヒット率の比較結果(論文より抜粋)
今回は、2022年に公開された論文「CacheSack: Admission Optimization for Datacenter Flash Caches」を元にして、Googleのデータセンターで使用されている、フラッシュディスクによるファイルキャッシュシステムについて、実環境におけるベンチマーク結果のデータを紹介しました。
次回は、「ソフトウェア開発者の生産性向上」をテーマとした論文を紹介したいと思います。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes