JP2016114967A - キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム - Google Patents

キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム Download PDF

Info

Publication number
JP2016114967A
JP2016114967A JP2014250580A JP2014250580A JP2016114967A JP 2016114967 A JP2016114967 A JP 2016114967A JP 2014250580 A JP2014250580 A JP 2014250580A JP 2014250580 A JP2014250580 A JP 2014250580A JP 2016114967 A JP2016114967 A JP 2016114967A
Authority
JP
Japan
Prior art keywords
data
cache
request
request source
read
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.)
Granted
Application number
JP2014250580A
Other languages
English (en)
Other versions
JP6194875B2 (ja
Inventor
洋平 梶本
Yohei Kajimoto
洋平 梶本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2014250580A priority Critical patent/JP6194875B2/ja
Priority to US14/964,074 priority patent/US9858204B2/en
Publication of JP2016114967A publication Critical patent/JP2016114967A/ja
Application granted granted Critical
Publication of JP6194875B2 publication Critical patent/JP6194875B2/ja
Active 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持する。【解決手段】記憶装置に接続され、複数の要求元に接続されるキャッシュ装置であって、要求元と記憶装置との間の読み出し要求及び読み出し応答を中継するキャッシュ手段と、読み出し要求中の第1のデータの指定に対応付けて要求元を第1の履歴として記憶し、キャッシュ手段により第1のデータが保持されておらず且つ第1のデータを保持するために十分な記憶領域が存在しない場合に、第1のデータ又はキャッシュ手段に保持されたデータのうち、第1の履歴においてより少数の要求元に対応付けられたデータをより多数の要求元に対応付けられたデータに優先して第2のデータとして選択し、第2のデータと第1のデータとが異なるならば、第2のデータを破棄させた後に第1のデータを記憶させる記憶領域制御手段とを備える。【選択図】 図1

Description

本発明は、キャッシュされたデータのヒット率を向上させるキャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラムに関する。
データの読み出しを行う装置の多くでは、使用頻度の高いデータを高速な記憶装置に一時的に保持することにより、毎回、低速な記憶装置からデータを読み出す無駄を省いてデータの読み出しを高速化する「キャッシュ」技術が利用される。データの書き込みについても、「キャッシュ」技術が利用されることが多い。また、「キャッシュ」のために使われる高速な記憶装置や、複製されたデータも「キャッシュ」と呼ばれることがある。近年、キャッシュを高機能化又は高性能化するための技術が開発されている。
キャッシュを高性能化するための技術の一例が、特許文献1に開示されている。
特許文献1のストレージサブシステムは、書き込み速度に優劣がある記憶デバイスに対して、書き込み速度毎に書き込みキャッシュを分けることにより、速い記憶デバイスへの書き込み時間に対する、遅い記憶デバイスへの書き込み時間の影響を低減する。
上記の動作の結果、特許文献1のストレージサブシステムでは、キャッシュから各記憶デバイスへのデータの書き込み速度に違いがある場合であっても、データの書き込み処理が停滞しない。
キャッシュを高性能化するための技術の別の一例が、特許文献2に開示されている。
特許文献2の印刷文書処理システムは、複数のラスターイメージ生成部から出力された画像データをキャッシュに保持しつつ、プリンタに出力する。印刷文書処理システムは、キャッシュの残容量が少ない場合に、画像データをキャッシュに保持するか否かを、画像データのスコアにより決定する。画像データのスコアは、オブジェクトの種類若しくは複雑さ、又はラスターイメージ生成時の負荷、所要時間、データサイズ、色空間変換の要否、拡大率、回転の有無、グラデーション処理の有無、若しくはキャッシュ問い合わせ累積回数等により決定される。
上記の動作の結果、特許文献2の印刷文書処理システムは、画像データのスコアが適切に定義されることにより、データをキャッシュに保持するか否かを適切に判断する。
サーバがストレージからデータを読み出す場合、サーバとストレージのそれぞれがキャッシュを備えることがある。サーバ側のキャッシュを「サーバキャッシュ」、ストレージ側のキャッシュを「ストレージキャッシュ」と言う。
サーバキャッシュとストレージキャッシュとの両方を備える構成では、サーバにより読み出されたデータは、サーバキャッシュとストレージキャッシュの両方に一時的に保持される。そのため、1つのデータが、サーバキャッシュとストレージキャッシュとの両方に存在することがある。ところが、ストレージキャッシュ上のデータはサーバキャッシュ上のデータが消去されるまで参照されないため、ストレージのキャッシュが無駄に占有されるような状況が発生する可能性がある。
データが特定の1台のサーバのみにより読み出されるデータ(以下、「独立データ」という。)である場合には、特定のサーバのサーバキャッシュ上にあるデータが消去されるまで、ストレージキャッシュ上の対応するデータは読み出されない。一方、データが複数のサーバにより読み出されるデータ(以下、「共有データ」という。)である場合には、複数のサーバのうちの少なくとも一台のサーバのサーバキャッシュ上にあるデータが消去されると、ストレージキャッシュ上の対応するデータが読み出される。そこで、ストレージキャシュでは、読み出される可能性が低い独立データを保持するよりも、読み出される可能性が高い共有データを保持する方が、限られたキャッシュ領域においてヒット率を向上させることができる。
独立データと共有データとを区別して扱うことにより、キャッシュを高性能化するための技術の一例が、特許文献3に開示されている。
特許文献3のディスクアレイ装置では、共有ディスクのキャッシュはディスクインターフェースユニット内の共有キャッシュに、占有ディスクのキャッシュはホストインターフェースユニット内の占有キャッシュに置かれる。
上記の動作の結果、特許文献3のディスクアレイ装置では、ホストインターフェースユニット及びディスクインターフェースユニットが増設された場合に、ディスクアレイ装置の性能が低下しない。
独立データと共有データとを区別して扱うことにより、キャッシュを高性能化するための技術の別の一例が、特許文献4に開示されている。
特許文献4のマルチコアプロセッサシステムでは、共有キャッシュコントローラは、プログラムコードに基づいて、変数がスレッド間で共有される共有データであるか、あるいは共有されない非共有データであるかを判別する。共有キャッシュコントローラは、共有メモリ中の共有データを共有キャッシュメモリに、共有メモリ中の非共有データを分散キャッシュに保持する。
上記の動作の結果、特許文献4のマルチコアプロセッサシステムは、共有キャッシュメモリの領域を効率的に利用する。
特開2010−049502 特開2012−118745 特開2007−206949 WO2011/161829
特許文献3及び特許文献4の技術では、事前に設定、分析等が行われることにより、キャッシュ動作前に独立データと共有データとの判別が行われる。そのため、特許文献3及び特許文献4の技術には、キャッシュ動作時に、動的に独立データと共有データとの判別を行うことができないという問題がある。
(発明の目的)
本発明の主たる目的は、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができるキャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラムを提供することにある。
本発明のキャッシュ装置は、記憶装置に接続され、複数の要求元に接続されるキャッシュ装置であって、第1の要求元から第1の読み出し要求を受信し、第1の読み出し要求において指定された第1のデータを保持していない場合に、記憶装置に第1の読み出し要求を送信し、記憶装置から第1の読み出し応答を受信し、第1の読み出し応答を第1の要求元へ送信する一方、第1のデータを保持している場合に、第1のデータを含む第2の読み出し応答を第1の要求元へ送信するキャッシュ手段と、第1のデータの指定に対応付けて第1の要求元を第1の履歴として記憶し、キャッシュ手段により第1のデータが保持されておらず且つキャッシュ手段に第1のデータを保持するために十分な記憶領域が存在する場合に、キャッシュ手段に第1のデータを記憶させる一方、キャッシュ手段により第1のデータが保持されておらず且つキャッシュ手段に第1のデータを保持するために十分な記憶領域が存在しない場合に、第1のデータ又はキャッシュ手段に保持されたデータのうち、第1の履歴においてより少数の要求元に対応付けられたデータを第1の履歴においてより多数の要求元に対応付けられたデータに優先して第2のデータとして選択し、第2のデータと第1のデータとが異なるならば、キャッシュ手段に第2のデータを破棄させた後に第1のデータを記憶させる記憶領域制御手段とを備えることを特徴とする。
本発明のキャッシュシステムは、記憶装置に接続されたキャッシュ装置と、キャッシュ装置を介して記憶装置に接続され、それぞれ1台の要求元に接続される、複数の2次キャッシュ装置とを備えたキャッシュシステムあって、キャッシュ装置は、2次キャッシュ装置を介して第1の要求元から第1の読み出し要求を受信し、第1の読み出し要求において指定された第1のデータを保持していない場合に、記憶装置に第1の読み出し要求を送信し、記憶装置から第1の読み出し応答を受信し、第1の読み出し応答を2次キャッシュ装置を介して第1の要求元へ送信する一方、第1のデータを保持している場合に、第1のデータを含む第2の読み出し応答を2次キャッシュ装置を介して第1の要求元へ送信するキャッシュ手段と、第1のデータの指定に対応付けて第1の要求元を第1の履歴として記憶し、キャッシュ手段により第1のデータが保持されておらず且つキャッシュ手段に第1のデータを保持するために十分な記憶領域が存在する場合に、キャッシュ手段に第1のデータを記憶させる一方、キャッシュ手段により第1のデータが保持されておらず且つキャッシュ手段に第1のデータを保持するために十分な記憶領域が存在しない場合に、第1のデータ又はキャッシュ手段に保持されたデータのうち、第1の履歴においてより少数の要求元に対応付けられたデータを第1の履歴においてより多数の要求元に対応付けられたデータに優先して第2のデータとして選択し、第2のデータと第1のデータとが異なるならば、キャッシュ手段に第2のデータを破棄させた後に第1のデータを記憶させる記憶領域制御手段とを備え、2次キャッシュ装置は、第1の要求元から第2の読み出し要求を受信し、第2の読み出し要求において指定された第3のデータを保持していない場合に、キャッシュ装置を介して記憶装置に第2の読み出し要求を送信し、キャッシュ装置を介して記憶装置から第3の読み出し応答を受信し、第3の読み出し応答を第1の要求元へ送信する一方、第3のデータを保持している場合に、第3のデータを含む第4の読み出し応答を第1の要求元へ送信する2次キャッシュ手段と、第3のデータが保持されておらず且つ第3のデータを保持するために十分な記憶領域が存在する場合に、第3のデータを記憶する一方、第3のデータが保持されておらず且つ第3のデータを保持するために十分な記憶領域が存在しない場合に、キャッシュ装置から第1の履歴の情報を取得し、第3のデータ又は保持されたデータのうち、第1の履歴においてより多数の要求元に対応付けられたデータを第1の履歴においてより少数の要求元に対応付けられたデータに優先して第4のデータとして選択し、第4のデータと第3のデータとが異なるならば、第4のデータを破棄した後に第3のデータを記憶する2次記憶領域制御手段とを備えることを特徴とする。
本発明のキャッシュ方法は、記憶装置に接続され、複数の要求元に接続されるキャッシュ装置において、第1の要求元から第1の読み出し要求を受信し、第1の読み出し要求において指定された第1のデータを保持していない場合に、記憶装置に第1の読み出し要求を送信し、記憶装置から第1の読み出し応答を受信し、第1の読み出し応答を第1の要求元へ送信する一方、第1のデータを保持している場合に、第1のデータを含む第2の読み出し応答を第1の要求元へ送信し、第1のデータの指定に対応付けて第1の要求元を第1の履歴として記憶し、第1のデータが保持されておらず且つ第1のデータを保持するために十分な記憶領域が存在する場合に、第1のデータを記憶する一方、第1のデータが保持されておらず且つ第1のデータを保持するために十分な記憶領域が存在しない場合に、第1のデータ又は保持されたデータのうち、第1の履歴においてより少数の要求元に対応付けられたデータを第1の履歴においてより多数の要求元に対応付けられたデータに優先して第2のデータとして選択し、第2のデータと第1のデータとが異なるならば、第2のデータを破棄した後に第1のデータを記憶することを特徴とする。
本発明のキャッシュプログラムは、記憶装置に接続され、複数の要求元に接続されるキャッシュ装置であって、第1の要求元から第1の読み出し要求を受信し、第1の読み出し要求において指定された第1のデータを保持していない場合に、記憶装置に第1の読み出し要求を送信し、記憶装置から第1の読み出し応答を受信し、第1の読み出し応答を第1の要求元へ送信する一方、第1のデータを保持している場合に、第1のデータを含む第2の読み出し応答を第1の要求元へ送信するキャッシュ処理と、第1のデータの指定に対応付けて第1の要求元を第1の履歴として記憶し、第1のデータが保持されておらず且つ第1のデータを保持するために十分な記憶領域が存在する場合に、第1のデータを記憶する一方、第1のデータが保持されておらず且つ第1のデータを保持するために十分な記憶領域が存在しない場合に、第1のデータ又は保持されたデータのうち、第1の履歴においてより少数の要求元に対応付けられたデータを第1の履歴においてより多数の要求元に対応付けられたデータに優先して第2のデータとして選択し、第2のデータと第1のデータとが異なるならば、第2のデータを破棄させた後に第1のデータを記憶させる記憶領域制御処理とをコンピュータに実行させることを特徴とする。
本発明によれば、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができるという効果がある。
本発明の第1の実施形態におけるキャッシュ装置100の構成の一例を示すブロック図である。 本発明の第1の実施形態におけるキャッシュ装置100の動作を示すフローチャートである。 本発明の第1の実施形態におけるキャッシュ装置100の動作の具体例を説明するための図である。 本発明の第2の実施形態におけるキャッシュ装置110の構成の一例を示すブロック図である。 本発明の第2の実施形態における2次キャッシュ装置400の動作を示すフローチャートである。 本発明の第2の実施形態におけるキャッシュ装置110及び2次キャッシュ装置400、401の動作の具体例を説明するための図である。 本発明の第3の実施形態におけるキャッシュ装置120の構成の一例を示すブロック図である。 本発明の第3の実施形態におけるキャッシュ装置120及び2次キャッシュ装置410、411の動作を示すフローチャートである。 本発明の第3の実施形態におけるキャッシュ装置120及び2次キャッシュ装置410、411の動作の具体例を説明するための図である。 本発明の第4の実施形態におけるストレージ130の構成の一例を示すブロック図である。 本発明の第4の実施形態におけるストレージ130の動作を示すフローチャートである。 本発明の第4の実施形態におけるストレージ130における「分割領域」の作成方法の具体例を説明するための図である。 本発明の第4の実施形態におけるストレージ130におけるストレージキャッシュ138から破棄されるデータの選択方法の具体例を説明するための図である。 本発明の第4の実施形態及び第5の実施形態におけるキャッシュデータの配置の一例を示す図である。 本発明の第5の実施形態におけるストレージ140及びサーバ340、341、342の構成の一例を示すブロック図である。 本発明の第5の実施形態におけるストレージ140及びサーバ340の動作を示すフローチャートである。
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
まず、本実施形態における構成について説明する。
図1は、本発明の第1の実施形態におけるキャッシュ装置100の構成の一例を示すブロック図である。
本実施形態のキャッシュ装置100は、記憶装置200と、要求元300と、要求元301とに接続される。キャッシュ装置100は、キャッシュ手段101と、記憶領域制御手段102とを有する。なお、キャッシュ装置100は、複数の記憶装置に接続されてもよいし、3台以上の要求元に接続されてもよい。
キャッシュ手段101は、まず、要求元300からデータの読み出し要求を受信する。
次に、キャッシュ手段101は、読み出し要求において指定された指定データを保持していない場合に、記憶装置200に読み出し要求を送信し、記憶装置200から読み出し要求に対する応答(読み出し応答)を受信し、読み出し応答を要求元300へ送信する。一方、キャッシュ手段101は、読み出し要求において指定された指定データを保持している場合に、その保持している指定データを含む読み出し応答を要求元300へ送信する。
なお、キャッシュ手段101は、保持可能なキャッシュデータの量を定める所定の上限値(キャッシュ容量)を有する。キャッシュ容量は、保持可能なキャッシュデータのバイト数の合計により規定される。あるいは、キャッシュ容量は、指定データを格納するために使われるメモリ領域のブロック数の上限、保持可能な指定データの個数の上限等により規定されてもよい。
キャッシュ手段101は、要求元301に対しても、要求元300に対するのと同様に動作する。
記憶領域制御手段102は、まず、読み出し要求における指定データの「指定」に対応付けて、要求元300を履歴に記憶する。以下、キャッシュ装置100の記憶領域制御手段102が有する前述の履歴を「要求履歴」と呼ぶ。なお、指定データの「指定」とは、指定データを特定する任意の情報である。指定データの指定は、例えば、データの識別子、ファイル名、開始アドレスと終了アドレスとの組、開始アドレスとデータ長との組、記憶装置の識別子、又はこれらの組み合わせである。また、要求履歴において、要求元300は、要求元の識別子、ネットワークアドレス等の要求元を特定する任意の情報により特定される。
なお、記憶領域制御手段102は、要求履歴の要素として、所定の個数の最新の要素のみを保持してもよい。また、記憶領域制御手段102は、特定の指定データの指定に対する、要求元及び要求回数を、要求履歴として記憶してもよい。
次に、記憶領域制御手段102は、キャッシュ手段101により指定データが保持されておらず、且つキャッシュ手段101に上述の指定データを保持するために十分な記憶領域が存在する場合に、キャッシュ手段101に指定データを記憶させる。一方、記憶領域制御手段102は、キャッシュ手段101により指定データが保持されておらず、且つキャッシュ手段101に指定データを保持するために十分な記憶領域が存在しない場合に、破棄候補のデータを決定する。具体的には、記憶領域制御手段102は、指定データ又はキャッシュ手段101に保持されたデータのうち、要求履歴においてより少数の要求元に対応付けられたデータを、より多数の要求元に対応付けられたデータに優先して破棄候補のデータとして選択する。続いて、記憶領域制御手段102は、選択した破棄候補のデータと指定データとが異なるならば、キャッシュ手段101に、破棄候補のデータを破棄させた後に指定データを記憶させる。
なお、記憶領域制御手段102は、要求履歴の要素のうち、所定の個数の最新の要素のみを参照してもよい。また、最も少数の要求元に対応付けられた、キャッシュデータ又は指定データが複数存在する場合には、記憶領域制御手段102は、その中から任意のキャッシュデータ又は指定データを破棄候補として選択してもよい。キャッシュ装置100は、例えば、その中から最も古い読み出し要求に対応するキャッシュデータを破棄候補として選択してもよい。
記憶領域制御手段102は、要求元301に対しても、要求元300に対するのと同様に動作する。
記憶装置200は、キャッシュデータの元データを保持する。記憶装置200は、例えば、メモリ、SSD(Solid State Drive)、ハードディスク、ディスクアレイ、データベース、サーバである。
要求元300、要求元301は、記憶装置200が保持するデータを読み出す。要求元300、要求元301は、例えば、サーバ、端末、CPU(Central Processing Unit)、マルチコアCPUにおける各コア、マルチスレッドに対応したCPUにおける各スレッドである。
次に、本実施形態における動作について説明する。
図2は、本発明の第1の実施形態におけるキャッシュ装置100の動作を示すフローチャートである。図2のフローチャートは、1つの要求元からの1つのデータ読み出しに対する処理を示す。以下では、要求元300に対する処理を例に説明する。なお、図2に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。また、キャッシュ装置100が3つ以上の要求元に接続される場合にも、キャッシュ装置100は、以下に説明する動作と同様に動作する。
キャッシュ手段101は、要求元300から特定のデータの読み出し要求を受信する(ステップS101)。
記憶領域制御手段102は、読み出し要求における指定データの指定に対応付けて、要求元300を要求履歴として記憶する(ステップS102)。
記憶領域制御手段102は、キャッシュ手段101により指定データが保持されているか否かを判定する(ステップS103)。
キャッシュ手段101により指定データが保持されている場合に(ステップS103:Yes)、キャッシュ手段101は、その保持されている指定データを含む読み出し応答を要求元300へ送信し(ステップS104)、処理を終了する。
キャッシュ手段101により指定データが保持されていない場合に(ステップS103:No)、キャッシュ手段101は、記憶装置200に読み出し要求を送信し(ステップS105)、ステップS106の処理へ進む。キャッシュ手段101は、記憶装置200から読み出し応答を受信し(ステップS106)、読み出し応答を要求元300へ送信し(ステップS107)、ステップS108の処理へ進む。
記憶領域制御手段102は、キャッシュ手段101に上述の指定データを保持するために十分な記憶領域が存在するか否かを判定する(ステップS108)。
キャッシュ手段101に上述の指定データを保持するために十分な記憶領域が存在する場合に(ステップS108:Yes)、記憶領域制御手段102は、キャッシュ手段101に指定データを記憶させ(ステップS109)、処理を終了する。
キャッシュ手段101に上述の指定データを保持するために十分な記憶領域が存在しない場合に(ステップS108:No)、記憶領域制御手段102は、指定データ又はキャッシュ手段101に保持されたデータのうち、要求履歴においてより少数の要求元に対応付けられたデータを、より多数の要求元に対応付けられたデータに優先して破棄候補のデータとして選択し(ステップS110)、ステップS111の処理へ進む。記憶領域制御手段102は、選択した破棄候補のデータと指定データとが異なるならば、キャッシュ手段101に、破棄候補のデータを破棄させた後に指定データを記憶させ(ステップS111)、処理を終了する。なお、上記の要求元の数は、要求履歴において特定のデータを要求した要求元の数である。例えば、特定のデータを、要求元300が3回、要求元301が4回要求した場合には、上記の要求元の数は2である。
次に、本実施形態における処理の具体例について説明する。
図3は、本発明の第1の実施形態におけるキャッシュ装置100の動作の具体例を説明するための図である。
図3(a)は、要求元300及び要求元301からのデータ読み取り要求の時系列を示す。1番目の要素は、時刻“1”に、要求元“要求元A”(要求元300)から指定データ“データA”の読み出し要求があることを示す。2番目の要素は、時刻“2”に、要求元“要求元B”(要求元301)から指定データ“データB”の読み出し要求があることを示す。3番目の要素は、時刻“3”に、要求元“要求元A”から指定データ“データC”の読み出し要求があることを示す。4番目の要素は、時刻“4”に、要求元“要求元B”から指定データ“データC”の読み出し要求があることを示す。5番目から8番目の要素は、時刻“5”から時刻“8”に、それぞれ、時刻“1”から時刻“4”における読み出し要求が繰り返されることを示す。
つまり、“データA”は要求元“要求元A”からのみ要求される独立データである。また、“データB”は要求元“要求元B”からのみ要求される独立データである。一方、“データC”は要求元“要求元A”及び要求元“要求元B”の両方から要求される共有データである。
図3(b)は、キャッシュ装置100のキャッシュデータに対する操作を示す。第1列は、時刻を示す。第2列、第3列、第4列は、それぞれ、指定データ“データA”、指定データ“データB”、指定データ“データC”に対するキャッシュ装置100の操作を示す。操作“更新”は、記憶装置200に対するデータ読み出し要求及びデータ読み出し応答を中継し、データ読み出し応答中のデータでキャッシュデータを更新することを示す。操作“ヒット”は、保持するキャッシュデータを用いてデータ読み出し応答を送信することを示す。操作“維持”は、キャッシュデータを変更しないことを示す。操作“中継”は、記憶装置200に対するデータ読み出し要求及びデータ読み出し応答を中継するが、キャッシュデータを更新しないことを示す。なお、図3(b)では、キャッシュ手段101のキャッシュ容量は、指定データ1つ分である。また、時刻“1”の前には、キャッシュは空であるものとする。
時刻“1”)
キャッシュ装置100は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置100は、記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、キャッシュ装置100は、キャッシュに指定データ“データA”を記憶する(ステップS109)。
時刻“2”)
キャッシュ装置100は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置100は、記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置100は、1つの要求元“要求元A”に対応付けられたデータ“データA”を破棄候補として選択し(ステップS110)、選択した破棄候補“データA”を指定データ“データB”に更新する(ステップS111)。なお、本動作例では、最も少数台の要求元に対応付けられた、キャッシュデータ又は指定データが複数存在する場合には、キャッシュ装置100は、最も古い読み出し要求に対応するキャッシュデータを破棄候補として選択する。
時刻“3”)
キャッシュ装置100は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置100は、記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置100は、1つの要求元“要求元B”に対応付けられたデータ“データB”を破棄候補として選択し(ステップS110)、選択した破棄候補“データB”を指定データ“データC”に更新する(ステップS111)。
時刻“4”)
キャッシュ装置100は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置100は、キャッシュデータ“データC”を含む読み出し応答を要求元“要求元B”へ送信する(ステップS104)。
時刻“5”)
キャッシュ装置100は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置100は、記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置100は、1つの要求元“要求元A”に対応付けられたデータ“データA”を破棄候補として選択し(ステップS110)、選択した破棄候補“データA”と指定データ“データA”が同じなので処理を終了する(ステップS111)。
時刻“6”)
キャッシュ装置100は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置100は、記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置100は、1台の要求元“要求元B”に対応付けられたデータ“データB”を破棄候補として選択し(ステップS110)、選択した破棄候補“データB”と指定データ“データB”が同じなので処理を終了する(ステップS111)。
時刻“7”)
キャッシュ装置100は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置100は、キャッシュデータ“データC”を含む読み出し応答を要求元“要求元A”へ送信する(ステップS104)。
時刻“8”)
キャッシュ装置100は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置100は、キャッシュデータ“データC”を含む読み出し応答を要求元“要求元B”へ送信する(ステップS104)。
以上説明したように、本実施形態のキャッシュ装置100は、共有データを独立データに優先してキャッシュに保持する。特に、キャッシュ装置100は、共有データの全体を保持するために十分なキャッシュ容量を有する場合には、全ての共有データの読み出しをキャッシュに保持する。また、キャッシュ装置100は、要求履歴に基づき、指定データが共有データであるか否かをキャッシュ動作時に動的に判断する。従って、本実施形態のキャッシュ装置100は、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができる。
なお、本実施形態のキャッシュ装置100では、共有データが独立データに優先してキャッシュに保持されるので、共有データの読み出し要求の独立データの読み出し要求に対する比率が大きい場合に、特にキャッシュのヒット率が高い。
(第2の実施形態)
次に、上述した第1の実施形態において、キャッシュ装置が2次キャッシュ装置を介して要求元に接続される、本発明の第2の実施形態について説明する。なお、以下の説明において、第1の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
まず、本実施形態における構成について説明する。
図4は、本発明の第2の実施形態におけるキャッシュ装置110の構成の一例を示すブロック図である。
本実施形態のキャッシュ装置110は、2次キャッシュ装置400を介して、要求元300に接続される。また、キャッシュ装置110は、2次キャッシュ装置401を介して、要求元301に接続される。本実施形態のキャッシュ装置110の構成は、第1の実施形態のキャッシュ装置100の構成と同じである。
2次キャッシュ装置400及び2次キャッシュ装置401は、一般的なキャッシュ装置である。2次キャッシュ装置400、2次キャッシュ装置401は、それぞれ、要求元300、要求元301からのデータ読み出し要求を、キャッシュ装置110を介して、記憶装置200へ中継する。2次キャッシュ装置400、2次キャッシュ装置401は、データ読み出し要求を中継する際に、中継する読み出しデータを内部のキャッシュに保持する。2次キャッシュ装置400、2次キャッシュ装置401は、キャッシュデータがキャッシュ容量を超える場合には、読み出し頻度の低いキャッシュデータを優先して破棄する。
次に、本実施形態における動作について説明する。
図5は、本発明の第2の実施形態における2次キャッシュ装置400、401の動作を示すフローチャートである。図5のフローチャートは、1つの要求元からの1つのデータ読み出しに対する処理を示す。以下では、要求元300に対する2次キャッシュ装置400処理を例に説明する。なお、図5に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
本実施形態のキャッシュ装置110の動作は、第1の実施形態のキャッシュ装置100の動作と同じである。
本実施形態の2次キャッシュ装置400の動作は、ステップS110の処理がステップS210の処理に置き換えられることを除いて、第1の実施形態のキャッシュ装置100の動作と同じである。
2次キャッシュ装置400は、指定データ又はキャッシュに保持されたデータのうち、要求履歴においてより少数回、要求元に対応付けられたデータを、より多数回、要求元に対応付けられたデータに優先して破棄候補のデータとして選択し(ステップS210)、ステップS111の処理へ進む。なお、上記の回数は、要求履歴において特定のデータが要求元から要求された累積回数である。例えば、特定のデータを、要求元300が2回要求した場合には、上記の回数は2である。
なお、最も少数回、要求元に対応付けられた、キャッシュデータ又は指定データが複数存在する場合には、2次キャッシュ装置400は、その中から任意のキャッシュデータ又は指定データを破棄候補として選択してもよい。2次キャッシュ装置400は、例えば、その中から最も古い読み出し要求に対応するキャッシュデータを破棄候補として選択してもよい。
次に、本実施形態における処理の具体例について説明する。
図6は、本発明の第2の実施形態におけるキャッシュ装置110及び2次キャッシュ装置400、401の動作の具体例を説明するための図である。
図6(a)は、要求元300及び要求元301からのデータ読み取り要求の時系列を示す。1番目の要素は、時刻“1”に、要求元“要求元A”から指定データ“データA”の読み出し要求があることを示す。2番目の要素は、時刻“2”に、要求元“要求元B”から指定データ“データB”の読み出し要求があることを示す。3番目から4番目の要素は、時刻“3”から時刻“4”に、それぞれ、時刻“1”から時刻“2”における読み出し要求が繰り返されることを示す。5番目の要素は、時刻“5”に、要求元“要求元A”から指定データ“データC”の読み出し要求があることを示す。6番目の要素は、時刻“6”に、要求元“要求元B”から指定データ“データC”の読み出し要求があることを示す。7番目から12番目の要素は、時刻“7”から時刻“12”に、それぞれ、時刻“1”から時刻“6”における読み出し要求が繰り返されることを示す。
つまり、“データA”は要求元“要求元A”からのみ要求される独立データである。また、“データB”は要求元“要求元B”からのみ要求される独立データである。一方、“データC”は要求元“要求元A”及び要求元“要求元B”の両方から要求される共有データである。
図6(b)は、2次キャッシュ装置400のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図3(b)の前提条件及び記載方法と同様である。
図6(c)は、2次キャッシュ装置401のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図3(b)の前提条件及び記載方法と同様である。
図6(d)は、キャッシュ装置110のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図3(b)の前提条件及び記載方法と同様である。
時刻“1”)
2次キャッシュ装置400は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置400は、キャッシュ装置110を介して記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、2次キャッシュ装置400は、キャッシュに指定データ“データA”を記憶する(ステップS109)。
キャッシュ装置110は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置400を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置110は、記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、2次キャッシュ装置400を介して要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、キャッシュ装置110は、キャッシュに指定データ“データA”を記憶する(ステップS109)。
時刻“2”)
2次キャッシュ装置401は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置401は、キャッシュ装置110を介して記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、2次キャッシュ装置401は、キャッシュに指定データ“データB”を記憶する(ステップS109)。
キャッシュ装置110は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を2次キャッシュ装置401を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置110は、記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、2次キャッシュ装置401を介して要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置110は、1台の要求元“要求元A”に対応付けられたデータ“データA”を破棄候補として選択し(ステップS110)、選択した破棄候補“データA”を指定データ“データB”に更新する(ステップS111)。
時刻“3”)
2次キャッシュ装置400は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在するので(ステップS103:Yes)、2次キャッシュ装置400は、キャッシュデータ“データA”を含む読み出し応答を要求元“要求元A”へ送信する(ステップS104)。
時刻“4”)
2次キャッシュ装置401は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在するので(ステップS103:Yes)、2次キャッシュ装置401は、キャッシュデータ“データB”を含む読み出し応答を要求元“要求元B”へ送信する(ステップS104)。
時刻“5”)
2次キャッシュ装置400は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置400は、キャッシュ装置110を介して記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、2次キャッシュ装置400は、1回、要求元“要求元A”に対応付けられたデータ“データC”を破棄候補として選択し(ステップS210)、選択した破棄候補“データC”を破棄する(ステップS111)。
キャッシュ装置110は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置400を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置110は、記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、2次キャッシュ装置400を介して要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置110は、1台の要求元“要求元B”に対応付けられたデータ“データB”を破棄候補として選択し(ステップS110)、選択した破棄候補“データB”を指定データ“データC”に更新する(ステップS111)。
時刻“6”)
2次キャッシュ装置401は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置401は、キャッシュ装置110を介して記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、2次キャッシュ装置401は、1回、要求元“要求元B”に対応付けられたデータ“データC”を破棄候補として選択し(ステップS210)、選択した破棄候補“データC”を破棄する(ステップS111)。
キャッシュ装置110は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を2次キャッシュ装置401を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置110は、キャッシュデータ“データC”を含む読み出し応答を2次キャッシュ装置401を介して要求元“要求元B”へ送信する(ステップS104)。
時刻“7”)
2次キャッシュ装置400は、時刻“3”と同様に動作する。
時刻“8”)
2次キャッシュ装置401は、時刻“4”と同様に動作する。
時刻“9”)
2次キャッシュ装置400は、時刻“3”と同様に動作する。
時刻“10”)
2次キャッシュ装置401は、時刻“4”と同様に動作する。
時刻“11”)
2次キャッシュ装置400は、時刻“5”と同様に動作する。
キャッシュ装置110は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置400を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置110は、キャッシュデータ“データC”を含む読み出し応答を2次キャッシュ装置400を介して要求元“要求元A”へ送信する(ステップS104)。
時刻“12”)
2次キャッシュ装置401は、時刻“6”と同様に動作する。
キャッシュ装置110は、時刻“6”と同様に動作する。
以上説明したように、本実施形態のキャッシュ装置110は、共有データを独立データに優先してキャッシュに保持する。特に、キャッシュ装置110は、共有データの全体を保持するために十分なキャッシュ容量を有する場合には、全ての共有データの読み出しをキャッシュに保持する。また、キャッシュ装置110は、要求履歴に基づき、指定データが共有データであるか否かをキャッシュ動作時に動的に判断する。従って、本実施形態のキャッシュ装置110は、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができる。
なお、2次キャッシュ装置400は、要求元300の要求頻度の高いデータを優先してキャッシュに保持する。特に、2次キャッシュ装置400は、要求頻度の高いデータの全体を保持するために十分なキャッシュ容量を有する場合には、要求頻度の高い全てのデータの読み出しをキャッシュに保持する。2次キャッシュ装置401も、2次キャッシュ装置400と同様である。つまり、2次キャッシュ装置400、401は、要求頻度の高いデータを優先してキャッシュに保持し、キャッシュ装置110は、共有データを優先してキャッシュに保持する。そのため、キャッシュ装置110では、個々の独立データの読み出し要求の個々の共有データの読み出し要求に対する比率が大きい場合に、特にキャッシュのヒット率が高い。
また、2次キャッシュ装置400、2次キャッシュ装置401は、個々の独立データの読み出し要求の個々の共有データの読み出し要求に対する比率が大きい場合には、主に要求頻度の高いデータのキャッシュを保持する。一方、キャッシュ装置110は、個々の独立データの読み出し要求の個々の共有データの読み出し要求に対する比率が大きい場合には、主に共有データのキャッシュを保持する。その結果、本実施形態のキャッシュ装置110では、通常のキャッシュ装置を用いる場合に比べて、キャッシュ全体の利用効率が向上する。
(第3の実施形態)
次に、上述した第2の実施形態において、キャッシュ装置が2次キャッシュ装置に要求履歴の情報を渡す、本発明の第3の実施形態について説明する。なお、以下の説明において、第2の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
まず、本実施形態における構成について説明する。
図7は、本発明の第3の実施形態におけるキャッシュ装置120の構成の一例を示すブロック図である。
キャッシュ装置120は、第2の実施形態における2次キャッシュ装置400の代わりに、2次キャッシュ装置410に接続される。また、キャッシュ装置120は、第2の実施形態における2次キャッシュ装置401の代わりに、2次キャッシュ装置411に接続される。
本実施形態のキャッシュ装置120は、通信手段123を有する。
通信手段123は、2次キャッシュ装置410又は2次キャッシュ装置411から要求履歴の情報を要求されると、2次キャッシュ装置へ要求履歴の情報を送信する。
2次キャッシュ装置410は、第2の実施形態における2次キャッシュ装置400と動作が異なる。また、2次キャッシュ装置411は、第2の実施形態における2次キャッシュ装置410と動作が異なる。本実施形態では、キャッシュ装置120は、第2の実施形態と同様に共有データを優先して保持する一方、2次キャッシュ装置410及び2次キャッシュ装置411は、独立データを優先して保持する。それによってキャッシュ全体の利用効率を向上させる。
本実施形態のキャッシュ装置120のその他の構成は、第2の実施形態のキャッシュ装置110の構成と同じである。
次に、本実施形態における動作について説明する。
図8は、本発明の第3の実施形態におけるキャッシュ装置120及び2次キャッシュ装置410、411の動作を示すフローチャートである。
図8(a)は、キャッシュ装置120の動作を示すフローチャートである。図8(a)のフローチャートは、1台の2次キャッシュ装置から1つの要求履歴の取得要求を受信した際の処理を示す。以下では、2次キャッシュ装置410から取得要求を受信した際の処理を例に説明する。なお、図8(a)に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理を繰り返してもよい。
図8(b)は、2次キャッシュ装置410及び2次キャッシュ装置411の動作を示すフローチャートである。図8(b)のフローチャートは、1つの要求元からの1つのデータ読み出しに対する処理を示す。以下では、要求元300に対する2次キャッシュ装置410の処理を例に説明する。なお、図8(b)に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
本実施形態のキャッシュ装置120の動作は、ステップS401の処理が追加されることを除いて、第2の実施形態のキャッシュ装置110の動作と同じである。
キャッシュ装置120は、2次キャッシュ装置410から、要求履歴の取得要求を受信すると、キャッシュ装置120が有する要求履歴の情報を送信する(ステップS401)。
本実施形態の2次キャッシュ装置410の動作は、ステップS210の処理がステップS310及びステップS311の処理に置き換えられることを除いて、第2の実施形態の2次キャッシュ装置400の動作と同じである。
2次キャッシュ装置410は、キャッシュ装置120からキャッシュ装置120の要求履歴を取得し(ステップS310)、ステップS311の処理へ進む。
2次キャッシュ装置410は、指定データ又はキャッシュに保持されたデータのうち、キャッシュ装置120の要求履歴においてより多数の要求元に対応付けられたデータを、より少数の要求元に対応付けられたデータに優先して破棄候補のデータとして選択し(ステップS311)、ステップS111の処理へ進む。なお、上記の要求元の数は、要求履歴において特定のデータを要求した要求元の数である。例えば、特定のデータを、要求元300が2回、要求元301が3回要求した場合には、上記の要求元の数は2である。
なお、最も多数の要求元に対応付けられた、キャッシュデータ又は指定データが複数存在する場合には、2次キャッシュ装置410は、その中から任意のキャッシュデータ又は指定データを破棄候補として選択してもよい。2次キャッシュ装置410は、例えば、その中から最も新しい読み出し要求に対応するキャッシュデータを破棄候補として選択してもよい。
次に、本実施形態における処理の具体例について説明する。
図9は、本発明の第3の実施形態におけるキャッシュ装置120及び2次キャッシュ装置410、411の動作の具体例を説明するための図である。
図9(a)は、要求元300及び要求元301からのデータ読み取り要求の時系列を示し、図3(a)と同様である。
図9(b)は、2次キャッシュ装置410のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図6(b)の前提条件及び記載方法と同様である。
図9(c)は、2次キャッシュ装置411のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図6(c)の前提条件及び記載方法と同様である。
図9(d)は、キャッシュ装置120のキャッシュデータに対する操作を示す。前提条件及び操作の記載方法は、図6(d)の前提条件及び記載方法と同様である。
時刻“1”)
2次キャッシュ装置410は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置410は、キャッシュ装置120を介して記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、2次キャッシュ装置410は、キャッシュに指定データ“データA”を記憶する(ステップS109)。
キャッシュ装置120は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置410を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置120は、記憶装置200から指定データ“データA”を取得し(ステップS105、S106)、2次キャッシュ装置410を介して要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、キャッシュ装置120は、キャッシュに指定データ“データA”を記憶する(ステップS109)。
時刻“2”)
2次キャッシュ装置411は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置411は、キャッシュ装置120を介して記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量があるので(ステップS108:Yes)、2次キャッシュ装置411は、キャッシュに指定データ“データB”を記憶する(ステップS109)。
キャッシュ装置120は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を2次キャッシュ装置411を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置120は、記憶装置200から指定データ“データB”を取得し(ステップS105、S106)、2次キャッシュ装置411を介して要求元“要求元B”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置120は、1台の要求元“要求元A”に対応付けられたデータ“データA”を破棄候補として選択し(ステップS110)、選択した破棄候補“データA”を指定データ“データB”に更新する(ステップS111)。
時刻“3”)
2次キャッシュ装置410は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置410は、キャッシュ装置120を介して記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、要求元“要求元A”へ送信する(ステップS107)。
キャッシュ装置120は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置410を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、キャッシュ装置120は、記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、2次キャッシュ装置410を介して要求元“要求元A”へ送信する(ステップS107)。キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置120は、1台の要求元“要求元B”に対応付けられたデータ“データB”を破棄候補として選択し(ステップS110)、選択した破棄候補“データB”を指定データ“データC”に更新する(ステップS111)。
2次キャッシュ装置410は、キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置120の要求履歴を取得する(ステップS310)。
キャッシュ装置120は、2次キャッシュ装置410から、要求履歴の取得要求を受信すると、キャッシュ装置120が有する要求履歴の情報を送信する(ステップS401)。
2次キャッシュ装置410は、キャッシュ装置120の要求履歴に基づいて、1台の要求元“要求元A”に対応付けられたデータ“データC”を破棄候補として選択し(ステップS311)、選択した破棄候補“データC”を破棄する(ステップS111)。
時刻“4”)
2次キャッシュ装置411は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在しないので(ステップS103:No)、2次キャッシュ装置411は、キャッシュ装置120を介して記憶装置200から指定データ“データC”を取得し(ステップS105、S106)、要求元“要求元B”へ送信する(ステップS107)。
キャッシュ装置120は、指定データ“データC”に対する要求元“要求元B”からの読み出し要求を2次キャッシュ装置411を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置120は、キャッシュデータ“データC”を含む読み出し応答を2次キャッシュ装置411を介して要求元“要求元B”へ送信する(ステップS104)。
2次キャッシュ装置411は、キャッシュに必要な空き容量がないので(ステップS108:No)、キャッシュ装置120の要求履歴を取得する(ステップS310)。
キャッシュ装置120は、2次キャッシュ装置411から、要求履歴の取得要求を受信すると、キャッシュ装置120が有する要求履歴の情報を送信する(ステップS401)。
2次キャッシュ装置411は、キャッシュ装置120の要求履歴に基づいて、2台の要求元“要求元A”及び“要求元B”に対応付けられたデータ“データC”を破棄候補として選択し(ステップS311)、選択した破棄候補“データC”を破棄する(ステップS111)。
時刻“5”)
2次キャッシュ装置410は、指定データ“データA”に対する要求元“要求元A”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データA”のキャッシュデータは存在するので(ステップS103:Yes)、2次キャッシュ装置410は、キャッシュデータ“データA”を含む読み出し応答を要求元“要求元A”へ送信する(ステップS104)。
時刻“6”)
2次キャッシュ装置411は、指定データ“データB”に対する要求元“要求元B”からの読み出し要求を受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データB”のキャッシュデータは存在するので(ステップS103:Yes)、2次キャッシュ装置411は、キャッシュデータ“データB”を含む読み出し応答を要求元“要求元B”へ送信する(ステップS104)。
時刻“7”)
2次キャッシュ装置410は、時刻“3”と同様に動作する。
キャッシュ装置120は、指定データ“データC”に対する要求元“要求元A”からの読み出し要求を2次キャッシュ装置410を介して受信すると(ステップS101)、要求履歴に記録する(ステップS102)。指定データ“データC”のキャッシュデータは存在するので(ステップS103:Yes)、キャッシュ装置120は、キャッシュデータ“データC”を含む読み出し応答を2次キャッシュ装置410を介して要求元“要求元A”へ送信する(ステップS104)。
キャッシュ装置120は、2次キャッシュ装置410から、要求履歴の取得要求を受信すると、キャッシュ装置120が有する要求履歴の情報を送信する(ステップS401)。
時刻“8”)
2次キャッシュ装置411は、時刻“4”と同様に動作する。
キャッシュ装置120は、時刻“4”と同様に動作する。
以上説明したように、本実施形態のキャッシュ装置120は、共有データを独立データに優先してキャッシュに保持する。特に、キャッシュ装置120は、共有データの全体を保持するために十分なキャッシュ容量を有する場合には、全ての共有データの読み出しをキャッシュに保持する。また、キャッシュ装置120は、要求履歴に基づき、指定データが共有データであるか否かをキャッシュ動作時に動的に判断する。従って、本実施形態のキャッシュ装置120は、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができる。
なお、2次キャッシュ装置410は、要求元300の独立データを優先してキャッシュに保持する。特に、2次キャッシュ装置410は、要求元300の独立データの全体を保持するために十分なキャッシュ容量を有する場合には、要求元300の全ての独立データの読み出しをキャッシュに保持する。2次キャッシュ装置411も、2次キャッシュ装置410と同様である。つまり、2次キャッシュ装置410、2次キャッシュ装置411は、それぞれ、要求元300、要求元301の独立データを優先してキャッシュに保持し、キャッシュ装置120は、共有データを優先してキャッシュに保持する。そのため、キャッシュ装置120では、キャッシュ装置120が共有データを保持するために十分なキャッシュ容量を有し、2次キャッシュ装置410及び2次キャッシュ装置411が独立データを保持するために十分なキャッシュ容量を有する場合には、独立データの読み出し要求の共有データの読み出し要求に対する比率によらずに、キャッシュのヒット率が高い。
また、2次キャッシュ装置410及び2次キャッシュ装置411が独立データを保持するために十分なキャッシュ容量を有する場合には、2次キャッシュ装置410、2次キャッシュ装置411は、専ら独立データのキャッシュを保持する。一方、キャッシュ装置120が共有データを保持するために十分なキャッシュ容量を有する場合には、キャッシュ装置120は専ら共有データのキャッシュを保持する。その結果、本実施形態のキャッシュ装置120では、キャッシュ装置110を用いる場合に比べて、キャッシュ全体の利用効率が向上する。
(第4の実施形態)
次に、上述した第2の実施形態におけるキャッシュ装置を内蔵するストレージである、本発明の第4の実施形態について説明する。なお、以下の説明において、第2の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
まず、本実施形態における構成について説明する。
図10は、本発明の第4の実施形態におけるストレージ130の構成の一例を示すブロック図である。
ストレージ130は、サーバキャッシュ430と、サーバキャッシュ431と、サーバキャッシュ432とに接続される。ストレージ130は、サーバキャッシュ430、サーバキャッシュ431、サーバキャッシュ432を介して、それぞれ、サーバ330、サーバ331、サーバ332に接続される。なお、サーバキャッシュ430、サーバキャッシュ431、サーバキャッシュ432は、それぞれ、サーバ330、サーバ331、サーバ332に内蔵される。ストレージ130は、サーバ330、サーバ331、サーバ332により読み出されるデータを保持する、キャッシュを内蔵する記憶装置である。
ストレージ130は、ストレージキャッシュ情報制御手段131と、分割領域判定手段132と、アクセス情報制御手段133と、データ破棄判定手段134と、分割領域作成手段135と、ストレージキャッシュ138と、HDD(Hard Disk Drive)139とを有する。
キャッシュ情報制御手段131は、各サーバからストレージ130に対してデータ読み出し要求が発行された際に、データ読み出しの指定データがストレージキャッシュ138に存在するか否かを判定し、ストレージキャッシュ138の使用量を計測する。
分割領域判定手段132は、データ読み出しの指定データがストレージキャッシュ138上のどの「分割領域」に属するかの判定を行う。なお、「分割領域」については、後述する。
アクセス情報制御手段133は、各サーバからのデータ読み出しの要求の要求履歴を記憶する。
データ破棄判定手段134は、ストレージキャッシュ138に存在するデータのうち、破棄対象のデータの判定を行う。なお、データ破棄判定手段134は、ストレージキャッシュ138に存在するデータのうち、独立データを共有データに優先して、破棄対象のデータとして選択する。
分割領域作成手段135は、ストレージキャッシュ138に新たにデータを保持させる際に、新たな「分割領域」を作成する。
ストレージキャッシュ138は、HDD139から読み出したデータを一時的に保持する。
HDD139は、サーバ330、サーバ331、サーバ332により読み出されるデータを常に保持する。
次に、本実施形態における動作について説明する。
図11は、本発明の第4の実施形態におけるストレージ130の動作を示すフローチャートである。なお、図11のフローチャートでは、説明を簡単にするために、ストレージキャッシュにおけるキャッシュデータの更新処理のみが示され、その他の処理は省略されている。また、図11に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
ストレージキャッシュ情報制御手段131は、各サーバからのデータ読み出し要求の指定データがストレージキャッシュ138に存在するか否かを判定する(ステップS501)。ストレージキャッシュ情報制御手段131は、存在する場合(ステップS501:Yes)にはステップS502の処理へ推移し、存在しない場合(ステップS501:No)にはステップS503の処理へ推移する。
分割領域判定手段132は、データ読み出し要求の指定データがどの「分割領域」に対応するのかを判定し(ステップS502)、ステップS506の処理へ推移する。
データ破棄判定手段134は、ストレージキャッシュ情報制御手段131からの情報に基づいて、ストレージキャッシュの使用量が所定の閾値を超えているか否かを判定する(ステップS503)。閾値を超えている場合(ステップS503:Yes)には、データ破棄判定手段134は、ステップS504の処理へ推移する。閾値を超えていない場合(ステップS503:No)には、分割領域作成手段135は、ステップS505の処理へ推移する。
データ破棄判定手段134は、独立データである「分割領域」を優先して特定の「分割領域」のデータを破棄し(ステップS504)、ステップS505の処理へ推移する。なお、データ破棄判定手段134は、「分割領域」に関連付けられた「サーバ優先度」にも基づいて破棄対象を決定してもよい。破棄対象の選択方法の具体例については、後述する。
分割領域作成手段135は、データ読み出し要求の指定データが存在する範囲を覆うように、論理ディスクにおける開始アドレス及び終了アドレスにより指定された「分割領域」を決定し、その「分割領域」内に存在するデータをストレージキャッシュ138に保持させる(ステップS505)。新たな「分割領域」の作成方法の具体例については、後述する。
アクセス情報制御手段133は、データ読み出し要求元のサーバから特定の「分割領域」の読み出しがあったことを要求履歴に登録し(ステップS506)、ステップS501の処理へ戻る。
次に、本実施形態における処理の具体例について説明する。
まず、「分割領域」について説明する。
図12は、本発明の第4の実施形態におけるストレージ130における「分割領域」の作成方法の具体例を説明するための図である。
「分割領域」とは、ストレージ130がHDD139上のデータをキャッシュデータとして管理するためのデータ指定方法である。分割領域は、HDD139が抽象化された「論理ディスク」における、特定のデータを含むブロックの、開始アドレス、終了アドレスの組である。以下では、分割領域におけるブロックの最小単位が“1MB”である場合の例を説明するが、最小単位は“1MB”に限定されない。
最初に、ストレージ130は、あるサーバから論理ディスクのアドレス“2MB”からアドレス“2.7MB”の範囲のデータを読み出すコマンドを受信する。
ストレージ130の分割領域作成手段135は、分割領域におけるブロックの最小単位は“1MB”なので、開始アドレスが“2MB”であり終了アドレスが“3MB”であるブロックを1つの分割領域として作成し、ストレージキャッシュ138にデータを保持する。
次に、ストレージ130は、あるサーバから論理ディスクのアドレス“5.2MB”からアドレス“8.6MB”の範囲のデータを読み出すコマンドを受信する。
分割領域作成手段135は、開始アドレスが“5MB”であり終了アドレスが“9MB”であるブロックを1つの分割領域として作成し、ストレージキャッシュ138にデータを保持する。
続いて、ストレージ130は、他のサーバから同一論理ディスクのアドレス“8.7MB”からアドレス“8.9MB”の範囲のデータを読み出すコマンドを受信する。
最新のデータ読み出しコマンドにおいて指定されたデータは、直前のデータ読み出しコマンドにおいて指定されたデータとは異なるデータである。しかしながら、最新のデータ読み出しコマンドにおいて指定されたデータは、直前のデータ読み出しコマンドに対応してストレージキャッシュ138上に保持されている分割領域に含まれる。そこで、ストレージ130は、最新のデータ読み出しコマンドにおいて指定されたデータを直前のデータ読み出しコマンドにおいて指定されたデータと同一のデータであるものとみなす。
次に、ストレージキャッシュ138から破棄されるデータの選択方法の具体例について説明する。
図13は、本発明の第4の実施形態におけるストレージ130におけるストレージキャッシュ138から破棄されるデータの選択方法の具体例を説明するための図である。
最初に、ストレージ130は、サーバAからストレージキャッシュ138上に保持されていないデータAに対するデータ読み出し要求を受信する。
ストレージ130は、ストレージキャッシュ138にデータAを含む分割領域Aを保持する。また、ストレージ130は、サーバAからの分割領域Aに対する読み出し要求を要求履歴に登録する。この時点では、ストレージ130は、分割領域AがサーバAの独立データであると判別する。
次に、ストレージ130は、サーバBからストレージキャッシュ138上に存在する分割領域Aに含まれるデータ対するデータ読み出し要求を受信する。
ストレージ130は、既に存在する分割領域Aについての要求履歴に対しサーバBからのデータ読み出し要求があった旨を追加する。その結果、ストレージ130は、分割領域AがサーバA及びサーバBの共有データであると判別する。
ストレージ130は、同様に、サーバA、サーバB、サーバCから、データB、データC、データD、又はデータEに対するデータ読み出し要求を受信する。その結果、ストレージ130は、図13に示される、分割領域B、分割領域C、分割領域D、及び分割領域Eを生成し、各分割領域に関する要求履歴を保持する。
図13に示されるように、複数のサーバからのデータ読み出し要求が要求履歴に記録された分割領域A、分割領域B、分割領域Eは共有データである。一方、単一のサーバからのデータ読み出し要求が要求履歴に記録された分割領域Cと分割領域Dは独立データである。
ストレージ130は、サーバ毎の優先度にも基づいて、ストレージキャッシュ138からキャッシュデータを破棄してもよい。例えば、どのサーバのデータ読み出し要求を優先してストレージキャッシュ138に残すかに関するサーバ毎の優先度が、優先度の高いものから、サーバA、サーバB、サーバCの順で定義されるものとする。この場合、ストレージ130は、ストレージキャッシュ138の使用量が閾値を超えた場合に、独立データでありサーバの優先度の低い分割領域Dを最優先してストレージキャッシュ138から破棄する。
また、ストレージ130は、ストレージキャッシュ138上に共有データしか存在しない場合に、共有データの中で、データの「共有度」が低く、更にサーバ毎の優先度が低いキャッシュデータを優先して、ストレージキャッシュ138から破棄してもよい。なお、「共有度」とは、共有データを共有しているサーバの台数である。
図13に示される状況では、キャッシュデータが破棄される優先度は、優先度の高いものから順に、分割領域D、分割領域C、分割領域E、分割領域A、分割領域Bである。
なお、サーバ毎の優先度は、ユーザにより予め設定されるか、データ読み出しの優先度の統計を取ることにより取得可能である。例えば、「SCSI Architecture Model」に準拠するデータ読み出しコマンドが利用される場合には、ストレージ130は、データ読み出しコマンド中の「Command priority」の値を参照することにより、サーバ毎の優先度を取得することが可能である。
以上説明したように、本実施形態のストレージ130は、共有データを独立データに優先してストレージキャッシュに保持する。特に、ストレージ130は、共有データの全体を保持するために十分なキャッシュ容量を有する場合には、全ての共有データの読み出しをストレージキャッシュに保持する。また、ストレージ130は、要求履歴に基づき、指定データが共有データであるか否かをキャッシュ動作時に動的に判断する。従って、本実施形態のストレージ130は、キャッシュの動作時に、動的に独立データと共有データとの判別を行い、共有データを優先してキャッシュに保持することができる。
また、本実施形態のストレージ130は、各サーバの共有データをストレージキャッシュ138に保持する可能性が高い。そのため、本実施形態のストレージ130では、共有データの独立データに対する比率が高い場合には、キャッシュヒット率が高いという効果がある。
また、本実施形態のストレージ130では、共有データが優先的にストレージキャッシュ138に保持されるので、共有データの独立データに対する比率が高い場合に、キャッシュ容量が効率的に利用される。そのため、本実施形態のストレージ130では、共有データの独立データに対する比率が高い場合には、読み出しキャッシュのメモリ容量を減らして、その分のメモリ容量を書き込みキャッシュに割り当て可能である。
また、本実施形態のストレージ130では、データの共有度及びサーバ毎の優先度に応じて破棄するキャッシュデータが決定される場合には、優先サーバから要求されたデータがストレージキャッシュ138に保持される可能性が高い。そのため、本実施形態のストレージ130では、高負荷時にも、優先サーバからのデータ読み出し要求に対する応答性能の低下を抑制することができる。
なお、上述の説明において、分割領域の最低単位は1MBであるが、最低単位は1MBに限定されない。また、同一のデータであるか否かの判定のために分割領域を使用したが、別の方法を用いて同一のデータであるか否かの判定が行われてもよい。例えば、ストレージキャッシュ138に保持されるデータは、データ読み出し要求における指定データの、開始アドレスとデータ長の組を用いて同定されてもよい。
また、上述の説明において、破棄対象データの判定のために、データの共有度及びサーバ毎の優先度が使用された。しかしながら、破棄対象データの判定のために、別の要素が使用されてもよい。例えば、破棄対象データの判定の際に、データの読み出しが要求された最近の時刻が古いキャッシュデータから優先的に破棄する、又は要求頻度が低いキャッシュデータから優先的に破棄する等の、新しい要素が追加されてもよい。さらに、各要素に基づく優先度の重み付き総和を各分割領域について算出し、重み付き総和が低いキャッシュデータが優先されて破棄されてもよい。
(第5の実施形態)
次に、上述した第4の実施形態において、サーバキャッシュとストレージキャッシュが連携してキャッシュデータを保持する、本発明の第5の実施形態について説明する。なお、以下の説明において、第4の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
まず、本実施形態におけるキャッシュデータの配置について説明する。
図14は、本発明の第4の実施形態及び第5の実施形態におけるキャッシュデータの配置の一例を示す図である。本発明の第4の実施形態では、同一の共有データが各サーバキャッシュに保持される可能性が高い(図14(a))。一方、本実施形態では、ストレージキャッシュには共有データのみが保持され、サーバキャッシュには独立データのみが保持される可能性が高い(図14(b))。
図14(b)の詳細について説明する。
サーバAからのみ参照される独立データAは、サーバキャッシュAのみにより保持される可能性が高い。すなわち、ストレージキャッシュにより一旦は保持された独立データAは、サーバキャッシュにより保持された後に、優先的に破棄される。独立データB、独立データCについても同様である。
複数のサーバA、サーバB、サーバCから参照される共有データDは、ストレージキャッシュのみにより保持される可能性が高い。すなわち、サーバキャッシュA、サーバキャッシュB、又はサーバキャッシュCにより一旦は保持された共有データDは、ストレージキャッシュにより保持された後に、優先的に破棄される。
次に、本実施形態における構成について説明する。
図15は、本発明の第5の実施形態におけるストレージ140及びサーバ340、341、342の構成の一例を示すブロック図である。
本実施形態のストレージ140の構成は、第4の実施形態のストレージ130の構成と同じである。ただし、本実施形態のアクセス情報制御手段143は、第4の実施形態のアクセス情報制御手段133と動作が異なる。
アクセス情報制御手段143は、ストレージ140の要求履歴の情報を取得するための「取得コマンド」を受信すると、ストレージ140の要求履歴の情報を送信する。
また、アクセス情報制御手段143は、ストレージ140の特定の分割領域(キャッシュデータ)を破棄するための「破棄コマンド」を受信すると、指定された分割領域が独立データである場合には分割領域を破棄し、指定された分割領域が共有データである場合には要求履歴から対象サーバを削除する。
アクセス情報制御手段143のその他の動作は、第4の実施形態のアクセス情報制御手段133の動作と同じである。
サーバ340の構成について説明する。なお、サーバ341、サーバ342の構成は、サーバ340の構成と同じである。また、サーバ340、サーバ341、サーバ342は、それぞれ、サーバキャッシュ440、サーバキャッシュ441、サーバキャッシュ442を有する。また、サーバキャッシュ440、サーバキャッシュ441、サーバキャッシュ442は、それぞれ、サーバキャッシュ情報制御手段450、サーバキャッシュ情報制御手段451、サーバキャッシュ情報制御手段452を有する。
サーバ340のサーバキャッシュ440は、サーバキャッシュ情報制御手段450を有する。
また、サーバキャッシュ情報制御手段450は、ストレージ140に取得コマンドを送信して、ストレージ140の要求履歴の情報を受信する。
また、サーバキャッシュ情報制御手段450は、取得した要求履歴の情報に基づいて、ストレージキャッシュ138上の各分割領域(キャッシュデータ)が、サーバキャッシュ440により保持されているか否かを判定する。
また、サーバキャッシュ情報制御手段450は、各キャッシュデータをサーバキャッシュ440又はストレージキャッシュ138のどちらにより保持されるべきか否かを判定する。
また、サーバキャッシュ情報制御手段450は、ストレージ140にストレージキャッシュ138上の特定の分割領域(キャッシュデータ)を破棄させる破棄コマンドを送信する。
本実施形態のサーバ340のその他の構成は、第4の実施形態のサーバ330の構成と同じである。
なお、取得コマンドに対する応答は、ストレージ140の要求履歴の情報のうち少なくとも、サーバ340からの要求履歴が存在する分割領域に関する要求履歴の情報を含む。1つの分割領域に関する要求履歴の情報は、例えば、分割領域の開始アドレス、分割領域のデータ長、分割領域データに対する各サーバからのデータ読み出し要求の有無の情報である。
また、破棄コマンドは、例えば、分割領域の開始アドレスとデータ長を含む。
もしくは、取得コマンドの応答において、各分割領域の識別子がサーバキャッシュ440に通知され、破棄コマンドにおいて、分割領域の識別子により各分割領域が識別されてもよい。
次に、本実施形態における動作について説明する。
図16は、本発明の第5の実施形態におけるストレージ140及びサーバ340の動作を示すフローチャートである。サーバ341、サーバ342の動作は、サーバ340の動作と同じである。なお、図16のフローチャートでは、説明を簡単にするために、ストレージキャッシュ及びサーバキャッシュにおける1つのキャッシュデータの更新処理のみが示され、その他の処理は省略されている。また、図16に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
サーバ340のサーバキャッシュ情報制御手段450は、ストレージ140へストレージ140の要求履歴の情報を取得するコマンドを送信し(ステップS601)、ステップS602の処理へ推移する。
ストレージ140のアクセス情報制御手段143は、サーバ340から取得コマンドを受信し、アクセス情報制御手段143にて保持される分割領域の要求履歴の情報のうち、サーバ340から要求された分割領域に関する要求履歴の情報を送信し(ステップS602)、ステップS603の処理へ推移する。なお、分割領域に対する扱いは本発明の第4の実施形態における扱いと同じである。
サーバ340のサーバキャッシュ情報制御手段450は、ストレージキャッシュ138の要求履歴の情報に基づいて、ストレージキャッシュ138の各分割領域がサーバキャッシュ440に保持されているか否かを判定する(ステップS603)。サーバキャッシュ情報制御手段450は、存在しない場合(ステップS603:Yes)にはステップS604の処理へ推移し、存在する場合(ステップS603:No)にはステップS606の処理へ推移する。
サーバ340のサーバキャッシュ情報制御手段450は、各分割領域(キャッシュデータ)の共有度や要求頻度等に基づいて、特定の分割領域がストレージキャッシュ138により保持されるべきか否かを判定する(ステップS604)。サーバキャッシュ情報制御手段450は、分割領域がストレージキャッシュ138により保持されるべき場合(ステップS604:Yes)にはステップS601の処理へ戻り、サーバキャッシュ440により保持されるべき場合(ステップS604:No)にはステップS605の処理へ推移する。
サーバ340のサーバキャッシュ情報制御手段450は、特定の分割領域をサーバキャッシュ440に保持し(ステップS605)、ステップS608の処理へ推移する。
サーバ340のサーバキャッシュ情報制御手段450は、各分割領域(キャッシュデータ)の共有度や要求頻度等に基づいて、特定の分割領域がサーバキャッシュ440により保持されるべきか否かを判定する(ステップS606)。サーバキャッシュ情報制御手段450は、分割領域がサーバキャッシュ440により保持されるべき場合(ステップS606:Yes)にはステップS608の処理へ推移し、ストレージキャッシュ138により保持されるべき場合(ステップS606:No)にはステップS607の処理へ推移する。
サーバ340のサーバキャッシュ情報制御手段450は、サーバキャッシュ440の特定の分割領域を破棄し(ステップS607)、ステップS601の処理へ戻る。
サーバ340サーバキャッシュ情報制御手段450は、は、ストレージキャッシュ138の特定の分割領域(キャッシュデータ)を破棄させるためのコマンドをストレージ140へ送信し(ステップS608)、ステップS609の処理へ推移する。
ストレージ140のアクセス情報制御手段143は、破棄コマンドを受信し、指定された分割領域が独立データであるか否かを判定する(ステップS609)。アクセス情報制御手段143は、独立データである場合(ステップS609:Yes)にはステップS610の処理へ推移し、共有データである場合(ステップS609:No)にはステップS611の処理へ推移する。
ストレージ140のアクセス情報制御手段143は、特定の分割領域をストレージキャッシュ138から破棄し(ステップS610)、ステップS601の処理へ戻る。
ストレージ140のアクセス情報制御手段143は、サーバ340から特定の分割領域に関する要求履歴からサーバ340を消去し(ステップS611)、ステップS601の処理へ戻る。
以上説明したように、本実施形態のサーバ340は、サーバキャッシュ440に保持されている共有データを破棄できる。従って、本実施形態のサーバ340では、本発明の第4の実施形態における効果に加えて、限られたサーバキャッシュの容量の利用効率を向上することができるか、又はサーバキャッシュの容量を低減することができるとういう効果がある。
また、本実施形態のサーバ340、341、342及びストレージ140では、サーバキャッシュとストレージキャッシュに同一のデータが保持される可能性が低い。従って、本実施形態のサーバ340、341、342又はストレージ140では、本発明の第4の実施形態における効果に加えて、限られたサーバキャッシュ若しくはストレージキャッシュの容量の利用効率を向上することができるか、又はサーバキャッシュ若しくはストレージキャッシュの容量を低減することができるとういう効果がある。
なお、上述した各実施形態におけるキャッシュ装置は、専用の装置によって実現してもよいが、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、メモリ(不図示)に格納されたソフトウェア・プログラムをCPU(Central_Processing_Unit、不図示)に読み出し、読み出したソフトウェア・プログラムをCPUにおいて実行することにより、実行結果を、例えば、ユーザ・インタフェースに出力する。上述した各実施形態及び変形例の場合、係るソフトウェア・プログラムには、上述したところの、図1に示したキャッシュ装置100の各手段、図4に示したキャッシュ装置110の各手段、又は図7に示したキャッシュ装置120の各手段の機能を実現可能な記述がなされていればよい。但し、キャッシュ装置100のキャッシュ手段101は、キャッシュ装置110のキャッシュ手段101、又はキャッシュ装置120のキャッシュ手段101は、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
本発明は、複数のサーバを含むシステムにおいて、各サーバにより、共有される、メモリ、SSD、ハードディスク、ディスクアレイ、データベース、サーバ等がアクセスされる際のキャッシュデータを制御する用途に利用できる。
本発明は、複数の端末を含むシステムにおいて、各端末により、共有される、メモリ、SSD、ハードディスク、ディスクアレイ、データベース、サーバ等がアクセスされる際のキャッシュデータを制御する用途に利用できる。
本発明は、複数のCPUを含む装置において、各CPUにより、共有される、メモリ、SSD、ハードディスク、ディスクアレイ、データベース、サーバ等がアクセスされる際のキャッシュデータを制御する用途に利用できる。
本発明は、マルチコアCPUにおいて、各コアにより、共有される、メモリ、SSD、ハードディスク、ディスクアレイ、データベース、サーバ等がアクセスされる際のキャッシュデータを制御する用途に利用できる。
本発明は、マルチスレッドに対応したCPUにおいて、各スレッドにより、共有される、メモリ、SSD、ハードディスク、ディスクアレイ、データベース、サーバ等がアクセスされる際のキャッシュデータを制御する用途に利用できる。
100 キャッシュ装置
101 キャッシュ手段
102 記憶領域制御手段
200 記憶装置
300、301 要求元
110 キャッシュ装置
400、401 2次キャッシュ装置
120 キャッシュ装置
123 通信手段
410、411 2次キャッシュ装置
130 ストレージ
131 ストレージキャッシュ情報制御手段
132 分割領域判定手段
133 アクセス情報制御手段
134 データ破棄判定手段
135 分割領域作成手段
138 ストレージキャッシュ
139 HDD
330、331、332 サーバ
430、431、432 サーバキャッシュ
140 ストレージ
143 アクセス情報制御手段
340、341、342 サーバ
440、441、442 サーバキャッシュ
450、451、452 サーバキャッシュ情報制御手段

