JP4791458B2 - ルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法 - Google Patents

ルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法 Download PDF

Info

Publication number
JP4791458B2
JP4791458B2 JP2007515920A JP2007515920A JP4791458B2 JP 4791458 B2 JP4791458 B2 JP 4791458B2 JP 2007515920 A JP2007515920 A JP 2007515920A JP 2007515920 A JP2007515920 A JP 2007515920A JP 4791458 B2 JP4791458 B2 JP 4791458B2
Authority
JP
Japan
Prior art keywords
list
objects
sublist
cache
main
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.)
Expired - Fee Related
Application number
JP2007515920A
Other languages
English (en)
Other versions
JP2008502965A (ja
JP2008502965A5 (ja
Inventor
メフィニ−、グレッグ
スリニバス、マイソアー、サシィアナラヤナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008502965A publication Critical patent/JP2008502965A/ja
Publication of JP2008502965A5 publication Critical patent/JP2008502965A5/ja
Application granted granted Critical
Publication of JP4791458B2 publication Critical patent/JP4791458B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Description

本発明は、改良されたデータ処理システムに関し、特にルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法に関する。
セット・アソシアティブ・キャッシュは任意のアドレスからのデータをキャッシュ記憶位置に格納することを可能にする。キャッシュ・アドレスはタグとして使われる。キャッシュにより維持されている全てのタグが、要求されたアドレスと比較されなければならない。1つのタグが、要求されたアドレスと一致したならば、その一致するタグの関連データがアクセスされる。セット・アソシアティブ・キャッシュは、連想メモリーが該タグを保持することを必要とする。セット・アソシアティブ・キャッシュは、キャッシュされるべきオブジェクトを1つのユニークな識別子に基いてセットに分け、どのオブジェクトも1つのセットだけに属する。オブジェクトがキャッシュに加えられてゆくとき、各セットは限られたサイズまで大きくなれるに過ぎない。セットがその最大サイズに達すると、1つの新しいオブジェクトが加えられる毎に1つの既存のオブジェクトを捨てなければならない。通常、その捨てられるオブジェクトは、そのセットにおいてその時点で最も長い期間にわたって使用されていない(LRU)オブジェクトである。ネーム・ルックアップ・キャッシュは、汎用セット・アソシアティブ・キャッシュ・アーキテクチャに由来する。ネーム・ルックアップ・キャッシュは一般的に1つのシステムにおける全ての既存オブジェクトの1つのサブセットのみを含むので、オブジェクトが該キャッシュに加えられるとき、各セットは限られたサイズまで大きくなり得るに過ぎない。セットがその最大サイズに達すると、1つの新しいオブジェクトが加えられる毎に1つの既存オブジェクト(通常、その時点で最も長い期間にわたって使用されていないオブジェクト)を捨てなければならない。通常、セットは頭から線形に探索されるリンク・リストである。探索はオブジェクトが発見されたときまたは末尾のオブジェクトが探索されたときに終了する。もしオブジェクトが発見されたら、それは、LRUアルゴリズムを実行するために、リストにおける現在の位置からリストの頭に移される。途中、最も頻繁にアクセスされるオブジェクトはリストの頭の方へ移る傾向を有し、その時点で最も長い期間にわたって使用されていないオブジェクトは末尾の方へ移され、最後にリストから捨てられる。
上記のネーム・ルックアップ・キャッシュとLRUの実装は、最新の大規模な対称マルチプロセッサ・コンピュータにおいて重大な性能問題を示す可能性を有する。特に、LRUアルゴリズムはオブジェクトをキャッシュ・リストの頭へ移動させることによって実行されるので、キャッシュ・ヒット毎にまたは新オブジェクトの挿入毎に、セットのリスト・アンカーを、新しいリスト頭オブジェクトを指すように変更しなければならない。最新のメモリー・デザインの種々の特性の故に、頻繁に変更されるグローバル・データは、LRUアルゴリズムにより組織されたネーム・ルックアップ・キャッシュにおいて重大な性能抑制を示す。
従って、既存の技術の欠点のうちの幾つかに的を絞った、ルックアップ・キャッシュにおいてオブジェクトを維持するための方法及びシステムを案出することが望ましいであろう。
従って、本発明は、ルックアップ・キャッシュにおいてオブジェクトを維持するための方法、コンピュータ・プログラム製品、及びデータ処理システムを提供する。主リストには第1複数のオブジェクトが置かれる。主リストは第1複数のオブジェクトの順不同リストである。副リストには第2複数のオブジェクトが置かれる。副リストは第2複数のオブジェクトの順序付きリストである。定期的に、第1複数のオブジェクトのうちの少なくとも1つのオブジェクトが副リストに降格され、第2複数のオブジェクトのうちの少なくとも1つのオブジェクトが主リストに昇格される。
特許請求の範囲に記載されたルックアップ・キャッシュの主リスト及び副リストへの組織化は、キャッシュに入れられたオブジェクトのリストに対する更新の頻度を在来のルックアップ・キャッシュより低下させるという結果をもたらすことができる。
添付図面を参照して、単に例を挙げて本発明の実施態様を説明する。
ここで図を、特に図1を参照すると、本発明を実施することのできるデータ処理システムの絵画的表現が本発明の好ましい実施態様に従って描かれている。コンピュータ100が描かれており、これはシステム・ユニット102、ビデオ・ディスプレイ端末104、キーボード106、記憶装置108(これはフレキシブル・ディスク・ドライブ及び他の種類の取り外し可能な永続記憶媒体を含み得る)、及びマウス110を含む。例えば、ジョイスティック、タッチパッド、タッチスクリーン、トラックボール、マイクロフォンなどの、付加的な入力装置がパーソナル・コンピュータ100に含まれ得る。コンピュータ100は、IBM(登録商標) eServer(登録商標)コンピュータ又はIntelliStation(登録商標)コンピュータのような任意の適切なコンピュータを用いて実現され得るものであり、これらはニューヨーク州アーモンクにあるIBM社の製品である。描かれている表現はコンピュータを示しているが、本発明の他の実施態様は、ネットワーク・コンピュータなどの他の種類のデータ処理システムにおいて実現され得る。コンピュータ100は、好ましくは、コンピュータ100内で動作するコンピュータ可読媒体に存在するシステム・ソフトウェアによって実現され得るグラフィカル・ユーザ・インターフェース(GUI)も含む。
図2を参照すると、本発明の好ましい実施態様に従う、図1のデータ処理システム100のようなデータ処理システムのブロック図が描かれている。データ処理システム200は、システム・バス206に接続された複数のプロセッサ202及び204を含む対称マルチプロセッサ(SMP)システムであり得る。或いは、シングル・プロセッサ・システムを使用しても良い。システム・バス206にはメモリー・コントローラ/キャッシュ208も接続されており、これはローカル・メモリー209へのインターフェースを提供する。I/Oバス・ブリッジ210は、システム・バス206に接続され、I/Oバス212へのインターフェースを提供する。メモリー・コントローラ/キャッシュ208及びI/Oバス・ブリッジ210は、図示されているように統合され得る。I/Oバス212に接続された周辺コンポーネント相互接続(PCI)バス・ブリッジ214は、PCIローカル・バス216へのインターフェースを提供する。数個のモデムをPCIローカル・バス216に接続することができる。代表的なPCIバス・インプリメンテーションは4個のPCI拡張スロット又はアド・イン・コネクタをサポートする。図1のクライアント108−112との通信リンクを、アド・イン・コネクタを通してPCIローカル・バス216に接続されたモデム218及びネットワーク・アダプタ220を通して提供することができる。
付加的なPCIバス・ブリッジ222及び224は、付加的なPCIローカル・バス226及び228のためのインターフェースを提供し、これらから付加的なモデム又はネットワーク・アダプタをサポートすることができる。この様にして、データ処理システム200は複数のネットワーク・コンピュータへの接続を可能にする。メモリー・マップされたグラフィック・アダプタ230及びハード・ディスク232も、図示されているように、直接に又は間接的に、I/Oバス212に接続され得る。
当業者は、図2に描かれているハードウェアが変化し得ることを理解するであろう。例えば、光ディスク・ドライブなどのような他の周辺装置を、描かれているハードウェアに加えて或いはその代わりとして使用することもできる。描かれている例は、本発明に関してアーキテクチャについての限定条件を示唆するように意図されているわけではない。図2に示されているデータ処理システムは、例えば、Advanced Interactive Executive(AIX(商標))オペレーティング・システム或いはLINUX(オペレーティング・システムを動作させる、ニューヨーク州アーモンクのIBM社の製品であるIBM(登録商標) eServer(登録商標) pSeries(登録商標)システムであって良い。本発明は、キャッシュ・システムに対する更新の頻度を低減し得るキャッシュ・システムを提供する。本書において主リスト及び副リストと称される固定されたサイズの2つの別々のキャッシュ・リストは始めは空である。キャッシュにオブジェクトが加えられるとき、それらは副リストの頭に挿入される。予め定められた間隔で、キャッシュ・リストは、幾つかのオブジェクトを副リストから主リストへ移すことによって更新される。キャッシュ・リストのサイズは固定されているので、キャッシュ更新中に同数のオブジェクトが主リストから副リストへ移される。キャッシュ更新を除いて、主リストのアンカーは変更されず、従って主リストは順不同オブジェクトを含む。副リストは、LRUアルゴリズムによって順序付きリストとして維持される。図3は、従来どおりに構成されたリンク・リストのデータ構造を含むディレクトリ名ルックアップ・キャッシュ又はファイル・キャッシュのようなルックアップ・キャッシュの線図である。リンク・リスト300は、LRUアルゴリズムにより組織された複数のオブジェクト302−305を含む。オブジェクト302−305は、各々、関連付けられたリンク306−309を有する。該ルックアップ・キャッシュは、リンク・リスト300を参照するアンカー310或いはハンドルを含む。例えば、アンカー310は、リンク・リスト300の先頭のすなわち最初のオブジェクトのアドレスを含むポインタであり得る。リンク306−308は、リンク・リスト内の次のオブジェクトのポインタ又はアドレスを含む。末尾のオブジェクト305はリンク・リスト300の最後のオブジェクトを含み、関連付けられているリンク309は、オブジェクト305をリンク・リスト300の最後のオブジェクトとして示すヌル・ポインタを含む。従って、リンク・リスト300は、該リストの頭にオブジェクト302があってオブジェクト303−305がリンク・リスト300の2番目から最後のオブジェクトまで順番に並んでいる、論理的に順序付けられたリストを含む。
LRUアルゴリズムは、一番最近に要求されたオブジェクトがリンク・リスト300の頭に位置し、最も長い期間にわたって要求されていなかったオブジェクトがリンク・リスト300の末尾に維持される組織にオブジェクト302−305を維持する。リンク・リスト300の頭と末尾との間の中間オブジェクトは、リンク・リスト300において、関連するオブジェクトの対応する要求順序に従ってリンク・リスト300中に配置される。従って、図3の実例では、オブジェクト302は一番最近に要求されたオブジェクトであって、リンク・リスト300の頭として置かれる。オブジェクト305は、その時点で最も長い期間にわたって要求されていなかったオブジェクトであって、リンク・リスト300の末尾として置かれる。この様に、オブジェクト302−305は、一番最近に要求されたオブジェクトから一番長い間要求されていなかったオブジェクトまでリンク・リスト300に置かれる。図4は、オブジェクト304に対するコール又はリクエストの後にLRUアルゴリズムにより組織されたリンク・リスト300の線図である。LRUアルゴリズムは、リンク・リストのオブジェクトが要求された順序に従ってリンク・リスト300の組織を変更する。図示の例では、オブジェクト304が要求され、LRUは、オブジェクト304が現時点で一番最近に使用されたオブジェクトであることを適切に示すようにリンク・リストを変更する。例えば、LRUアルゴリズムは、オブジェクト304のアドレスをアンカー310に書き、従ってオブジェクト304が頭のオブジェクトとして置かれるようにリンク・リストを構成することによって、オブジェクト304を参照するようにアンカー310を変更することができる。更に、オブジェクト304に関連付けられているリンク308は、前の頭オブジェクトを適切に参照するように変更される。図示の例では、リンク308は、オブジェクト304を求めるリクエストの前にはリンク・リスト300の頭として置かれていたオブジェクト302を指すようにLRUアルゴリズムによって変更される。更に、オブジェクト303に関連付けられているリンク307は、末尾のオブジェクト305を指すように変更される。要求されたオブジェクトがルックアップ・キャッシュの中に置かれていなければ、例えばファイル管理システムによって、グローバル探索が実行され得る。要求されたオブジェクトがグローバルに置かれていたならば、それはリクエストを出したエンティティーに戻されてリンク・リスト300の頭オブジェクトとして挿入される。従って、オブジェクトのための追加容量がリンク・リスト300内に残っていなければ、末尾のオブジェクト305は捨てられる。図4に関して上に記載されたものと同様のリンク・リスト300の更新が必要である。
本発明の1つの好ましい実施態様では、アンカーは2つのポインタを含むか、又は2つのアンカーとして実装されてもよく、これらは夫々、本書において主リスト及び副リストと称される2つの別々のキャッシュ・リストを指す。各リストは、サイズが固定されており、始めは空である。キャッシュにオブジェクトが加えられるとき、それらのオブジェクトは副リストの頭に挿入される。所定間隔を置いて、キャッシュ・リストは、幾つかのオブジェクトを副リストから主リストへ移すことによって、更新される。それらのキャッシュ・リストのサイズは固定されているので、キャッシュ更新時には、同数のオブジェクトが主リストから副リストに移される。キャッシュ更新は別として、主リストのアンカーは変更されないので、主リストは順不同オブジェクトを含む。副リストはLRUアルゴリズムにより順序付きリストとして維持される。好ましくは、キャッシュ更新時に副リストから主リストに移される1つ又は複数のオブジェクトは、副リスト内でのその順序に基いて選択される。特に、副リストから主リストに昇格されるように選択される一番最近に使用されたオブジェクトのうちの1つ以上は、副リストの頭から、又は副リストの頭を含む連続したオブジェクトのセットから、選択される。キャッシュ更新時に主リストから副リストに降格されるべきオブジェクト又はオブジェクトのセットを選択するために種々のパラメータ又は決定基準のうちの任意の1つを使用することができる。例えば、主リスト及び副リストの少なくとも一方の中のオブジェクトについてのリクエスト総数を累積するためにヒット・カウンタを使用することができる。所定のキャッシュ更新間隔を置いて、副リストに降格させるために、閾値より少ないヒット総数を有する1つ以上のオブジェクトを選択することができる。
或いは、最小のヒット総数を有する所定数のオブジェクトを、副リストに降格させるべく選択することができる。別の実施態様では、キャッシュ・システムは、主リスト中のオブジェクトの全てのヒット総数を評価し、それらを副リスト中のオブジェクトのヒット総数と比較することができる。主リストにおいて、副リスト中の1つのオブジェクトのヒット総数より少ないヒット総数を有する任意のオブジェクトを、副リストに降格させるべく選択することができ、同時に、副リストにおいて、主リストのオブジェクトのヒット総数より大きなヒット総数を有するオブジェクトは主リストに昇格される。副リストに降格させる主リストのオブジェクトを選択するための他のインプリメンテーションを適宜代用することができる。図5は、本発明の好ましい実施態様に従って実現されたキャッシュ・システムである。該キャッシュ・システムは主リスト400及び副リスト410を含む。主リスト400は、夫々のリンク406−409を各々有する1つ以上のオブジェクト402−405を含む。アンカー401は主リスト400を参照する。例えば、アンカー401は、オブジェクト402−405のうちの1つへのアドレスを含むポインタとして実現され得る。図示の例では、アンカー401はオブジェクト402へのポインタを含む。リンク406−408はリスト400内の夫々のオブジェクトを参照する。オブジェクト405に関連するリンク409は、関連するオブジェクト405が主リスト400の末尾オブジェクトであることを示すヌルを含む。主リスト400のオブジェクトは、論理的順序付けで維持されるものではない。すなわち、LRUアルゴリズム又はその他の順序付けアルゴリズムは、リスト400内のオブジェクト402−405の順序を維持しない。
更に、キャッシュ・システムは、オブジェクト412−415と、関連するリンク416−419とを含む副リスト410を含む。副リスト410は、頭オブジェクト412、末尾オブジェクト415、及びこれらの間に位置する中間オブジェクト413及び414を含む順序付きオブジェクト・リストである。アンカー411は、副リスト410の頭として位置するオブジェクトを指すことにより副リスト410を指すポインタを含む。図5の例では、副リスト410は、頭オブジェクトとして位置するオブジェクト412と末尾オブジェクトとして位置するオブジェクト415とを有するように構成されている。本発明の好ましい実施態様に従って、副リスト410の中のオブジェクト412−415の位置が、それらのオブジェクトが要求されるか、又は他の何らかの形で使用された順序に対応するように、LRU又は他の適切なアルゴリズムがオブジェクト412−415をそれらの関連する使い方に従ってシーケンシャルに順序付ける。特に、副リスト410の頭オブジェクトは一番最近に使用されたオブジェクトとして維持され、残りの各オブジェクトは、それらに関連する使い方に従って降順に配置される。
上で述べたように、主リスト400中のオブジェクトは、何らかの使用順序に従ってリスト400中に維持されるのではない。例えば、オブジェクト403を求めるリクエストが行われると仮定しよう。本発明のキャッシュ・システムは、始めに、要求されたオブジェクトが主リスト400で維持されているか否か判断するために主リスト400を探索する。要求されたオブジェクトが主リスト400に格納されていた場合には、例えばアプリケーション又はファイル・システムなどの、要求をしたエンティティーに、要求されたオブジェクトが返される。要求されたオブジェクトが主リスト400から読み出されたことに起因する主リストの更新は行われない。
例を挙げる目的で、オブジェクト414を求めるリクエストが発せられたと仮定しよう。キャッシュ・システムは、始めに主リスト400を探索し、要求されたオブジェクトが主リスト400に格納されていないと判断する。キャッシュ・システムは、その後、副リスト410を探索し始める。図示の例では、オブジェクト414が、要求を発したエンティティーに返される。更に、副リストは、オブジェクトの、使用に応じた降順を適切に含むように更新される。本発明の好ましい実施態様に従って実現されるキャッシュ・システムの図6の線図に示されているように、キャッシュ・システムは、副リスト410の頭オブジェクトを指すアンカー411を、一番最近に要求されたオブジェクト414を指すように変更する。更に、オブジェクト414と関連するリンク418は、副リスト410において上から2番目のすなわち2番目に最近に使用されたオブジェクトに降格される、前の頭オブジェクト412を指すように変更される。同様に、リンク417は、末尾オブジェクト415を指すように変更される。副リスト410は、オブジェクトの使用の降順におけるオブジェクトの連続的順序付けを維持するように更新される。図6の例では、オブジェクト414は論理的に頭オブジェクトとして置かれて、オブジェクト414が副リスト410の中で一番最近に使用されたオブジェクトであることを示す。オブジェクト412,413、及び415は、これらの使用に応じて降順に構成される。
ここで、主リスト400にも副リスト410にも置かれていないオブジェクトが要求されたと仮定しよう。キャッシュ・システムは、主リスト及び副リストを探索した後、要求されたオブジェクトのグローバル検索を試みることができる。例えば、キャッシュ・システムは、要求されたオブジェクトを検索しようと試みるファイル管理システム又は他の適切なアプリケーションとインターフェースすることができる。要求されたオブジェクトがグローバル検索で得られた場合、要求されたオブジェクトは、要求をしたエンティティーに戻される。更に、グローバルに検索されたオブジェクトを副リスト410に加えることによって、キャッシュ・システムは更新される。特に、グローバルに検索されたオブジェクトは副リスト410に頭オブジェクトとして加えられ、副リスト410の前の末尾オブジェクトは副リスト410から捨てられる。
図7は、本発明の好ましい実施態様に従う、要求されたオブジェクトのグローバル検索の後の、図5及び6に示されているキャッシュ・システムの線図である。図示の例において、要求されたオブジェクト(この例ではオブジェクト_Xと称されている)は主リスト400及び副リスト410には置かれていなくて、その後のグローバル探索の結果として要求されたオブジェクトの位置が得られたと仮定する。グローバルに探索されたオブジェクトは、要求をしたエンティティーに戻され、副リスト410に頭オブジェクトとして挿入される。図示の例では、オブジェクト421がグローバルに検索されたオブジェクトであり、副リスト410に挿入される。アンカー411は、グローバルに検索されたオブジェクト421を指すように変更される。更に、オブジェクト421に関連するリンク422は前の頭オブジェクト414を指すように構成され、リンク417は、関連するオブジェクト413が末尾オブジェクトであることを示すヌル・ポインタに変更される。前の末尾オブジェクト(図6のオブジェクト415)は、副リスト410内に新たに挿入されるオブジェクト421のために充分な容量を提供するように、捨てられている。
図8は、本発明の好ましい実施態様に従って実行される定期的キャッシュ更新後の図5−7のキャッシュ・システムの線図である。キャッシュ・システムに対する更新は、好ましくは所定間隔を置いて実行される。キャッシュ更新は、順序付き副リストと順不同主リストとの間でオブジェクトを交換するように設計される。好ましくは、副リストのオブジェクトと交換される主リストのオブジェクトは、副リストから昇格されるオブジェクトよりも使用頻度が少ない。従って、主リストと副リストとの間でオブジェクトを交換するか否か鑑定するために、主リスト及び副リストの少なくとも一方の中のオブジェクトのヒット総数、又は他の適切なメカニズムを用いることができる。図8は、オブジェクト403及び404を副リスト410に降格させると鑑定すると共にオブジェクト414及び421を副リスト410から主リスト400に昇格させると鑑定するという結果をもたらしたキャッシュ更新鑑定を示している。この例では、主リスト400から副リスト410に移されたオブジェクト403及び404は、副リスト410の下端に置かれている。他のインプリメンテーションは、主リスト400から降格されたオブジェクトを副リスト410の上端に置くことができ、或いは、主リスト400から降格されたオブジェクトは、副リスト410のオブジェクトと比較した使用パラメータ又は他のパラメータに基づいて副リスト410内に置かれても良い。
図9は、本発明の好ましい実施態様に従って実施される、要求されたオブジェクトを見つけるためにルックアップ・キャッシュにより実行される処理のフローチャートである。ルックアップ・キャッシュ処理ルーチンは、好ましくは、例えばローカル・メモリー209から取り出されてプロセッサ202又は204のような処理ユニットによって実行されるコンピュータ可読の命令セットとして実現される。該ルーチンは、初期化され(ステップ502)、オブジェクトを求めるリクエストの受け取りを待つ(ステップ504)。オブジェクトを求めるリクエストの受け取りに応答して、その要求されたオブジェクトを探す探索が主リストで実行される(ステップ506)。要求されたオブジェクトが主リストに置かれているか否かを判断する鑑定が行われる(ステップ508)。要求されたオブジェクトが主リスト中に置かれていた場合には、ルーチンはそのオブジェクトを要求元のエンティティーに戻し(ステップ510)、その後、ルーチンを続行するべきか否か判断する鑑定が行われる(ステップ512)。ルーチンが続行されるべきである場合には、処理はステップ504に戻って次のオブジェクト・リクエストの受け取りを待つ。ルーチンが終了するべきであると判断されたならば、キャッシュ・ルックアップ・ルーチンは終了する(ステップ530)。
もう一度ステップ508に戻って、要求されたオブジェクトが主リストの中に置かれていない場合には、ルーチンは副リストを探索し始めて、要求されたオブジェクトが副リストの中にあるか否か鑑定する(ステップ514)。キャッシュ・ルックアップ・ルーチンは、もし要求されたオブジェクトが副リストの中に置かれていたならば、要求されたオブジェクトを戻し(ステップ516)、そのオブジェクトを副リストの頭に移し(ステップ518)、ルーチンはステップ512に進んでキャッシュ・ルックアップ・ルーチンを続行するべきか否か鑑定する。
もしステップ514においてオブジェクトが副リストに置かれていないと判断されたならば、グローバル探索が実行されて、要求されたオブジェクトがグローバルに置かれているか否か判断する鑑定が行われる(ステップ520)。もしオブジェクトがグローバルに置かれていたならば、要求されたオブジェクトは要求元のエンティティーに戻される(ステップ522)。その後、副リストの末尾オブジェクトが捨てられ(ステップ524)、グローバルに検索されたオブジェクトが新しい頭オブジェクトとして副リストに加えられる(ステップ526)。キャッシュ・ルックアップ・ルーチンはその後にステップ512に戻って、付加的な処理を実行するべきか否か鑑定する。ステップ520でオブジェクトがグローバルに置かれていなかった場合には、要求元のエンティティーにエラー・メッセージを戻すことができ、ルーチンはステップ512に進んで付加的な処理を実行するべきか否か鑑定する。
この様に、キャッシュ更新の頻度を減少させる最適化されたLRU機能を有する最適化されたルックアップ・キャッシュが提供される。特に、ルックアップ・キャッシュは順不同オブジェクトの主リストと順序付きオブジェクトの副リストとを含む。オブジェクトを副リストから主リストに昇格させ、オブジェクトを主リストから副リストに降格させるために定期的更新が行われる。副リストの最も頻繁に使用されるオブジェクトを主リストに定期的に移すことによって、主リストは最も頻繁に使用されるオブジェクトを維持するようになる。主リストからのオブジェクトの読み出しは、主リストが順不同リストであるために修正又は改訂という結果をもたらさない。従って、ルックアップ・キャッシュに対して行われる更新は従来のルックアップ・キャッシュ・システムの場合より低頻度であり得る。
本発明は完全に機能するデータ処理システムとの関連で記載されているけれども本発明のプロセスが命令のコンピュータ可読媒体の形及びいろいろな形で配布され得るものであること並びに本発明が該配布を行うために実際に使用される信号担持媒体の具体的なタイプとは無関係に等しく適用され得るものであることを当業者が理解するであろうことに留意することは重要である。コンピュータ可読媒体の例は、フレキシブルディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMのような記録可能型の媒体、並びにディジタル及びアナログの通信リンク、例えば無線周波数伝送及び光波伝送などの伝送形を使用する有線又は無線の通信リンクのような伝送型媒体を含む。コンピュータ可読媒体は、特定のデータ処理システムで実際に使用されるために復号される符号化されたフォーマットの形をとることができる。本発明の説明は、例証及び説明を目的として呈示されており、網羅的であることや、開示された形の発明に限定されることを意図してはいない。多くの変更及び変形が当業者にとっては明らかであろう。実施態様は、本発明の原理、実際的な応用例を最善に説明し、当業者が本発明を、意図されている特定の用途に適する種々の変更を有する種々の実施態様について理解できるようにするために、選択され記載された。
本発明の好ましい実施態様を実施することのできるデータ処理システムの絵画的表現である。 本発明の好ましい実施態様を実施することのできるデータ処理システムのブロック図である。 従来のようにリンク・リスト・データ構造を含む、ディレクトリ名ルックアップ・キャッシュ又はファイル・キャッシュのようなキャッシュの線図である。 従来のようにオブジェクト304に対するコール又はリクエストの後にLRUアルゴリズムにより組織されるリンク・リスト300の線図である。 本発明の好ましい実施態様に従って実現された主リスト及び副リストを含むキャッシュ・システムである。 副リストのキャッシュ・ヒットの後のキャッシュ・システムの再組織化を示す図5のキャッシュ・システムの線図である。 要求されたオブジェクトのグローバル検索の後の図5及び6に示されているキャッシュ・システムの線図である。 本発明の好ましい実施態様に従って実行された定期的キャッシュ更新の後の図5−7のキャッシュ・システムの線図である。 本発明の好ましい実施態様に従って、要求されたオブジェクトを戻すためにキャッシュ・システムにより実行される処理のフローチャートである。

Claims (11)

  1. ルックアップ・キャッシュにおいてオブジェクトを維持するための方法であって、
    順不同リストである主リストに第1複数のオブジェクトを置くステップと、
    順序付きリストである副リストであって、一番最近に要求されたオブジェクトがリストの頭に配置され、最も長い期間にわたって要求されていなかったオブジェクトがリストの末尾に維持される副リストに第2複数のオブジェクトを置くステップと、
    定期的に前記第1複数のオブジェクトのうちの少なくとも1つのオブジェクトであって前記主リストにおいて、前記副リスト中の1つのオブジェクトのヒット総数よりも少ない総数を有する任意のオブジェクトを前記副リストに降格させるステップと、
    前記第2複数のオブジェクトのうち、前記主リストのオブジェクトのヒット総数より大きなヒット総数を有するオブジェクトであって、前記副リストに降格させたオブジェクトの数と同数のオブジェクトを前記主リストに昇格させるステップと、
    を含む方法。
  2. 第1オブジェクトを求めるリクエストを受け取ったことに応答して、前記第1オブジェクトを目的として前記主リストを探索するステップを更に含む、請求項1に記載の方法。
  3. 前記第1オブジェクトが前記主リストに含まれていないという判断に応答して、前記第1オブジェクトを目的として前記副リストを探索するステップを更に含む、請求項2に記載の方法。
  4. 前記第1オブジェクトが前記副リストに置かれているという判断に応答して、前記第1オブジェクトが前記副リストの頭オブジェクトとして置かれるように前記副第2リストを変更するステップを更に含む、請求項3に記載の方法。
  5. 前記第1オブジェクトが前記副リストに置かれていないという判断に応答して、前記第1オブジェクトを目的としてグローバル探索を実行するステップと、前記グローバル探索によって前記第1オブジェクトの位置を突き止めたことに応答して、前記副リストの末尾オブジェクトを捨て、前記第1オブジェクトが前記副リストの頭オブジェクトとして置かれるように前記副リストを変更するステップとを更に含む、請求項3に記載の方法。
  6. 前記第1複数のオブジェクトのうちの前記少なくとも1つのオブジェクトは、前記第2複数のオブジェクトのうちの前記少なくとも1つのオブジェクトより低い頻度で使用されるものとし特定される、請求項1に記載の方法。
  7. ルックアップ・キャッシュを管理するためのコンピュータ可読媒体に存するコンピュータ・プログラムであって、請求項1ないしのうちのいずれか1つの前記ステップをコンピュータに実行させるためのするためのプログラム・コードを含む、コンピュータ・プログラム。
  8. 命令のセットと、第1複数のオブジェクトと関連するリンクとを有する順不同リストとして構成される主リスト及び第2複数のオブジェクトと関連するリンクとを有する順序付きリストとして構成される副リストであって、一番最近に要求されたオブジェクトがリストの頭に配置され、最も長い期間にわたって要求されていなかったオブジェクトがリストの末尾に維持される副リストを含むルックアップ・キャッシュとを包含するメモリーと、
    前記命令のセットの実行に応答して、定期的に前記第1複数のオブジェクトのうちの少なくとも1つのオブジェクトであって前記主リストにおいて、前記副リスト中の1つのオブジェクトのヒット総数よりも少ない総数を有する任意のオブジェクトを前記副リストに降格させると共に前記第2複数のオブジェクトのうち、前記主リストのオブジェクトのヒット総数より大きなヒット総数を有するオブジェクトであって、前記副リストに降格させたオブジェクトの数と同数のオブジェクトを前記主リストに昇格させる処理ユニットと、
    を含むデータ処理システム。
  9. 前記処理ユニットは複数の処理ユニットのうちの1つであり、前記複数の処理ユニットの各々は前記ルックアップ・キャッシュへのアクセスを有する、請求項に記載のデータ処理システム。
  10. 前記命令のセットは前記第2複数のオブジェクトを順序に番号を付けるためのLRUアルゴリズムを含む、請求項に記載のデータ処理システム。
  11. 前記処理ユニットは、第1オブジェクトを求めるリクエストの受け取りに応答して前記第1オブジェクトを目的として前記主リストを探索し、前記第1オブジェクトが前記主リストに置かれていないという判断に応答して前記第1オブジェクトを目的として前記副リストを探索する、請求項に記載のデータ処理システム。
JP2007515920A 2004-06-17 2005-05-18 ルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法 Expired - Fee Related JP4791458B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/870,458 US8275802B2 (en) 2004-06-17 2004-06-17 Optimized least recently used lookup cache
US10/870,458 2004-06-17
PCT/EP2005/052283 WO2005124559A1 (en) 2004-06-17 2005-05-18 System and method for maintaining objects in a lookup cache

Publications (3)

Publication Number Publication Date
JP2008502965A JP2008502965A (ja) 2008-01-31
JP2008502965A5 JP2008502965A5 (ja) 2008-05-29
JP4791458B2 true JP4791458B2 (ja) 2011-10-12

Family

ID=35094122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007515920A Expired - Fee Related JP4791458B2 (ja) 2004-06-17 2005-05-18 ルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法

Country Status (9)

Country Link
US (1) US8275802B2 (ja)
EP (1) EP1782212B1 (ja)
JP (1) JP4791458B2 (ja)
CN (1) CN1934544A (ja)
AT (1) ATE516546T1 (ja)
CA (1) CA2570556A1 (ja)
IL (1) IL180110A (ja)
TW (1) TW200620091A (ja)
WO (1) WO2005124559A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100854032B1 (ko) * 2007-02-09 2008-08-26 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
US7711905B2 (en) 2007-07-16 2010-05-04 International Business Machines Corporation Method and system for using upper cache history information to improve lower cache data replacement
US7908283B2 (en) * 2007-08-29 2011-03-15 Red Hat, Inc. Finding superlatives in an unordered list
US8566529B2 (en) * 2008-02-13 2013-10-22 International Business Machines Corporation Method, system and computer program product for generalized LRU in cache and memory performance analysis and modeling
US8314949B2 (en) * 2008-12-23 2012-11-20 Infoprint Solutions Company Llc Distributed global object cache
US8719486B2 (en) * 2009-06-24 2014-05-06 Micron Technology, Inc. Pinning content in nonvolatile memory
US10089711B2 (en) * 2010-09-03 2018-10-02 Adobe Systems Incorporated Reconstructable digital image cache
US8635630B2 (en) 2010-10-25 2014-01-21 Microsoft Corporation Application lifetime management
US8615636B2 (en) * 2011-03-03 2013-12-24 International Business Machines Corporation Multiple-class priority-based replacement policy for cache memory
US8997171B2 (en) * 2011-08-19 2015-03-31 Microsoft Technology Licensing, Llc Policy based application suspension and termination
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
WO2013148872A1 (en) * 2012-03-28 2013-10-03 Huawei Technologies Co., Ltd. Concurrently accessed set associative overflow cache
US11449549B2 (en) 2015-02-26 2022-09-20 Red Hat, Inc. Storing entries as ordered linked lists
US10346178B2 (en) * 2015-08-20 2019-07-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure network server boot without the use of DHCP and PXE
US10530888B2 (en) 2016-06-01 2020-01-07 Home Box Office, Inc. Cached data expiration and refresh
US11093395B2 (en) * 2019-08-07 2021-08-17 International Business Machines Corporation Adjusting insertion points used to determine locations in a cache list at which to indicate tracks based on number of tracks added at insertion points
US11048631B2 (en) 2019-08-07 2021-06-29 International Business Machines Corporation Maintaining cache hit ratios for insertion points into a cache list to optimize memory allocation to a cache
US11074185B2 (en) 2019-08-07 2021-07-27 International Business Machines Corporation Adjusting a number of insertion points used to determine locations in a cache list at which to indicate tracks
US11281593B2 (en) 2019-08-07 2022-03-22 International Business Machines Corporation Using insertion points to determine locations in a cache list at which to indicate tracks in a shared cache accessed by a plurality of processors
US11068415B2 (en) 2019-08-07 2021-07-20 International Business Machines Corporation Using insertion points to determine locations in a cache list at which to move processed tracks
CN112395322B (zh) * 2020-12-07 2021-06-01 湖南新云网科技有限公司 一种基于分级缓存的列表数据显示方法、装置及终端设备
KR102362681B1 (ko) * 2021-04-30 2022-02-15 쿠팡 주식회사 아이템 리스트 관리 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01222352A (ja) * 1988-02-29 1989-09-05 Nec Corp キャッシュ資源管理方式
US5717916A (en) * 1994-09-30 1998-02-10 Vlsi Technology, Inc. Method for providing an improved fully associative cache memory having a finite state machine and linked list structure
US20010013087A1 (en) * 1999-12-20 2001-08-09 Ronstrom Ulf Mikael Caching of objects in disk-based databases
US6591346B1 (en) * 2001-01-19 2003-07-08 Sun Microsystems, Inc. Mechanism for managing an object cache

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US6449695B1 (en) * 1999-05-27 2002-09-10 Microsoft Corporation Data cache using plural lists to indicate sequence of data storage
US6654766B1 (en) 2000-04-04 2003-11-25 International Business Machines Corporation System and method for caching sets of objects
US20030005233A1 (en) 2001-06-28 2003-01-02 Daleen Technologies, Inc. Dual organization of cache contents

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01222352A (ja) * 1988-02-29 1989-09-05 Nec Corp キャッシュ資源管理方式
US5717916A (en) * 1994-09-30 1998-02-10 Vlsi Technology, Inc. Method for providing an improved fully associative cache memory having a finite state machine and linked list structure
US20010013087A1 (en) * 1999-12-20 2001-08-09 Ronstrom Ulf Mikael Caching of objects in disk-based databases
US6591346B1 (en) * 2001-01-19 2003-07-08 Sun Microsystems, Inc. Mechanism for managing an object cache

Also Published As

Publication number Publication date
US8275802B2 (en) 2012-09-25
EP1782212A1 (en) 2007-05-09
JP2008502965A (ja) 2008-01-31
IL180110A0 (en) 2007-05-15
IL180110A (en) 2013-06-27
ATE516546T1 (de) 2011-07-15
EP1782212B1 (en) 2011-07-13
US20050283573A1 (en) 2005-12-22
CN1934544A (zh) 2007-03-21
TW200620091A (en) 2006-06-16
CA2570556A1 (en) 2005-12-29
WO2005124559A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4791458B2 (ja) ルックアップ・キャッシュにオブジェクトを維持するためのシステム及び方法
EP2478442B1 (en) Caching data between a database server and a storage system
EP2612249B1 (en) Method and system for removing cache blocks
US6385699B1 (en) Managing an object store based on object replacement penalties and reference probabilities
US8943272B2 (en) Variable cache line size management
US6370619B1 (en) Managing partitioned cache
US9235531B2 (en) Multi-level buffer pool extensions
US8443149B2 (en) Evicting data from a cache via a batch file
US10430338B2 (en) Selectively reading data from cache and primary storage based on whether cache is overloaded
EP2478441B1 (en) Read and write aware cache
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US8825959B1 (en) Method and apparatus for using data access time prediction for improving data buffering policies
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
JP2002540502A (ja) データベースシステムにおけるバーチャルメモリマッピングとトランザクションマネージメントのポインターリロケーションオプチミゼーションの方法及び装置
CN110737399A (zh) 用于管理存储系统的方法、设备和计算机程序产品
US11593268B2 (en) Method, electronic device and computer program product for managing cache
US7529891B2 (en) Balanced prefetching exploiting structured data
US7836248B2 (en) Methods and systems for managing persistent storage of small data objects
Cheng et al. Multicache-based content management for Web caching
JP5673224B2 (ja) 情報管理装置、情報管理方法、及びプログラム
US11734185B2 (en) Cache management for search optimization

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20110318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110524

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: 20110705

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110721

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees