はじめに
前回に続いて、2021年に公開された論文「CliqueMap: Productionizing an RMA-Based Distributed Caching System」を元にして、Google社内で使用されているインメモリ分散キャッシュシステム「CliqueMap」のアーキテクチャーを紹介します。今回は、プロダクション環境でのCliqueMapの稼働状況を示すデータを紹介します。
無停止メンテナンスへの対応
CliqueMapをプロダクション環境に適用する上では、継続的な機能拡張や無停止でのメンテナンスを実現する必要があります。これに対応するために、既存のサーバーが保持するキャッシュデータを新しく用意したサーバーに移行する機能が用意されています。第130回の記事で説明した様に、CliqueMapのクライアントはキーのハッシュ値から該当のデータを保持するサーバーを特定しますが、この対応関係は外部の構成ファイルに保存されており、クライアントが起動したタイミングで取得するようになっています。サーバーのデータ移行を行う際は、構成ファイルに記録された対応関係を更新した上で、更新後の情報を何らかの方法でクライアントに通知する必要があります。これは、次の方法で行われます。
まず、サーバー上のインデックス情報を保持するバケット内に「構成ID」が保存されており、サーバーがデータの移行を開始すると、この構成IDの値が更新されます。クライアントは、サーバーからデータを取得する際にバケットに含まれる構成IDの値を確認して、これが更新されていた場合は、更新後の構成ファイルから新しい構成情報を取得して、データの取得をやり直します。これにより、移行先のサーバーからデータが取得されるようになります。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。