Claims (9)

  1. 記憶装置に接続され、複数の要求元に接続されるキャッシュ装置であって、
    第1の前記要求元から第1の読み出し要求を受信し、前記第1の読み出し要求において指定された第1のデータを保持していない場合に、前記記憶装置に前記第1の読み出し要求を送信し、前記記憶装置から第1の読み出し応答を受信し、前記第1の読み出し応答を前記第1の要求元へ送信する一方、前記第1のデータを保持している場合に、前記第1のデータを含む第2の読み出し応答を前記第1の要求元へ送信するキャッシュ手段と、
    前記第1のデータの指定に対応付けて前記第1の要求元を第1の履歴として記憶し、前記キャッシュ手段により前記第1のデータが保持されておらず且つ前記キャッシュ手段に前記第1のデータを保持するために十分な記憶領域が存在する場合に、前記キャッシュ手段に前記第1のデータを記憶させる一方、前記キャッシュ手段により前記第1のデータが保持されておらず且つ前記キャッシュ手段に前記第1のデータを保持するために十分な記憶領域が存在しない場合に、前記第1のデータ又は前記キャッシュ手段に保持されたデータのうち、前記第1の履歴においてより少数の前記要求元に対応付けられたデータを前記第1の履歴においてより多数の前記要求元に対応付けられたデータに優先して第2のデータとして選択し、前記第2のデータと前記第1のデータとが異なるならば、前記キャッシュ手段に前記第2のデータを破棄させた後に前記第1のデータを記憶させる記憶領域制御手段と
    を備えることを特徴とするキャッシュ装置。
  2. 複数の前記要求元にそれぞれ1台の2次キャッシュ装置を介して接続され、
    前記2次キャッシュ装置は、前記第1の要求元から第2の読み出し要求を受信し、前記第2の読み出し要求において指定された第3のデータを保持していない場合に、前記キャッシュ装置を介して前記記憶装置に前記第2の読み出し要求を送信し、前記キャッシュ装置を介して前記記憶装置から第3の読み出し応答を受信し、前記第3の読み出し応答を前記第1の要求元へ送信する一方、前記第3のデータを保持している場合に、前記第3のデータを含む第4の読み出し応答を前記第1の要求元へ送信し、
    前記2次キャッシュ装置は、前記第3のデータの指定に対応付けて前記第1の要求元を第2の履歴として記憶し、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在する場合に、前記第3のデータを記憶する一方、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在しない場合に、前記第3のデータ又は保持されたデータのうち、前記第2の履歴においてより少数回、前記要求元に対応付けられたデータを前記第2の履歴においてより多数回、前記要求元に対応付けられたデータに優先して第4のデータとして選択し、前記第4のデータと前記第3のデータとが異なるならば、前記第4のデータを破棄した後に前記第3のデータを記憶する
    ことを特徴とする請求項1に記載のキャッシュ装置。
  3. 複数の前記要求元にそれぞれ1台の2次キャッシュ装置を介して接続され、
    前記キャッシュ装置は、前記2次キャッシュ装置に前記第1の履歴の情報を送信する通信手段を更に備え、
    前記2次キャッシュ装置は、前記第1の要求元から第2の読み出し要求を受信し、前記第2の読み出し要求において指定された第3のデータを保持していない場合に、前記キャッシュ装置を介して前記記憶装置に前記第2の読み出し要求を送信し、前記キャッシュ装置を介して前記記憶装置から第3の読み出し応答を受信し、前記第3の読み出し応答を前記第1の要求元へ送信する一方、前記第3のデータを保持している場合に、前記第3のデータを含む第4の読み出し応答を前記第1の要求元へ送信し、
    前記2次キャッシュ装置は、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在する場合に、前記第3のデータを記憶する一方、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在しない場合に、前記キャッシュ装置から前記第1の履歴の情報を取得し、前記第3のデータ又は保持されたデータのうち、前記第1の履歴においてより多数の前記要求元に対応付けられたデータを前記第1の履歴においてより少数の前記要求元に対応付けられたデータに優先して第5のデータとして選択し、前記第5のデータと前記第3のデータとが異なるならば、前記第5のデータを破棄した後に前記第3のデータを記憶する
    ことを特徴とする請求項1に記載のキャッシュ装置。
  4. 請求項1に記載のキャッシュ装置を介して記憶装置に接続され、それぞれ1台の要求元に接続された2次キャッシュ装置であって、
    前記2次キャッシュ装置は、前記キャッシュ装置から前記第1の履歴の情報を取得し、前記第1の履歴に基づいて、破棄するデータを決定する
    ことを特徴とする2次キャッシュ装置。
  5. 請求項1に記載のキャッシュ装置を介して記憶装置に接続され、それぞれ1台の要求元に接続された2次キャッシュ装置であって、
    前記2次キャッシュ装置は、前記第1の要求元から第2の読み出し要求を受信し、前記第2の読み出し要求において指定された第3のデータを保持していない場合に、前記キャッシュ装置を介して前記記憶装置に前記第2の読み出し要求を送信し、前記キャッシュ装置を介して前記記憶装置から第3の読み出し応答を受信し、前記第3の読み出し応答を前記第1の要求元へ送信する一方、前記第3のデータを保持している場合に、前記第3のデータを含む第4の読み出し応答を前記第1の要求元へ送信する2次キャッシュ手段と、
    前記2次キャッシュ装置は、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在する場合に、前記第3のデータを記憶する一方、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在しない場合に、前記キャッシュ装置から前記第1の履歴の情報を取得し、前記第3のデータ又は保持されたデータのうち、前記第1の履歴においてより多数の前記要求元に対応付けられたデータを前記第1の履歴においてより少数の前記要求元に対応付けられたデータに優先して第5のデータとして選択し、前記第5のデータと前記第3のデータとが異なるならば、前記第5のデータを破棄した後に前記第3のデータを記憶する2次記憶領域制御手段と
    を備えることを特徴とする2次キャッシュ装置。
  6. 前記記憶領域制御手段は、前記キャッシュ手段に前記第1のデータを記憶させる際に、前記記憶装置が保持する、前記第1のデータを含むデータブロックを、前記第1のデータとして記憶させ、
    前記キャッシュ手段は、前記第1のデータを保持するか否かを判定する際に、前記第1のデータが、前記第1のデータとして記憶されたデータブロックに含まれるならば、前記第1のデータを保持すると判定する
    ことを特徴とする請求項1乃至請求項3のいずれか1項に記載のキャッシュ装置。
  7. 記憶装置に接続されたキャッシュ装置と、
    前記キャッシュ装置を介して前記記憶装置に接続され、それぞれ1台の要求元に接続される、複数の2次キャッシュ装置とを備えたキャッシュシステムあって、
    前記キャッシュ装置は、
    前記2次キャッシュ装置を介して第1の前記要求元から第1の読み出し要求を受信し、前記第1の読み出し要求において指定された第1のデータを保持していない場合に、前記記憶装置に前記第1の読み出し要求を送信し、前記記憶装置から第1の読み出し応答を受信し、前記第1の読み出し応答を前記2次キャッシュ装置を介して前記第1の要求元へ送信する一方、前記第1のデータを保持している場合に、前記第1のデータを含む第2の読み出し応答を前記2次キャッシュ装置を介して前記第1の要求元へ送信するキャッシュ手段と、
    前記第1のデータの指定に対応付けて前記第1の要求元を第1の履歴として記憶し、前記キャッシュ手段により前記第1のデータが保持されておらず且つ前記キャッシュ手段に前記第1のデータを保持するために十分な記憶領域が存在する場合に、前記キャッシュ手段に前記第1のデータを記憶させる一方、前記キャッシュ手段により前記第1のデータが保持されておらず且つ前記キャッシュ手段に前記第1のデータを保持するために十分な記憶領域が存在しない場合に、前記第1のデータ又は前記キャッシュ手段に保持されたデータのうち、前記第1の履歴においてより少数の前記要求元に対応付けられたデータを前記第1の履歴においてより多数の前記要求元に対応付けられたデータに優先して第2のデータとして選択し、前記第2のデータと前記第1のデータとが異なるならば、前記キャッシュ手段に前記第2のデータを破棄させた後に前記第1のデータを記憶させる記憶領域制御手段とを備え、
    前記2次キャッシュ装置は、
    前記第1の要求元から第2の読み出し要求を受信し、前記第2の読み出し要求において指定された第3のデータを保持していない場合に、前記キャッシュ装置を介して前記記憶装置に前記第2の読み出し要求を送信し、前記キャッシュ装置を介して前記記憶装置から第3の読み出し応答を受信し、前記第3の読み出し応答を前記第1の要求元へ送信する一方、前記第3のデータを保持している場合に、前記第3のデータを含む第4の読み出し応答を前記第1の要求元へ送信する2次キャッシュ手段と、
    前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在する場合に、前記第3のデータを記憶する一方、前記第3のデータが保持されておらず且つ前記第3のデータを保持するために十分な記憶領域が存在しない場合に、前記キャッシュ装置から前記第1の履歴の情報を取得し、前記第3のデータ又は保持されたデータのうち、前記第1の履歴においてより多数の前記要求元に対応付けられたデータを前記第1の履歴においてより少数の前記要求元に対応付けられたデータに優先して第4のデータとして選択し、前記第4のデータと前記第3のデータとが異なるならば、前記第4のデータを破棄した後に前記第3のデータを記憶する2次記憶領域制御手段とを備える
    ことを特徴とするキャッシュシステム。
  8. 記憶装置に接続され、複数の要求元に接続されるキャッシュ装置において、
    第1の前記要求元から第1の読み出し要求を受信し、前記第1の読み出し要求において指定された第1のデータを保持していない場合に、前記記憶装置に前記第1の読み出し要求を送信し、前記記憶装置から第1の読み出し応答を受信し、前記第1の読み出し応答を前記第1の要求元へ送信する一方、前記第1のデータを保持している場合に、前記第1のデータを含む第2の読み出し応答を前記第1の要求元へ送信し、
    前記第1のデータの指定に対応付けて前記第1の要求元を第1の履歴として記憶し、前記第1のデータが保持されておらず且つ前記第1のデータを保持するために十分な記憶領域が存在する場合に、前記第1のデータを記憶する一方、前記第1のデータが保持されておらず且つ前記第1のデータを保持するために十分な記憶領域が存在しない場合に、前記第1のデータ又は保持されたデータのうち、前記第1の履歴においてより少数の前記要求元に対応付けられたデータを前記第1の履歴においてより多数の前記要求元に対応付けられたデータに優先して第2のデータとして選択し、前記第2のデータと前記第1のデータとが異なるならば、前記第2のデータを破棄した後に前記第1のデータを記憶する
    ことを特徴とするキャッシュ方法。
  9. 記憶装置に接続され、複数の要求元に接続されるキャッシュ装置であって、
    第1の前記要求元から第1の読み出し要求を受信し、前記第1の読み出し要求において指定された第1のデータを保持していない場合に、前記記憶装置に前記第1の読み出し要求を送信し、前記記憶装置から第1の読み出し応答を受信し、前記第1の読み出し応答を前記第1の要求元へ送信する一方、前記第1のデータを保持している場合に、前記第1のデータを含む第2の読み出し応答を前記第1の要求元へ送信するキャッシュ処理と、
    前記第1のデータの指定に対応付けて前記第1の要求元を第1の履歴として記憶し、前記第1のデータが保持されておらず且つ前記第1のデータを保持するために十分な記憶領域が存在する場合に、前記第1のデータを記憶する一方、前記第1のデータが保持されておらず且つ前記第1のデータを保持するために十分な記憶領域が存在しない場合に、前記第1のデータ又は保持されたデータのうち、前記第1の履歴においてより少数の前記要求元に対応付けられたデータを前記第1の履歴においてより多数の前記要求元に対応付けられたデータに優先して第2のデータとして選択し、前記第2のデータと前記第1のデータとが異なるならば、前記第2のデータを破棄した後に前記第1のデータを記憶する記憶領域制御処理と
    をコンピュータに実行させることを特徴とするキャッシュプログラム。
