[go: up one dir, main page]

JP2005339198A - キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体 - Google Patents

キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2005339198A
JP2005339198A JP2004157103A JP2004157103A JP2005339198A JP 2005339198 A JP2005339198 A JP 2005339198A JP 2004157103 A JP2004157103 A JP 2004157103A JP 2004157103 A JP2004157103 A JP 2004157103A JP 2005339198 A JP2005339198 A JP 2005339198A
Authority
JP
Japan
Prior art keywords
access
cache
target data
access target
hit rate
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.)
Pending
Application number
JP2004157103A
Other languages
English (en)
Inventor
Toshiyuki Hama
利行 濱
Ryo Hiraide
涼 平出
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
Priority to JP2004157103A priority Critical patent/JP2005339198A/ja
Priority to US11/131,126 priority patent/US7318124B2/en
Publication of JP2005339198A publication Critical patent/JP2005339198A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】キャッシュ装置のキャッシュヒット率を解析的に精度良く求める。
【解決手段】 要求元装置からアクセスされたアクセス対象データをキャッシュするキャッシュ装置のキャッシュヒット率を推定するキャッシュヒット率推定装置であって、それぞれのアクセス対象データに対するアクセス要求について計測された平均到着頻度を取得するアクセス要求到着頻度取得部と、それぞれのアクセス対象データに対するアクセス要求の平均到着頻度に基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数を生成するアクセス要求到着確率密度関数生成部と、複数のアクセス対象データのアクセス要求到着確率密度関数に基づいて、それぞれのアクセス対象データのキャッシュヒット率の推定関数を生成するキャッシュヒット率推定関数生成部とを備えるキャッシュヒット率推定装置を提供する。
【選択図】図2

Description

