IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第132回 RDMA技術を活用した分散キャッシュシステム「CliqueMap」(パート3) (中井悦司) 2022年7月

はじめに

 前回に続いて、2021年に公開された論文「CliqueMap: Productionizing an RMA-Based Distributed Caching System」を元にして、Google社内で使用されているインメモリ分散キャッシュシステム「CliqueMap」のアーキテクチャーを紹介します。今回は、プロダクション環境でのCliqueMapの稼働状況を示すデータを紹介します。

無停止メンテナンスへの対応

 CliqueMapをプロダクション環境に適用する上では、継続的な機能拡張や無停止でのメンテナンスを実現する必要があります。これに対応するために、既存のサーバーが保持するキャッシュデータを新しく用意したサーバーに移行する機能が用意されています。第130回の記事で説明した様に、CliqueMapのクライアントはキーのハッシュ値から該当のデータを保持するサーバーを特定しますが、この対応関係は外部の構成ファイルに保存されており、クライアントが起動したタイミングで取得するようになっています。サーバーのデータ移行を行う際は、構成ファイルに記録された対応関係を更新した上で、更新後の情報を何らかの方法でクライアントに通知する必要があります。これは、次の方法で行われます。
 まず、サーバー上のインデックス情報を保持するバケット内に「構成ID」が保存されており、サーバーがデータの移行を開始すると、この構成IDの値が更新されます。クライアントは、サーバーからデータを取得する際にバケットに含まれる構成IDの値を確認して、これが更新されていた場合は、更新後の構成ファイルから新しい構成情報を取得して、データの取得をやり直します。これにより、移行先のサーバーからデータが取得されるようになります。
 また、障害でサーバーが停止した場合は、前回説明した、3箇所にデータが複製されていることを確認する仕組みでこれが検知されます。このような場合は、事前に用意されている予備のサーバーにデータを複製して、この新しいサーバーを使用するように自動で構成変更が行われます。図1は、このようなデータ移行が発生した際にシステムの性能に悪影響が発生しないことを確認した実験結果になります。

fig01

図1 データ移行に伴う性能変化のテスト結果(論文より抜粋)

 図1の左では、13:52にメンテナンスのために予備のサーバーにデータを移行した後、13:54にメンテナンスが終了した元のサーバーにデータを再移行した際の結果を表します。青色のグラフはデータ移行に伴うRPC処理を表しており、緑とオレンジのグラフがクライアントから見たアクセス性能(レイテンシー)を表します。これを見るとデータ移行に伴う性能変化は見られないことが分かります。また、図1の右は、14:22にサーバーを強制停止して擬似的に障害を発生した際の結果を表します。RPC処理の増加から予備サーバーへのデータ移行が発生していることが分かりますが、先ほどと同じく、データ移行に伴う性能変化は見られません。

プロダクション環境での稼働データ

 図2は、Googleのデータセンターで稼働するプロダクション環境におけるCliqueMapの稼働データを示します。

fig02

図2 プロダクション環境での稼働データ(論文より抜粋)

 図2の左は、North Carolinaのデータセンターで稼働するCliqueMapのクラスターの1つから取得したデータです。このクラスターは、Google Mapsなどで利用される、道路の混雑状況の予測データを提供しています。混雑状況のデータは定期的に更新されるため、一定の割合での書き込み(SET Rate)が継続的に行われる一方、読み込み(GET Rate)については、周期的な時間変動が見られます。Google Mapsでの検索が頻繁に行われる時間帯が決まっていることによるものと想像されます。図2の右は、Oregonのデータセンターで稼働するクラスターから取得したデータで、このクラスターは、広告配信に関連するデータを提供しています。こちらも一定の割合での書き込み(SET Rate)と時間変動する読み込み(GET Rate)が見られます。
 いずれのシステムでも、データの提供を高速に行うことが特に重要になるため、RDMAを利用して読み込み性能を向上させるという、CliqueMapの特性にうまくマッチしたユースケースと言えるでしょう。なお、図2の2つのクラスターで読み込み処理のレイテンシーが異なるのは、提供するデータのサイズが異なることに起因しています。

次回予告

 今回は、2021年に公開された論文「CliqueMap: Productionizing an RMA-Based Distributed Caching System」を元にして、Google社内で使用されているインメモリ分散キャッシュシステム「CliqueMap」について、プロダクション環境でのCliqueMapの稼働状況を示すデータを紹介しました。
 次回からは、機械学習モデルの分散学習インフラの話題をお届けします。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes