JP5257843B2 - 分散キャッシュシステム、方法、プログラム、及び計算ノード - Google Patents
分散キャッシュシステム、方法、プログラム、及び計算ノード Download PDFInfo
- Publication number
- JP5257843B2 JP5257843B2 JP2008317528A JP2008317528A JP5257843B2 JP 5257843 B2 JP5257843 B2 JP 5257843B2 JP 2008317528 A JP2008317528 A JP 2008317528A JP 2008317528 A JP2008317528 A JP 2008317528A JP 5257843 B2 JP5257843 B2 JP 5257843B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- copy
- node
- consistency
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
図1は、本発明の実施の形態に係る分散キャッシュシステム1の構成を概略的に示すブロック図である。分散キャッシュシステム1は、データキャッシュを行う複数の計算ノード2を備えている。図1では、n個(nは2以上の整数)の計算ノード2−1〜2−nが示されている。複数の計算ノード2は、通信回線を通して互いに通信可能である。また、ストレージ3が複数の計算ノード2に対して共通に設けられており、各計算ノード2が共通のストレージ3に接続されている。クライアント100は、複数の計算ノード2のうち任意の計算ノード2に対してアクセスを発行する。
図2は、計算ノード2の構成例を示すブロック図である。計算ノード2は、処理装置10、記憶装置20、入力装置30、出力装置40、及び通信装置50を備えている。処理装置10は、CPU(Central Processing Unit)を含み、記憶装置20に格納されているデータを用いて各種データ処理を実行する。記憶装置20としては、RAM(Random Access Memory)が例示される。入力装置30としては、キーボードやマウスが例示される。出力装置40としては、ディスプレイが例示される。通信装置50としては、通信インタフェースが例示される。
本実施の形態に係る分散キャッシュシステム1による処理を詳しく説明する。図5は、本実施の形態に係る分散キャッシュシステム1の処理を示すフローチャートである。
アクセス処理ノード2Aの通信部11は、クライアント100からアクセスを受け取る。受け取ったアクセスには、アドレス情報、対象ブロックを示すブロック識別子、及びアクセス種別が含まれている。以下の説明において、対象ブロックはブロックBLKであるとする。
アクセス処理ノード2Aのキャッシュ制御部12は、ブロック識別子を参照して、対象ブロックBLKを特定する。
アクセス処理ノード2Aのキャッシュ制御部12は、アクセス種別を参照して、当該アクセスがリードアクセスかライトアクセスかを判別する。リードアクセスの場合、アクセス処理ノード2Aは、リードアクセス処理(ステップS100)を実行する。ライトアクセスの場合、アクセス処理ノード2Aは、ライトアクセス処理(ステップS200)を実行する。
まず、本実施の形態におけるリードアクセス処理(ステップS100)を説明する。図6は、リードアクセス処理を示すフローチャートである。
アクセス処理ノード2Aのキャッシュ制御部12は、自ノード2AがCurrentコピーをキャッシュしているか否かを判定する。つまり、キャッシュ制御部12は、ステータスが“exclusive”あるいは“shared”であるコピーブロックCBLKが記憶装置20に格納されているか否かを調べる。Currentコピーがキャッシュされている場合(ステップS110;Yes)、それはキャッシュヒットを意味する。キャッシュヒットの場合、処理はステップS120へ進む。一方、Currentコピーがキャッシュされていない場合(ステップS110;No)、それはキャッシュミスを意味する。キャッシュミスの場合、処理はステップS150へ進む。
アクセス処理ノード2Aのキャッシュ制御部12は、コピーブロックCBLKに関連付けられているメタ情報METに含まれる一時的リードアクセス数を1だけ増加させる(インクリメントする)。
アクセス処理ノード2Aのキャッシュ制御部12は、記憶装置20に格納されているコピーブロックCBLKに含まれているリード対象データを読み出す。
アクセス処理ノード2Aの通信部11は、読み出されたデータを読み出しデータとしてクライアント100へ送信する。これにより、リードアクセス処理が終了する。
キャッシュミスの場合(ステップS110;No)、ブロック転送処理が実施される。図7は、ブロック転送処理(ステップS150)を示すフローチャートである。
まず、アクセス処理ノード2Aのキャッシュ制御部12は、対象ブロックBLKに割り当てられているマスターノード2Mを特定する。このとき、キャッシュ制御部12は、アクセスに含まれるブロック識別子をハッシュする等の方法によって、外部と通信することなく、マスターノード2Mを特定することができる。そして、キャッシュ制御部12は、特定されたマスターノード2Mに対して、対象ブロックBLKのCurrentコピーを要求する。Currentコピーの要求を示すコピーリクエストは、対象ブロックBLKのブロック識別子とアクセス処理ノード2Aのノード識別子を含む。そのコピーリクエストは、アクセス処理ノード2Aの通信部11からマスターノード2Mへ送られる。
マスターノード2Mの通信部11は、アクセス処理ノード2Aから上記コピーリクエストを受け取る。マスターノード2Mのキャッシュ制御部12は、コピーリクエストに含まれるブロック識別子を参照して、対象ブロックBLKを特定する。更に、キャッシュ制御部12は、その対象ブロックBLKのコンシステンシ管理情報CONを参照する。
マスターノード2Mのキャッシュ制御部12は、コンシステンシ管理情報CONに含まれるディレクトリ情報DIRを参照し、対象ブロックBLKのCurrentコピーがいずれかの計算ノード2にキャッシュされているか否かを判定する。ある計算ノード2が対象ブロックBLKのCurrentコピーをキャッシュしている場合、その計算ノード2は、以下「転送元ノード2S」と参照される。転送元ノード2Sは複数存在する場合もある。Currentコピーが有る場合(ステップS162;Yes)、処理はステップS163に進む。一方、いずれの計算ノード2もCurrentコピーを有していない場合(ステップS162;No)、処理はステップS166に進む。
また、マスターノード2Mのキャッシュ制御部12は、ディレクトリ情報DIRを参照して、Exclusiveコピーを有する転送元ノード2Sが有るか否かを判定する。Exclusiveコピーが有る場合(ステップS163;Yes)、処理はステップS164に進む。それ以外の場合(ステップS163;No)、ステップS164はスキップされ、処理はステップS165に進む。
マスターノード2Mのキャッシュ制御部12は、Exclusiveコピーを有する転送元ノード2Sに対して、ステータスを“shared”に変更するように指示する。ステータスの変更を指示するステータス変更コマンドは、対象ブロックBLKのブロック識別子を含む。そのステータス変更コマンドは、マスターノード2Mの通信部11から該当する転送元ノード2Sへ送られる。また、マスターノード2Mのキャッシュ制御部12は、対象ブロックBLKに関するディレクトリ情報DIRを更新する。具体的には、キャッシュ制御部12は、該当する転送元ノード2Sに対応するスタータスを、“exclusive”から“shared”に変更する。
Exclusiveコピーを有する転送元ノード2Sの通信部11は、マスターノード2Mからステータス変更コマンドを受け取る。転送元ノード2Sのキャッシュ制御部12は、ステータス変更コマンドに含まれるブロック識別子を参照して、対象ブロックBLKを特定する。そして、そのキャッシュ制御部12は、コピーブロックCBLK(Exclusiveコピー)に関連付けられたメタ情報METに含まれるステータスを、“exclusive”から“shared”に変更する。
マスターノード2Mのキャッシュ制御部12は、転送元ノード2Sに対して、対象ブロックBLKのCurrentコピーをアクセス処理ノード2Aへ転送するように指示する。転送元ノード2Sが複数有る場合、キャッシュ制御部12は、いずれか1つの転送元ノード2Sを選択する。Currentコピーの転送を指示する転送指示コマンドは、対象ブロックBLKのブロック識別子とアクセス処理ノード2Aのノード識別子を含む。その転送指示コマンドは、マスターノード2Mの通信部11から該当する転送元ノード2Sへ送られる。また、マスターノード2Mのキャッシュ制御部12は、対象ブロックBLKに関するディレクトリ情報DIRを更新する。具体的には、キャッシュ制御部12は、アクセス処理ノード2Aに対応するスタータスを、“shared”に設定する。
転送元ノード2Sの通信部11は、マスターノード2Mから転送指示コマンドを受け取る。転送元ノード2Sのキャッシュ制御部12は、転送指示コマンドに含まれるブロック識別子を参照して、対象ブロックBLKを特定する。そして、そのキャッシュ制御部12は、コピーブロックCBLK(Currentコピー)を記憶装置20から読み出し、読み出したCurrentコピーをアクセス処理ノード2Aに転送する。また、キャッシュ制御部12は、そのコピーブロックCBLK(Currentコピー)に関連付けられたメタ情報METに含まれるアクセス履歴情報HISも、アクセス処理ノード2Aに転送する。アクセス処理ノード2Aは、転送指示コマンドに含まれるノード識別子から特定可能である。Currentコピー及び対応するアクセス履歴情報HISは、転送元ノード2Sの通信部11を通して、アクセス処理ノード2Aへ送られる。
一方、いずれの計算ノード2もCurrentコピーを有していない場合(ステップS162;No)、マスターノード2Mのキャッシュ制御部12は、ミスヒット通知をアクセス処理ノード2Aへ送信する。また、マスターノード2Mのキャッシュ制御部12は、対象ブロックBLKのコンシステンシ管理情報CONに含まれるアクセス履歴情報HISを、アクセス処理ノード2Aへ送信する。アクセス処理ノード2Aは、コピーリクエストに含まれるノード識別子から特定可能である。ミスヒット通知及びアクセス履歴情報HISは、マスターノード2Mの通信部11からアクセス処理ノード2Aへ送られる。更に、マスターノード2Mのキャッシュ制御部12は、対象ブロックBLKに関するディレクトリ情報DIRを更新する。具体的には、キャッシュ制御部12は、アクセス処理ノード2Aに対応するスタータスを“exclusive”に設定する。
上記ステップS172が実施された場合、アクセス処理ノード2Aの通信部11は、転送元ノード2Sから対象ブロックBLKのCurrentコピー及びアクセス履歴情報HISを受信する。アクセス処理ノード2Aのキャッシュ制御部12は、受信したCurrentコピーをコピーブロックCBLKとして記憶装置20に格納する。また、キャッシュ制御部12は、そのコピーブロックCBLKと関連付けてメタ情報METも記憶装置20に格納する。そのメタ情報METに含まれるステータスは“shared”に設定される。一時的ライトアクセス数と一時的リードアクセス数は共に初期値(=0)に設定される。
一方、上記ステップS166が実施された場合、アクセス処理ノード2Aの通信部11は、マスターノード2Mからミスヒット通知及びアクセス履歴情報HISを受け取る。アクセス処理ノード2Aのキャッシュ制御部12は、そのミスミット通知に応答して、ストレージ3から対象ブロックBLKを読み出す。そして、そのキャッシュ制御部12は、読み出した対象ブロックBLKをコピーブロックCBLKとして記憶装置20に格納する。また、キャッシュ制御部12は、そのコピーブロックCBLKと関連付けてメタ情報METも記憶装置20に格納する。そのメタ情報METに含まれるステータスは“exclusive”に設定される。一時的ライトアクセス数と一時的リードアクセス数は共に初期値(=0)に設定される。
次に、本実施の形態におけるライトアクセス処理(ステップS200)を説明する。図8は、ライトアクセス処理を示すフローチャートである。
アクセス処理ノード2Aのキャッシュ制御部12は、自ノード2Aが対象ブロックBLKのコピーブロックCBLKをキャッシュしているか否かを判定する。コピーブロックCBLKが既にキャッシュされている場合(ステップS201;Yes)、処理はステップS203へ進む。一方、コピーブロックCBLKがキャッシュされていない場合(ステップS201;No)、処理はステップS202へ進む。
アクセス処理ノード2Aのキャッシュ制御部12は、ストレージ3から対象ブロックBLKを読み出し、読み出した対象ブロックBLKをコピーブロックCBLKとして記憶装置20に格納する。このとき、キャッシュ制御部12は、そのコピーブロックCBLKと関連付けてメタ情報METも記憶装置20に格納する。そのメタ情報METに含まれるアクセス履歴情報HISは、マスターノード2Mから取得される。アクセス処理ノード2Aがマスターノード2Mからアクセス履歴情報HISを取得する方法は、上述のステップS151やステップS166と同様である。また、メタ情報MET中の一時的ライトアクセス数と一時的リードアクセス数は共に初期値(=0)に設定される。
クライアント100から受け取ったライトアクセスには、書き込みデータも含まれている。アクセス処理ノード2Aのキャッシュ制御部12は、記憶装置20に格納されているコピーブロックCBLKにその書き込みデータを書き込む。
アクセス処理ノード2Aのキャッシュ制御部12は、コピーブロックCBLKに関連付けられているメタ情報METを更新する。具体的には、キャッシュ制御部12は、当該メタ情報METに含まれるステータスを“exclusive”に設定する。また、そのキャッシュ制御部12は、当該メタ情報METに含まれる一時的ライトアクセス数を1だけ増加させる(インクリメントする)。
アクセス処理ノード2Aの転送量算出部13は、将来発生するブロック転送処理(ステップS150)によるコピーブロックCBLKの「ブロック転送量」を算出する。図9は、本実施の形態に係るブロック転送量算出処理を示すフローチャートである。
まず、転送量算出部13は、コピーブロックCBLKに関連付けられているメタ情報METに含まれるアクセス履歴情報HISを参照する。そして、転送量算出部13は、そのアクセス履歴情報HISに基づいて、対象ブロックBLKに関する過去の「アクセス特性」を算出する。本実施の形態において、アクセス特性は、少なくとも「ライトアクセス比率W」と「ライトアクセスレートRT」を含む。ライトアクセス比率Wは、対象ブロックBLKへの総アクセス数に対する、対象ブロックBLKへのライトアクセス数の比率である。ライトアクセスレートRTは、単位時間あたりの対象ブロックBLKへのライトアクセス数である。
ここで、Tは現在時刻を表し、T−T0は測定期間を表す。
次に、転送量算出部13は、1回のライトアクセスに起因して将来発生するコピーブロックCBLKの転送回数C(W,N)を算出する。その転送回数C(W,N)に関しては、本願発明者らによる論文(S. Sasaki and A. Tanaka,“An Analytical Model of Inter-Node Communication towards Performance Prediction of Multi-Node Systems”, Proceedings of International Symposium on Computer and Information Sciences, October 2008.)において詳しく解析されている。転送回数C(W,N)に関する詳細は、その論文も参照されたい。
次に、転送量算出部13は、将来発生するコピーブロックCBLKの転送量(ブロック転送量)を予測する。ブロック転送量は、単位時間あたりにブロック転送処理に費やされる時間である。1回のライトアクセスに起因して将来発生するコピーブロックCBLKの転送回数C(W,N)は、上記ステップS212で算出されている。また、単位時間あたりのライトアクセス数であるライトアクセスレートRTは、上記ステップS211で算出されている。更に、1回のブロック転送に要する転送コスト(CPU使用時間)は、記憶装置20に格納されている転送コスト情報CSTから得られる。従って、転送量算出部13は、それら情報に基づき、次の式(4)に従ってブロック転送量を算出することができる。
再度図8を参照して、アクセス処理ノード2Aのキャッシュ制御部12は、コンシステンシを緩和するか否かを決定する。この時、そのキャッシュ制御部12は、上記ステップS210において得られた予測ブロック転送量と、記憶装置20に格納されている目標情報TARを参照する。上述の通り、目標情報TARは目標性能を示している。従って、キャッシュ制御部12は、予測ブロック転送量と目標性能に基づき、目標性能が達成されるように、コンシステンシ緩和の要否を決定する。コンシステンシを緩和するか否かの決定方法は、後に詳しく説明される。
アクセス処理ノード2Aと異なる他のノード2Cが、対象ブロックBLKのコピーであるコピーブロックCBLKをキャッシュしている可能性がある。アクセス処理ノード2AのコピーブロックCBLKに新たなデータが書き込まれたため、ノード2CのコピーブロックCBLKのステータスを“stale”に変更する必要がある。
マスターノード2Mの通信部11は、アクセス処理ノード2Aからステータス変更コマンドを受け取る。マスターノード2Mのキャッシュ制御部12は、ステータス変更コマンドに含まれるブロック識別子を参照して、対象ブロックBLKを特定する。そして、キャッシュ制御部12は、その対象ブロックBLKのコンシステンシ管理情報CONに含まれるディレクトリ情報DIRを参照する。
各ノード2Cの通信部11は、マスターノード2Mからステータス変更コマンドを受け取る。各ノード2Cのキャッシュ制御部12は、ステータス変更コマンドに含まれるブロック識別子を参照して、対象ブロックBLKを特定する。そして、そのキャッシュ制御部12は、コピーブロックCBLKに関連付けられたメタ情報METに含まれるステータスを、“stale”に変更する。
更に、各ノード2Cのキャッシュ制御部12は、コピーブロックCBLKに関連付けられたメタ情報METに含まれる一時アクセス情報TMPを読み出す。そして、そのキャッシュ制御部12は、読み出した一時アクセス情報TMPをマスターノード2Mに通知する。一時アクセス情報TMPは、各ノード2Cの通信部11からマスターノード2Mに送られる。その後、各ノード2Cのキャッシュ制御部12は、一時アクセス情報TMPに含まれる一時的ライトアクセス数及び一時的リードアクセス数の両方を初期値(=0)にリセットする。
マスターノード2Mの通信部11は、各ノード2Cから一時アクセス情報TMPを受け取る。マスターノード2Mのキャッシュ制御部12は、対象ブロックBLKに関するコンシステンシ管理情報CONを更新する。具体的には、キャッシュ制御部12は、受け取った一時アクセス情報TMPに含まれる一時的ライトアクセス数及び一時的リードアクセス数を、アクセス履歴情報HISに含まれるライトアクセス数NWとリードアクセス数NRのそれぞれに加算する。
ステップS220では、コンシステンシを緩和するか否かの判定が行われる。つまり、ライトアクセスを実施するか擬似ライトアクセスを実施するかの判定が行われる。図10は、本実施の形態におけるステップS220の一例を示すフローチャートである。
アクセス処理ノード2Aのキャッシュ制御部12は、目標情報TARに基づいて、閾値転送量を算出する。閾値転送量は、目標性能が達成され得るブロック転送量の上限値である。例えば、目標情報TARが「スケーラビリティ=0.8」を示している場合、閾値転送量は0.2(=1−0.8)である。目標情報TARは閾値転送量そのものを示していてもよい。その場合、キャッシュ制御部12は、目標情報TARで示される閾値転送量をそのまま用いる。
次に、アクセス処理ノード2Aのキャッシュ制御部12は、予測ブロック転送量と閾値転送量との比較を行う。
アクセス処理ノード2Aのキャッシュ制御部12は、その比較の結果に基づいて、コンシステンシを緩和するか否かを決定する。具体的には、予測ブロック転送量が閾値転送量を超える場合(ステップS223;Yes)、目標性能が達成されない可能性が高い。従って、アクセス処理ノード2Aのキャッシュ制御部12は、コンシステンシを緩和することを決定する。一方、予測ブロック転送量が閾値転送量以下の場合(ステップS223;No)、目標性能が達成される可能性が高い。従って、アクセス処理ノード2Aのキャッシュ制御部12は、コンシステンシを緩和しないことを決定する。
アクセス処理ノード2Aのキャッシュ制御部12は、予測ブロック転送量に対する閾値転送量の比率DIFFを算出する(比率DIFF=閾値転送量/予測ブロック転送量)。予測ブロック転送量は閾値転送量を超えているため、比率DIFFは0〜1の範囲の値を取る。
アクセス処理ノード2Aのキャッシュ制御部12は、ステップS224で算出された比率DIFFに基づいて、コンシステンシを緩和するか否かを決定する。比率DIFFが比較的大きい場合、それは、予測ブロック転送量が閾地転送量をそれほど上回っていないことを意味する。従って、擬似ライトアクセスの頻度が低くても、目標性能は比較的早く達成されると考えられる。一方、比率DIFFが比較的小さい場合、それは、予測ブロック転送量が閾値転送量を大きく上回っていることを意味する。従って、目標性能が達成されるまでの時間の増大を防ぐためには、擬似ライトアクセスの頻度を高めることが望ましい。よって、キャッシュ制御部12は、比率DIFFが小さくなるほどコンシステンシが緩和される確率が高くなるように、コンシステンシの緩和の要否を決定する。
次に、具体例を用いて、本実施の形態に係る処理を説明する。図12は、ある時の状態を概念的に示している。ここでは、5個の計算ノード2−1〜2−5を考える(計算ノード2−4、2−5は図示されていない)。対象ブロックは、ブロックBLKである。
2 計算ノード
10 処理装置
11 通信部
12 キャッシュ制御部
13 転送量算出部
20 記憶装置
30 入力装置
40 出力装置
50 通信装置
100 クライアント
BLK ブロック
CBLK コピーブロック
DSET データセット
CON コンシステンシ管理情報
DIR ディレクトリ情報
HIS アクセス履歴情報
MET メタ情報
TMP 一時アクセス情報
TAR 目標情報
CST 転送コスト情報
PROG 分散キャッシュプログラム
Claims (15)
- ブロック単位でデータキャッシュを行う複数の計算ノードを備え、
前記複数の計算ノードの各々は、
ブロックのコピーであるコピーブロックと、前記コピーブロックに関連付けられたメタ情報と、が格納される記憶装置と、
前記複数の計算ノード間でのキャッシュのコンシステンシを制御するキャッシュ制御部と、
転送量算出部と
を備え、
前記メタ情報は、
前記コピーブロックのステータスと、
前記ブロックに関する過去のアクセス状況を示すアクセス履歴情報と
を含み、
前記複数の計算ノードのうち第1計算ノードは、第1ブロックに対するライトアクセスを受け取り、
前記第1ブロックのコピーは第1コピーブロックであり、
前記第1計算ノードの前記転送量算出部は、前記第1コピーブロックに関連付けられた前記メタ情報に含まれる前記アクセス履歴情報を参照して、前記複数の計算ノード間で将来発生する前記第1コピーブロックの転送量を算出し、
前記第1計算ノードの前記キャッシュ制御部は、目標性能と前記算出された転送量に基づいて、前記コンシステンシを緩和するか否かを決定し、
前記コンシステンシを緩和しない場合、前記第1計算ノードの前記キャッシュ制御部は、前記第1コピーブロックをキャッシュしている他の計算ノードが前記第1コピーブロックの前記ステータスを変更するよう指示を行い、
前記コンシステンシを緩和する場合、前記第1計算ノードの前記キャッシュ制御部は、前記他の計算ノードが前記第1コピーブロックの前記ステータスを変更することを指示しない
分散キャッシュシステム。 - 請求項1に記載の分散キャッシュシステムであって、
前記目標性能が達成される前記転送量の上限は、閾値転送量であり、
前記第1計算ノードの前記キャッシュ制御部は、前記算出された転送量と前記閾値転送量との比較を行い、前記比較の結果に基づいて、前記コンシステンシを緩和するか否かを決定する
分散キャッシュシステム。 - 請求項2に記載の分散キャッシュシステムであって、
前記算出された転送量が前記閾値転送量以下の場合、前記第1計算ノードの前記キャッシュ制御部は、前記コンシステンシを緩和しないことを決定する
分散キャッシュシステム。 - 請求項3に記載の分散キャッシュシステムであって、
前記算出された転送量が前記閾値転送量を超える場合、前記第1計算ノードの前記キャッシュ制御部は、前記算出された転送量に対する前記閾値転送量の比率を算出し、前記比率に基づいて前記コンシステンシを緩和するか否かを決定し、
前記比率が小さい程、前記コンシステンシが緩和される確率が高くなる
分散キャッシュシステム。 - 請求項4に記載の分散キャッシュシステムであって、
前記第1計算ノードの前記キャッシュ制御部は、0以上1未満の乱数を生成し、
前記乱数が前記比率以上の場合、前記第1計算ノードの前記キャッシュ制御部は、前記コンシステンシを緩和することを決定し、
前記乱数が前記比率より小さい場合、前記第1計算ノードの前記キャッシュ制御部は、前記コンシステンシを緩和しないことを決定する
分散キャッシュシステム。 - 請求項3に記載の分散キャッシュシステムであって、
前記算出された転送量が前記閾値転送量を超える場合、前記第1計算ノードの前記キャッシュ制御部は、前記コンシステンシを緩和することを決定する
分散キャッシュシステム。 - 請求項1乃至6のいずれか一項に記載の分散キャッシュシステムであって、
前記ステータスは、
前記コピーブロックが最新であり、且つ、前記複数の計算ノードのうち自身にのみキャッシュされていることを示すexclusiveと、
前記コピーブロックが最新であり、且つ、前記複数の計算ノードのうち2以上の計算ノードにキャッシュされていることを示すsharedと、
前記コピーブロックが最新ではないことを示すstaleと
を含み、
前記第1計算ノードの前記キャッシュ制御部は、前記ライトアクセスに応答して、前記第1コピーブロックの前記ステータスをexclusiveに設定し、
前記コンシステンシを緩和しない場合、前記第1計算ノードの前記キャッシュ制御部は、前記他の計算ノードが前記第1コピーブロックの前記ステータスをstaleに変更するよう指示を行い、
前記コンシステンシを緩和する場合、前記第1計算ノードの前記キャッシュ制御部は、前記他の計算ノードが前記第1コピーブロックの前記ステータスをstaleに変更することを指示しない
分散キャッシュシステム。 - 請求項7に記載の分散キャッシュシステムであって、
前記他の計算ノードは、前記第1ブロックに対するリードアクセスを受け取り、
前記第1コピーブロックの前記ステータスがexclusiveあるいはsharedの場合、前記他の計算ノードの前記キャッシュ制御部は、前記記憶装置に格納されている前記第1コピーブロックからデータを読み出し、
前記第1コピーブロックの前記ステータスがstaleの場合、前記他の計算ノードの前記キャッシュ制御部は、前記第1計算ノードからの前記第1コピーブロックの転送を要求する
分散キャッシュシステム。 - 請求項1乃至8のいずれか一項に記載の分散キャッシュシステムであって、
ライトアクセス比率Wは、前記第1ブロックへの総アクセス数に対する前記第1ブロックへのライトアクセス数の比率であり、
ライトアクセスレートRTは、単位時間あたりの前記第1ブロックへのライトアクセス数であり、
スコープNは、前記複数の計算ノードのうち前記第1ブロックへのアクセスが発行される計算ノードの数であり、
前記第1計算ノードの前記転送量算出部は、前記アクセス履歴情報を参照して、前記ライトアクセス比率W及び前記ライトアクセスレートRTを算出し、
前記第1計算ノードの前記転送量算出部は、1回のライトアクセスに起因して将来発生する前記第1コピーブロックの転送回数C(W,N)を算出し、ここで、前記転送回数C(W,N)は、前記ライトアクセス比率W及び前記スコープNに依存し、
前記第1計算ノードの前記転送量算出部は、前記転送回数C(W,N)及び前記ライトアクセスレートRTに基づいて前記転送量を算出する
分散キャッシュシステム。 - 請求項9に記載の分散キャッシュシステムであって、
前記第1計算ノードの前記転送量算出部は、前記ライトアクセス比率Wが小さくなるほど、また、前記スコープNが大きくなるほど、前記転送回数C(W,N)が多くなる所定の関数を用いることによって、前記転送回数C(W,N)を算出する
分散キャッシュシステム。 - 請求項10に記載の分散キャッシュシステムであって、
前記所定の関数は、C(W,N)=(N−1)/(W・N−W+1)である
分散キャッシュシステム。 - 請求項9乃至11のいずれか一項に記載の分散キャッシュシステムであって、
前記第1ブロックに関する前記アクセス履歴情報は、
前記第1ブロックへの過去のライトアクセス数NWと、
前記第1ブロックへの過去のリードアクセス数NRと、
前記ライトアクセス数NWと前記リードアクセス数NRの測定開始時刻T0と、
前記スコープNと
を含み、
前記第1計算ノードの前記転送量算出部は、式:W=NW/(NW+NR)によって前記ライトアクセス比率Wを算出し、
現在時刻がTであるとき、前記第1計算ノードの前記転送量算出部は、式:RT=NW/(T−T0)によって前記ライトアクセスレートRTを算出する
分散キャッシュシステム。 - ブロック単位でデータキャッシュを行う複数の計算ノードを備える分散キャッシュシステムにおける計算ノードであって、
ブロックのコピーであるコピーブロックと、前記コピーブロックに関連付けられたメタ情報と、が格納される記憶装置と、
前記複数の計算ノード間でのキャッシュのコンシステンシを制御するキャッシュ制御部と、
転送量算出部と
を備え、
前記メタ情報は、
前記コピーブロックのステータスと、
前記ブロックに関する過去のアクセス状況を示すアクセス履歴情報と
を含み、
前記計算ノードは、第1ブロックに対するライトアクセスを受け取り、
前記第1ブロックのコピーは第1コピーブロックであり、
前記転送量算出部は、前記第1コピーブロックに関連付けられた前記メタ情報に含まれる前記アクセス履歴情報を参照して、前記複数の計算ノード間で将来発生する前記第1コピーブロックの転送量を算出し、
前記キャッシュ制御部は、目標性能と前記算出された転送量に基づいて、前記コンシステンシを緩和するか否かを決定し、
前記コンシステンシを緩和しない場合、前記キャッシュ制御部は、前記第1コピーブロックをキャッシュしている他の計算ノードが前記第1コピーブロックの前記ステータスを変更するよう指示を行い、
前記コンシステンシを緩和する場合、前記キャッシュ制御部は、前記他の計算ノードが前記第1コピーブロックの前記ステータスを変更することを指示しない
計算ノード。 - 複数の計算ノードがブロック単位でデータキャッシュを行うステップと、
ここで、前記複数の計算ノードの各々は、ブロックのコピーであるコピーブロックと共に、前記コピーブロックに関連付けられたメタ情報を記憶装置に格納し、
前記メタ情報は、前記コピーブロックのステータスと、前記ブロックに関する過去のアクセス状況を示すアクセス履歴情報と、を含み、
前記複数の計算ノードのうち第1計算ノードが、第1ブロックに対するライトアクセスを受け取るステップと、
ここで、前記第1ブロックのコピーは第1コピーブロックであり、
前記第1計算ノードが、前記第1コピーブロックに関連付けられた前記メタ情報に含まれる前記アクセス履歴情報を参照して、前記複数の計算ノード間で将来発生する前記第1コピーブロックの転送量を算出するステップと、
前記第1計算ノードが、目標性能と前記算出された転送量に基づいて、前記複数の計算ノード間でのキャッシュのコンシステンシを緩和するか否かを決定するステップと、
前記コンシステンシを緩和しない場合、前記第1計算ノードが、前記第1コピーブロックをキャッシュしている他の計算ノードが前記第1コピーブロックの前記ステータスを変更するよう指示を行うステップと、
前記コンシステンシを緩和する場合、前記第1計算ノードが、前記他の計算ノードが前記第1コピーブロックの前記ステータスを変更することを指示しないステップと
を含む
分散キャッシュ方法。 - 分散キャッシュシステムにおける計算ノードにコンシステンシ制御処理を実行させる分散キャッシュプログラムであって、
前記分散キャッシュシステムは、ブロック単位でデータキャッシュを行う複数の計算ノードを備え、
前記複数の計算ノードの各々は、ブロックのコピーであるコピーブロックと共に、前記コピーブロックに関連付けられたメタ情報を記憶装置に格納し、
前記メタ情報は、前記コピーブロックのステータスと、前記ブロックに関する過去のアクセス状況を示すアクセス履歴情報と、を含み、
前記コンシステンシ制御処理は、
第1ブロックに対するライトアクセスを受け取るステップと、ここで、前記第1ブロックのコピーは第1コピーブロックであり、
前記第1コピーブロックに関連付けられた前記メタ情報に含まれる前記アクセス履歴情報を参照して、前記複数の計算ノード間で将来発生する前記第1コピーブロックの転送量を算出するステップと、
目標性能と前記算出された転送量に基づいて、前記複数の計算ノード間でのキャッシュのコンシステンシを緩和するか否かを決定するステップと、
前記コンシステンシを緩和しない場合、前記第1コピーブロックをキャッシュしている他の計算ノードが前記第1コピーブロックの前記ステータスを変更するよう指示を行うステップと、
前記コンシステンシを緩和する場合、前記他の計算ノードが前記第1コピーブロックの前記ステータスを変更することを指示しないステップと
を含む
分散キャッシュプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008317528A JP5257843B2 (ja) | 2008-12-12 | 2008-12-12 | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008317528A JP5257843B2 (ja) | 2008-12-12 | 2008-12-12 | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010140362A JP2010140362A (ja) | 2010-06-24 |
JP5257843B2 true JP5257843B2 (ja) | 2013-08-07 |
Family
ID=42350439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008317528A Active JP5257843B2 (ja) | 2008-12-12 | 2008-12-12 | 分散キャッシュシステム、方法、プログラム、及び計算ノード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5257843B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594785B2 (en) | 2010-12-16 | 2017-03-14 | Nec Corporation | Database management device and database management method |
US9576039B2 (en) | 2014-02-19 | 2017-02-21 | Snowflake Computing Inc. | Resource provisioning systems and methods |
US9832277B2 (en) * | 2015-11-13 | 2017-11-28 | Western Digital Technologies, Inc. | Systems and methods for adaptive partitioning in distributed cache memories |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655103A (en) * | 1995-02-13 | 1997-08-05 | International Business Machines Corporation | System and method for handling stale data in a multiprocessor system |
JPH0962577A (ja) * | 1995-08-22 | 1997-03-07 | Canon Inc | 情報処理システム及び情報処理方法 |
JPH09128325A (ja) * | 1995-11-06 | 1997-05-16 | Mitsubishi Electric Corp | 階層バス制御方式及びバスブリッジ |
JP4392665B2 (ja) * | 2005-05-26 | 2010-01-06 | 日本電気株式会社 | クラスタシステムの性能予測装置、性能予測方法及び性能予測プログラム |
US7757045B2 (en) * | 2006-03-13 | 2010-07-13 | Intel Corporation | Synchronizing recency information in an inclusive cache hierarchy |
-
2008
- 2008-12-12 JP JP2008317528A patent/JP5257843B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010140362A (ja) | 2010-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934231B2 (en) | System and methods for prioritizing data in a cache | |
US7457922B2 (en) | Cache line placement prediction for multiprocessor non-uniform cache architecture systems | |
US20200351344A1 (en) | Data tiering for edge computers, hubs and central systems | |
US20170070574A1 (en) | Storage server and storage system | |
US11803484B2 (en) | Dynamic application of software data caching hints based on cache test regions | |
JP2005285058A (ja) | 記憶装置のキャッシュ管理方法 | |
US11113192B2 (en) | Method and apparatus for dynamically adapting cache size based on estimated cache performance | |
JP2019525330A (ja) | キャッシュテスト領域に基づくプリフェッチデータに対するキャッシュ転送ポリシーの選択 | |
US20130262683A1 (en) | Parallel computer system and control method | |
JP5257843B2 (ja) | 分散キャッシュシステム、方法、プログラム、及び計算ノード | |
JP2005031987A (ja) | コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム | |
KR102469927B1 (ko) | 분할 메모리 관리장치 및 방법 | |
US20230121843A1 (en) | Managing data stored in a cache using a reinforcement learning agent | |
JP2020154587A (ja) | 計算機システム及びデータ管理方法 | |
WO2016080953A1 (en) | Method and apparatus for data cache in converged system | |
US11625326B2 (en) | Management of coherency directory cache entry ejection | |
US8745340B2 (en) | Reduction of communication and efficient failover processing in distributed shared memory-based application | |
CN103294609B (zh) | 信息处理装置和存储器管理方法 | |
JP2006293593A (ja) | 計算機システム | |
JP2022112614A (ja) | リソースの移動スケジュールを決定する装置 | |
US20150193343A1 (en) | Cache system with multiple cache unit states | |
US10719441B1 (en) | Using predictions of outcomes of cache memory access requests for controlling whether a request generator sends memory access requests to a memory in parallel with cache memory access requests | |
JP5298826B2 (ja) | キャッシュメモリ及びプリフェッチ方法 | |
US20200167286A1 (en) | Increasing the lookahead amount for prefetching | |
WO2022152086A1 (zh) | 数据缓存方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110907 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130327 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130401 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160502 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5257843 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130414 |