本発明は、キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体に関する。特に本発明は、キャッシュミス時のアクセスコストが異なる複数のアクセス対象データのそれぞれについてのキャッシュヒット率を推定するキャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体に関する。
近年、Webアプリケーション等を実行するサーバ装置は、例えばHTTPサーバ、Webコンテナ、EJBコンテナ、及びデータベースサーバ等の各コンポーネント毎にアクセスされたデータをキャッシュし、負荷の軽減及び応答時間の低減を図っている。このようなキャッシュを用いるアプリケーションの処理性能は、アクセス対象データのキャッシュヒット率、キャッシュヒット時の応答時間、及び、キャッシュミス時のアクセス処理時間により定まる。しかしながら、従来においては、キャッシュの各設定パラメータがキャッシュヒット率に与える影響が定量的に明らかでなく、これらのパラメータをヒューリスティックに設定していた。
また従来、LRU(Least Recently Used)方式によるキャッシュのヒット率を推定する方法として、非特許文献1から4が提案されている。
非特許文献1は、アクセス要求を受けた際に、キャッシュする対象となる各アイテムがLRUリストのn番目に存在する確率を、以下の式(1)により求める。ここで、CNは全てのアイテムについての参照コスト(アクセス要求を受けた際のアクセス対象アイテムのリスト内における位置)、qrはアイテムr(r=1,2, …, N)がアクセスされる確率である。
Figure 2005339198
式(1)を用いれば、k個のアイテムをキャッシュするLRUキャッシュのヒット率は、P[CN≦k]により求めることができる。
非特許文献2及び非特許文献3は、アイテム毎の参照コストCr Nの確率母関数を以下の式(2)により求める。
Figure 2005339198
非特許文献4は、アイテム数N及びキャッシュサイズkが無限大に近づく時の漸近的な近似式として以下の式(3−1)及び(3−2)を示す。式(3−1)はアイテムの参照確率分布が多項式で減少していく場合(Heavy Tail)の近似式、式(3−2)は参照確率分布が指数的に減少していく場合(Light Tail)の近似式である。さらにN, kが比較的小さな値であっても、この近似式の精度が高いことを実験により検証している。
Figure 2005339198
P.J. Burville and J. F. C. Kingman, "On a model for strage and search.", Journal of Applied Probability, 10: p.697-701, 1973年 P. Flajolet, D. Gardy, and L. Thimonier, "Birthday paradox, coupon collector, caching algorithms and self-organizing search.", Discrete Applied mathematics, 39: p.207-229, 1992年 J. A. Fill and L. Holst, "On the distribution search cost for the move-to-front rule.", Random Structures and algorithms, 8(3): p.179-186, 1996年 P. R. Jelenkovic, "Asymptotic approximation of the move-to-front search cost distribution and least-recently-used caching fault probabilities.", Annals of Applied Probability, 9(2): p.430-464, 1999年.
キャッシュの設定パラメータをヒューリスティックに設定する場合、アプリケーションの実行環境に応じた最適値を求めるのが困難である。すなわち例えば、設定パラメータの最適値を求めるためには、情報システムの構築時等において、設定パラメータを変えながら性能測定を繰り返して最適な設定パラメータを求める方法が考えられるが、作業の負担が大きく動的に変化するアプリケーション実行環境に対応することができない。
そこで本発明は、キャッシュの性能をより高めるため、アプリケーション実行中に計測した各種の統計情報に基づいてより適切な設定パラメータを算出し、キャッシュに設定するキャッシュシステムを提案する。より具体的には、各種の統計情報に基づいてアクセス処理の性能を推定する推定関数を生成し、アクセス処理性能の推定値を高める設定パラメータを求めてキャッシュに設定する。
ここで、Webアプリケーション等を実行するサーバ装置においては、キャッシュする対象となるデータは、各種のサーバアプリケーションが出力するデータであり、アクセス対象データによってキャッシュミス時のアクセスコストが異なる。したがって、アクセス処理性能を精度良く推定するためには、アクセス対象データ毎のキャッシュヒット率を求める必要がある。
非特許文献1においては、アイテムの数が増加すると、式(1)におけるアイテムの組み合わせAの数が爆発的に増加するため、アクセス処理性能の評価を効率良く行うことが困難である。
また非特許文献2及び3においても、アイテムの数が増加すると数値的に計算困難となるため、式(2)を用いてアクセス処理性能の評価を行うことは困難である。
また非特許文献4においては、アイテム毎のヒット率については考慮されていない。しかし、本発明の対象となるアプリケーション実行環境においては、アクセス対象データ毎のキャッシュヒット率が要求されるため、式(3)を用いてアクセス処理性能の評価を行うことは困難である。
そこで本発明は、上記の課題を解決することのできるキャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
本発明の第1の形態によると、要求元装置からアクセスされたアクセス対象データをキャッシュするキャッシュ装置のキャッシュヒット率を推定するキャッシュヒット率推定装置であって、複数の前記アクセス対象データの少なくとも1つは、キャッシュミス時のアクセスコストが他の前記アクセス対象データと異なるものであり、それぞれの前記アクセス対象データに対するアクセス要求について計測された平均到着頻度を取得するアクセス要求到着頻度取得部と、それぞれのアクセス対象データに対するアクセス要求の平均到着頻度に基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数を生成するアクセス要求到着確率密度関数生成部と、前記複数のアクセス対象データの前記アクセス要求到着確率密度関数に基づいて、それぞれの前記アクセス対象データのキャッシュヒット率の推定関数を生成するキャッシュヒット率推定関数生成部とを備えるキャッシュヒット率推定装置と、当該キャッシュヒット率推定装置に関するキャッシュヒット率推定方法、プログラム、及び記録媒体とを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、キャッシュ装置のキャッシュヒット率を解析的に精度良く求めることができる。そして、解析結果に基づいてキャッシュ装置の設定パラメータを最適化することにより、アクセス処理性能を高めることができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る情報システム10の構成を示す。情報システム10は、1又は複数の要求元装置100と、1又は複数のサーバ装置110と、キャッシュシステム120とを備える。
要求元装置100は、アクセス要求をサーバ装置110に対して送信することにより、アクセスする対象となるアクセス対象データの送信を要求する。そして、要求元装置100は、サーバ装置110からアクセス対象データを受信する。本実施形態に係る要求元装置100は、例えばクライアント端末であり、HTTPやSOAP等に基づくアクセス要求をサーバ装置110に対して送信する。これに代えて要求元装置100は、例えばキャッシュメモリを介してメモリをアクセスするCPU等であってもよい。
サーバ装置110は、キャッシュシステム120を介して要求元装置100からのアクセス要求を受信し、アクセス要求に対応する処理を行って、アクセス対象データを生成する。そしてサーバ装置110は、アクセス対象データを、キャッシュシステム120を介して要求元装置100へ返信する。本実施形態に係るサーバ装置110は、例えばWebアプリケーションサーバであり、アクセス要求に対応するサーブレットやJSP等のサーバプログラムを実行して、当該アクセス要求に対応するアクセス対象データを生成する。これに代えてサーバ装置110は、例えばCPU等の要求元装置100からのアクセス要求を受けて記憶領域をアクセスするメモリシステムやI/Oシステム等であってもよい。また、複数のサーバ装置110のそれぞれは、複数のentity Beansを分割した一部のentity Beansが割り当てられたEJBコンテナを処理するJVM(Java Virtual Machine)等であってもよい。
キャッシュシステム120は、キャッシュ装置130と、キャッシュ最適化装置140とを有する。キャッシュ装置130は、要求元装置100からアクセスされ、サーバ装置110により返信されたアクセス対象データをキャッシュ記憶領域135にキャッシュする。そして、キャッシュしたアクセス対象データをアクセスするアクセス要求を受けた場合に、キャッシュしたアクセス対象データをキャッシュ記憶領域135から要求元装置100へ返信する。本実施形態において、キャッシュ装置130は、最大K個のアクセス対象データをLRU方式によりキャッシュする。
キャッシュ最適化装置140は、本発明に係るキャッシュヒット率推定装置の一例であり、情報システム10による処理の実行中に、1又は複数の要求元装置100からサーバ装置110に対するアクセス要求の到着頻度や、キャッシュされたアクセス対象データの無効化頻度等の計測値を取得する。次に、キャッシュ最適化装置140は、これらの計測値に基づいて、キャッシュ装置130のキャッシュヒット率を推定し、キャッシュヒット率の推定関数に基づいてキャッシュ装置130によるアクセス処理性能の推定関数を生成する。そして、アクセス処理性能の推定値をより高める設定パラメータを算出し、キャッシュ装置130に設定する。このようにキャッシュ最適化装置140は、実環境に基づいてキャッシュ装置130のアクセス処理性能をモデル化し、当該モデルを用いて最適な設定パラメータをキャッシュ装置130に設定することにより、実環境に応じてキャッシュ装置130のアクセス処理性能を高めることができる。
以上において、1又は複数のサーバ装置110は、アクセス要求を受信すると、当該アクセス要求に対応するサーバプログラムをある処理時間実行して、アクセス対象データを生成する。ここで、アクセス要求を受信してからアクセス対象データを生成するまでの処理時間は、アクセス要求に対応するサーバプログラムの相違や、サーバ装置110を実現するコンピュータの相違等の要因により異なる。そこで、本実施形態に係るキャッシュ最適化装置140は、複数のアクセス対象データの少なくとも1つについて、キャッシュミス時のサーバ装置110の処理時間を示すアクセスコストが、他のアクセス対象データと異なる場合において、キャッシュ装置130のアクセス処理性能を最適化することを目的とする。
図2は、本実施形態に係るキャッシュ最適化装置140の構成を示す。キャッシュ最適化装置140は、パラメータ設定部200と、グループ対応統計情報取得部210と、アクセス要求到着頻度取得部215と、無効化要求到着頻度取得部220と、アクセス要求到着確率密度関数生成部225と、無効化要求到着確率密度関数生成部230と、次アクセスヒット時間分布関数生成部235と、キャッシュ有効時間分布関数生成部240と、キャッシュヒット率推定関数生成部245と、アクセス処理性能推定関数生成部250と、パラメータ変更部255とを備える。
パラメータ設定部200は、キャッシュの設定パラメータの初期値をキャッシュ装置130に設定する。ここで、パラメータ設定部200が設定する設定パラメータは、要求元装置100からのアクセス要求に対するアクセス処理性能を変化させるパラメータである。
グループ対応統計情報取得部210は、アクセス要求及び/又はアクセス応答についてキャッシュ装置130により計測された統計情報をキャッシュ装置130から取得する。本実施形態において、キャッシュ装置130にキャッシュされる各アクセス対象データは、アクセスコスト等に基づいて分類した複数のグループのいずれかに属する。一例として、アクセス要求に応じてサーバ装置110により生成されるアクセス対象データは、当該アクセス対象データを生成するサーバプログラム毎、すなわち例えばサーブレット、コマンド、又はWebサービスの種類毎にグループ化される。この場合、異なるサーバプログラムに対する複数のアクセス要求に対して生成される複数のアクセス対象データは、異なるグループに属する。一方、同一のサーバプログラムへ入力パラメータが異なる複数のアクセス要求が送信された場合に生成される複数のアクセス対象データは、同一のグループに属する。後者の具体的な例としては、ユーザIDの異なる複数の使用者が、同一のサーバプログラムに対してアクセスする場合等が挙げられる。
本実施形態において、グループ対応統計情報取得部210は、アクセス要求及びアクセス対象データのグループ毎に、キャッシュ装置130により計測された統計情報を取得する。
アクセス要求到着頻度取得部215は、グループ対応統計情報取得部210により取得された統計情報に基づいて、それぞれのアクセス対象データに対するアクセス要求について計測された平均到着頻度λiを取得する。無効化要求到着頻度取得部220は、グループ対応統計情報取得部210により取得された統計情報、及び平均到着頻度λiに基づいて、それぞれのアクセス対象データに対する無効化要求について計測された平均到着頻度μiを取得する。
アクセス要求到着確率密度関数生成部225は、それぞれのアクセス対象データに対するアクセス要求の平均到着頻度λiに基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数fi R(t)を生成する。無効化要求到着確率密度関数生成部230は、それぞれのアクセス対象データに対する無効化要求の平均到着頻度μiに基づいて、当該アクセス対象データに対する無効化要求の到着時間間隔の確率密度関数である無効化要求到着確率密度関数fi I(t)を生成する。
次アクセスヒット時間分布関数生成部235は、それぞれのアクセス対象データについて、アクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)に基づいて、次アクセスヒット時間分布関数Fi(t)を生成する。本実施形態において、次アクセスヒット時間分布関数は、当該アクセス対象データへのアクセス要求を受信した後、当該アクセス対象データがキャッシュから無効化される前に当該アクセス対象データに対する次のアクセス要求を受信する確率の時間分布関数である。
キャッシュ有効時間分布関数生成部240は、それぞれのアクセス対象データについて、アクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)に基づいて、キャッシュ有効時間分布関数Gi(t)を生成する。本実施形態において、キャッシュ有効時間分布関数Gi(t)は、予め定められた時点、すなわち例えば任意の時点を基準とし、当該アクセス対象データに対する少なくとも1つのアクセス要求を受信し、かつ、当該アクセス対象データがキャッシュから無効化されていない確率の時間分布関数である。
キャッシュヒット率推定関数生成部245は、複数のアクセス対象データのアクセス要求到着確率密度関数fi R(t)に基づいて、それぞれのアクセス対象データのキャッシュヒット率の推定関数hiを生成する。より具体的には、本実施形態に係るキャッシュヒット率推定関数生成部245は、それぞれのアクセス対象データについて、アクセス要求到着確率密度関数fi R(t)に基づく複数のアクセス対象データのキャッシュ有効時間分布関数Gi(t)と、当該アクセス対象データに対する次アクセスヒット時間分布関数Fi(t)とに基づいて、当該アクセス対象データのキャッシュヒット率推定関数hiを生成する。
アクセス処理性能推定関数生成部250は、それぞれのアクセス対象データのキャッシュヒット率推定関数hi、キャッシュヒット時のアクセスコストCi R、及びキャッシュミス時のアクセスコストCi Cに基づいて、アクセス処理性能の推定関数Cを生成する。パラメータ変更部255は、キャッシュ装置130に設定された設定パラメータを、アクセス処理性能推定関数Cによるアクセス処理性能の推定値をより高める設定パラメータに変更する。
図3は、本実施形態に係るグループ対応統計情報取得部210の構成を示す。グループ対応統計情報取得部210は、アクセス対象データの各グループi(i=1,2, …, M)の統計情報として、グループ対応アクセス要求回数requestFromClientsi、グループ対応キャッシュヒット回数hitsInMemoryi、グループ対応エントリ数entriesi、及びグループ対応無効化回数explicitInvalidationiをキャッシュ装置130から取得する。requestFromClientsiは、1又は複数の要求元装置100からグループiのアクセス対象データに対するアクセス要求を受信した回数の計測値である。hitsInMemoryiは、アクセス要求に対して、グループiのアクセス対象データがキャッシュヒットした回数の計測値である。entriesiは、グループiに属する全てのアクセス対象データのうち、キャッシュ装置130がキャッシュしているアクセス対象データの個数の計測値である。explicitInvalidationiは、グループiのアクセス対象データをキャッシュから無効化した回数の計測値である。なお、requestFromClientsi、hitsInMemoryi及びexplicitInvalidationiは、単位時間当たりのカウント値であってよく、entriesiは、単位時間当たりの平均値又は単位時間毎のサンプル値であってよい。グループ対応統計情報取得部210は、グループ対応キャッシュヒット率取得部300と、グループ対応エントリ数取得部310と、アクセス対象データ数算出部320と、グループ対応無効化数取得部330とを有し、これらの計測値に基づいて、アクセス対象データ毎の統計値を取得する。
グループ対応キャッシュヒット率取得部300は、以下の式(4)に示すように、それぞれのグループについて、グループ対応キャッシュヒット回数hitsInMemoryi及びグループ対応アクセス要求回数requestFromClientsiに基づいて、当該グループに属する全てのアクセス対象データについて計測された平均キャッシュヒット率Hiを取得する。
Figure 2005339198
ここで、同一グループに属する各アクセス対象データが同一のアクセス特性を有することを前提とすれば、同一グループに属する複数のアクセス対象データについては、同一の頻度でアクセスされる。このため、グループiの全アクセス対象データのキャッシュヒット率をHiと見なすことができる。
グループ対応エントリ数取得部310は、それぞれのグループについて、グループ対応エントリ数entriesiの計測値を取得する。アクセス対象データ数算出部320は、それぞれのグループについて、当該グループのグループ対応エントリ数entriesi及び当該グループの平均キャッシュヒット率Hiに基づいて、当該グループに属するアクセス対象データの数γiの推定値を算出する。ここで、同一グループに属する複数のアクセス対象データは、同一の頻度でアクセスされることから、アクセス対象データ数算出部320は、以下の式(5)に示すように、グループ対応エントリ数entriesiを平均キャッシュヒット率Hiで割ることにより、各グループに属するアクセス対象データの数γiの推定値を算出することができる。
Figure 2005339198
グループ対応無効化数取得部330は、それぞれのグループについて、グループ対応無効化回数explicitInvalidationiの計測値を取得する。本実施形態に係るキャッシュ装置130は、アクセス対象データに変更が生じた場合に、当該アクセス対象データをキャッシュから無効化して、再度サーバ装置110により生成させる。そこでキャッシュ装置130は、アクセス対象データに変更が生じた場合に、要求元装置100又はサーバ装置110から無効化要求を受けて、当該アクセス対象データを無効化する。グループ対応無効化数取得部330は、無効化要求によりアクセス対象データが無効化された回数を、グループ毎に計測する。
以上に示したグループ対応統計情報取得部210によれば、アクセス対象データを適切にグループ化しておくことにより、グループ毎の統計情報に基づいて、個々のアクセス対象データについての統計情報を近似的に求めることができる。このため、キャッシュ装置130は、グループ化した複数のアクセス対象データについての統計情報を計測することができ、個々のアクセス対象データの到着頻度が低い場合においても適切な統計値を得ることができる。
図4は、本実施形態に係るキャッシュ最適化装置140の動作フローを示す。
まず、パラメータ設定部200は、キャッシュの設定パラメータの初期値をキャッシュ装置130に設定する(ステップS400)。この初期値は、情報システム10の管理者等により予め定められてよい。情報システム10は、この設定に基づいて、アプリケーション処理を行う。本実施形態におけるキャッシュの設定パラメータは、一例として、それぞれのアクセス対象データをキャッシュするか否かをグループ毎に指定するパラメータである。
次に、グループ対応統計情報取得部210は、アクセス要求及び/又はアクセス応答についてキャッシュ装置130により計測された統計情報をキャッシュ装置130から取得する(S410)。そして、取得したグループ対応アクセス要求回数requestFromClientsi及びアクセス対象データ数算出部320により算出したアクセス対象データ数γiをアクセス要求到着頻度取得部215に供給する。また、取得したグループ対応キャッシュヒット回数hitsInMemoryi及びグループ対応無効化回数explicitInvalidationiを無効化要求到着頻度取得部220に供給する。
次に、アクセス要求到着頻度取得部215は、グループ対応統計情報取得部210により取得された統計情報に基づいて、それぞれのアクセス対象データに対するアクセス要求についての平均到着頻度λiの計測値を取得する(S420)。本実施形態において、アクセス要求到着頻度取得部215は、以下の式(6)に示すように、それぞれのグループについて、グループ対応アクセス要求回数requestFromClientsiを当該グループのアクセス対象データ数γiで割ることにより、各アクセス対象データに対するアクセス要求の平均到着頻度λiを取得する。ここで、グループ対応アクセス要求回数requestFromClientsiは、当該グループに属する全アクセス対象データについて計測された単位時間当たりのアクセス要求数、すなわち、アクセス要求の平均到着頻度である。
Figure 2005339198
次に、無効化要求到着頻度取得部220は、グループ対応統計情報取得部210により取得された統計情報に基づいて、それぞれのアクセス対象データに対する無効化要求の平均到着頻度μiの計測値を取得する(S430)。本実施形態において、無効化要求到着頻度取得部220は、以下の式(7)に示すように、それぞれのグループについて、アクセス要求到着頻度取得部215により取得されたアクセス要求の平均到着頻度λiと、グループ対応統計情報取得部210により取得されたグループ対応無効化回数explicitInvalidationi、及びグループ対応キャッシュヒット回数hitsInMemoryiとに基づいて、各アクセス対象データに対する無効化要求の平均到着頻度μiを取得する。
Figure 2005339198
次に、アクセス要求到着確率密度関数生成部225は、それぞれのアクセス対象データに対するアクセス要求の平均到着頻度λiに基づいて、当該アクセス対象データに対するアクセス要求到着確率密度関数fi R(t)を生成する(S440)。次に、無効化要求到着確率密度関数生成部230は、それぞれのアクセス対象データに対する無効化要求の平均到着頻度μiに基づいて、当該アクセス対象データに対するアクセス要求到着確率密度関数fi I(t)を生成する(S450)。
次に、次アクセスヒット時間分布関数生成部235は、それぞれのアクセス対象データについて、アクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)に基づいて、次アクセスヒット時間分布関数Fi(t)を生成する(S452)。より具体的には、次アクセスヒット時間分布関数生成部235は、次の(a)から(d)に示す手順により次アクセスヒット時間分布関数Fi(t)を生成する。
(a)当該アクセス対象データへの無効化要求を受信した後、次に当該アクセス対象データへの無効化要求を受信するまでの時間分布関数Fi I(t)を、無効化要求到着確率密度関数fi I(t)に基づいて生成(式(8))
Figure 2005339198
(b)任意の時点を基準として、次の無効化要求が到着するまでの時間(前方待ち時間)又は最後に無効化要求が到着してからの経過時間(後方経過時間)の時間分布関数Gi I(t)を、無効化要求到着確率密度関数fi I(t)及び時間分布関数Fi I(t)に基づいて生成(式(9))
Figure 2005339198
(c)任意の時点を基準として、ある時刻tまでに無効化要求が到着していない確率αi(t)を、時間分布関数Gi I(t)に基づいて生成(式(10))
Figure 2005339198
(d)確率αi(t)及びアクセス要求到着確率密度関数fi R(t)に基づいて、次アクセスヒット時間分布関数Fi(t)を生成(式(11))
Figure 2005339198
以上において、次アクセスヒット時間分布関数生成部235は、それぞれのアクセス対象データをキャッシュするか否かを設定する設定パラメータを入力とする次アクセスヒット時間分布関数Fi(t)を生成する。すなわち例えば、次アクセスヒット時間分布関数生成部235は、グループiのアクセス対象データをキャッシュしない場合に、グループiのアクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)を"0"として上記の計算を行う次アクセスヒット時間分布関数Fi(t)を生成する。
次に、キャッシュ有効時間分布関数生成部240は、それぞれのアクセス対象データについて、アクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)に基づいて、キャッシュ有効時間分布関数Gi(t)を生成する(S454)。より具体的には、キャッシュ有効時間分布関数生成部240は、次の(a)から(b)に示す手順によりキャッシュ有効時間分布関数Gi(t)を生成する。
(a)当該アクセス対象データへのアクセス要求を受信した後、次に当該アクセス対象データへのアクセス要求を受信するまでの時間分布関数Fi R(t)を、アクセス要求到着確率密度関数fi R(t)に基づいて生成(式(12))
Figure 2005339198
(b)次アクセスヒット時間分布関数生成部235が生成した確率αi(t)と、時間分布関数Fi R(t)及びアクセス要求到着確率密度関数fi R(t)に基づいて、キャッシュ有効時間分布関数Gi(t)を生成
キャッシュ有効時間分布関数Gi(t)は、時刻0からtの間にアクセス要求が到着し、アクセス要求の到着後時刻tまでに無効化要求が到着していない確率であるから、以下の式(13)により求めることができる。
Figure 2005339198
以上において、キャッシュ有効時間分布関数生成部240は、それぞれのアクセス対象データをキャッシュするか否かを設定する設定パラメータを入力とするキャッシュ有効時間分布関数Gi(t)を生成する。すなわち例えば、キャッシュ有効時間分布関数生成部240は、グループiのアクセス対象データをキャッシュしない場合に、グループiのアクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)を"0"として上記の計算を行うキャッシュ有効時間分布関数Gi(t)を生成する。
次に、キャッシュヒット率推定関数生成部245は、それぞれのグループに属するアクセス対象データについて、複数のアクセス対象データのキャッシュ有効時間分布関数Gi(t)と、当該アクセス対象データに対する次アクセスヒット時間分布関数Fi(t)とに基づいて、当該アクセス対象データのキャッシュヒット率推定関数hiを生成する(S460)。ここで、次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)は設定パラメータを入力とする関数であるから、キャッシュヒット率推定関数生成部245は、当該設定パラメータを入力とするキャッシュヒット率推定関数hiを生成することができる。
次に、アクセス処理性能推定関数生成部250は、それぞれのアクセス対象データのキャッシュヒット率推定関数hi、キャッシュヒット時のアクセスコストCi R、及びキャッシュミス時のアクセスコストCi Cに基づいて、アクセス処理性能の推定関数Cを生成する(S470)。より具体的には、アクセス処理性能推定関数生成部250は、グループ対応統計情報取得部210及びアクセス要求到着頻度取得部215により算出されたグループiのアクセス対象データ数γi及びアクセス要求の平均到着頻度λiと、アクセス対象データのキャッシュヒット率推定関数hiと、キャッシュヒット時及びミス時のアクセスコストCi R及びCi Cとに基づいて、以下の式(14)によりアクセス処理性能の推定関数Cを生成する。
Figure 2005339198
ここで、キャッシュヒット率推定関数hiは設定パラメータを入力とする関数であるから、アクセス処理性能推定関数生成部250は、当該設定パラメータを入力とするアクセス処理性能推定関数Cを生成することができる。
次に、パラメータ変更部255は、キャッシュ装置130に設定された設定パラメータを、アクセス処理性能推定関数によるアクセス処理性能の推定値をより高める設定パラメータに変更する(S480)。本実施形態に係るパラメータ変更部255は、以下の(a)から(d)に示す近傍探索法によりアクセス処理性能の推定値を高める設定パラメータを求め、キャッシュ装置130に設定する。
(a)現在の設定パラメータについてのアクセス処理性能の推定値を算出する。
(b)最適パラメータを空集合に初期化する。
(c)最適パラメータにおける各グループの設定パラメータについて、当該グループに属するアクセス対象データをキャッシュする場合及びキャッシュしない場合のアクセス処理性能の推定値を算出する。そして、当該アクセス対象データをキャッシュする場合に、キャッシュしない場合と比較してアクセス処理性能の推定値がより高くなることを条件として、当該グループに属するアクセス対象データをキャッシュする設定パラメータを最適パラメータに追加する。一方、当該アクセス対象データをキャッシュする場合に、キャッシュしない場合と比較してアクセス処理性能の推定値がより高くならないこと条件として、当該グループに属するアクセス対象データをキャッシュしない設定パラメータを最適パラメータに追加する。
(d)全てのグループについて(c)を行った結果得られた最適パラメータによるアクセス処理性能の推定値が、現在の設定パラメータについてのアクセス処理性能の推定値より高い場合に、最適パラメータをキャッシュ装置130に設定する。
なお、以上に示した(c)の処理に代えて、パラメータ変更部255は、以下に示す処理を行ってもよい。
(c’)現在の設定パラメータにおける各グループの設定パラメータについて、当該グループに属するアクセス対象データをキャッシュする設定となっている場合に、当該アクセス対象データをキャッシュしない場合のアクセス処理性能の推定値を算出する。そして、当該アクセス対象データをキャッシュしない場合に、最適パラメータと比較してアクセス処理性能の推定値が高くなることを条件として、現在の設定パラメータにおいて当該グループに属するアクセス対象データをキャッシュしないように変更した設定パラメータを最適パラメータとする。
一方、当該グループに属するアクセス対象データをキャッシュしない設定となっている場合に、当該アクセス対象データをキャッシュする場合のアクセス処理性能の推定値を算出する。そして、当該アクセス対象データをキャッシュする場合に、最適パラメータと比較してアクセス処理性能の推定値が高くなることを条件として、現在の設定パラメータにおいて当該グループに属するアクセス対象データをキャッシュする変更した設定パラメータを最適パラメータとする。
キャッシュ最適化装置140は、以上のS410からS480に示した処理を、例えば定期的に繰り返し行うことにより、キャッシュ装置130の設定パラメータを最適値に保つ(S490)。
以上の処理により、パラメータ変更部255は、アクセス対象データをキャッシュする場合に、キャッシュしない場合と比較してアクセス処理性能の推定値がより高くなることを条件として、当該アクセス対象データをキャッシュすることを指定する設定パラメータをキャッシュ装置130に設定することができる。そして、パラメータ変更部255は、アクセス処理性能推定関数Cに基づいて、全てのグループについてキャッシュ有無を指定する最適パラメータを予め求めてから、キャッシュ装置130に設定することができる。この結果、キャッシュ最適化装置140は、各グループについてキャッシュ有無を試行する場合と比較して、より効率良くキャッシュ装置130のアクセス処理性能を最適化することができる。
なお、キャッシュ装置130が、アクセス対象データをタイムアウト時に無効化する方式を採る場合、式(11)及び式(13)に示した次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)に代えて、以下に示す時間分布関数を用いることもできる。
この方式においては、キャッシュ装置130は、キャッシュしているアクセス対象データに対して無効化要求を受信した場合、又は、当該アクセス対象データをキャッシュしてから当該アクセス対象データに対してアクセス要求を受けることなく予め定められたタイムアウト時間τiが経過した場合に、当該アクセス対象データをキャッシュから無効化する。このため、アクセス要求が到着してからタイムアウト時間τiの経過後は、次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)が一定となる。そこで、次アクセスヒット時間分布関数生成部235及びキャッシュ有効時間分布関数生成部240は、予め定められたタイムアウト時間τiの経過前及び経過後の各区間について、異なる計算式を用いた次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)を生成する(式(15)及び式(16))。
Figure 2005339198
Figure 2005339198
また、以上において、アクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)が指数分布でない場合、式(11)及び(13)、又は式(15)及び(16)に示した積分関数を求めるのが困難となる場合がある。この場合において、次アクセスヒット時間分布関数生成部235及びキャッシュ有効時間分布関数生成部240は、線分で近似したアクセス要求到着確率密度関数fi R(t)及び無効化要求到着確率密度関数fi I(t)に基づいて、次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)を生成してもよい。
図5は、本実施形態に係るキャッシュヒット率推定関数生成部245の構成を示す。キャッシュヒット率推定関数生成部245は、エントリ数期待値関数生成部500と、キャッシュ充填時間算出部510と、次アクセスヒット率推定関数生成部520とを有する。
エントリ数期待値関数生成部500は、複数のアクセス対象データのキャッシュ有効時間分布関数Gi(t)に基づいて、エントリ数期待値関数G(t)を生成する。エントリ数期待値関数G(t)とは、無効化されることなくキャッシュされているアクセス対象データの数の期待値を求める関数である。ここで、キャッシュ有効時間分布関数Gi(t)は、グループiに属する1つのアクセス対象データに関して、当該アクセス対象データへのアクセス要求を受信した時点を基準とし、時刻tまでにアクセス要求が到着し、かつ、時刻tまでに無効化されていない確率である。したがって、エントリ数期待値関数生成部500は、キャッシュ有効時間分布関数Gi(t)にグループiに属するアクセス対象データの数γiを乗じて、無効化されることなくキャッシュされているグループiのアクセス対象データの数の期待値を求めることができる。そして、エントリ数期待値関数生成部500は、式(17)に示すように、この期待値を全てのグループについて合計することにより、エントリ数期待値関数G(t)を求めることができる。
Figure 2005339198
キャッシュ充填時間算出部510は、エントリ数期待値関数G(t)に基づいて、予め定められた時点を基準として、K個のアクセス対象データがキャッシュされるまでのキャッシュ充填時間Tfillの期待値を算出する。より具体的には、キャッシュ充填時間算出部510は、エントリ数期待値関数G(t)の値がキャッシュサイズKとなるまでの時間の期待値を以下の式(18)により算出し、キャッシュ充填時間Tfillの期待値とする。
Figure 2005339198
次アクセスヒット率推定関数生成部520は、それぞれのアクセス対象データについて、当該アクセス対象データに対するアクセス要求を受信してからキャッシュ充填時間Tfillの期待値により定められる時間の経過までに当該アクセス対象データに対する次のアクセス要求を受信する確率の関数を、次アクセスヒット時間分布関数Fi(t)に基づいて算出し、当該アクセス対象データのキャッシュヒット率推定関数hiとする。より具体的には、次アクセスヒット率推定関数生成部520は、キャッシュ充填時間Tfillが経過するまでに、注目するアクセス対象データへのアクセス要求が到着し、当該アクセス対象データが無効化されていない確率を、以下の式(19)により算出し、キャッシュヒット率推定関数hiとする。
Figure 2005339198
以上に示したキャッシュ最適化装置140によれば、LRU方式のキャッシュ装置130について、キャッシュミス時のアクセスコストがグループ間で異なる場合においても、各グループに属するアクセス対象データのキャッシュヒット率の推定値を解析的に求めることができる。そして、キャッシュ最適化装置140は、各グループについてのキャッシュヒット率に基づいて、アクセス処理性能の推定関数を精度良く求めることができる。この結果キャッシュ最適化装置140は、アクセス処理性能推定関数を用いて最適な設定パラメータを精度良く求めることができ、効率良くキャッシュ装置130のアクセス処理性能を高めることができる。
なお、アクセス対象データのタイムアウトを考慮した場合、時刻Tfillにおいてキャッシュされているアクセス対象データの数がK個であっても、時刻Tfill以前にK個を超えるアクセス対象データがキャッシュされた後タイムアウトにより無効化されたケースが考えられる。このようなケースにおいては、アクセス対象データがリプレースされるため、キャッシュミスとなる。したがって、キャッシュ最適化装置140は、上記の式(17)から(19)を満たすキャッシュヒット率推定関数hiを、キャッシュヒット率の上界を与える近似式として用いる。
また、アクセス対象データのタイムアウトを考慮した場合、次アクセスヒット時間分布関数Fi(t)及びキャッシュ有効時間分布関数Gi(t)は、時刻τiで不連続となる。そこで、エントリ数期待値関数生成部500は、各アクセス対象データをタイムアウト時間τiの値でソートし、複数のタイムアウト時間τiで区切られた各区間毎に、当該区間におけるキャッシュ充填時間Tfillの期待値を算出してもよい。
図6は、本実施形態の第1変形例に係るキャッシュ最適化装置140によるアクセス処理性能最適化方法の一例を示す。本変形例において、キャッシュ装置130は、それぞれのアクセス対象データ600を、キャッシュ装置130のキャッシュ記憶領域135を分割した複数のキャッシュ分割領域610のうち、当該アクセス対象データに対応して予め定められたキャッシュ分割領域610にキャッシュする。
図6(a)はアクセス対象データ600の配置変更によるアクセス処理性能最適化を示す。図6(a)において、キャッシュ装置130は、それぞれのアクセス対象データ600を、設定パラメータにより定められた、当該アクセス対象データに対応するキャッシュ分割領域610にキャッシュする。そして、キャッシュ最適化装置140は、設定パラメータを変更して、それぞれのアクセス対象データ600を、いずれのキャッシュ分割領域610にキャッシュするかを最適化することにより、キャッシュ装置130のアクセス処理性能を高める。
より具体的には、まずパラメータ設定部200は、それぞれのアクセス対象データ600を、いずれのキャッシュ分割領域610にキャッシュするかを設定パラメータの初期値によりキャッシュ装置130に設定する。ここでパラメータ設定部200は、少なくとも1つのアクセス対象データ600を、キャッシュしないことを設定してもよい。
次に、キャッシュヒット率推定関数生成部245及びアクセス処理性能推定関数生成部250は、それぞれのアクセス対象データ600をいずれのキャッシュ分割領域610にキャッシュするか、又は、キャッシュしないかの対応を指定する組み合わせを入力とするキャッシュヒット率推定関数hi及びアクセス処理性能推定関数Cを生成する。例えば、キャッシュヒット率推定関数生成部245及びアクセス処理性能推定関数生成部250は、キャッシュ分割領域610毎に、当該キャッシュ分割領域610にキャッシュされる各アクセス対象データについてのヒット率推定関数及びアクセス処理性能推定関数を生成し、キャッシュ分割領域610毎のアクセス処理性能推定関数を合計することにより、キャッシュ装置130のアクセス処理性能推定関数Cを生成する。
そして、パラメータ変更部255は、それぞれのアクセス対象データ600をいずれのキャッシュ分割領域610にキャッシュするか、又は、キャッシュしないかの対応を第1の組み合わせとした場合に、第2の組み合わせとした場合と比較してアクセス処理性能の推定値がより高くなることを条件として、当該対応を第1の組み合わせとする設定パラメータをキャッシュ装置130に設定する。より具体的には、パラメータ変更部255は、図4のS480に関連して示した近傍探索法と同様にして、それぞれのアクセス対象データ600をいずれのキャッシュ分割領域610にキャッシュするか、又は、キャッシュしないかの対応の最適パラメータを探索し、キャッシュ装置130に設定する。
図6(b)はキャッシュ分割領域610のサイズ変更によるアクセス処理性能最適化を示す。図6(b)において、キャッシュ最適化装置140は、設定パラメータを変更して、予めアクセス対象データ600の割り当てが定められた複数のキャッシュ分割領域610のそれぞれについて、キャッシュ記憶領域135に対する当該キャッシュ分割領域610の割合を最適化することにより、キャッシュ装置130のアクセス処理性能を高める。
より具体的には、キャッシュヒット率推定関数生成部245及びアクセス処理性能推定関数生成部250は、キャッシュ記憶領域135に対する複数のキャッシュ分割領域610の割合の組み合わせを入力とするキャッシュヒット率推定関数hi及び前記アクセス処理性能推定関数Cを生成する。例えばキャッシュヒット率推定関数生成部245及びアクセス処理性能推定関数生成部250は、キャッシュ分割領域610毎に、キャッシュできるアクセス対象データの個数Kを入力とする、当該キャッシュ分割領域610にキャッシュされる各アクセス対象データについてのヒット率推定関数及びアクセス処理性能推定関数を生成する。そして、キャッシュ分割領域610毎のアクセス処理性能推定関数を合計することにより、キャッシュ装置130のアクセス処理性能推定関数Cを生成する。
そして、パラメータ変更部255は、複数のキャッシュ分割領域610の割合の組み合わせを第1の組み合わせとした場合に、第2の組み合わせとした場合と比較してアクセス処理性能の推定値がより高くなることを条件として、複数のキャッシュ分割領域610の割合の組み合わせを第1の組み合わせとする設定パラメータをキャッシュ装置130に設定する。より具体的には、パラメータ変更部255は、最急勾配法を用いてアクセス処理性能の推定値を最大とするキャッシュ分割領域610の割合の組み合わせを求め、キャッシュ装置130に設定する。
以上に示した第1変形例に係るキャッシュ最適化装置140によれば、各アクセス対象データ600を複数のキャッシュ分割領域610に割り当てる場合において、アクセス対象データ600の割り当て及び/又は各キャッシュ分割領域610のサイズを最適化することができる。
図7は、本実施形態の第2変形例に係るキャッシュ装置130の構成を示す。本変形例に係るキャッシュ装置130は,優先度付のLRUキャッシュ方式を採用する。キャッシュ装置130は、キャッシュ記憶領域135と、アクセス要求処理部700と、LRUリスト管理部710と、エントリ移動部730と、LRUシフト部740と、統計情報計測部750とを備える。
アクセス要求処理部700は、要求元装置100からのアクセス要求を処理する。より具体的には、アクセス要求処理部700は、アクセス要求に対応するアクセス対象データ600がキャッシュ記憶領域135にキャッシュされているか否かを、LRUリスト管理部710により管理される情報に基づいて判定する。そして、アクセス要求処理部700は、当該アクセス対象データ600がキャッシュされている場合に、当該アクセス対象データ600をキャッシュ記憶領域135から読み出して要求元装置100へ返信する。一方、アクセス要求処理部700は、当該アクセス対象データ600がキャッシュされていない場合に、アクセス要求をサーバ装置110へ転送する。そしてアクセス要求処理部700は、サーバ装置110から返信されたアクセス対象データ600を要求元装置100へ返信すると共にキャッシュ記憶領域135に登録する。
LRUリスト管理部710は、キャッシュ記憶領域135に記憶された複数のアクセス対象データ600を管理する。本変形例において、それぞれのアクセス対象データ600には、当該アクセス対象データ600をキャッシュする優先度が定められる。このため、LRUリスト管理部710は、キャッシュされたアクセス対象データ600をLRU方式により管理する、優先度毎に設けられた複数のLRUリスト715を有する。各LRUリスト715は、キャッシュ記憶領域135に記憶されたアクセス対象データ600を特定する1又は複数のポインタ720をリスト構造により管理する。
エントリ移動部730は、アクセス要求を受けたアクセス対象データ600を、当該アクセス対象データ600の優先度に対応するLRUリスト715の先頭に移動する。これにより、エントリ移動部730は、各アクセス対象データ600の優先度を反映させたLRUキャッシュを実現することができる。
LRUシフト部740は、優先度が最も低いLRUリスト715が空となった場合に、複数のLRUリスト715のそれぞれに登録されたアクセス対象データ600を、より優先度が低いLRUリスト715に登録し直すシフト処理を行う。すなわち例えば、LRUリスト管理部710が第1から第3LRUリスト715を有し、第1LRUリスト715の優先度が最も低い場合において、LRUシフト部740は、第1LRUリスト715が空となったことを条件として、第2LRUリスト715に登録されたアクセス対象データ600を第1LRUリスト715に登録し直し、第3LRUリスト715に登録されたアクセス対象データ600を第2LRUリスト715に登録し直す。
統計情報計測部750は、例えばグループ対応アクセス要求回数requestFromClientsi、グループ対応キャッシュヒット回数hitsInMemoryi、グループ対応エントリ数entriesi、及びグループ対応無効化回数explicitInvalidationi等の、アクセス要求及び/又はアクセス応答についての統計情報を計測し、キャッシュ最適化装置140内のグループ対応統計情報取得部210へ供給する。
以上に示したキャッシュ装置130によれば、より優先度が高いアクセス対象データ600の方が、より優先度が高いLRUリスト715に登録される。このため、キャッシュ装置130は、各アクセス対象データ600を、優先度にほぼ比例した期間の間キャッシュ記憶領域135に滞在させることができる。
図8は、本実施形態の第2変形例に係るキャッシュヒット率推定関数生成部245の構成を示す。本変形例に係るキャッシュヒット率推定関数生成部245は、図7に示したキャッシュ装置130について各アクセス対象データのキャッシュヒット率推定関数hiを生成することができる。図7に示したキャッシュ装置130においては、各LRUリスト715に対してシフト処理が行われる度に、不連続に状態が変化する。このため、本変形例に係るキャッシュヒット率推定関数生成部245は、定期的にLRUリスト715がシフト処理が行われるものとして優先度付LRUキャッシュをモデル化する。
キャッシュヒット率推定関数生成部245は、エントリ数期待値関数生成部800と、シフト周期算出部810と、リプレース時間算出部820と、次アクセスヒット率推定関数生成部830と、次アクセスヒット率平均化部840とを有する。エントリ数期待値関数生成部800は、複数のアクセス対象データのキャッシュ有効時間分布関数Gi(t)に基づいて、エントリ数期待値関数H(t)を生成する。ここで、エントリ数期待値関数H(t)は、直前のシフト処理を基準として、時刻tにおける、複数のLRUリスト715に登録されたアクセス対象データの合計数の期待値を求める関数である。より具体的には、エントリ数期待値関数生成部800は、グループ毎のキャッシュ有効時間分布関数Gi(t)と、グループ毎のアクセス対象データの数γiと、グループ毎のアクセス対象データの優先度φiとに基づいて、以下の式(20)によりエントリ数期待値関数H(t)を生成する。
Figure 2005339198
式(20)においては、各アクセス対象データは、その優先度φiの回数分シフトが起きなければキャッシュから掃き出されないことを反映し、キャッシュ有効時間分布関数への入力をφi・tとしている。
シフト周期算出部810は、エントリ数期待値関数H(t)に基づいて、シフト処理の周期の期待値Trを算出する。より具体的には、シフト周期算出部810は、エントリ数期待値関数H(t)の値がキャッシュサイズKとなるまでの時間の期待値を、以下の式(21)により算出し、シフト処理の周期の期待値Trとする。
Figure 2005339198
リプレース時間算出部820は、シフト処理の周期を複数に等分(例えばL等分)した各時点において、アクセス対象データへのアクセス要求を受けてから当該アクセス対象データが他のアクセス対象データに置換されるまでのリプレース時間の期待値G(t,l)を算出する。より具体的には、キャッシュ装置130においては、注目するアクセス対象データより優先度が高い他のアクセス対象データがキャッシュされていくことにより、当該アクセス対象データがリプレースされる。ここで、当該アクセス対象データは、シフト処理が行われる度に優先度が低下する結果、当該アクセス対象データのリプレースに寄与する他のアクセス対象データの数が増加していく。これらを反映し、リプレース時間算出部820は、グループiについてのキャッシュ有効時間分布関数Gi(t)及び優先度φiと、グループiに属するアクセス対象データの数γiと、シフト処理の周期の期待値Trとに基づいて、以下の式(22)によりリプレース時間の期待値G(t,l)を算出する。
Figure 2005339198
次アクセスヒット率推定関数生成部830は、それぞれのアクセス対象データについて、次アクセスヒット時間分布関数Fi(t)及びリプレース時間G(t,l)に基づいて、次アクセスヒット率推定関数hi,lを生成する。ここで、次アクセスヒット率推定関数hi,lは、シフト処理の周期をL等分した各時点において当該アクセス対象データに対するアクセス要求を受信してからリプレース時間の期待値により定められる時間Trの経過までに、当該アクセス対象データに対する次のアクセス要求を受信する確率である。より具体的には、次アクセスヒット率推定関数生成部830は、図5に示したキャッシュ充填時間算出部510及び次アクセスヒット率推定関数生成部520と同様にして、以下の式(23)により次アクセスヒット率推定関数hi,lを生成する。
Figure 2005339198
次アクセスヒット率平均化部840は、それぞれのアクセス対象データについて、シフト処理の周期を複数に等分した複数の時点のそれぞれにおいて当該アクセス対象データに対するアクセス要求を受信した場合の次アクセスヒット率推定関数hi,lを全ての時点について平均し、当該アクセス対象データのキャッシュヒット率推定関数hiとする。すなわち、次アクセスヒット率平均化部840は、以下の式(24)によりキャッシュヒット率推定関数hiを生成する。
Figure 2005339198
本変形例に係るキャッシュ最適化装置140によれば、パラメータ変更部255は、図4のS480に関して説明した近傍探索法と同様にして、各グループのアクセス対象データをキャッシュする優先度φiについて、アクセス処理性能の推定値を高める設定パラメータを求め、キャッシュ装置130に設定する。すなわち、キャッシュヒット率推定関数生成部245及びアクセス処理性能推定関数生成部250は、それぞれの前記アクセス対象データをキャッシュする優先度を入力とするキャッシュヒット率推定関数hi及びアクセス処理性能推定関数Cを生成する。そして、パラメータ変更部255は、あるアクセス対象データをキャッシュする優先度を第1の優先度とした場合に、第2の優先度とした場合と比較してアクセス処理性能の推定値がより高くなることを条件として、当該アクセス対象データをキャッシュする優先度を第1の優先度とする設定パラメータをキャッシュ装置130に設定する。これにより、キャッシュ最適化装置140は、優先度付のLRUキャッシュ方式を採用するキャッシュ装置130について、各アクセス対象データをキャッシュする優先度の設定パラメータを最適化することができる。
図9は、本実施形態に係る第3変形例に係るキャッシュ最適化装置140の構成を示す。図9において図2と同一符号を付した部材は、図2と同様の機能及び構成を備えるため、以下相違点を除き説明を省略する。
本変形例に係るキャッシュ最適化装置140は、複数のキャッシュ装置130に対する各アクセス対象データの割り当てを更に最適化する。これを実現するために、キャッシュ最適化装置140は、図2に示したキャッシュ最適化装置140に加え、統合時関数生成部920、グループ統合部930、分割時関数生成部940、及びグループ分割部950を備える。
統合時関数生成部920及びグループ統合部930は、複数のキャッシュ装置130における同一アクセス特性のグループを統合して、一のキャッシュ装置130におけるグループとする処理を行う。すなわち例えば、第1のキャッシュ装置130として機能する第1のJVMと、第2のキャッシュ装置130として機能する第2のJVMとが稼動している場合において、第1のJVMのアクセス処理を、第2のJVMに担当させるようにアクセス処理の割り当てを変更する。
統合時関数生成部920は、複数のキャッシュ装置130におけるそれぞれのグループを、一のキャッシュ装置130における対応するグループに統合した場合におけるアクセス処理性能推定関数Cを生成する。ここで、複数のグループを統合する場合、アクセス要求の総量γiλi及び無効化要求の総量γiμiは変化しない。一方、同一アクセス特性のグループを統合するため、当該グループに属するアクセス対象データの総数γiが変化する場合と、各アクセス対象データに対するアクセス要求及び無効化要求の平均到着頻度λi及びμiが変化する場合が有り得る。
アクセス対象データの総数γiが変化する場合の一例としては、複数のキャッシュ装置130が、異なる利用者に対して同一のサービスを提供している場合が挙げられる。このような場合には、アクセス処理を統合すると、各利用者についてのアクセス要求及び無効化要求の平均到着頻度は変化しないが、アクセス対象データの総数γiは統合前のアクセス対象データの数の合計となる。そこで統合時関数生成部920は、このケースにおいては、統合後のアクセス要求及び無効化要求の平均到着頻度λi及びμiを統合前の各キャッシュ装置130における平均到着頻度と同一とする一方、統合後のアクセス対象データの数γiを、統合前の各キャッシュ装置130におけるアクセス対象データの数の合計とするようグループ対応統計情報取得部210に指示する。この指示を受けると、グループ対応統計情報取得部210はアクセス対象データの数を変更し、アクセス要求到着頻度取得部215、無効化要求到着頻度取得部220、アクセス要求到着確率密度関数生成部225、無効化要求到着確率密度関数生成部230、次アクセスヒット時間分布関数生成部235、キャッシュ有効時間分布関数生成部240、キャッシュヒット率推定関数生成部245、及びアクセス処理性能推定関数生成部250は統合後のアクセス処理性能推定関数Cを生成する。
各アクセス対象データに対するアクセス要求及び無効化要求の平均到着頻度λi及びμiが変化する場合の一例としては、複数のキャッシュ装置130が、利用者からのアクセス処理に対してサービスを分散処理により提供している場合が挙げられる。このような場合には、アクセス処理を統合すると、アクセス対象データの数は変化しないが、各利用者についてのアクセス要求及び無効化要求の平均到着頻度λi及びμiは統合前の値の合計となる。そこで統合時関数生成部920は、このケースにおいては、統合後のアクセス要求及び無効化要求の平均到着頻度λi及びμiを、統合前の各キャッシュ装置130におけるアクセス要求及び無効化要求の平均到着頻度の合計とするようアクセス要求到着頻度取得部215及び無効化要求到着頻度取得部220に指示する。この指示を受けると、アクセス要求到着頻度取得部215及び無効化要求到着頻度取得部220はアクセス要求及び無効化要求の平均到着頻度を変更し、アクセス要求到着確率密度関数生成部225、無効化要求到着確率密度関数生成部230、次アクセスヒット時間分布関数生成部235、キャッシュ有効時間分布関数生成部240、キャッシュヒット率推定関数生成部245、及びアクセス処理性能推定関数生成部250は統合後のアクセス処理性能推定関数Cを生成する。
そして、統合時関数生成部920は、上記の指示により変更されたパラメータに基づいてアクセス処理性能推定関数生成部250により生成されたアクセス処理性能推定関数Cを取得することにより、統合後におけるアクセス処理性能推定関数C'を生成する。
グループ統合部930は、コンピュータ900により生成されたアクセス処理性能推定関数C'によるアクセス処理性能の推定値が、複数のキャッシュ装置130のアクセス処理性能の推定値の合計より高い場合に、複数のキャッシュ装置130におけるそれぞれのグループを、一のキャッシュ装置130における対応するグループに統合する。すなわちグループ統合部930は、パラメータ変更部255を介してグループの統合をキャッシュ装置130に指示する。
分割時関数生成部940及びグループ分割部950は、一のキャッシュ装置130におけるグループを、複数のキャッシュ装置130に分割する処理を行う。すなわち例えば、第1のJVMのアクセス処理を、新たに起動した第2のJVMに一部分担させるようにアクセス処理の割り当てを変更する。
分割時関数生成部940は、一のキャッシュ装置130におけるそれぞれのグループを、複数のキャッシュ装置130における対応するグループに分割した場合における複数のキャッシュ装置130のそれぞれのアクセス処理性能推定関数を生成する。このようにグループを分割した場合においても、アクセス要求の総量γiλi及び無効化要求の総量γiμiは変化しない。一方、グループを統合する場合と同様に、各グループに属するアクセス対象データの数が変化する場合と、各アクセス対象データに対するアクセス要求及び無効化要求の平均到着頻度が変化する場合が有り得る。
アクセス対象データの数を変化させる場合、分割時関数生成部940は、分割後の各キャッシュ装置130における分割対象グループのアクセス対象データの数の合計値を、分割前のキャッシュ装置130における当該グループのアクセス対象データ数とするようにグループ対応統計情報取得部210に指示し、分割後の各キャッシュ装置130におけるアクセス対象データの数を変更する。この指示を受けると、グループ対応統計情報取得部210は、例えば分割前のキャッシュ装置130におけるアクセス対象データ数を、分割後のキャッシュ装置130の数で割る等の処理を行なって、分割後の各キャッシュ装置130におけるアクセス対象データの数を算出する。そして、アクセス要求到着頻度取得部215、無効化要求到着頻度取得部220、アクセス要求到着確率密度関数生成部225、無効化要求到着確率密度関数生成部230、次アクセスヒット時間分布関数生成部235、キャッシュ有効時間分布関数生成部240、キャッシュヒット率推定関数生成部245、及びアクセス処理性能推定関数生成部250は分割後の各キャッシュ装置130におけるアクセス処理性能推定関数を生成する。
一方、アクセス要求及び無効化要求の平均到着頻度を変化させる場合、分割時関数生成部940は、分割後の各キャッシュ装置130における平均到着頻度の合計値を、分割前のキャッシュ装置130における当該グループの平均到着頻度とするようアクセス要求到着頻度取得部215及び無効化要求到着頻度取得部220に指示し、分割後の各キャッシュ装置130における平均到着頻度を変更する。この指示を受けると、アクセス要求到着頻度取得部215及び無効化要求到着頻度取得部220は、例えば分割前のキャッシュ装置130における平均到着頻度を、分割後のキャッシュ装置130の数で割る等の処理を行なって、分割後の各キャッシュ装置130における平均到着頻度を算出する。そして、アクセス要求到着頻度取得部215、無効化要求到着頻度取得部220、アクセス要求到着確率密度関数生成部225、無効化要求到着確率密度関数生成部230、次アクセスヒット時間分布関数生成部235、キャッシュ有効時間分布関数生成部240、キャッシュヒット率推定関数生成部245、及びアクセス処理性能推定関数生成部250は分割後の各キャッシュ装置130におけるアクセス処理性能推定関数を生成する。
そして、分割時関数生成部940は、上記の指示により変更されたパラメータに基づいてアクセス処理性能推定関数生成部250により生成された各キャッシュ装置130のアクセス処理性能推定関数を取得することにより、分割後における各キャッシュ装置130のアクセス処理性能推定関数を生成する。
グループ分割部950は、分割時関数生成部940により生成されたアクセス処理性能推定関数によるアクセス処理性能の推定値の合計が、分割前の一のキャッシュ装置130のアクセス処理性能の推定値より高い場合に、一のキャッシュ装置130におけるそれぞれのグループを、複数のキャッシュ装置130における対応するグループに分割する。すなわち、グループ分割部950は、パラメータ変更部255を介してグループの分割をキャッシュ装置130に指示する。
以上に示したグループ統合部930及びグループ分割部950によれば、複数のグループを1つのグループに統合し、又は、1つのグループを複数に分割することにより、キャッシュ装置130の数をより好適に変化させることができる。更に、グループ統合部930及びグループ分割部950は、次のようにして協調動作することにより、複数のキャッシュ装置130の割り当てを初期状態に戻して割り当て直すことができる。
まず、グループ統合部930は、複数のキャッシュ装置130におけるそれぞれのグループを、一のキャッシュ装置130における対応するグループに統合する。次に、グループ分割部950は、一のキャッシュ装置130に統合されたグループを複数のキャッシュ装置130に分割した場合のアクセス処理性能の推定値を、異なる数のキャッシュ装置130に分割する場合のそれぞれについて求める。そして、グループ分割部950は、一のキャッシュ装置130に統合されたグループを、アクセス処理性能の推定値が最も高くなる数のキャッシュ装置130に分割する。
以上に示したキャッシュ最適化装置140によれば、複数のキャッシュ装置130を用いることができる場合において、グループの統合・分割により最適な数のキャッシュ装置130を用いてアクセス処理を行わせることができる。これによりキャッシュ最適化装置140は、アクセス要求の到着頻度に基づいてアプリケーションサーバを稼動させるJVMの数を動的に変更し、SLA(Service Level Agreement)を保証することができる。
図10は、本実施形態に係るコンピュータ900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ900は、ホスト・コントローラ1082により相互に接続されるCPU1000、RAM1020、グラフィック・コントローラ1075、及び表示装置1080を有するCPU周辺部と、入出力コントローラ1084によりホスト・コントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスク・ドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホスト・コントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィック・コントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ1075は、CPU1000等がRAM1020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィック・コントローラ1075は、CPU1000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ1084は、ホスト・コントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、CD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ1040は、コンピュータ900内のCPU1000が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020を介してハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスク・ドライブ1050、及び入出力チップ1070の比較的低速な入出力装置とが接続される。ROM1010は、コンピュータ900が起動時に実行するブート・プログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、RAM1020を介してハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク・ドライブ1050や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
RAM1020を介してハードディスクドライブ1040に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM1020を介してコンピュータ900内のハードディスクドライブ1040にインストールされ、CPU1000において実行される。
コンピュータ900にインストールされ、コンピュータ900をキャッシュ最適化装置140として機能させるプログラムは、パラメータ設定モジュールと、グループ対応統計情報取得モジュールと、アクセス要求到着頻度取得モジュールと、無効化要求到着頻度取得モジュールと、アクセス要求到着確率密度関数生成モジュールと、無効化要求到着確率密度関数生成モジュールと、次アクセスヒット時間分布関数生成モジュールと、キャッシュ有効時間分布関数生成モジュールと、キャッシュヒット率推定関数生成モジュールと、アクセス処理性能推定関数生成モジュールと、パラメータ変更モジュールと、統合時関数生成モジュールと、グループ統合モジュールと、分割時関数生成モジュールと、グループ分割モジュールとを備える。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、パラメータ設定部200と、グループ対応統計情報取得部210と、アクセス要求到着頻度取得部215と、無効化要求到着頻度取得部220と、アクセス要求到着確率密度関数生成部225と、無効化要求到着確率密度関数生成部230と、次アクセスヒット時間分布関数生成部235と、キャッシュ有効時間分布関数生成部240と、キャッシュヒット率推定関数生成部245と、アクセス処理性能推定関数生成部250と、パラメータ変更部255と、統合時関数生成部920と、グループ統合部930と、分割時関数生成部940と、グループ分割部950としてそれぞれ機能させる。
グループ対応統計情報取得モジュールは、グループ対応キャッシュヒット率取得モジュールと、グループ対応エントリ数取得モジュールと、アクセス対象で−多数算出モジュールと、グループ対応無効化数取得モジュールとを有する。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、グループ対応キャッシュヒット率取得部300と、グループ対応エントリ数取得部310と、アクセス対象データ数算出部320と、グループ対応無効化数取得部330としてそれぞれ機能させる。
キャッシュヒット率推定関数生成モジュールは、エントリ数期待値関数生成モジュール、キャッシュ充填時間算出モジュール、及び次アクセスヒット率推定関数生成モジュール、又は、エントリ数期待値関数生成モジュール、シフト周期算出モジュール、リプレース時間算出モジュール、次アクセスヒット率推定関数生成モジュール、及び次アクセスヒット率平均化モジュールを有する。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、エントリ数期待値関数生成部500、キャッシュ充填時間算出部510、次アクセスヒット率推定関数生成部520、エントリ数期待値関数生成部800、シフト周期算出部810、リプレース時間算出部820、次アクセスヒット率推定関数生成部830、及び次アクセスヒット率平均化部840としてそれぞれ機能させる。
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ900に提供してもよい。
以上に示したキャッシュ最適化装置140によれば、人手による最適設定が困難であったWebアプリケーションに関するキャッシュの構成及びポリシーの設定を効率良く行うことができる。また、本実施形態に係るキャッシュ最適化装置140によれば、LRUキャッシュ又は優先度付LRUキャッシュを備える各種のキャッシュ装置130について、キャッシュヒット率の近似値を算出することができ、算出したキャッシュヒット率に基づいて最適な設定パラメータを効率良く設定することができる。
以下に、本実施形態において示した式(19)又は式(24)によるキャッシュヒット率の推定値と、イベント駆動型シミュレーションにより求めたキャッシュヒット率との比較結果を示す。この比較においては、250個のアクセス対象データをそれぞれ有する4つのグループからなるキャッシュモデルを用いて、キャッシュサイズKを100から1000まで100単位で変化させながら、アクセス要求のみ受ける場合、アクセス要求及び無効化要求を受ける場合、更にタイムアウトにより無効化される場合、及び、更に優先度を考慮する場合のそれぞれについて評価を行った。この結果、式(19)又は式(24)によるキャッシュヒット率の推定値とイベント駆動型シミュレーションによるキャッシュヒット率の差は最大で0.016であった。このことから、本実施形態に係るキャッシュ最適化装置140は、キャッシュヒット率を、イベント駆動型シミュレーションと同等の精度で関数計算により高速に求めることができると言える。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
例えば、キャッシュ装置130が、アクセス対象データの更新時にキャッシュを更新する方式を採る場合、式(14)に示したアクセス処理性能推定関数に代えて、式(25)に示したアクセス処理性能推定関数を用いてもよい。
Figure 2005339198
式(25)においては、アクセス対象データ更新の平均頻度をμi、更新処理のコストをCi μとし、キャッシュヒット率hiはアクセス要求及び更新要求の合計値とする。
本発明の実施形態に係る情報システム10の構成を示す。 本発明の実施形態に係るキャッシュ最適化装置140の構成を示す。 本発明の実施形態に係るグループ対応統計情報取得部210の構成を示す。 本発明の実施形態に係るキャッシュ最適化装置140の動作フローを示す。 本発明の実施形態に係るキャッシュヒット率推定関数生成部245の構成を示す。 本発明の実施形態の第1変形例に係るキャッシュ最適化装置140によるアクセス処理性能最適化方法を示す。図6(a)はアクセス対象データ600の配置変更によるアクセス処理性能最適化を、図6(b)はキャッシュ分割領域610のサイズ変更によるアクセス処理性能最適化を示す。 本発明の実施形態の第2変形例に係るキャッシュ装置130の構成を示す。 本発明の実施形態の第2変形例に係るキャッシュヒット率推定関数生成部245の構成を示す。 本発明の実施形態に係る第3変形例に係るキャッシュ最適化装置140の構成を示す。 本発明の実施形態に係るコンピュータ900のハードウェア構成の一例を示す。
符号の説明
10 情報システム
100 要求元装置
110 サーバ装置
120 キャッシュシステム
130 キャッシュ装置
135 キャッシュ記憶領域
140 キャッシュ最適化装置
200 パラメータ設定部
210 グループ対応統計情報取得部
215 アクセス要求到着頻度取得部
220 無効化要求到着頻度取得部
225 アクセス要求到着確率密度関数生成部
230 無効化要求到着確率密度関数生成部
235 次アクセスヒット時間分布関数生成部
240 キャッシュ有効時間分布関数生成部
245 キャッシュヒット率推定関数生成部
250 アクセス処理性能推定関数生成部
255 パラメータ変更部
300 グループ対応キャッシュヒット率取得部
310 グループ対応エントリ数取得部
320 アクセス対象データ数算出部
330 グループ対応無効化数取得部
500 エントリ数期待値関数生成部
510 キャッシュ充填時間算出部
520 次アクセスヒット率推定関数生成部
600 アクセス対象データ
610 キャッシュ分割領域
700 アクセス要求処理部
710 LRUリスト管理部
715 LRUリスト
720 ポインタ
730 エントリ移動部
740 LRUシフト部
750 統計情報計測部
800 エントリ数期待値関数生成部
810 シフト周期算出部
820 リプレース時間算出部
830 次アクセスヒット率推定関数生成部
840 次アクセスヒット率平均化部
920 統合時関数生成部
930 グループ統合部
940 分割時関数生成部
950 グループ分割部
900 コンピュータ
1000 CPU
1010 ROM
1020 RAM
1030 通信インターフェイス
1040 ハードディスクドライブ
1050 フレキシブルディスク・ドライブ
1060 CD−ROMドライブ
1070 入出力チップ
1075 グラフィック・コントローラ
1080 表示装置
1082 ホスト・コントローラ
1084 入出力コントローラ
1090 フレキシブルディスク
1095 CD−ROM

Claims (18)

  1. 要求元装置からアクセスされたアクセス対象データをキャッシュするキャッシュ装置のキャッシュヒット率を推定するキャッシュヒット率推定装置であって、
    複数の前記アクセス対象データの少なくとも1つは、キャッシュミス時のアクセスコストが他の前記アクセス対象データと異なるものであり、
    それぞれの前記アクセス対象データに対するアクセス要求について計測された平均到着頻度を取得するアクセス要求到着頻度取得部と、
    それぞれのアクセス対象データに対するアクセス要求の平均到着頻度に基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数を生成するアクセス要求到着確率密度関数生成部と、
    前記複数のアクセス対象データの前記アクセス要求到着確率密度関数に基づいて、それぞれの前記アクセス対象データのキャッシュヒット率の推定関数を生成するキャッシュヒット率推定関数生成部と
    を備えるキャッシュヒット率推定装置。
  2. 前記要求元装置からのアクセス要求に対するアクセス処理性能を変化させる設定パラメータを前記キャッシュ装置に設定するパラメータ設定部と、
    それぞれの前記アクセス対象データの前記キャッシュヒット率推定関数及び前記キャッシュミス時のアクセスコストに基づいて、前記アクセス処理性能の推定関数を生成するアクセス処理性能推定関数生成部と、
    前記キャッシュ装置に設定された前記設定パラメータを、前記アクセス処理性能推定関数による前記アクセス処理性能の推定値をより高める前記設定パラメータに変更するパラメータ変更部と
    を更に備える請求項1記載のキャッシュヒット率推定装置。
  3. 前記キャッシュヒット率推定関数生成部及び前記アクセス処理性能推定関数生成部は、それぞれの前記アクセス対象データをキャッシュするか否かを設定する設定パラメータを入力とする前記キャッシュヒット率推定関数及び前記アクセス処理性能推定関数を生成し、
    前記パラメータ変更部は、一の前記アクセス対象データをキャッシュする場合に、キャッシュしない場合と比較して前記アクセス処理性能の推定値がより高くなることを条件として、前記一のアクセス対象データをキャッシュすることを指定する前記設定パラメータを前記キャッシュ装置に設定する
    請求項2記載のキャッシュヒット率推定装置。
  4. 前記キャッシュヒット率推定関数生成部及び前記アクセス処理性能推定関数生成部は、それぞれの前記アクセス対象データをキャッシュする優先度を入力とする前記キャッシュヒット率推定関数及び前記アクセス処理性能推定関数を生成し、
    前記パラメータ変更部は、一の前記アクセス対象データをキャッシュする優先度を第1の優先度とした場合に、第2の優先度とした場合と比較して前記アクセス処理性能の推定値がより高くなることを条件として、前記一のアクセス対象データをキャッシュする優先度を前記第1の優先度とする前記設定パラメータを前記キャッシュ装置に設定する
    請求項2記載のキャッシュヒット率推定装置。
  5. 前記キャッシュ装置は、前記複数のアクセス対象データのそれぞれを、当該キャッシュ装置のキャッシュ記憶領域を分割した複数のキャッシュ分割領域のうち、当該アクセス対象データに対応する予め定められたキャッシュ分割領域にキャッシュし、
    前記キャッシュヒット率推定関数生成部及び前記アクセス処理性能推定関数生成部は、前記キャッシュ記憶領域に対する前記複数のキャッシュ分割領域の割合の組み合わせを入力とする前記キャッシュヒット率推定関数及び前記アクセス処理性能推定関数を生成し、
    前記パラメータ変更部は、前記複数のキャッシュ分割領域の割合の組み合わせを第1の組み合わせとした場合に、第2の組み合わせとした場合と比較して前記アクセス処理性能の推定値がより高くなることを条件として、前記複数のキャッシュ分割領域の割合の組み合わせを第1の組み合わせとする前記設定パラメータを前記キャッシュ装置に設定する
    請求項2記載のキャッシュヒット率推定装置。
  6. 前記キャッシュ装置は、それぞれの前記アクセス対象データを、当該キャッシュ装置のキャッシュ記憶領域を分割した複数のキャッシュ分割領域のうち、当該アクセス対象データに対応する予め定められたキャッシュ分割領域にキャッシュし、
    前記キャッシュヒット率推定関数生成部及び前記アクセス処理性能推定関数生成部は、それぞれの前記アクセス対象データをいずれの前記キャッシュ分割領域にキャッシュするかの対応を指定する組み合わせを入力とする前記キャッシュヒット率推定関数及び前記アクセス処理性能推定関数を生成し、
    前記パラメータ変更部は、前記対応を第1の組み合わせとした場合に、第2の組み合わせとした場合と比較して前記アクセス処理性能の推定値がより高くなることを条件として、前記対応を第1の組み合わせとする前記設定パラメータを前記キャッシュ装置に設定する
    請求項2記載のキャッシュヒット率推定装置。
  7. それぞれの前記アクセス対象データについて、前記アクセス要求到着確率密度関数に基づいて、当該アクセス対象データへの前記アクセス要求を受信した後、当該アクセス対象データがキャッシュから無効化される前に当該アクセス対象データに対する次の前記アクセス要求を受信する確率の時間分布である次アクセスヒット時間分布関数を生成する次アクセスヒット時間分布関数生成部と、
    それぞれの前記アクセス対象データについて、前記アクセス要求到着確率密度関数に基づいて、予め定められた時点を基準とし、当該アクセス対象データに対する少なくとも1つの前記アクセス要求を受信し、かつ、当該アクセス対象データがキャッシュから無効化されていない確率の時間分布であるキャッシュ有効時間分布関数を生成するキャッシュ有効時間分布関数生成部を更に備え、
    前記キャッシュヒット率推定関数生成部は、それぞれの前記アクセス対象データについて、前記複数のアクセス対象データの前記キャッシュ有効時間分布関数と、当該アクセス対象データに対する前記次アクセスヒット時間分布関数とに基づいて、当該アクセス対象データの前記キャッシュヒット率推定関数を生成する
    請求項2記載のキャッシュヒット率推定装置。
  8. それぞれの前記アクセス対象データについて、当該アクセス対象データに対する無効化要求の平均到着頻度に基づいて、無効化要求の到着時間間隔の確率密度関数である無効化要求到着確率密度関数を生成する無効化要求到着確率密度関数生成部を更に備え、
    前記次アクセスヒット時間分布関数生成部及び前記キャッシュ有効時間分布関数生成部は、前記無効化要求到着確率密度関数に更に基づいて、前記次アクセスヒット時間分布関数及び前記キャッシュ有効時間分布関数を生成する
    請求項7記載のキャッシュヒット率推定装置。
  9. 前記キャッシュ装置は、キャッシュしている前記アクセス対象データに対して無効化要求を受信した場合、又は、当該アクセス対象データをキャッシュしてから当該アクセス対象データに対して前記アクセス要求を受けることなく予め定められた時間が経過した場合に当該アクセス対象データをキャッシュから無効化し、
    前記次アクセスヒット時間分布関数生成部及び前記キャッシュ有効時間分布関数生成部は、前記予め定められた時間の経過前及び経過後の各区間について前記次アクセスヒット時間分布関数及び前記キャッシュ有効時間分布関数を生成する
    請求項8記載のキャッシュヒット率推定装置。
  10. 前記キャッシュ装置は、最大K個の前記アクセス対象データをLRU(Least Recently Used)方式によりキャッシュし、
    前記キャッシュヒット率推定関数生成部は、
    前記複数のアクセス対象データの前記キャッシュ有効時間分布関数に基づいて、無効化されることなくキャッシュされている前記アクセス対象データの数の期待値を求めるエントリ数期待値関数を生成するエントリ数期待値関数生成部と、
    前記エントリ数期待値関数に基づいて、予め定められた時点を基準として、K個の前記アクセス対象データがキャッシュされるまでのキャッシュ充填時間の期待値を算出するキャッシュ充填時間算出部と、
    それぞれの前記アクセス対象データについて、当該アクセス対象データに対するアクセス要求を受信してから前記キャッシュ充填時間の期待値により定められる時間の経過までに当該アクセス対象データに対する次のアクセス要求を受信する確率の関数を前記次アクセスヒット時間分布関数に基づいて算出し、当該アクセス対象データの前記キャッシュヒット率推定関数とする次アクセスヒット率推定関数生成部と
    を有する
    請求項7記載のキャッシュヒット率推定装置。
  11. それぞれの前記アクセス対象データには、当該アクセス対象データをキャッシュする優先度が定められており、
    前記キャッシュ装置は、
    キャッシュされた前記アクセス対象データをLRU方式により管理する、優先度毎に設けられた複数のLRUリストと、
    アクセス要求を受けた前記アクセス対象データを、当該アクセス対象データの優先度に対応する前記LRUリストの先頭に移動するエントリ移動部と、
    優先度が最も低い前記LRUリストが空である場合に、前記複数のLRUリストのそれぞれに登録された前記アクセス対象データを、より優先度が低い前記LRUリストに登録し直すシフト処理を行うLRUリストシフト部と
    を備え、
    前記キャッシュヒット率推定関数生成部は、
    前記複数のアクセス対象データの前記キャッシュ有効時間分布関数に基づいて、前記複数のLRUリストに登録された前記アクセス対象データの合計数の期待値を求めるエントリ数期待値関数を生成するエントリ数期待値関数生成部と、
    前記エントリ数期待値関数に基づいて、前記シフト処理の周期の期待値を算出するシフト周期算出部と、
    前記シフト処理の周期を複数に等分した各時点において前記アクセス対象データへのアクセス要求を受けてから当該アクセス対象データが他の前記アクセス対象データに置換されるまでのリプレース時間の期待値を算出するリプレース時間算出部と、
    それぞれの前記アクセス対象データについて、前記シフト処理の周期を複数に等分した各時点において当該アクセス対象データに対するアクセス要求を受信してから前記リプレース時間の期待値により定められる時間の経過までに当該アクセス対象データに対する次のアクセス要求を受信する確率を算出する次アクセスヒット率推定関数を、前記次アクセスヒット時間分布関数及び前記リプレース時間に基づいて生成する次アクセスヒット率推定関数生成部と、
    それぞれの前記アクセス対象データについて、前記シフト処理の周期を複数に等分した前記複数の時点のそれぞれにおいて当該アクセス対象データに対するアクセス要求を受信した場合の前記次アクセスヒット率推定関数を全ての前記時点について平均し、当該アクセス対象データの前記キャッシュヒット率推定関数とする次アクセスヒット率平均化部と
    を有する
    請求項7記載のキャッシュヒット率推定装置。
  12. 前記アクセス対象データは、前記アクセス要求を受信したサーバ装置上で当該アクセス要求に対応するサーバプログラムを、前記アクセスコストにより指定される処理時間実行することにより生成され、
    前記キャッシュ装置は、前記サーバ装置により生成された前記アクセス対象データをキャッシュするキャッシュ記憶領域を備える
    請求項2記載のキャッシュヒット率推定装置。
  13. それぞれの前記アクセス対象データは、複数のグループのいずれかに属し、
    それぞれの前記グループについて、当該グループに属する全ての前記アクセス対象データについて計測された平均キャッシュヒット率を取得するグループ対応キャッシュヒット率取得部と、
    それぞれの前記グループについて、当該グループに属する全ての前記アクセス対象データのうちキャッシュしている前記アクセス対象データの個数であるグループ対応エントリ数の計測値を取得するグループ対応エントリ数取得部と、
    それぞれの前記グループについて、当該グループの前記グループ対応エントリ数を当該グループの前記平均キャッシュヒット率で割ることにより、当該グループに属する前記アクセス対象データの数の推定値を算出するアクセス対象データ数算出部と
    を備え、
    前記アクセス要求到着頻度取得部は、それぞれの前記グループについて、当該グループに属する全アクセス対象データについて計測された前記アクセス要求の平均到着頻度を当該グループに属する前記アクセス対象データの数の推定値で割ることにより、当該アクセス対象データの平均到着頻度を取得し、
    前記キャッシュヒット率推定関数生成部は、それぞれの前記グループに属する前記アクセス対象データの前記キャッシュヒット率推定関数を、当該グループに属する前記アクセス対象データの数の推定値に更に基づいて生成する
    請求項2記載のキャッシュヒット率推定装置。
  14. 複数の前記キャッシュ装置におけるそれぞれの前記グループを、一の前記キャッシュ装置における対応する前記グループに統合した場合における前記アクセス処理性能推定関数を生成する統合時関数生成部と、
    前記統合時関数生成部により生成された前記アクセス処理性能推定関数による前記アクセス処理性能の推定値が、前記複数のキャッシュ装置の前記アクセス処理性能の推定値の合計より高い場合に、前記複数のキャッシュ装置におけるそれぞれの前記グループを、前記一のキャッシュ装置における対応する前記グループに統合するグループ統合部と
    を更に備える
    請求項13記載のキャッシュヒット率推定装置。
  15. 一の前記キャッシュ装置におけるそれぞれの前記グループを、複数の前記キャッシュ装置における対応する前記グループに分割した場合における前記複数のキャッシュ装置のそれぞれの前記アクセス処理性能推定関数を生成する分割時関数生成部と、
    前記分割時関数生成部により生成された前記アクセス処理性能推定関数による前記アクセス処理性能の推定値の合計が、前記一のキャッシュ装置の前記アクセス処理性能の推定値より高い場合に、前記一の前記キャッシュ装置におけるそれぞれの前記グループを、複数の前記キャッシュ装置における対応する前記グループに分割するグループ分割部と
    を更に備える
    請求項13記載のキャッシュヒット率推定装置。
  16. 要求元装置からアクセスされたアクセス対象データをキャッシュするキャッシュ装置のキャッシュヒット率をコンピュータにより推定するキャッシュヒット率推定方法であって、
    複数の前記アクセス対象データの少なくとも1つは、キャッシュミス時のアクセスコストが他の前記アクセス対象データと異なるものであり、
    それぞれの前記アクセス対象データに対するアクセス要求について計測された平均到着頻度を取得するアクセス要求到着頻度取得段階と、
    それぞれのアクセス対象データに対するアクセス要求の平均到着頻度に基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数を生成するアクセス要求到着確率密度関数生成段階と、
    前記複数のアクセス対象データの前記アクセス要求到着確率密度関数に基づいて、それぞれの前記アクセス対象データのキャッシュヒット率の推定関数を生成するキャッシュヒット率推定関数生成段階と
    を備えるキャッシュヒット率推定方法。
  17. 要求元装置からアクセスされたアクセス対象データをキャッシュするキャッシュ装置のキャッシュヒット率を推定するキャッシュヒット率推定装置用のプログラムであって、
    複数の前記アクセス対象データの少なくとも1つは、キャッシュミス時のアクセスコストが他の前記アクセス対象データと異なるものであり、
    当該プログラムは、前記キャッシュヒット率推定装置を、
    それぞれの前記アクセス対象データに対するアクセス要求について計測された平均到着頻度を取得するアクセス要求到着頻度取得部と、
    それぞれのアクセス対象データに対するアクセス要求の平均到着頻度に基づいて、当該アクセス対象データに対するアクセス要求の到着時間間隔の確率密度関数であるアクセス要求到着確率密度関数を生成するアクセス要求到着確率密度関数生成部と、
    前記複数のアクセス対象データの前記アクセス要求到着確率密度関数に基づいて、それぞれの前記アクセス対象データのキャッシュヒット率の推定関数を生成するキャッシュヒット率推定関数生成部と
    して機能させるプログラム。
  18. 請求項17に記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
