JP2017162194A - データ管理プログラム、データ管理装置、及びデータ管理方法 - Google Patents

データ管理プログラム、データ管理装置、及びデータ管理方法 Download PDF

Info

Publication number
JP2017162194A
JP2017162194A JP2016046106A JP2016046106A JP2017162194A JP 2017162194 A JP2017162194 A JP 2017162194A JP 2016046106 A JP2016046106 A JP 2016046106A JP 2016046106 A JP2016046106 A JP 2016046106A JP 2017162194 A JP2017162194 A JP 2017162194A
Authority
JP
Japan
Prior art keywords
data
group
change
buffer
write
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
JP2016046106A
Other languages
English (en)
Inventor
敏章 佐伯
Toshiaki Saeki
敏章 佐伯
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016046106A priority Critical patent/JP2017162194A/ja
Priority to US15/425,294 priority patent/US20170262485A1/en
Publication of JP2017162194A publication Critical patent/JP2017162194A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データ再配置に伴うストレージ装置への書き戻し頻度を低減させる技術を提供する。【解決手段】コンピュータがデータに対するアクセス要求の履歴に基づいて、データをグループ化するグループ化情報を生成し、データの追加、更新、または削除の要求を示す変更要求または該データの属するグループの変更に応じて、メモリ上に存在するグループに含まれるデータのうち、該変更要求または該変更処理により変更されたデータをバッファに蓄積し、書き込みについての設定条件に基づいて、前記グループ化情報に含まれるグループ毎に、前記バッファに蓄積された前記データを前記格納装置に書き込むか否かを判定することにより、上記課題の解決を図る。【選択図】図1

Description

本明細書は、データ管理プログラム、データ管理装置、及びデータ管理方法に関する。
ストレージ装置は、サイズの小さなデータへの不規則なアクセスにおけるスループットが低く、シーケンシャルアクセスのコストに比べて、ランダムアクセスのコストが高い。このスループットを向上させる技術として、キャッシュ技術がある。
キャッシュ技術は、処理速度の速い制御装置が低速の記憶装置からデータをより速く読み出す場合にメモリを使用して処理時間を短縮する技術である。制御装置が低速の記憶装置からデータを読み出した場合、その読み出したデータを一時的にメモリに保持しておくことで、次回からはハードディスクより読み書きが早いメモリからデータを読み出せる。
キャッシュ技術の1つとして、Least Recently Used(LRU)キャッシュ技術がある。LRUキャッシュ技術は、小容量で高速な記憶装置(例えば、キャッシュメモリ)がいっぱいになったとき、その中にあるデータのうち、不使用の時間が最も長いデータを大容量で低速な記憶装置(例えば、主記憶装置)に保存する、というのが基本のアルゴリズムである。LRUキャッシュ技術は、アプリケーションプログラムのロジックを知らなくても効果を得られるアルゴリズムであり、短期間のうちに(キャッシュに載っているうちに)同じデータに繰り返しアクセスする場合にのみ効果を発揮する。キャッシュメモリの量によってデータのキャッシュ生存期間が決まるが、そのキャッシュ生存期間を超えるサイクルでの繰り返しアクセスには効果がない。
メモリの容量を超えて大量データを処理する場合、ディスクへのアクセスが多発することで、データ処理性能が大きく劣化する。
そこで、キャッシュ技術の1つとして、アクセス履歴に基づき、関連性のあるデータを同一のセグメントに取りまとめ、データの再配置を行う技術(以降、データ再配置技術)がある(例えば、特許文献1)。
国際公開第2013/114538号 特開平10−161938号公報 特開2001−34535号公報 特開8−137753号公報 特開2009−104687号公報
データ再配置技術は、データを再配置することにより、次回以降のアクセスにおけるリードコストを削減する技術であるが、データの再配置には一定のコストがかかる。データの再配置によるメリットと、データの再配置によるコストとの関係は、データアクセスの状況(データアクセスを行うアプリケーションプログラムの性質)により異なる。
アプリケーションによるライトと再配置によるライトは一度に行うことが可能なので、再配置によるライトのコストの隠蔽が可能である。しかし、たとえば、アプリケーションプログラム(以下、「アプリケーション」と称する。)がライトをしない、あるいは、少量のライトしか行わない場合は、再配置によるライトのコストの隠蔽が十分できないため、LRU等の他の技術と比較してコストが大きくなる。その一方で、データの再配置を行わなければ、再配置によるメリットは得られないため、再配置を抑止することも不適切である。
本発明の一側面として、データ再配置に伴うストレージ装置への書き戻し頻度を制御する技術を提供する。
本発明の一側面に係るデータ管理装置は、グループ化部、蓄積部、判定部を含む。グループ化部は、データに対するアクセス要求の履歴に基づいて、データをグループ化するグループ化情報を生成する。蓄積部は、データの変更を要求する変更要求またはデータの属するグループの変更処理に応じて、メモリ上に存在するグループに含まれるデータのうち、変更要求または変更処理により変更されたデータを示す変更データをバッファに蓄積する。データの変更は、データの追加、更新、及び削除を含む。判定部は、書き込みについての設定条件に基づいて、グループ化情報に含まれるグループ毎に、バッファに蓄積された変更データを格納装置に書き込むか否かを判定する。
本発明の一側面によれば、データ再配置に伴うストレージ装置への書き戻し頻度を低減させることができる。
本実施形態におけるデータ管理装置の一例を示す。 本実施形態におけるデータ管理装置のハードウェア構成例である。 本実施形態におけるデータ管理装置の機能構成例である。 本実施形態におけるデータ配置テーブルの一例である。 本実施形態におけるバッファグループの一例を示す。 本実施形態における更新量テーブルの一例を示す。 本実施形態におけるデータの更新(削除を含む)またはデータの再配置を行ってグループを更新する場合のフロー(その1)を示す。 本実施形態におけるデータの更新(削除を含む)またはデータの再配置を行ってグループを更新する場合のフロー(その2)を示す。 本実施形態における対象グループのキャッシュを破棄する場合のフローを示す。 バッファグループエントリ別処理(S22,S54)のフローを示す。 本実施形態におけるグループの読み込み処理のフローを示す。 本実施形態におけるバッファグループの残り容量が少なくなった場合の処理フローを示す。 本実施形態の実施例について説明するための図である。
データ再配置技術では、関連するデータをグループ化し、ストレージに連続した領域として格納する。
データにアクセスする場合は、ストレージからデータが、所属するグループ毎に、読み出されてメモリにキャッシュされる。キャッシュされたグループに含まれるデータへのアクセスは、1度のランダムアクセスで済むことが期待される。グループは単一のデータよりもサイズが大きくなるのでアクセスコストが増加するが、ランダムアクセスのコストと比較すると増加分はわずかである。
メモリ上において関連性の強いデータが検出された場合は、データがメモリ上にキャッシュされている間に、随時、グルーピングの内容が変更される(データが所属するグループが変更される)。これをデータの再配置と呼ぶ。
メモリの空き容量が不足した場合は、アクセスのないグループから順に、キャッシュから破棄される。グループの変更が行われた場合(所属するデータが更新された場合、もしくは再配置によってグルーピングが更新された場合)は、LRUにて、グループ単位にディスクに書き戻される(ライトバックされる)。
これにより、メモリにキャッシュされているグループに含まれるデータへは、グループがストレージに書き戻されるまでは、追加のストレージアクセスのコスト無しでアクセスできるため、アクセスコストが削減できる。つまり何個のデータにアクセスしても、グループへのアクセスコスト1回分≒データへのアクセスコスト1つ分で賄える。
また、グループがキャッシュに載っている短期間のうちに、同じグループに属するデータにアクセスする場合に効果を発揮する。すなわち、LRUのように同一データへの再アクセスでなく、同一グループへの再アクセスであれば、異なるデータへのアクセスであってよい。また、 先読みキャッシュ技術のような効果を得られる。
ここで、データ間の関連性を示す値として、グループがキャッシュに載っている間に何個のデータがアクセスされたかを「データ再利用数」と呼ぶ。また、あるアプリケーションプログラム(以下、「アプリケーション」と称する。)においてデータ再配置技術が使用されている場合のデータ再利用数の平均値を「平均データ再利用数」と呼ぶ。
また、キャッシュ効果はデータ再配置技術でもLRUキャッシュ技術でも同じく発生するため、同一データへの繰り返しアクセスは1個としてカウントする。
ところが、データ再配置技術の仕組みは高コストであり、LRUキャッシュの性能を上回るための条件が厳しい。以下に、例を用いて条件を検証する。
例えば、シーケンシャルリード/ライト共に100MB/s、ランダムリード/ライト共に10msのハードディスクドライブ(HDD)があるとする。各データは、サイズ1KBであるとする。このときの、LRUの場合のコストは、以下の通りである。
(LRUの場合のコスト)
・データ1つのリードのコストは、10[ms]+1[KB]/100[MB/s]=10[ms]+0.01[ms]=10.01[ms]となる。初回のリードにコストが発生し、キャッシュにデータが載っている場合はコスト0となる。
・データ1つのライトのコストは、10[ms] + 1[KB]/100[MB/s]=10[ms]+0.01[ms]=10.01[ms](リードのコストと等しい。)となる。コストは最後のライトバック時にのみ発生し、それまではコスト0である。
(データ再配置技術の場合のコスト)
一方、データ再配置技術の場合のコストは、以下のようになる。ここで、グループサイズ=1MBとする。
・グループ全体をストレージからリードするコストは、10[ms]+1[MB]/100[MB/s]=20[ms]である。
・グループ全体をストレージにライトするコストも10[ms]+1[MB]/100[MB/s]=20[ms]である。
・データを一つ読み出すだけでもそのデータが所属するグループ全体を読み出す必要がある。
所属するグループがキャッシュに載っていなかった場合において、ライトバックが必要である場合のコストは、20[ms]+20[ms]=40msとなる。これは、データ1つのリードのコスト10.01[ms]の約4倍であることから、再利用数が4以上でないとLRUキャッシュの性能を上回ることができない。
また、データ再配置技術では、平均データ再利用数を高めるために積極的に再配置が行われるため、基本的にはこの値となる。
また、所属するグループがキャッシュに載っていなかった場合において、ライトバックが不要の場合のコストは、20[ms]である。このケースでは、データ1つのリードのコスト10.01[ms]の約2倍であるから、再利用数が2以上でよい。再配置が発生せず、ライトも一切発生しなかった場合の話で、このケースはほとんどない。
・上記コストは初回のみ発生し、所属するグループがキャッシュに載っている場合0[ms]となる。
・データ1つをライトする場合のコストは、リードの場合と同じく20[ms]+20[ms]=40msとなる。この場合でも、再利用率が4以上でないとコストの回収を図ることができない。
リードが必要ない場合のコストは20msで、再利用数は2以上でよいが、再配置にはどうしてもリードが必要になること、グループ内に一つでも更新されないデータがある場合は一度グループを読み出す必要があるため、この条件は基本的に発生しない。
以上より、本例では通常 再利用数4という高い数字を達成しないと、データ再配置のコストを吸収しLRUの性能を上回ることができない、ということが分かる。ただし、特殊な条件では再利用数2を達成すればよいことになる。
また、グループサイズ=100KBとした場合は、グループのリード・ライトのコストが11[ms]となり、再利用数は通常2.2、特殊な条件で1.1を達成すればよいが、グループに所属するデータの数が1/10となるため、この場合でも達成は難しい。
このようにデータ再配置技術の仕組みにおけるリード/ライドには、高コストがかかる。次に、データ再配置技術の仕組みにおけるリード/ライドのコストを、アプリケーションの性質毎に考察する。
(1)リード・ライトが共にほとんど発生しないアプリケーションの場合
この場合では、データ再配置技術が改善しようとするスループット性能問題が発生しない。
(2)リードがほとんど発生しないが、ライトは多く発生するアプリケーションの場合
リード時、再配置されたグループをまとめ読みすることにより、リードのコストが削減されるが、アクセス全体におけるリードの比率が小さいため、性能改善は微小なものとなる。
一方、再配置されて更新されたグループのライトバックは、アプリケーションが発生させるライトに隠蔽することができるので、見かけ上、再配置のコストは極めて小さくなる。
よって、性能改善率は小さめにとどまる。
(3)リード・ライトが共に多く発生するアプリケーションの場合
リード時、再配置されたグループをまとめ読みすることにより、リードのコストが削減され、性能向上する。
一方、再配置されて更新されたグループのライトバックは、アプリケーションが発生させるライトに隠蔽することができるので、見かけ上、再配置のコストは極めて小さくなる。
このため、このケースでは大きく性能改善できる。
(4)リードが多く発生するが、ライトがほとんど発生しないアプリケーションの場合
リード時と同様に、再配置されたグループをまとめ読みすることにより、リードのコストが削減され、性能向上する。
一方、再配置されて更新されたグループのライトバックは、アプリケーションが発生させるライトに隠蔽することができず、データ再配置技術が単独で発生させるケースが多発する。このため再配置のコストは見かけ上きわめて大きくなる。
この結果、性能改善が微小なレベルにとどまるか、もしくは性能が悪化するケースが出てくる。
このように、上記(1)〜(3)の場合と比べて、上記(4)の場合では、性能が悪化するケースがある。
次に、データ再配置技術とバッファリングとによる対応について考察する。
・ライトのコストを下げる代表的手法としてバッファリングによるまとめ書きがあり、これによりライトバックされるグループの数を減らすことはできなくてもライトバックの回数を減らしてコストを下げることができるように見える。
・しかしながらデータ再配置技術はもともとまとめ書きを用いた性能向上を狙っており、データをグループ化してまとめ書きするものである。このグループをさらにまとめ書きするとなると、以下の理由からうまく行かない。
まとめ書きのためのグループをさらに複数個まとめ書きするため、一度の書き込みサイズは巨大になり、シーケンシャルアクセス性能の影響が大きくなり高コストとなる。
もともと上述の再配置技術が想定している状況では、更新されたデータの総サイズ、つまり本来のまとめ書きが必要なサイズは小さい。このため単にLRUを採用し更新されたデータだけをライトバックする場合、その書き込みサイズは小さくて済む。つまりリードとライトがまんべんなく発生する状況よりもむしろ低コストで済む。よって相対的にもデータ再配置技術とバッファリングとは、LRUに対して不利となる。
バッファリングによるライトコスト削減を効果的に行うには、更新されたグループが溜まるのを待ってまとめて書く必要がある。しかしながら、まとめ書きのためのグループをさらに複数個キープし更新されたグループが溜まるのを待つという処理は、メモリを大きく圧迫する。言い換えれば、このバッファリング処理にあまり多くのメモリを割けないので、あまり待てず効率的なまとめ書きにならない。
このようにデータ再配置技術は、データをグループ化することにより、特にリードコストを削減する技術である。データを再配置し、より効率の良いグループ化に変更していく処理は、随時行われる。再配置により、次回以降のアクセスにおけるリードコストが削減される。ライトコストの削減も可能であるが、バッファリングなど簡素な技術で同等の効果を得られる。
しかしながらデータの再配置には、少なくないコストがかかる。特に、再配置して更新されたグループを書き戻す処理が主なコストである。このため、アプリケーションが発生させるリード・アプリケーションが更新したデータのライトと、再配置によって更新されたグループのライトをセットで行って、このコストを隠蔽するのがデータ再配置技術の基本的な設計思想である。
このため、データの再配置によるメリットと、データの再配置に伴うコストの関係は、データアクセスの状況(つまりデータアクセスを行うアプリケーションの性質)により異なってくる。例えば、ライトをしない、あるいは、少量のライトしか行わないアプリケーションにおいては、再配置に伴うライトをセットで行うことが難しくなり再配置に伴うコストを十分に隠蔽できなくなる、つまり見かけ上、コストが大きくなる。この結果、データ再配置技術はLRUなど他の技術より不利となる。一方、再配置を行わなければコストは発生しないが再配置によるメリットも得られないため、再配置を抑止することも不適切である。
以下に、本実施形態の詳細について説明する。
図1は、本実施形態におけるデータ管理装置の一例を示す。データ管理装置1は、グループ化部2、蓄積部3、判定部4を含む。
グループ化部2は、データに対するアクセス要求の履歴に基づいて、データをグループ化するグループ化情報を生成する。グループ化部2の一例として、後述する、解析判断部22、関係性解析部23、配置決定部24、及び再配置部25が挙げられる。グループ化情報の一例として、後述するデータ配置テーブル31が挙げられる。
蓄積部3は、データの変更を要求する変更要求またはデータの属するグループの変更処理に応じて、メモリ上に存在するグループに含まれるデータのうち、変更要求または変更処理により変更されたデータを示す変更データをバッファに蓄積する。データの変更は、追加、更新、及び削除を含む。蓄積部3の一例として、後述するライトバック制御部26が挙げられる。
判定部4は、書き込みについての設定条件に基づいて、グループ化情報に含まれるグループ毎に、バッファに蓄積された変更データを格納装置に書き込むか否かを判定する。判定部4の一例として、後述するライトバック制御部26が挙げられる。
このように構成することにより、データ再配置に伴うストレージ装置への書き戻し頻度を低減させることができる。
判定部4は、蓄積された変更データを格納装置に書き込むと判定した場合、蓄積された変更データの属するグループに関する情報をグループ化情報に反映する。判定部4は、蓄積された変更データを格納装置に書き込むと判定した場合、蓄積された変更データを、変更データに対応するメモリ上のグループに反映して格納装置に書き込む。
このように構成することにより、バッファにおいてバッファグループとして蓄積した更新情報をキャッシュ上のグループに反映すると共に、グループ化情報にも反映することができる。
図2は、本実施形態におけるデータ管理装置のハードウェア構成例である。データ管理装置11は、例えば制御装置12と、メモリ装置(以下、「メモリ」と称する。)13と、ストレージ装置14とを含む。また、データ管理装置11は、通信ネットワーク(以下、「ネットワーク」と称する)16を介して情報処理装置の一例であるクライアントコンピュータ(以下、「クライアント」と称する)15に接続されている。
制御装置12は、例えば、プログラムカウンタや命令デコーダ、各種演算器、LSU(Load Store Unit)、汎用レジスタ等を有する演算処理装置としてのCPU(Central Processing Unit)等のプロセッサである。
メモリ13は、ストレージ装置14に比して高速にアクセス可能な記憶装置である。メモリ13としては、例えば、RAM(Random Access Memory)、フラッシュメモリ等である。ストレージ装置14は、例えば、HDD(Hard Disk Drive)等のメモリ13に比してアクセス速度が低速なディスク装置である。
ストレージ装置14には、データ管理装置11が提供するデータがグループ単位で記憶されている。本実施形態の一例として、グループとは、データへのアクセス要求(以下、アクセス要求と称する)の履歴により関連性が認められるデータの集合であり、後述するように制御装置12の処理によって内容が更新される。アクセス要求は、リード(READ)アクセス要求及びライト(WRITE)アクセス要求を含む。なお、本実施形態の一例として、このようにアクセス履歴に基づいてデータをグループ化しているが、これに限定されず、他の情報に基づいてデータをグループ化してもよい。
メモリ13には、例えばストレージ装置14に格納されたグループのうち高頻度にアクセスされるグループがストレージ装置14から読み出されて格納される。これによって、データ管理装置11は、入力されたアクセス要求に対して高速にデータを出力することができる。
データ管理装置11は、上記の構成に加えて、BIOS(Basic Input/Output System)を格納したROM、プログラムメモリ等を有する。制御装置12が実行するプログラムは、ネットワーク16を介して取得されてもよいし、可搬型メモリ装置やCD−ROM等のコンピュータ読み取り可能な可搬型記録媒体がデータ管理装置11に装着されることにより取得されてもよい。
図3は、本実施形態におけるデータ管理装置の機能構成例である。上述の通り、データ管理装置11は、制御装置12、メモリ13、ストレージ装置14を含む。
メモリ13は、キャッシュ領域35とバッファ36とを含む。キャッシュ領域35は、ストレージ装置14から読み出された複数のグループをキャッシングして、一時的に格納する領域である。
バッファ36は、キャッシュ領域35に保持されたグループに含まれるデータのうち、追加、更新、または削除されたデータ(すなわち、グループの更新部分またはグループの変更部分という。)をバッファグループ37として記憶する。
メモリ13は、データ配置テーブル31、関係性管理テーブル32、更新量テーブル33、閾値情報34を保持する。
データ配置テーブル31は、データを特定するキーと、そのデータが属するグループとの対応関係を示す情報を格納する。関連性管理テーブル32は、リクエストで指定されたデータ毎に、前回リクエストで指定されたデータを順次関係付けて、累積したその関係付けの情報を管理するテーブルである。更新量テーブル33は、キャッシュ領域35に保持されているグループのデータ更新の総量を記録する。
閾値情報34は、本実施形態で用いる閾値を含む。閾値情報34は、バッファグループの空き容量について事前に設定された閾値T1と、グループ毎の更新データ総量について事前に設定された閾値T2とを含む。
制御装置12は、本実施形態にかかるプログラムを実行することにより、要求受付部21、解析判断部22、関係性解析部23、配置決定部24、再配置部25、ライトバック制御部26として機能する。
要求受付部21は、クライアント15等の要求元から入力されたリクエストに応じてメモリ13を検索し、メモリ13にリクエストで指定されたレコードがなければさらにストレージ装置14を検索し、リクエストで指定されたレコードを要求元に送信する。なお、リクエストは、クライアント15が送信するだけでなく、データ管理装置11において実行されているプロセスその他の主体がリクエストの発行元となる場合もあり得る。また、入出力装置がデータ管理装置11に接続されている場合、ユーザが入出力装置に対してリクエストを入力することも想定される。
リクエストが入力されると、要求受付部21は、まずメモリ13からリクエストで指定されたデータを検索する。リクエストで指定されたデータがメモリ13上に存在する場合に、要求受付部21は、そのデータをメモリ13から読み出して要求元に返信する。
また、要求受付部21は、リクエストで指定されたデータがメモリ13上に存在しない場合には、ストレージ装置14からリクエストで指定されたデータを検索する。入出力管理部22は、リクエストで指定されたデータがストレージ装置14上に存在する場合に、データ配置テーブル31を用いて、リクエストで指定されたデータの属するグループに含まれる全データをストレージ装置14から読み出す。そして、要求受付部21は、その読み出したグループに含まれる全データのうち、リクエストで指定されたデータを要求元に返信する。このとき、要求受付部21は、その読み出したグループに含まれる全データをメモリ13に格納する。
なお、上記では、要求受付部21は、ストレージ装置14から読み出したグループに含まれる全データをメモリ13へ格納する処理を、リクエストがあったタイミングで行う場合について説明したが、これに限定されない。例えば、要求受付部21は、一定期間のアクセス頻度を取得してアクセス頻度が高いグループを優先的にストレージ装置14から読み出してメモリ13に格納してもよい。
解析判断部22は、関係性管理テーブル32を用いて、連続するリクエスト間で指定された各データが属するグループが同一かどうかを判定することにより、関連性解析部23に関連性の解析を行わせるか否かを決定する。
関連性解析部24は、解析判断部22の判定結果に応じて、関係性管理テーブル32から、今回のリクエストで指定されたデータの属するグループの各データと、前回のリクエストで指定されたデータの属するグループの各データとの関連性を解析する。
再配置決定部24は、その解析結果に基づいて、データの所属するグループの決定を行う。再配置部25は、関連性解析部24の決定に従い、データ配置テーブル31のグループの配置を更新する。
ライトバック制御部26は、バッファグループ37に蓄積されたその更新されたグループの更新部分のサイズ総量とバッファグループ37の残り容量とに基づいて、次の判断を行う。すなわち、ライトバック制御部26は、今回分を含めたこれまでの更新部分をまとめてグループをストレージ装置14に書き戻すか、今回分の更新部分をバッファグループ37に記録したままにして書き戻しを抑止するかを判断する。なお、本実施形態では、グループの更新が発生した場合、ライトバック制御部26は、グループを直接更新せず、バッファグループ37に一時的に記録しているとする。
図4は、本実施形態におけるデータ配置テーブルの一例である。データ配置テーブル31は、「キー」、「所属するグループ」の項目を含む。「キー」は、データを特定する一意の情報である。「所属するグループ」は、キーによって特定されるデータが所属するグループを示す。
バッファグループは名前が特殊で、バッファグループかそうでないかを簡単に区別できるようにする。例えば、図4では、バッファグループは「グループZ」で示される。
図5は、本実施形態におけるバッファグループの一例を示す。バッファグループ37は、上述したように、キャッシュ領域35に保持されたグループのうち、書き戻しの対象となるグループ(バッファグループ37)内のデータの更新部分または追加されたデータを記憶する。
バッファ36において、バッファグループ37のエントリは、「キー」、「データ本体」、「本来所属するグループ」の項目を含む。「キー」は、データを特定する一意の情報を格納する。「データ本体」は、更新後のデータまたは新たに追加されたデータを格納する。「本来所属するグループ」は、更新前または追加前にデータが所属していたグループを格納する。なお、データが新たに追加された場合、所属するグループが存在しないので、「本来所属するグループ」は空白となる。
図6は、本実施形態における更新量テーブルの一例を示す。更新量テーブル33は、キャッシュ領域35に保持されているグループのデータ更新の総量を記憶するが、キャッシュ領域35に保持されていないグループのデータ更新総量を記憶してもよい。
更新量テーブル33は、「グループ」、「バッファグループに一時保管されたデータ量」の項目を含む。「グループ」は、キャッシュ領域35に保持されているグループの名称を格納するが、キャッシュ領域35に保持されていないグループの名称を記憶してもよい。
「バッファグループに一時保管されたデータ量」は、バッファグループ37に一時保管されたグループのデータ量を記憶する。
図7A及び図7Bは、本実施形態におけるデータの更新(削除を含む)またはデータの再配置を行ってグループを更新する場合のフローを示す。
要求受付部21は、対象データの更新または削除についてのリクエストを受け取ると、データ配置テーブル31に基づいて、対象データが所属するグループを確認する(S1)。
確認の結果、対象データがバッファグループ37以外のグループに所属する場合(S2で「YES」)、要求受付部21は、次の処理を行う。ここでは、キャッシュ領域35に対象データが存在しない場合には、要求受付部21は、対象データの所属するグループをストレージ装置14から読み込み、キャッシュ領域35に載せる(S3)。
データの更新またはデータの再配置を行う場合、ライトバック制御部26は、グループを直接更新せず、バッファグループ37に、追加・更新・削除された対象データが本来所属するグループと、対象データのデータ本体との組を記録する(S4)。
なお、対象データが削除された場合は、データ本体ではなく削除された旨を示すフラグを記録する。またデータの再配置(グループ間のデータ移動)は、一方のグループからのデータ削除、及びもう一方のグループへの新規データの追加として扱われる。
ライトバック制御部26は、更新量テーブル33において、対象データの所属するグループの、バッファグループ37における更新データの総量の値の記録を更新する(S5)。
ライトバック制御部26は、データ配置テーブル31において、対象データのグループを、バッファグループ37を示すグループ名に更新する。すなわち、ライトバック制御部26は、データ配置テーブル31に、対象データをバッファグループ37に再配置したものとして記録する(S6)。
S2での確認の結果、対象データがバッファグループ37に所属する場合(S2で「NO」)、要求受付部21は、次の処理を行う。すなわち、要求受付部21は、バッファグループ37から、対象データに対応するエントリ(本来所属するグループと、追加・更新・削除された対象データ本体との組)を検索する(S7)。
ライトバック制御部26は、検索されたエントリについて、対象データのデータ本体の部分を更新する(S8)。
ライトバック制御部26は、更新量テーブル33において、対象データが本来所属するグループの、バッファグループにおける更新データの総量の値の記録を更新する(S9)。
S6またはS9の終了後、ライトバック制御部26は、S6またはS9において、更新量テーブル33において更新した、グループの更新データ総量が閾値T2を超えているかを判定する(S10)。更新した更新データ総量が閾値T2を超えていない場合(S10で「NO」)、本フローは終了する。
更新した更新データ総量が閾値T2を超えている場合(S10で「YES」)、ライトバック制御部26は、バッファグループ37に記録された、そのグループの更新部分を、キャッシュ領域内の対応するグループに反映し、グループを更新する(S11)。
ライトバック制御部26は、バッファグループ37の「本来所属するグループ」に基づいて、データ配置テーブル31において、そのグループの更新部分に対応するデータの所属グループを本来のグループ名に変更する(S12)。
ライトバック制御部26は、更新量テーブル33において、そのグループの、バッファグループ37における更新データの総量の値の記録を0に更新する(S13)。
ライトバック制御部26は、バッファグループ37を保持していたバッファを開放し(本来所属するグループと、追加・更新・削除されたデータ本体との組)、バッファグループの空き領域の値も更新する(S14)。
ライトバック制御部26は、S11で更新されたグループをストレージ装置14に書き戻す(S15)。
グループをキャッシュ領域35から破棄する場合、ライトバック制御部26は図8の処理を行う(S16)。
図8は、本実施形態における対象グループのキャッシュを破棄する場合(S16)のフローを示す。ライトバック制御部26は、バッファグループ37の空き容量が閾値T1を超えておらず、かつ破棄対象のグループの更新データ総量が閾値T2を超えていないかを判定する(S21)。バッファグループ37の空き容量が閾値T1を超えておらず、かつ破棄対象のグループの更新データ総量が閾値T2を超えていない場合(S21で「YES」)、ライトバック制御部26は、キャッシュ領域35から対象グループの内容を破棄する(S23)。
バッファグループ37の空き容量が閾値T1を超えている、または破棄対象のグループの更新データ総量が閾値T2を超えている場合(S21で「NO」)、ライトバック制御部26は、バッファグループエントリ別処理を行う(S22)。S22の詳細については、図9で説明する。
S22の処理後、ライトバック制御部26は、キャッシュ領域35から対象グループの内容を破棄する(S23)。
図9は、バッファグループエントリ別処理(S22,S54)のフローを示す。バッファグループ37の各エントリのうち、本来所属するグループに含まれるデータのエントリそれぞれについて、ライトバック制御部26は、以下のS31〜S36の処理を行う。
まず、ライトバック制御部26は、バッファグループ37の1エントリを参照し、そのエントリのバッファグループ37の項目「データ本体」に、削除済みを示すフラグが格納されているかを判定する(S31)。
そのエントリのバッファグループ37の項目「データ本体」に、削除済みを示すフラグが格納されている場合(S31で「YES」)、ライトバック制御部26は、次の処理を行う。すなわち、ライトバック制御部26は、項目「本来所属するグループ」で示される、キャッシュ領域35内にあるグループからそのフラグが付与されているキーに対応するデータを削除する(S33)。
ライトバック制御部26は、データ配置テーブル31から、その削除したデータのキーに対応するエントリを削除する(S33)。
S31において、そのエントリのバッファグループ37の項目「データ本体」に、削除済みを示すフラグが格納されていない場合(S31で「NO」)、ライトバック制御部26は、次の処理を行う。すなわち、ライトバック制御部26は、項目「データ本体」に格納されているデータ本体を用いて、キャッシュ領域35内にあるそのグループに対応するデータ本体を更新する(S34)。
ライトバック制御部26は、バッファグループ37の「本来所属するグループ」に基づいて、データ配置テーブル31において、グループ内の更新部分に対応するデータの所属グループを本来のグループに変更する(S35)。
S33またはS35の終了後、ライトバック制御部26は、今回処理したエントリをバッファグループ37から削除する(S36)。
S31〜S36の処理の終了後、ライトバック制御部26は、バッファグループの空き領域の値を更新する(S37)。
図10は、本実施形態におけるグループの読み込み処理のフローを示す。要求受付部21は、グループをストレージ装置14から読み込み、キャッシュに載せる(S41)。
ライトバック制御部26は、バッファグループ37に一時記録した更新後のデータ本体のグループ毎のサイズ総量を算出し、更新量テーブル33の「バッファグループに一時保管されたデータ量」に記録する(S42)。ここでは、ストレージ装置14にあるグループは更新サイズ総量を保持しないことを前提としているが、保持することとしてグループ本体共にストレージ装置14に書き込みまたはストレージ装置14から読み出すこととしてもよい。
図11は、本実施形態におけるバッファグループの残り容量が少なくなった場合の処理フローを示す。バッファグループ37の残り容量が少なくなったことを検知した場合、または、定期的に、ライトバック制御部26は、以下の処理を実行する。
バッファグループ37の空き容量が閾値T1を超えていない場合(S51で「YES」)、本フローは終了する。
バッファグループ37の空き容量が閾値T1を超えている場合(S51で「NO」)、ライトバック制御部26は、更新量テーブル33を参照して、バッファグループ37において、更新データ総量が最も多いグループ(対象グループ)を1つ選出する(S52)。
その更新データ総量が最も多いグループがメモリ13に載っている場合(S53で「YES」)、ライトバック制御部26は、図9の処理を行う(S54)。
その更新データ総量が最も多いグループがメモリ13に載っていない場合(S53で「NO」)、ライトバック制御部26は、キャッシュ領域35に新しいグループを作成する。
ライトバック制御部26は、バッファグループ37に記録された、その対象グループの更新部分を全て、キャッシュ領域35にて新規に作成されたグループに反映し、対象グループを更新する(S56)。
ライトバック制御部26は、バッファグループの該当領域は開放し(本来所属するグループと、追加・更新・削除されたデータ本体との組)、バッファグループ37も空き領域の値も更新する(S57)。
ライトバック制御部26は、データ配置テーブル31において、その対象グループの更新部分に対応するデータの所属グループ名を新規に作成したグループ名に変更する(S58)。
ライトバック制御部26は、その新規に作成したグループの、バッファグループ37における更新データの総量の値の記録を0に更新する(S59)。
ライトバック制御部26は、その新規に作成したグループをストレージ装置14に書き戻す。このとき、キャッシュ領域に保持されている新規に作成したグループは破棄しない(S60)。その後、S51へ戻る。
なお、再配置によりデータをグループ間で移動する場合、移動前のグループからはデータを削除、移動後のグループにはデータを追加したものとして扱う。バッファグループ37には作成と削除でエントリを二重に記録し、データ配置テーブル31には移動後のグループのみ記録する。
以下に本実施形態の実施例を説明する。
図12は、本実施形態の実施例について説明するための図である。図12(A)に示すように、グループXにはデータx1=1,x2=2,・・・、が格納されている。グループYにはy1=10,y2=20,・・・が格納されている。バッファグループBは最初、空であるとする。現状、グループX及びYは更新されておらず(グループX及びYの更新データの総量はそれぞれ、0である)、ストレージ装置14上に記録されている内容とキャッシュ領域35上に展開されている情報が一致しており、ライトバックの必要が無いものとする。例では簡単のため、二つの閾値は共に無限大であるとする。またデータのサイズは全て1とする。
図12(B)は、x1=100に変更された場合の状態を示す。バッファグループBは空であるので、変更の内容はバッファグループBに記録される。また、グループXの更新データの総量=1となる。また、データ配置テーブルにおいて、x1の所属グループがバッファグループBに変更される。
図12(C)は、x2が削除された場合の状態を示す。これもバッファグループBに記録される。削除も更新データの総量を増加させるので、グループXの更新データの総量=2となる。また、データ配置テーブルにおいて、x2の所属グループがバッファグループBに変更される。
図12(D)は、y1をグループYからグループXへ移動した状態を示す。グループX,Yのデータの変更について、グループX,Yを直接更新せず、バッファグループBに記録される。これにより、グループXの更新データの総量=3、グループYの更新データの総量=1となる。また、データ配置テーブルにおいて、y1の所属グループがバッファグループBに変更される。
図12(E)は、グループXをキャッシュから破棄した場合の状態を示す。グループXは更新されているので、そのままキャッシュを破棄することはできない。この場合、バッファグループB内の更新情報が、キャッシュ領域35にあるグループXに反映されて、x1=100、y1=10に更新され、ストレージ装置14にライトバックされる。これにより、グループXの更新データの総量=0となる。また、バッファグループBからグループXについての更新情報が削除される。また、データ配置テーブルにおいて、x1,y1の所属グループがバッファグループXに変更される。
このように、本実施形態では、更新されたグループを、キャッシュから破棄する度に毎回ストレージに書き戻すのではない。本実施形態では、ライトバック制御部26は、更新されたデータの総量が少ない場合には、更新部分とその更新されたデータが本来所属するグループ名とをキャッシュ上の別領域(バッファグループ)に記録する。同時に、ライトバック制御部26は、データ配置テーブル31に、データとグループの対応を記録する代わりに、どのバッファグループに記録したかを記録する。この時、更新された内容をバッファグループに保持しているため、このグループは、ストレージ装置14への書き戻しが不要となり、単にキャッシュから破棄される。
また、同じグループについてストレージから読み出しと、キャッシュからの破棄とが繰り返えされるとそのグループの更新部分がバッファグループに蓄積されていく。そのため、ある程度更新部分が蓄積されたところで更新部分を含めてグループをストレージ装置14へ書き戻す。そして、バッファグループ上の更新部分とその更新部分(更新データ)が本来所属するグループの記録が破棄される。
これにより、グループをキャッシュから破棄する度に書き戻しが発生していたのを、破棄数回〜数十回に対して一度のみ書き戻す。その結果、ライトのコスト削減、つまりデータ再配置技術を用いた場合でもコスト削減が可能となる。
本実施形態によれば、ある更新されたグループのキャッシュを破棄するとき、グループのライトバックを制御するライトバック制御部26は、次を行う。すなわち、ライトバック制御部26は、バッファグループ37に蓄積されたその更新されたグループの更新部分のサイズ総量とバッファグループの残り容量とに基づいて、次の判断を行う。ライトバック制御部26は、今回分を含めたこれまでの更新部分をまとめてグループを書き戻すか、今回分の更新部分をバッファグループに記録したままにして書き戻しを抑止するかを判断する。ここで、グループの更新が発生した場合、グループを直接更新せず、バッファグループに一時的に記録している、と仮定する。
これにより、グループの書き戻しの実行、もしくは今回分の更新部分をバッファグループに記録したままにすることによって、データ再配置技術によるグループの書き戻しの回数を削減することができる。
本実施形態の適用前では、ライトが全く発生しないまたはライトがほとんど発生しないアプリケーションにおいて、本来グループがキャッシュから破棄される毎に発生していたライトにより性能が劣化していた。本実施形態を適用することにより、数回〜数十回分のライトを一度にまとめて回数を削減できるようになり、性能が向上する。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 データ管理装置
2 グループ化部
3 蓄積部
4 判定部
11 データ管理装置
12 制御装置
13 メモリ
14 ストレージ装置
15 クライアント
16 ネットワーク
21 要求受付部
22 解析判断部
23 関係性解析部
24 配置決定部
25 再配置部
26 ライトバック制御部
31 データ配置テーブル
32 関係性管理テーブル
33 更新量テーブル
34 閾値情報
35 キャッシュ領域
36 バッファ