JP2014250580A 2014-12-11 2014-12-11 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム Active JP6194875B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014250580A JP6194875B2 (ja) 2014-12-11 2014-12-11 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
US14/964,074 US9858204B2 (en) 2014-12-11 2015-12-09 Cache device, cache system, and cache method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014250580A JP6194875B2 (ja) 2014-12-11 2014-12-11 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム

Publications (2)

Publication Number Publication Date
JP2016114967A true JP2016114967A (ja) 2016-06-23
JP6194875B2 JP6194875B2 (ja) 2017-09-13

Family

ID=56140012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014250580A Active JP6194875B2 (ja) 2014-12-11 2014-12-11 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム

Country Status (2)

Country Link
US (1) US9858204B2 (ja)
JP (1) JP6194875B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI673611B (zh) * 2016-09-06 2019-10-01 日商艾庫塞爾股份有限公司 資訊處理裝置、及資訊處理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6551101B2 (ja) * 2015-09-17 2019-07-31 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム
US11831565B2 (en) * 2018-10-03 2023-11-28 Advanced Micro Devices, Inc. Method for maintaining cache consistency during reordering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117817A (ja) * 1999-10-15 2001-04-27 Internatl Business Mach Corp <Ibm> キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
WO2011161829A1 (ja) * 2010-06-25 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206949A (ja) 2006-02-01 2007-08-16 Nec Corp ディスクアレイ装置、ディスクアレイ装置の制御方法、ディスクアレイ装置の制御プログラム
US7805575B1 (en) * 2006-09-29 2010-09-28 Tilera Corporation Caching in multicore and multiprocessor architectures
US7840759B2 (en) * 2007-03-21 2010-11-23 International Business Machines Corporation Shared cache eviction
JP2010049502A (ja) 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
EP2513799B1 (en) * 2009-12-16 2014-03-12 Telefonaktiebolaget L M Ericsson (PUBL) A method, server and computer program for caching
JP5614266B2 (ja) 2010-11-30 2014-10-29 富士ゼロックス株式会社 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム
US20140258375A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System and method for large object cache management in a network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117817A (ja) * 1999-10-15 2001-04-27 Internatl Business Mach Corp <Ibm> キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
US6629200B1 (en) * 1999-10-15 2003-09-30 International Business Machines Corporation System and method for controlling cache memories, computer system, hard disk drive unit, and hard disk control unit
WO2011161829A1 (ja) * 2010-06-25 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US20130111138A1 (en) * 2010-06-25 2013-05-02 Fujitsu Limited Multi-core processor system, computer product, and control method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
長廻 雄介 外: ""上位キャッシュの動作を考慮した下位キャッシュの置換手法"", 情報処理学会第73回(平成23年)全国大会 講演論文集(1) アーキテクチャ ソフトウェア科学・工学, JPN6017011324, 2 March 2011 (2011-03-02), JP, pages pp. 1-179〜1-180 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI673611B (zh) * 2016-09-06 2019-10-01 日商艾庫塞爾股份有限公司 資訊處理裝置、及資訊處理方法