JP2004157103A 2004-05-27 2004-05-27 キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体 Pending JP2005339198A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004157103A JP2005339198A (ja) 2004-05-27 2004-05-27 キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体
US11/131,126 US7318124B2 (en) 2004-05-27 2005-05-17 Cache hit ratio estimating apparatus, cache hit ratio estimating method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004157103A JP2005339198A (ja) 2004-05-27 2004-05-27 キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2005339198A true JP2005339198A (ja) 2005-12-08

Family

ID=35426737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004157103A Pending JP2005339198A (ja) 2004-05-27 2004-05-27 キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体

Country Status (2)

Country Link
US (1) US7318124B2 (ja)
JP (1) JP2005339198A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187393A (ja) * 2008-02-07 2009-08-20 Nec Corp アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
JP2013149087A (ja) * 2012-01-19 2013-08-01 Yokogawa Electric Corp キャッシュ装置、キャッシュプログラム、及び通信装置
WO2014041760A1 (ja) * 2012-09-13 2014-03-20 日本電気株式会社 推定装置、データベース稼働状況推定方法およびプログラム記憶媒体
JP2015525913A (ja) * 2012-06-27 2015-09-07 アルカテル−ルーセント N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730531B2 (en) * 2005-04-15 2010-06-01 Microsoft Corporation System and method for detection of artificially generated system load
US7512591B2 (en) * 2005-12-09 2009-03-31 International Business Machines Corporation System and method to improve processing time of databases by cache optimization
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US7788449B2 (en) * 2006-09-20 2010-08-31 International Business Machines Corporation Cache configuration in a database system
US8443341B2 (en) * 2006-11-09 2013-05-14 Rogue Wave Software, Inc. System for and method of capturing application characteristics data from a computer system and modeling target system
EP2126698A2 (en) 2006-12-06 2009-12-02 Fusion Multisystems, Inc. Apparatus, system, and method for a shared, front-end, distributed raid
US7680978B1 (en) * 2007-09-05 2010-03-16 Juniper Networks, Inc. Reducing content addressable memory (CAM) power consumption counters
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
JPWO2010024071A1 (ja) * 2008-08-25 2012-01-26 日本電気株式会社 キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム
US8239482B2 (en) * 2008-11-13 2012-08-07 At&T Intellectual Property I, Lp System and method for selectively caching hot content in a content delivery system
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
CN102722448B (zh) * 2011-03-31 2015-07-22 国际商业机器公司 管理高速存储器的方法和装置
WO2012140848A1 (ja) * 2011-04-13 2012-10-18 パナソニック株式会社 制御装置
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US20130298175A1 (en) * 2012-05-02 2013-11-07 International Business Machines Corporation Constructing a customized message in a video-on-demand service
US9098417B2 (en) * 2012-12-13 2015-08-04 Advanced Micro Devices, Inc. Partitioning caches for sub-entities in computing devices
CN104156551B (zh) * 2013-05-14 2017-12-15 腾讯科技(深圳)有限公司 基于时间间隔动态调整目标数据命中的方法和装置
KR20150039524A (ko) * 2013-10-02 2015-04-10 삼성전자주식회사 클라우드 시스템, 클라우드 시스템 제어 방법, 관리 서버 및 그 제어 방법
US10089238B2 (en) * 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
WO2016056217A1 (ja) * 2014-10-07 2016-04-14 日本電気株式会社 測定装置、測定システム、測定方法、および、プログラム
US9984004B1 (en) * 2016-07-19 2018-05-29 Nutanix, Inc. Dynamic cache balancing
CN106204873B (zh) * 2016-07-20 2018-10-12 兰州智豆信息科技有限公司 基于参与时间的幸运用户抽取方法及系统
US10282299B2 (en) 2017-06-23 2019-05-07 Cavium, Llc Managing cache partitions based on cache usage information
US10318176B2 (en) * 2017-09-06 2019-06-11 Western Digital Technologies Real-time, self-learning automated object classification and storage tier assignment
US10545874B2 (en) * 2018-02-20 2020-01-28 Sap Se Reclamation of cache resources
US10846227B2 (en) * 2018-12-21 2020-11-24 Paypal, Inc. Controlling cache size and priority using machine learning techniques
US10915452B2 (en) 2019-06-19 2021-02-09 Visa International Service Association Method, system, and computer program product for maintaining a cache
FR3104354B1 (fr) * 2019-12-10 2021-12-31 Latelec Méthode et Système d’accès à un serveur embarqué
US11743513B2 (en) * 2020-10-27 2023-08-29 Akamai Technologies, Inc. Measuring and improving origin offload and resource utilization in caching systems
CN113419976B (zh) * 2021-06-29 2024-04-26 华中科技大学 一种基于分类预测的自适应分段缓存方法及系统
US11656986B2 (en) * 2021-08-20 2023-05-23 Google Llc Distributed generic cacheability analysis
CN114327672B (zh) * 2021-12-14 2024-04-05 中国平安财产保险股份有限公司 数据缓存时间设置方法、装置、计算机设备及存储介质
CN118227446B (zh) * 2024-05-21 2024-08-02 北京开源芯片研究院 高速缓存性能评估方法、装置、电子设备及可读存储介质
CN119829626B (zh) * 2024-12-20 2025-11-14 北京拓扑岭科技有限公司 一种lsm引擎数据缓存优化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415368B1 (en) * 1999-12-22 2002-07-02 Xerox Corporation System and method for caching
US6493810B1 (en) * 2000-04-28 2002-12-10 Microsoft Corporation Method and system for allocating cache memory for a network database service

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187393A (ja) * 2008-02-07 2009-08-20 Nec Corp アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
JP2013149087A (ja) * 2012-01-19 2013-08-01 Yokogawa Electric Corp キャッシュ装置、キャッシュプログラム、及び通信装置
JP2015525913A (ja) * 2012-06-27 2015-09-07 アルカテル−ルーセント N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法
WO2014041760A1 (ja) * 2012-09-13 2014-03-20 日本電気株式会社 推定装置、データベース稼働状況推定方法およびプログラム記憶媒体