Claims (6)

  1. コンピュータに、
    データに対するアクセス要求の履歴に基づいて、該データをグループ化するグループ化情報を生成し、
    データの追加、更新、及び削除を含むデータの変更を要求する変更要求または該データの属するグループの変更処理に応じて、メモリ上に存在するグループに含まれるデータのうち、該変更要求または該変更処理により変更されたデータを示す変更データをバッファに蓄積し、
    書き込みについての設定条件に基づいて、前記グループ化情報に含まれるグループ毎に、前記バッファに蓄積された前記変更データを格納装置に書き込むか否かを判定する
    処理を実行させるデータ管理プログラム。
  2. 前記蓄積された変更データを前記格納装置に書き込むと判定した場合、該蓄積された変更データの属するグループに関する情報を前記グループ化情報に反映する
    ことを特徴とする請求項1に記載のデータ管理プログラム。
  3. 前記蓄積された変更データを前記格納装置に書き込むと判定した場合、該蓄積された変更データを、該変更データに対応する前記メモリ上の前記グループに反映して前記格納装置に書き込む
    ことを特徴とする請求項1に記載のデータ管理プログラム。
  4. 前記書き込みについての設定条件は、前記バッファの空き容量またはグループ毎の変更データのデータ総量に基づく条件である
    ことを特徴とする請求項1に記載のデータ管理プログラム。
  5. データに対するアクセス要求の履歴に基づいて、該データをグループ化するグループ化情報を生成するグループ化部と、
    データの追加、更新、及び削除を含むデータの変更を要求する変更要求または該データの属するグループの変更処理に応じて、メモリ上に存在するグループに含まれるデータのうち、該変更要求または該変更処理により変更されたデータを示す変更データをバッファに蓄積する蓄積部と、
    書き込みについての設定条件に基づいて、前記グループ化情報に含まれるグループ毎に、前記バッファに蓄積された前記変更データを格納装置に書き込むか否かを判定する判定部と、
    を備えることを特徴とするデータ管理装置。
  6. コンピュータが、
    データに対するアクセス要求の履歴に基づいて、該データをグループ化するグループ化情報を生成し、
    データの追加、更新、及び削除を含むデータの変更を要求する変更要求または該データの属するグループの変更処理に応じて、メモリ上に存在するグループに含まれるデータのうち、該変更要求または該変更処理により変更されたデータを示す変更データをバッファに蓄積し、
    書き込みについての設定条件に基づいて、前記グループ化情報に含まれるグループ毎に、前記バッファに蓄積された前記変更データを格納装置に書き込むか否かを判定する
    ことを特徴とするデータ管理方法。