Also Published As

Publication number Publication date
US20160196211A1 (en) 2016-07-07
JP6194875B2 (ja) 2017-09-13
US9858204B2 (en) 2018-01-02

Similar Documents

Publication Publication Date Title
US20200089430A1 (en) Memory system and control method
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
CN108139872B (zh) 一种缓存管理方法、缓存控制器以及计算机系统
US20130212319A1 (en) Memory system and method of controlling memory system
JP6131170B2 (ja) 計算機システム、及びデータ配置制御方法
US11093410B2 (en) Cache management method, storage system and computer program product
US10095442B2 (en) Memory device that changes execution order of commands
JP4748950B2 (ja) 記憶領域管理方法及びシステム
KR20190079672A (ko) 정보 처리 장치, 메모리 액세스 방법 및 컴퓨터 프로그램
US20170123975A1 (en) Centralized distributed systems and methods for managing operations
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US10817186B2 (en) Memory system
JP6194875B2 (ja) キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
US9465745B2 (en) Managing access commands by multiple level caching
CN105574008B (zh) 应用于分布式文件系统的任务调度方法和设备
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2005339299A (ja) ストレージ装置のキャッシュ制御方法
KR102063281B1 (ko) 파일에 접근하기 위한 방법과 장치, 및 저장 시스템
JP2021135538A (ja) ストレージ制御装置及びストレージ制御プログラム
JP2009199367A (ja) 計算機システム、i/oスケジューラ及びi/oスケジューリング方法
US20180329756A1 (en) Distributed processing system, distributed processing method, and storage medium
JP6112193B2 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
JP5900063B2 (ja) ストレージ装置およびストレージ装置における初期化方法
US11474947B2 (en) Information processing apparatus and non-transitory computer-readable storage medium storing cache control program
US11150827B2 (en) Storage system and duplicate data management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170731

R150 Certificate of patent or registration of utility model

Ref document number: 6194875

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150