はじめに
前回に続いて、2021年に公開された論文「CliqueMap: Productionizing an RMA-Based Distributed Caching System」を元にして、Google社内で使用されているインメモリ分散キャッシュシステム「CliqueMap」のアーキテクチャーを紹介します。今回は、システムの可用性とデータの整合性を担保する仕組みを解説します。
データの整合性を担保する仕組み
CliqueMapのクライアントがサーバーからデータを取得する際の処理の流れは、前回の図2に示した通りですが、実際には、データの整合性に関する追加の処理があります。RDMAでは、メモリー上のデータを読み書きする際の排他制御が行われないため、サーバー上でデータの書き込みが行われている途中にクライアントが同じメモリー領域のデータを読み出した場合、書き込み途中の不完全なデータが読み出される可能性があります。この問題を回避するため、データ領域(Data Region)には、データの実体(キー・バリューペア)に加えて、これらから計算したチェックサムが格納されています。データを読み出したクライアントは、このチェックサムを用いて、読み出したデータが書き込み途中の不完全なものでないことを確認します。チェックサムが一致しない場合は、データが破損しているものと判断して、データの読み出しをリトライします。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。