JP2016046106A 2016-03-09 2016-03-09 データ管理プログラム、データ管理装置、及びデータ管理方法 Pending JP2017162194A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016046106A JP2017162194A (ja) 2016-03-09 2016-03-09 データ管理プログラム、データ管理装置、及びデータ管理方法
US15/425,294 US20170262485A1 (en) 2016-03-09 2017-02-06 Non-transitory computer-readable recording medium, data management device, and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016046106A JP2017162194A (ja) 2016-03-09 2016-03-09 データ管理プログラム、データ管理装置、及びデータ管理方法

Publications (1)

Publication Number Publication Date
JP2017162194A true JP2017162194A (ja) 2017-09-14

Family

ID=59788437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016046106A Pending JP2017162194A (ja) 2016-03-09 2016-03-09 データ管理プログラム、データ管理装置、及びデータ管理方法

Country Status (2)

Country Link
US (1) US20170262485A1 (ja)
JP (1) JP2017162194A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639087A (zh) * 2020-05-28 2020-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582514B2 (en) 2014-12-27 2017-02-28 Ascava, Inc. Performing multidimensional search and content-associative retrieval on data that has been losslessly reduced using a prime data sieve
US11449527B2 (en) * 2017-07-31 2022-09-20 Fujitsu Limited Automated inquiry response systems
US20220066994A1 (en) * 2018-12-13 2022-03-03 Ascava, Inc. Efficient retrieval of data that has been losslessly reduced using a prime data sieve

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639087A (zh) * 2020-05-28 2020-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备
CN111639087B (zh) * 2020-05-28 2023-09-08 北京金山云网络技术有限公司 数据库中数据更新方法、装置和电子设备