Also Published As

Publication number Publication date
US20050268037A1 (en) 2005-12-01
US7318124B2 (en) 2008-01-08

Similar Documents

Publication Publication Date Title
JP2005339198A (ja) キャッシュヒット率推定装置、キャッシュヒット率推定方法、プログラム及び記録媒体
CN112835698B (zh) 一种基于异构集群的请求分类处理的动态负载均衡方法
Cidon et al. Cliffhanger: Scaling performance cliffs in web memory caches
JP4815459B2 (ja) 負荷分散制御サーバ、負荷分散制御方法及びコンピュータプログラム
US8533719B2 (en) Cache-aware thread scheduling in multi-threaded systems
JP5370946B2 (ja) リソース管理方法及び計算機システム
US9807159B2 (en) Allocation of virtual machines in datacenters
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
US20090043893A1 (en) Multiple Resource Control-Advisor for Management of Distributed or Web-Based Systems
CN107426332B (zh) 一种web服务器集群的负载均衡方法及系统
US20200310985A1 (en) Lease cache memory devices and methods
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
CN112631504B (zh) 利用堆外内存实现本地缓存的方法和装置
CN118170505A (zh) 基于缓存亲和的调度方法、系统、设备及介质
CN117931316A (zh) 服务器无感框架的冷启动优化方法、系统、设备及介质
CN106126434B (zh) 中央处理器的缓存区的缓存行的替换方法及其装置
Min et al. VMMB: virtual machine memory balancing for unmodified operating systems
JP7192645B2 (ja) 情報処理装置、分散処理システム及び分散処理プログラム
WO2018196865A1 (en) Guided optimistic resource scheduling
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP4905120B2 (ja) 負荷集約プログラム、該プログラムを記録した記録媒体、負荷集約装置および負荷集約方法
Soosai et al. Dynamic replica replacement strategy in data grid
US20240281288A1 (en) Recommendation system for gateway dispatch mechanism and autoscaler
Jia et al. RL-Cache: an efficient reinforcement learning based cache partitioning approach for multi-tenant CDN services
CN120086003A (zh) 智能计算中心算力资源支持弹性伸缩能力的方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070308

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080318

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080409