Also Published As

Publication number Publication date
US20170262485A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
US9235508B2 (en) Buffer management strategies for flash-based storage systems
US8930624B2 (en) Adaptive cache promotions in a two level caching system
US8788742B2 (en) Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
TWI684099B (zh) 剖析快取替代
JP5908100B2 (ja) ストレージ・システムの二次キャッシュ内にデータをポピュレートするための方法、制御装置、プログラム
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
US8819074B2 (en) Replacement policy for resource container
US20080059728A1 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
US20080055323A1 (en) Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization
KR20150053702A (ko) 하이브리드 버퍼 풀
US20060143395A1 (en) Method and apparatus for managing a cache memory in a mass-storage system
JP2017162194A (ja) データ管理プログラム、データ管理装置、及びデータ管理方法
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
US9851925B2 (en) Data allocation control apparatus and data allocation control method
US11550732B2 (en) Calculating and adjusting ghost cache size based on data access frequency
US10579541B2 (en) Control device, storage system and method
Banerjee et al. A New Proposed Hybrid Page Replacement Algorithm (HPRA) in Real Time Systems.
JP3751814B2 (ja) キャッシュメモリ制御方式
RU2818670C1 (ru) Способ и устройство кэширования блоков данных
CN110658999A (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
RU2805012C2 (ru) Способ управления системой хранения данных и система хранения данных
Ryou et al. Considering block popularity in disk cache replacement for enhancing hit ratio with solid state drive
JP2010160544A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法