JP2016162243A - データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法 - Google Patents

データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法 Download PDF

Info

Publication number
JP2016162243A
JP2016162243A JP2015040775A JP2015040775A JP2016162243A JP 2016162243 A JP2016162243 A JP 2016162243A JP 2015040775 A JP2015040775 A JP 2015040775A JP 2015040775 A JP2015040775 A JP 2015040775A JP 2016162243 A JP2016162243 A JP 2016162243A
Authority
JP
Japan
Prior art keywords
data
group
storage unit
unit
access request
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
JP2015040775A
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 JP2015040775A priority Critical patent/JP2016162243A/ja
Priority to US15/012,948 priority patent/US20160259592A1/en
Publication of JP2016162243A publication Critical patent/JP2016162243A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • 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
    • G06F3/064Management of blocks
    • 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/0683Plurality of storage devices

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】記憶部への書き込みサイズの増加によるアクセス性能低下を防止する技術を提供する。
【解決手段】コンピュータに、第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、第2記憶部に格納されているいずれかのグループを選択し、選択されたグループに含まれるデータのうち、第2記憶部における、データアクセス要求に対応するデータへのアクセス状況に応じて、選択されたグループを分割し、分割して得られたグループ単位で、それぞれのグループに含まれるデータを第1記憶部に格納する処理を実行させるデータ格納制御プログラムにより、上記課題の解決を図る。
【選択図】図2

Description

本発明は、データの格納を制御する技術に関する。
ストレージ装置は、サイズの小さなデータへの不規則なアクセスにおけるスループットが低く、シーケンシャルアクセスのコストに比べて、ランダムアクセスのコストが高い。このスループットを向上させる技術として、キャッシュ技術がある。
キャッシュ技術は、処理速度の速い制御装置が低速の記憶装置からデータをより速く読み出す場合にメモリを使用して処理時間を短縮する技術である。制御装置が低速の記憶装置からデータを読み出した場合、その読み出したデータを一時的にメモリに保持しておくことで、次回からはハードディスクより読み書きが早いメモリからデータを読み出せる。このようなキャッシュ技術に関して、例えば、特許文献1〜3がある。
キャッシュ技術の1つとして、Least Recently Used(LRU)キャッシュ技術がある。LRUキャッシュ技術は、小容量で高速な記憶装置(例えば、キャッシュメモリ)がいっぱいになったとき、その中にあるデータのうち、未使用の時間が最も長いデータを大容量で低速な記憶装置(例えば、主記憶装置)に保存する、というのが基本のアルゴリズムである。LRUキャッシュ技術は、アプリケーションプログラムのロジックを知らなくても効果を得られるアルゴリズムであり、短期間のうちに(キャッシュに載っているうちに)同じデータに繰り返しアクセスする場合にのみ効果を発揮する。キャッシュメモリの量によってデータのキャッシュ生存期間が決まるが、そのキャッシュ生存期間を超えるサイクルでの繰り返しアクセスには効果がない。
LRUキャッシュ技術を改善した技術として、データを記憶する第1の記憶部と、第1の記憶部に比して高速にアクセス可能な記憶部であって、データを記憶する第2の記憶部と、を有するデータ管理装置による、データ管理方法がある(例えば、特許文献1)。データ管理装置は、入力されたデータ要求に応じたデータを第1又は第2の記憶部から読み出して出力する。データ管理装置は、入力されたデータ要求の履歴に基づき第1又は第2の記憶部に記憶されたデータ間の関連性を解析する。データ管理装置は、解析の結果に基づき第1又は第2の記憶部に記憶されたデータをグループ分けする。データ管理装置は、グループ分けされたグループ毎に第2のデータ記憶部にデータを記憶させる。これにより、要求されたデータを高速に出力することができる。
特開2000−357125号公報 特開2000−250809号公報 特開2002−251322号公報 国際公開第2013/114538号
しかしながら、上記データ管理技術では、書き戻しの単位であるグループサイズが大きくなりすぎると、グループ全体の読み出しコストが増加するため、アクセス性能を下げることになる。
逆に、グループサイズを小さくしすぎると、特定のデータと関連するデータが、同一のセグメントに全て含まれない状態となり、余分なアクセスが発生するから、アクセス性能を下げることになる。
また、上記データ管理技術では、アクセスパターンから得られた関連性に基づき同一セグメントに含めるデータを決めている。しかし、セグメントサイズを決定するために関連性を用いる場合は、個別のデータの関連性(関連性があるかないか)よりも、全体のデータの関連性に対する個別のデータの関連性の位置づけを用いる必要があるが、上記技術ではそれが考慮されていない。
本発明では、一側面として、記憶部への書き込みサイズの増加によるアクセス性能低下を防止する技術を提供する。
本発明の一側面にかかるデータ格納制御プログラムは、コンピュータに、次の処理を実行させる。すなわち、コンピュータは、第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、第2記憶部に格納されているいずれかのグループを選択する。コンピュータは、選択された前記グループに含まれるデータのうち、第2記憶部における、データアクセス要求に対応するデータへのアクセス状況に応じて、選択されたグループを分割する。コンピュータは、分割して得られたグループ単位で、それぞれのグループに含まれるデータを第1記憶部に格納する。
本発明によれば、記憶部への書き込みサイズの増加によるアクセス性能低下を防止することができる。
データ再配置技術におけるグループのサイズに起因する課題について説明するための図である。 本実施形態におけるデータ格納制御装置の一例を示す。 本実施形態におけるデータ管理装置のハードウエア構成例である。 本実施形態におけるデータ管理装置の機能構成例である。 本実施形態における、データ構造について説明するための図である。 本実施形態におけるデータ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。 図6の状態に続き、データ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。 図7の状態に続き、データ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。 図8に示す状態において関連性解析部がグループを変更する前後のグループ配置を示す図である。 グループ配置部により変更された後のグループ管理テーブルにおけるデータとグループの対応付けを示す図である。 図10の状態に続き、データ管理装置に対してアクセス要求Rqが複数回なされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。 図11の状態に続き、データ管理装置100に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。 図12の状態において関連性解析部がグループを決定する前後のグループ配置を示す図である。 本実施形態におけるデータ管理装置によって実行されるアクセス要求の際に行われる処理の全体の流れを示すフローチャートの一例である。 関連性解析部により実行される関連性解析処理(S7)の流れを示すフローチャートの一例である。 本実施形態における、メモリ装置から記憶装置へのデータの書き戻しを行う場合、書き戻し対象のグループサイズに応じて、書き戻し対象のグループを分割する処理を説明するための図である。 本実施形態におけるメモリ装置にあるいずれかのグループを記憶装置に書き戻す場合の処理フローを示す。 本実施形態におけるグループ分割処理(S24)の詳細フローを示す。
データ管理方法の1つに、例えば、特許文献4で用いられているデータ再配置管理技術(以下、「DLM」と称する)がある。DLMの動作には、以下が挙げられる。DLMは、関連するデータをグループ化し、連続した領域としてストレージに格納する。データにアクセスする場合は、DLMは、そのデータが所属するグループごと読み出してメモリにキャッシュする。グループへのアクセスは1度のランダムアクセスで済むことが期待される。グループは単一のデータよりもサイズが大きくなるのでアクセスコストが増加するが、ランダムアクセスのコストと比較すると増加分はわずかである。メモリの容量が不足した場合は、DLMは、メモリにおいてアクセスのないグループから順にディスクに書き戻す。書き戻す際には、DLMは、グループ単位でLRU方式によりメモリからディスクへデータを書き戻す。
DLM技術を用いることにより、メモリにキャッシュされているグループに含まれるデータへは、グループがディスクに書き戻されるまでは追加のストレージアクセスコストなしでアクセスできる。つまり何個のデータにアクセスしてもグループへのアクセスコスト1回分≒データへのアクセスコスト1個分で賄える(データサイズの増加よるアクセスコストの増加は小さいため)。つまり、短期間のうちに同じグループに属するデータにアクセスする場合に効果を発揮する。LRUのように同一データでなくてもよい。先読みキャッシュのような効果を得られる。LRUと同様に、アプリケーションのロジックを知らなくても効果が得られる。
ここで、データ再配置技術において、グループがメモリにキャッシュされている間にグループ内の何個のデータにアクセスしたかを、データ再利用数と呼ぶことにする。ただし同じデータに複数回アクセスした回数はカウントしない。本実施形態では、異なる何個のデータにアクセスしたかをカウントする。
このように、ALは、大量のデータを保管することができるデータストアにおいて、データをある塊の”グループ”として保管する。DLMは、データへのアクセス毎にアクセスパターンを解析し、アクセスパターンで関係性が高い(ほぼ同時にアクセスされる)データ同士は同じグループに保管する。これにより、DLMは、遅いデータ保管装置から速いデータ保管装置に関係性の高いデータを一度に読み込むことが可能になり、データアクセスの効率化を実現する。
また、ランダムアクセスのコストは、グループに付き1回のアクセスである。したがって、近いタイミングでアクセスされる確率(アクセスパターン関連性)が高いデータを再配置して同じグループにうまくまとめることができれば、ランダムアクセスのコストを大幅に削減できる。
DLMはほとんどのデータが数Byte〜数KBと小さいときに大きな効果を発揮する。
ところが、以下の課題がある。
課題1:大き過ぎるグループサイズ
DLMにおけるストレージへの読み書きの単位であるグループが大きくなり過ぎると、(単一データに対する読み書きと比較して)コストが増加するため、(DLMの効果を考慮しても)性能が下がる。これは、グループが大きくなるとアクセスコストが増加するので、その元を取るためのデータ再利用数の閾値が上昇するのが原因である。
ここで、アクセスコストは、ランダムアクセスの固定コストに、サイズに依存した変動コストを加えたコストである。サイズに依存するコストはランダムアクセスのコストに比べて小さいものの、全く無視できるというわけではない。
データ再利用数は、データ再利用数が大きい理想的なアクセスパターンでないと、その閾値を超えられない。しかし、アクセスパターンはアプリケーションロジックに依存するもので、変動し得るし、常に理想的なアクセスパターンとは限らない。閾値が上昇すればするほど、閾値を超えられるアクセスパターンの割合は減少する。
下記の仮定及び図1を用いてDLMの性能の特性について説明する。
図1(A)は、大きすぎるグループサイズに起因する課題について説明するための図である。
(アクセスコスト)
・ランダムアクセスのコストは10であるとする。
・個々のデータは全て同じサイズで、個々のデータに対するアクセスコストは11であるとする(サイズ由来のコストは1であるとする。)
・小さいグループはアクセスコスト20、大きいグループは30であるとする。
(関連性)
・A〜Bの関連性は100%、つまりAとBは必ずセットでアクセスされるとする。
・C〜Dの関連性も100%であるとする。
・{A,B}〜{C,D}にも関連性があり、この関連性を変化させる。
・今回はA〜D以外のデータは存在するが、アクセスしないものとする。
(分析)
(1){A,B}のみにアクセスする場合({A,B}〜{C,D}の関連性0%)
LRUでは、コストは11×2=22となる。それに対して、DLMで{A,B}が小さいグループに配置されていた場合、コストは20となる。DLMで{A,B}が大きいグループに配置されていた場合、コストは30となる。
つまりコストはDLM小グループ<LRU<DLM大グループの順となり、DLM大グループはLRUに比べて50%のコスト悪化となる。
(2){A,B}〜{C,D}の関連性25%の場合
LRUでは、コスト11×2+0.25×11×2=27.5となる。それに対して、DLM(小さいグループ)では20+0.25×20=25となる。DLM(大きいグループ)では30となる。
つまりコストはDLM小グループ<LRU<DLM大グループとなり、DLM大グループはLRUに比べて9%のコスト悪化となる。
(3){A,B}〜{C,D}の関連性50%の場合
LRUではコスト11×2+0.5×11×2=33となる。それに対して、DLM(小さいグループ)では20+0.5×20=30となる。DLM(大きいグループ)では30となる。
つまりコストはDLM小グループ=DLM大グループ<LRUとなる。
(4){A,B}〜{C,D}に必ずアクセスする場合({A,B}〜{C,D}の関連性100%)
LRUでは、コストは11×4=44となる。それに対して、DLMで{A,B},{C,D}が別々の小さいグループに配置されていた場合、コストは40となる。また、DLMで{A,B},{C,D}が大きいグループ1つに配置されていた場合、コストは30となる。
つまりコストはDLM大グループ<DLM小グループ<LRUとなる。
したがって、上記(1)〜(4)より、DLMはグループのアクセスコストがリスクとなり、グループのサイズが大き過ぎると関連性によってはLRUの性能を下回ることがある。
逆に、グループが小さ過ぎると、関連性を持つデータを十分グループに格納できず、性能が十分上がらない。これについて、図1(B)を用いて説明する。
図1(B)は、小さ過ぎるグループサイズに起因する課題について説明するための図である。グループのサイズに上限が設定されており、図1(B)の{A,B}に属するグループは既にデータがいっぱいになっているものとする。
{A,B}に対してCの関連性が強いため同一グループに格納したいが、グループが既にいっぱいであるため格納できない。
また、DLMでは、アクセスパターンから得られたデータ間の関連性に基づきグループ化(再配置)するデータを決定している。しかし、グループのサイズを決定するために、データ間の関連性を用いる場合は、個別のデータの関連性よりも、全体のデータの関連性の位置づけを用いる必要がある。ところが、DLMのアルゴリズムの中でそのような作業を行うことは困難である。これについて、図1(C)を用いて説明する。
図1(C)は、グループ化アルゴリズムとグループサイズに起因する課題について説明するための図である。図1(C)では、データ間にて関連性のあるデータ同士を線で関連付けており、特に、強い関連性は太線で示している。また、関連性の強さが所定の閾値以上のデータ同士を集めてグループ化している。
ほとんどのデータはお互いにある程度の関連性を持っているが、関連性が強いデータもあれば、関連性が弱いデータもある。
単純に関連性のあるデータ全てを同じグループにまとめようとすると、全データが単一グループに収まることになってしまう。
全体から見て、関連性が相対的に強いデータのみをグループ化できればよいのだが、その場合は全ての関連性の強さを把握しなければない。しかし、限られたメモリ・ストレージアクセスのスループットで全ての関連性の強さを把握することは困難である。
図1(C)では、関連性の弱いデータを無視してグループ化している。しかし、データや関連性の一部分しか見通せない場合、無視してよい関連性の強さの閾値を見出すのは困難である。
仮に、グループサイズの上限を固定値で設定したとしても、図1(D)に示すように課題がある。
図1(D)は、グループサイズの上限を設定した場合に起こりうる課題について説明するための図である。図1(D)において、左上のグループは右上のグループのデータを取り込み同一のグループにする場合を想定する。
しかしながら、ここでは、各グループのサイズ上限がデータ6個と設定されているため、どれかのデータを放出しない限り、右上のグループのデータを取り込めない。実際には、左上のグループはいずれも関連性が強いため、グループサイズ上限を超えても右上のグループを取り込んだ方が性能向上しやすい。
また、以下のような課題もある。再利用数を向上させるために、グループサイズを拡大する場合、グループの読み出しコストも増加するために、性能向上に至らない。また、再利用数を向上させるために、メモリを増やしてグループのメモリ上滞在時間を延ばす場合、効果はあるが、メモリは高価である。また、再利用数を向上させるために、再配置をより積極的に行う場合、再配置アルゴリズムは複雑で、簡単には再利用数を向上させることはできない。再配置にもコストが必要で、単純に性能が向上するわけではない。特にハードディスクドライブ(HDD)のアクセスコストを増やさない範囲での再配置には、限度がある。また、グループサイズを縮小する場合、グループサイズを小さくすると再利用数も低下するため、単純には性能は向上しない。
そこで、本実施形態に係るDLMは、グループがHDDから読み出されてメモリ上にキャッシュとして存在する際に、参照されたデータをマークしてそのグループにおいてマークされたデータ数(再利用数)を測定する。
また、本実施形態に係るDLMは、グループがHDDに書き戻される際に、以下の処理を行う。すなわち、DLMは、再利用数から、最適グループサイズを算出する。DLMは、グループが最適グループサイズを上回る場合は、複数のグループに分割して、それぞれのサイズが最適グループサイズを下回るようにHDDに書き戻す。DLMは、それ単独で最適グループサイズを上回る巨大データを、ディスクに書き戻す時に独立したグループとして分割して格納する。DLMは、グループが最適グループサイズを上回らない場合は、通常通りにそのグループをディスクに書き戻す。
以下に、本実施形態の詳細について説明する。
図2は、本実施形態におけるデータ格納制御装置の一例を示す。データ格納制御装置1は、選択部2、分割部3、書込部4、第1記憶部7、第2記憶部8を含む。
選択部2は、第1記憶部7から取得したデータを格納する第2記憶部8の空き容量不足が発生した場合、第2記憶部8に格納されているいずれかのグループを選択する。空き容量不足が発生した場合とは、例えば、受け付けたデータアクセス要求に対応するデータが第2記憶部8にない場合や、第2記憶部8において予め設定した閾値を超えてデータが格納されている場合等がある。選択部2の一例として、入出録管理部21が挙げられる。第1記憶部7の一例として、記憶装置40が挙げられる。第2記憶部8の一例として、メモリ装置30が挙げられる。
分割部3は、選択されたグループに含まれるデータのうち、第2記憶部8における、データアクセス要求に対応するデータへのアクセス状況に応じて、選択されたグループを分割する。分割部3の一例として、分割管理部26が挙げられる。
書込部4は、分割して得られたグループ単位で、それぞれのグループに含まれるデータを第1記憶部7に格納する。書込部4の一例として、書戻部27が挙げられる。
このように構成することにより、記憶部7への書き込みサイズの増加によるアクセス性能低下を防止することができる。
データ格納制御装置1は、さらに、更新部5、取得部6を含む。
更新部5は、分割の結果に基づいて、データとグループとを対応付けたグループ管理情報を更新する。更新部5の一例として、分割管理部26が挙げられる。グループ管理情報の一例として、グループ管理テーブル30Aが挙げられる。
取得部6は、データアクセス要求に対応するデータが第2記憶部8にない場合、グループ管理情報に基づいて、データアクセス要求に対応するデータが属するグループに含まれるデータを第1記憶部7から取得する。取得部6の一例として、入出力管理部21が挙げられる。
このように構成することにより、複数のデータをグループ毎に管理し、グループ単位で、第1記憶部からデータを取得することができる。
分割部3は、選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータ数を用いて、基準となるグループのサイズを算出する。そして、分割部3は、選択されたグループのサイズと基準となるグループのサイズとを比較し、比較結果に応じて、第2グループを分割する。
このように構成することにより、データアクセス要求に応じてアクセスされたデータ数を用いて、最適グループサイズを算出し、書込対象のグループのサイズと最適グループサイズとの比較結果に応じて、第2グループを、より適した分割することができる。
分割部3は、選択されたグループに含まれるデータから、前記基準となるグループのサイズよりも大きいサイズのデータを分離し、分離した該データをそれぞれ、相互に別グループとしてもよい。
このように構成することにより、第2グループに含まれるデータのうち、データ単体で,最適グループサイズを超えるデータは、その単体のデータのみを含むグループに分割することができる。
分割部3は、選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータを分離し、分離した該データをまとめて1つのグループとしてもよい。
このように構成することにより、メモリ装置に保持された同一グループ内のデータのうち、再利用されたデータは関連性がより強いといえるので、それらを1つのグループとし、再利用されていないデータと分ける。これにより、関連性の強いデータを含むグループを保持しつつ、グループサイズを小さくすることができる。
図3は、本実施形態におけるデータ管理装置のハードウエア構成例である。データ管理装置100は、例えばCPU(Central Processing Unit)20と、メモリ装置30と、記憶装置40とを備える。また、データ管理装置100は、通信ネットワーク(以下、単に、ネットワークと称する)60を介して情報処理装置の一例であるクライアントコンピュータ70に接続されている。
CPU20は、例えば、プログラムカウンタや命令デコーダ、各種演算器、LSU(Load Store Unit)、汎用レジスタ等を有する演算処理装置としてのプロセッサである。
メモリ装置30は、記憶装置40に比して高速にアクセス可能な記憶装置である。メモリ装置30としては、例えば、RAM(Random Access Memory)、フラッシュメモリ等である。記憶装置40は、例えば、HDD(Hard Disk Drive)等である。
記憶装置40には、データ管理装置100が提供するデータがグループ単位で記憶されている。グループとは、データへのアクセス要求(以下、アクセス要求と称する)の履歴により関連性が認められるデータの集合であり、後述するようにCPU20の処理によって内容が更新される。アクセス要求は、リード(READ)アクセス要求及びライト(WRITE)アクセス要求を含む。
メモリ装置30には、例えば記憶装置40に格納されたグループのうち高頻度にアクセスされるグループが記憶装置40から読み出されて格納される。これによって、データ管理装置100は、入力されたアクセス要求に対して高速にデータを出力することができる。
データ管理装置100は、上記の構成に加えて、BIOS(Basic Input/Output System)を格納したROM、プログラムメモリ等を有する。CPU20が実行するプログラムは、ネットワーク60を介して取得されてもよいし、可搬型メモリやCD−ROM等のコンピュータ読み取り可能な可搬型記録媒体がデータ管理装置100に装着されることにより取得されてもよい。
図4は、本実施形態におけるデータ管理装置の機能構成例である。データ管理装置100は、CPU20がプログラムを実行することにより機能する機能部として、入出力管理部21と、解析要否判断部22と、関連性解析部23と、グループ配置部24と、フラグ付与部25、分割管理部26、書戻部27を含む。
メモリ装置30は、記憶装置40から読み出したデータを格納するデータ格納領域32と、読み出したデータを管理するための管理領域31を含む。管理領域31には、グループ管理テーブル30A,関連性保管テーブル30Bが格納されている。グループ管理テーブル30Aは、メモリ装置30に読み出したデータが属するグループを特定する情報を格納する。関連性保管テーブル30Bは、アクセス要求のあったデータ毎に、前回アクセス要求のあったデータを累積して管理するテーブルである。データ格納領域32には、記憶装置40からグループ単位で読み出したデータが格納される。
入出力管理部21は、クライアントコンピュータ70等の要求元から入力されたアクセス要求に応じてメモリ装置30及び記憶装置40を検索し、アクセス要求に対応するデータを要求元に送信する。なお、アクセス要求は、クライアントコンピュータ70が送信するだけでなく、データ管理装置100において実行されているプロセスその他の主体がアクセス要求の発行元となる場合もあり得る。また、データ管理装置100に入出力装置が接続されている場合、ユーザが入出力装置に対してアクセス要求を入力することも想定される。
アクセス要求が入力されると、入出力管理部21は、まずメモリ装置30を検索する。アクセス要求の対象となるデータがメモリ装置30上に存在する場合に、入出力管理部21は、データをメモリ装置30から読み出して要求元に返信する。
また、入出力管理部21は、アクセス要求の対象となるデータがメモリ装置30上に存在しない場合には、記憶装置40を検索する。入出力管理部21は、アクセス要求の対象となるデータが記憶装置40上に存在する場合に、グループ管理テーブル30Aを用いて、要求されたデータの属するグループに含まれる全データを記憶装置40から読み出す。そして、入出力管理部21は、その読み出したグループの全データのうち、要求されたデータを要求元に返信する。このとき、入出力管理部21は、その読み出したグループに含まれる全データを記憶装置40からメモリ装置30に格納する。このとき、入出力管理部21は、記憶装置40からデータを読み出してメモリ装置30に格納する場合、後述するように、各データに再利用フラグを付与する。
なお、上記では、入出力管理部21は、記憶装置40から読み出したグループに含まれる全データのメモリ装置30への格納処理を、アクセス要求があったタイミングで行う場合について説明したが、これに限定されない。例えば、入出力管理部21は、一定期間のアクセス頻度を取得してアクセス頻度が高いグループを優先的に記憶装置40から読み出してメモリ装置30に格納してもよい。
解析要否判断部22は、関連性保管テーブル30Bを用いて、連続するアクセス要求間でアクセス対象のデータが属するグループが同じかどうかを判定することにより、関連性解析部23に関連性の解析を行わせるか否かを決定する。
関連性解析部23は、解析要否判断部22の判定結果に基づいて、関連性保管テーブル30Bから、今回のアクセス要求の対象データの属するグループの全データと、前回のアクセス要求の対象データの属するグループの全データとの関連性を解析する。関連性解析部23は、その解析結果に基づいてデータのグループの決定を行う。
グループ配置部24は、関連性解析部23の決定に従い、グループ管理テーブル30Aのグループの配置を更新する。
フラグ付与部25は、記憶装置40からグループ単位でデータが読み出されてメモリ装置30に格納される場合、各データに再利用フラグ(初期値=0)を付ける。アクセス要求の対象となるデータがメモリ装置30から読み出された場合、フラグ付与部25は、その読み出されたデータの再利用フラグを1に更新する。
分割管理部26は、メモリ装置30上にあるグループを記憶装置40に書き戻す場合、その書き戻し対象グループ内にて、再利用フラグ=1の付いたデータ数(再利用数)を計測する。このとき、分割管理部26は、再利用数と、後述する計算式とを用いて、最適グループサイズを算出する。書き戻し対象グループのサイズが最適グループサイズを超える場合、分割管理部26は、書き戻し対象グループを複数のグループに分割する。このとき、分割管理部26は、書き戻し対象グループ(分割して得られたグループも含む)に属する各データから再利用フラグを消去する。分割管理部26は、グループ管理テーブル30Aに格納されたデータとグループとの関係情報を、分割されたグループに従って更新する。
書戻部27は、書き戻し対象グループ(分割して得られたグループも含む)毎に、グループに属する全データを記憶装置40に書き戻す。
解析要否判断部22、関連性解析部23、グループ配置部24、フラグ付与部25、分割管理部26、書戻部27の詳細な処理内容については後述する。
図5は、本実施形態における、データ構造について説明するための図である。記憶装置40では、データは、「データ名」、「データ内容」を含む。「データ名」は、データを一意に識別するための情報である。「データ内容」は、「データ名」より特定されるデータの内容(値)である。
入出力管理部21は、アクセス要求が指定するデータがメモリ装置30になく、かつ記憶装置40上に存在する場合に、記憶装置40からそのデータを読み出して要求元に返信すると共に、そのデータをメモリ装置30に格納する。
このとき、フラグ付与部25は、記憶装置40から読み出したデータに、再利用フラグを付与してメモリ装置30に格納する。付与される再利用フラグの初期値は、「0」である。アクセス要求が指定するデータがメモリ装置30上に存在する場合に、入出力管理部21がそのデータをメモリ装置30から読み出した場合、フラグ付与部25は、メモリ装置30上で、その読み出したデータに付与された再利用フラグを「1」に更新する。
記憶装置40からグループ毎に読み出したデータがメモリ装置30に格納され続けてメモリ装置30の容量が不足した場合、書戻部27は、最も長くアクセスされていないグループから順に記憶装置40へ書き戻す。すなわち、メモリ装置30の容量が不足した場合、書戻部27は、例えば、LRU方式によりグループを選択し、そのグループに含まれるデータを記憶装置40に書き戻す。メモリ装置30から記憶装置40へデータを書き戻す場合、分割管理部26によりその書き戻すデータから再利用フラグが削除された後、書戻部27は、データを書き戻す。
次に、グループ管理テーブル30A、及び関連性保管テーブル30Bに格納されるデータが、入出力管理部21に入力されたアクセス要求に応じて変化する様子について説明する。
図6は、本実施形態におけるデータ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。アクセス要求Rqは、Read(X,Y)で示される。Read(X,Y)の表記は、前回のアクセス要求の対象がデータY,今回のアクセス要求の対象がデータXであることを示す。具体的には、データ管理装置100に入力されるアクセス要求Rqには、同じ要求元が前回のアクセス要求の対象データYを識別可能な情報が記述されているものとする。この前回のアクセス要求の対象データYの情報は、例えばクライアントコンピュータ70が自ら把握してもよいし、データ管理装置100側で要求元毎に把握することもできる。この場合、データ管理装置100は、いずれかのメモリ装置30やレジスタ等に要求元毎のアクセス要求の履歴を保存しておく。
なお、説明の便宜上、図6において、メモリ装置30には、データA〜Dが格納されているとする。このとき、データA〜Dのそれぞれには、フラグ付与部25により再利用フラグ=0が付与されているとする。
図6の状態では、Read(A,None)すなわちデータAへのアクセス要求が入出力管理部21に対してなされたとする。この場合、入出力管理部21は、メモリ装置30からデータAを読み出して要求元に出力する。この場合、フラグ付与部25は、メモリ装置30に保持されたデータAの再利用フラグを1に更新する。
また、入出力管理部21は、今回のアクセス要求から、前回のアクセス要求の対象データの情報を参照して、関連性保管テーブル30Bを更新する。ここで、図6に示すように、Read(A,None)であり、前回値がNoneすなわち存在しない状態であるので、入出力管理部21は、関連性保管テーブル30Bを更新しない。
図7は、図6の状態に続き、データ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。図7では、図6と同じ要求元から(以下同様)Read(B,A)、すなわちデータBに対するアクセス要求がデータ管理装置100に対してなされたとする。前回のアクセス要求の対象は、データAである。
この場合、入出力管理部21は、メモリ装置30からデータBを読み出して要求元に送信する。この場合、フラグ付与部25は、メモリ装置30に保持されたデータBの再利用フラグを1に更新する。
また、入出力管理部21は、今回のアクセス要求から、前回のアクセス要求の対象データを参照して、関連性保管テーブル30Bを更新する。図7に示す状態では、Read(B,A)より前回のアクセス要求の対象データがAであるので、入出力管理部21は関連性保管テーブル30Bにおける今回のアクセス要求の対象データ、すなわちBの欄に、データAを示す値を一回分書き込む。
関連性保管テーブル30Bが更新されると、解析要否判断部22は、今回のアクセス要求の対象データと前回のアクセス要求の対象データが同じグループに属するか否かに応じて、関連性解析部23による関連性解析が必要か否かを判断する。図7に示す状態では、今回のアクセス要求の対象データBと前回のアクセス要求の対象データAが同じグループG1に属するため、解析要否判断部22は関連性解析が不要と判断する。
図8は、図7の状態に続き、データ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。図7では、Read(C,B)すなわちデータCを読み込む要求がデータ管理装置100に対してなされたとする。前回のアクセス要求の対象データはBである。
入出力管理部21は、メモリ装置30からデータCを読み出して要求元に送信する。この場合、フラグ付与部25は、メモリ装置30に保持されたデータBの再利用フラグを1に更新する。
また、入出力管理部21は、前回のアクセス要求の対象データを参照して関連性保管テーブル30Bを更新する。図8に示す状態では、前回のアクセス要求の対象データがBであるので、入出力管理部21は、関連性保管テーブル30Bにおける今回のアクセス要求の対象データ、すなわちCの欄に、データBを示す値を一回分書き込む。
関連性保管テーブル30Bが更新されると、解析要否判断部22は、今回のアクセス要求の対象データと前回のアクセス要求の対象データが同じグループに属するか否かに応じて、関連性解析部23による関連性解析が必要か否かを判断する。図8に示す状態では、今回のアクセス要求の対象データCと前回のアクセス要求の対象データBとは異なるグループに属するため、解析要否判断部22は関連性解析が必要と判断する。
関連性解析部23は、例えばグラフ分割の手法を用いて、データ間の関連性を解析する。関連性解析部23の処理については、図9を用いて説明する。
図9は、図8に示す状態において関連性解析部23がグループを変更する前後のグループ配置を示す図である。図8において、矢印の元側が変更前のグループを示し、矢印の先側が変更後のグループを示す。図8において、データA、B等を結ぶ実線の数が、図15で説明する指標値Cijに相当し、破線がグループの境界線を示している。図15で説明する「異なるグループに属することになるデータの組についての指標値Cijの合計」は、指標値Cijを仮想的な結合線の数とみなしたときに、切断される結合線の数に相当する。図9の場合、グループ{A、B、C}とグループ{D}の境界線によって切断される実線の数はゼロであり、このグループ分けにおける指標値Cijの合計はゼロであることが分かる。
関連性解析部23が新たなグループを決定すると、グループ配置部24が、グループ管理テーブル30Aのデータとグループの対応付けを変更する。これについては、図10を用いて説明する。
図10は、グループ配置部により変更された後のグループ管理テーブルにおけるデータとグループの対応付けを示す図である。図8と比較して、図10では、グループ管理テーブル30Aにおいて、データCの属するグループがG2からG1へ変更されている。
図11は、図10の状態に続き、データ管理装置に対してアクセス要求Rqが複数回なされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。図11に示すアクセス要求Rqは、いずれも今回のアクセス要求の対象データと前回のアクセス要求の対象データとが同じグループに属するため、関連性保管テーブル30Bが更新され、関連性解析及びデータとグループの対応付けの変更は行われない。
図12は、図11の状態に続き、データ管理装置に対してアクセス要求Rqがなされた場合のグループ管理テーブルと関連性保管テーブルとを示す図である。この状態において解析要否判断部22は、今回のアクセス要求の対象データDと前回のアクセス要求の対象データAとが異なるグループに属するため、関連性解析が必要と判断する。このとき、フラグ付与部25は、メモリ装置30に保持されたデータDの再利用フラグを1に更新する。
図12の状態では、既にデータA、B、Cの間で関連性保管テーブル30Bに複数の履歴が蓄積されている。従って、図15で説明するように、A−B間、A−C間、B−C間の指標値Cijは比較的大きく算出され、A−D間の指標値Cijは比較的小さく算出されることになる。この結果、図13に示すように、関連性解析部23はデータとグループの対応付けを変更しない。
図13は、図12の状態において関連性解析部がグループを決定する前後のグループ配置を示す図である。図12の場合、A−B間、A−C間、B−C間の指標値Cijはそれぞれ3であるに対して、A−D間の指標値Cijは1である。したがって、A−D間の関係性に比べて、A−B間、A−C間、B−C間の関係性が強いので、グループの再編成は行われない。
図14は、本実施形態におけるデータ管理装置によって実行されるアクセス要求の際に行われる処理の全体の流れを示すフローチャートの一例である。本フローチャートは、データ管理装置100に対してアクセス要求がなされる度に実行される。
まず、入出力管理部21が、アクセス要求の対象データをメモリ装置30又は記憶装置40から読み出して要求元に送信する(S1)。このとき、アクセス要求の対象データがメモリ装置30に存在しない場合、入出力管理部21は、グループ管理テーブル30Aを用いて、アクセス要求の対象データが属するグループの全データを記憶装置40から読み出す(S2で「No」)。そして、入出力管理部21は、読み出したグループの全データのうち、アクセス要求の対象データを要求元に送信する。このとき、フラグ付与部25は、図5で説明したように、記憶装置40から読み出したデータに再利用フラグ=0を付与し、その再利用フラグ=0を付与したデータをメモリ装置30に格納する(S4)。
また、アクセス要求の対象データがメモリ装置30に存在した場合(S2で「Yes」)、フラグ付与部25は、その対象データの再利用フラグを1で付与する(S3)。
次に、入出力管理部21は、アクセス要求に含まれる前回のアクセス要求の対象データを参照して関連性保管テーブル30Bを更新する(S5)。
関連性保管テーブル30Bが更新されると、解析要否判断部22が、関連性解析部23による関連性解析が必要か否か、すなわち今回のアクセス要求の対象データと前回のアクセス要求の対象データとが異なるグループに属するか否かを判断する(S6)。関連性解析が不要と判断された場合、すなわち、今回のアクセス要求の対象データと前回のアクセス要求の対象データとが同じグループに属する場合(S6で「No」)、データ管理装置100は本フローチャートの処理を終了する。
関連性解析が必要と判断された場合、すなわち今回のアクセス要求の対象データと前回のアクセス要求の対象データとが異なるグループに属する場合(S6で「Yes」)、関連性解析部23は、データの関連性を解析する(S7)。S7の処理については、図15で詳述する。
次に、グループ配置部24が、関連性解析部23の解析結果に基づき、データとグループの対応付けの変更が必要か否か、すなわち、グループの再編成をする必要があるかを判断する(S8)。データとグループの対応付けの変更が不要と判断された場合(S8で「No」)、データ管理装置100は本フローチャートの処理を終了する。
データとグループの対応付けの変更が必要と判断した場合(S8で「Yes」)、グループ配置部24は、図10で説明したように、グループ管理テーブル30Aのデータとグループの対応付けを変更する(S9)。
図15は、関連性解析部により実行される関連性解析処理(S7)の流れを示すフローチャートの一例である。
まず、関連性解析部23は、今回のアクセス要求の対象データの属するグループと、前回のアクセス要求の対象データの属するグループの双方に含まれるデータを全て読み込む(S11)。
次に、関連性解析部23は、読み込んだデータから二つのデータi,jを取り出してS102〜S106の処理を行うことを、全てのi,jの組み合わせ(i≠j)について行う。図15において、mは、S100において読み込んだデータの種類の数である。
関連性解析部23は、関連性保管テーブル30Bに格納されたデータi欄の履歴におけるデータjの数Cij*をカウントする(S12)。次に、関連性解析部23は、関連性保管テーブル30Bに格納されたデータj欄の履歴におけるデータiの数Cji*をカウントする(S13)。
次に、関連性解析部23は、Cij*とCji*を加算してデータiとjの関連性を示す指標値Cijを算出する(S14)。図8の場合、CAB=1、CAC=0、CAD=0、CBC=1、CBD=0、CCD=0が得られる。
関連性解析部23は、全てのi,jについてS102〜S106の処理を行うと、グループ内の最大データ数(例えば3個)を満たす範囲内で、データ数mを分割する全てのグループパターンを設定する(S15)。図8の例ではデータの個数が4個(データA〜D)であり、最大データ数が3個であるとする。このとき、グループパターンは、3:1で分けた場合には4通り((ABC)(D)、(BCD)(A)、(CDA)(B)、(ABD)(C))となる。また、2:2で分けた場合には6通り((AB)(CD)、(AC)(BD)、(AD)(BC)、(BC)(AD)、(BD)(AC)、(CD)(AB))となる。このように、全部で10通りのグループパターンが設定される。
次に、関連性解析部23は、各グループパターンを採用した場合に、異なるグループに属することになったデータ同士の指標値Cijを全て抽出して合計する(S16)。
そして、関連性解析部23は、異なるグループに属することになるデータの組についての指標値Cijの合計が最も小さいグループパターンを選択し、新たなグループを決定する(S17)。図8の場合には、以下のようになる。
(ABC)(D):CAD+CBD+CCD=0
(BCD)(A):CAB+CAC+CAD=1
(CDA)(B):CAB+CBC+CBD=2
(ABD)(C):CAC+CBC+CCD=1
(AB)(CD):CAC+CAD+CBC+CBD=1
(AC)(BD):CAB+CAD+CBC+CCD=2
(AD)(BC):CAD+CAC+CBD+CCD=1
(BC)(AD):CAB+CBD+CAC+CCD=1
(BD)(AC):CAB+CBC+CAD+CCD=2
(CD)(AB):CAC+CBC+CAD+CBD=1
これより、グループ(ABC)と、グループ(D)のグループパターンの指標値Cijの合計が0となり、最も小さいので、関連性解析部23は、このグループパターン(ABC)(D)を新たなグループとして決定する。
次に、メモリ装置30から記憶装置40へのデータの書き戻しを行う場合のグループの分割処理について説明する。
図16は、本実施形態における、メモリ装置30から記憶装置40へのデータの書き戻しを行う場合、書き戻し対象のグループサイズに応じて、書き戻し対象のグループを分割する処理を説明するための図である。
メモリ装置30から記憶装置40へのデータの書き戻しを行う場合、書き戻し対象のグループサイズが最適グループサイズよりも大きい場合、分割管理部26は、書き戻し対象のグループを分割する。この場合、書戻部27は、書き戻し対象の全グループ(分割されて得られたグループも含む)を記憶装置40に書き戻す。なお、最適グループサイズについては後述する。
図17は、本実施形態におけるメモリ装置にあるいずれかのグループを記憶装置に書き戻す場合の処理フローを示す。
メモリ装置30の容量が不足した場合、入出力管理部21は、次の処理を行う。メモリ装置30の容量が不足した場合とは、例えば、記憶装置40から読み出したグループをメモリ装置30へ格納しようとしたときにメモリ装置30の容量が不足した場合、または、メモリ装置30に予め設定した閾値を超えてデータが格納されている場合等である。このような場合、入出力管理部21は、メモリ装置30に格納されたグループから、いずれかのグループを書込対象グループとして選択する(S20)。ここで、いずれかのグループとは、例えばLRU方式により決定されるグループ、すなわち、最もアクセスされていないグループである。
分割管理部26は、選択した書込対象グループにおいて再利用フラグの付いたデータ数(再利用数)を算出する(S21)。
分割管理部26は、以下の式(1)を用いて、再利用数から、最適グループサイズを算出する(S22)。ここで、以下の最適サイズの算出式について説明する。再利用数をuで表す。最適グループサイズをsで表す。以下のパラメータは、最適グループサイズの算出にて用いるパラメータである。なお、ランダムアクセスのコストaと、シーケンシャルアクセスのコストbは、記憶装置に予め設定されている。
・ランダムアクセスのコスト:a[ms]
・シーケンシャルアクセスのコスト:b[MB/s]=b[KB/s]
・再利用フラグ=1を有するデータのサイズ合計:d
このとき、LRUのコストClは、Cl=ua+d/bで表される。また、DLMのコストは、Ca=a+s/bで表される。ここで、Cl>Caが要求されるから、最適グループサイズは、
s<(u−1)ab+d (1)
で示される。
分割管理部26は、書込対象グループのサイズ>最適グループサイズであるか否かを判定する(S23)。書込対象グループのサイズ≦最適グループサイズである場合(S23で「No」)、S26の処理へ進む。
書込対象グループのサイズ>最適グループサイズである場合(S23で「Yes」)、分割管理部26は、グループ分割処理を実行する(S24)。ここでは、分割管理部26は、書込対象グループのサイズが最適グループサイズより小さくなるように現在のグループを分割し、分割して得られたグループも、そのサイズが最適グループサイズより小さくなるように分割する。S25の処理については、図18で詳述する。
分割管理部26は、S24にて分割されたグループに従って、グループ管理テーブル30Aの情報を更新する(S25)。
分割管理部26は、書込対象グループに含まれる全データから再利用フラグの項目を削除する(S26)。このとき、書込対象グループが複数のグループに分割されている場合には、書戻部27は、その分割されて得られた全グループに含まれる全データから再利用フラグの項目を削除する。
書戻部27は、書込対象グループを記憶装置に書き戻す。このとき、書込対象グループが複数のグループに分割されている場合には、書戻部27は、その分割されて得られた全グループを記憶装置に書き戻す(S27)。
図18は、本実施形態におけるグループ分割処理(S25)の詳細フローを示す。以下では、分割の基礎となる書込対象グループを「対象グループ」と称する。分割管理部26は、対象グループから、データサイズが最適グループサイズを超える1以上のデータを分離し、それぞれそのデータが1つだけ含まれるグループとする(S31)。
分割管理部26は、対象グループのサイズ<最適グループサイズであるか否かを判定する(S32)。対象グループのサイズ<最適グループサイズである場合(S32で「Yes」)、本フローは終了する。
対象グループのサイズ≧最適グループサイズである場合(S32で「No」)、分割管理部26は、対象グループから、再利用フラグ=1がついたデータを分離し、その分離したデータをまとめて1つのグループとする(S33)。
分割管理部26は、再び、対象グループのサイズ<最適グループサイズであるか否かを判定する(S34)。対象グループのサイズ<最適グループサイズである場合(S34で「Yes」)、本フローは終了する。
対象グループのサイズ≧最適グループサイズである場合(S32で「No」)、分割管理部26は、対象グループに残ったデータを大きさ順(大きい順または小さい順)にソートする(S35)。
分割管理部26は、新しいグループを作成する(S36)。分割管理部26は、対象グループに残ったデータのうち、最も大きなデータを新しいグループに移す(S37)。
分割管理部26は、対象グループが空か否か、すなわち、対象グループ内にデータが残っているか否かを判定する(S38)。対象グループが空である場合(S38で「Yes」)、本フローは終了する。
対象グループが空でない場合(S38で「No」)、分割管理部26は、対象グループのサイズ>最適グループサイズであるか否かを判定する(S39)。対象グループのサイズ>最適グループサイズである場合(S39で「Yes」)、S37の処理へ戻る。対象グループのサイズ≦最適グループサイズである場合(S39で「No」)、S36の処理へ戻る。
本実施形態によれば、再利用数から最適なグループサイズを算出し、そのサイズ以下になるようにグループを分割することにより、再利用数とグループサイズのミスマッチを防ぎ、DLMの性能低下を防ぐことができる。
必要に応じてグループサイズを分割することにより、大き過ぎるグループサイズから来る性能低下が抑止される。また、再配置アルゴリズムには何ら制限を設けていないため、グループサイズが小さくなり過ぎることもない。単にLRUの性能を下回る可能性が高いときに、グループを小さくすることができる。
再配置アルゴリズムとは独立した手法で、定量的に観測されたデータを基にディスクに書き戻す時にグループを分割するため、高度な再配置アルゴリズムを用いる必要もない。
グループサイズの上限を設定するわけではないので、依然として柔軟なグループ化(再配置)が可能である。直近でアクセスされた(関連性の強い)データは分割されない。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループを選択する選択部と、
選択された前記グループに含まれるデータのうち、前記第2記憶部における、データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割する分割部と、
分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する書込部と
を備えることを特徴とするデータ格納制御装置。
(付記2)
前記データ格納制御装置は、さらに、
前記分割の結果に基づいて、前記データと前記グループとを対応付けたグループ管理情報を更新する更新部と、
データアクセス要求に対応するデータが前記第2記憶部にない場合、前記グループ管理情報に基づいて、該データアクセス要求に対応するデータが属するグループに含まれるデータを前記第1記憶部から取得する取得部
を備えることを特徴とする付記1に記載のことを特徴とするデータ格納制御装置。
(付記3)
前記分割部は、
前記選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータ数を用いて、基準となるグループのサイズを算出し、
前記選択されたグループのサイズと前記基準となるグループのサイズとを比較し、比較結果に応じて、該選択されたグループを分割する
ことを特徴とする付記1または2に記載のデータ格納制御装置。
(付記4)
前記分割部は、
前記選択されたグループに含まれるデータから、前記基準となるグループのサイズよりも大きいサイズのデータを分離し、分離した該データをそれぞれ、相互に別グループとする
ことを特徴とする付記1〜3のうちいずれか1項に記載のデータ格納制御装置。
(付記5)
前記分割部は、
前記選択されたグループに含まれるデータのうち、前記データアクセス要求に応じてアクセスされたデータを分離し、分離した該データをまとめて1つのグループとする
ことを特徴とする付記1〜4のうちいずれか1項に記載のデータ格納制御装置。
(付記6)
コンピュータに、
第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループを選択し、
選択された前記グループに含まれるデータのうち、前記第2記憶部における、前記データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割し、
分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する
処理を実行させるデータ格納制御プログラム。
(付記7)
前記コンピュータに、さらに、
前記分割の結果に基づいて、前記データと前記グループとを対応付けたグループ管理情報を更新し、
データアクセス要求に対応するデータが前記第2記憶部にない場合、前記グループ管理情報に基づいて、該データアクセス要求に対応するデータが属するグループに含まれるデータを前記第1記憶部から取得する
ことを特徴とする付記6に記載のデータ格納制御プログラム。
(付記8)
前記分割において、
前記選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータ数を用いて、基準となるグループのサイズを算出し、
前記選択されたグループのサイズと前記基準となるグループのサイズとを比較し、比較結果に応じて、該第2グループを分割する
ことを特徴とする付記6または7に記載のデータ格納制御プログラム。
(付記9)
前記分割において、
前記選択されたグループに含まれるデータから、前記基準となるグループのサイズよりも大きいサイズのデータを分離し、分離した該データをそれぞれ、相互に別グループとする
ことを特徴とする付記6〜8のうちいずれか1項に記載のデータ格納制御プログラム。
(付記10)
前記分割において、
前記選択されたグループに含まれるデータのうち、前記データアクセス要求に応じてアクセスされたデータを分離し、分離した該データをまとめて1つのグループとする
ことを特徴とする付記6〜9のうちいずれか1項に記載のデータ格納制御プログラム。
(付記11)
コンピュータが、
第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループである第2グループを選択し、
選択された前記グループに含まれるデータのうち、前記第2記憶部における、前記データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割し、
分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する
ことを特徴とするデータ格納制御方法。
(付記12)
前記コンピュータに、さらに、
前記分割の結果に基づいて、前記データと前記グループとを対応付けたグループ管理情報を更新し、
データアクセス要求に対応するデータが前記第2記憶部にない場合、前記グループ管理情報に基づいて、該データアクセス要求に対応するデータが属するグループに含まれるデータを前記第1記憶部から取得する
ことを特徴とする付記11に記載のデータ格納制御方法。
(付記13)
前記分割において、
前記選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータ数を用いて、基準となるグループのサイズを算出し、
前記選択されたグループのサイズと前記基準となるグループのサイズとを比較し、比較結果に応じて、該第2グループを分割する
ことを特徴とする付記11または12に記載のデータ格納制御方法。
(付記14)
前記分割において、
前記選択されたグループに含まれるデータから、前記基準となるグループのサイズよりも大きいサイズのデータを分離し、分離した該データをそれぞれ、相互に別グループとする
ことを特徴とする付記11〜13のうちいずれか1項に記載のデータ格納制御方法。
(付記15)
前記分割において、
前記選択されたグループに含まれるデータのうち、前記データアクセス要求に応じてアクセスされたデータを分離し、分離した該データをまとめて1つのグループとする
ことを特徴とする付記11〜14のうちいずれか1項に記載のデータ格納制御方法。
1 データ格納制御装置
2 選択部
3 分割部
4 更新部
5 取得部
7 第1記憶部
8 第2記憶部
100 データ管理装置
20 CPU
21 入出力管理部
22 解析要否判断部
23 関連性解析部
24 グループ配置部
25 フラグ付与部
26 分割管理部
27 書戻部
30 メモリ装置
30A グループ管理テーブル
30B 関連性保管テーブル
31 管理領域
32 データ格納領域
40 記憶装置
次に、関連性解析部23は、読み込んだデータから二つのデータi,jを取り出してS12S14の処理を行うことを、全てのi,jの組み合わせ(i≠j)について行う。図15において、mは、S11において読み込んだデータの種類の数である。
関連性解析部23は、全てのi,jについてS12S14の処理を行うと、グループ内の最大データ数(例えば3個)を満たす範囲内で、データ数mを分割する全てのグループパターンを設定する(S15)。図8の例ではデータの個数が4個(データA〜D)であり、最大データ数が3個であるとする。このとき、グループパターンは、3:1で分けた場合には4通り((ABC)(D)、(BCD)(A)、(CDA)(B)、(ABD)(C))となる。また、2:2で分けた場合には6通り((AB)(CD)、(AC)(BD)、(AD)(BC)、(BC)(AD)、(BD)(AC)、(CD)(AB))となる。このように、全部で10通りのグループパターンが設定される。

Claims (7)

  1. コンピュータに、
    第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループを選択し、
    選択された前記グループに含まれるデータのうち、前記第2記憶部における、前記データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割し、
    分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する
    処理を実行させるデータ格納制御プログラム。
  2. 前記コンピュータに、さらに、
    前記分割の結果に基づいて、前記データと前記グループとを対応付けたグループ管理情報を更新し、
    データアクセス要求に対応するデータが前記第2記憶部にない場合、前記グループ管理情報に基づいて、該データアクセス要求に対応するデータが属するグループに含まれるデータを前記第1記憶部から取得する
    ことを特徴とする請求項1に記載のデータ格納制御プログラム。
  3. 前記分割において、
    前記選択されたグループに含まれるデータのうち、データアクセス要求に応じてアクセスされたデータ数を用いて、基準となるグループのサイズを算出し、
    前記選択されたグループのサイズと前記基準となるグループのサイズとを比較し、比較結果に応じて、該第2グループを分割する
    ことを特徴とする請求項1または2に記載のデータ格納制御プログラム。
  4. 前記分割において、
    前記選択されたグループに含まれるデータから、前記基準となるグループのサイズよりも大きいサイズのデータを分離し、分離した該データをそれぞれ、相互に別グループとする
    ことを特徴とする請求項1〜3のうちいずれか1項に記載のデータ格納制御プログラム。
  5. 前記分割において、
    前記選択されたグループに含まれるデータのうち、前記データアクセス要求に応じてアクセスされたデータを分離し、分離した該データをまとめて1つのグループとする
    ことを特徴とする請求項1〜4のうちいずれか1項に記載のデータ格納制御プログラム。
  6. 第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループを選択する選択部と、
    選択された前記グループに含まれるデータのうち、前記第2記憶部における、データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割する分割部と、
    分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する書込部と
    を備えることを特徴とするデータ格納制御装置。
  7. コンピュータが、
    第1記憶部から取得したデータを格納する第2記憶部の空き容量不足が発生した場合、該第2記憶部に格納されているいずれかのグループである第2グループを選択し(S20)、
    選択された前記グループに含まれるデータのうち、前記第2記憶部における、前記データアクセス要求に対応するデータへのアクセス状況に応じて、前記選択されたグループを分割し、
    分割して得られたグループ単位で、それぞれのグループに含まれるデータを前記第1記憶部に格納する
    ことを特徴とするデータ格納制御方法。
JP2015040775A 2015-03-02 2015-03-02 データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法 Pending JP2016162243A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015040775A JP2016162243A (ja) 2015-03-02 2015-03-02 データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法
US15/012,948 US20160259592A1 (en) 2015-03-02 2016-02-02 Data storing control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015040775A JP2016162243A (ja) 2015-03-02 2015-03-02 データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法

Publications (1)

Publication Number Publication Date
JP2016162243A true JP2016162243A (ja) 2016-09-05

Family

ID=56847014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015040775A Pending JP2016162243A (ja) 2015-03-02 2015-03-02 データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法

Country Status (2)

Country Link
US (1) US20160259592A1 (ja)
JP (1) JP2016162243A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5734861A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US6678805B1 (en) * 2000-05-25 2004-01-13 Microsoft Corporation Structure organization for improved cache performance
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US8886882B2 (en) * 2012-09-14 2014-11-11 Hitachi, Ltd. Method and apparatus of storage tier and cache management
KR102295769B1 (ko) * 2014-05-20 2021-08-30 삼성전자주식회사 스토리지 컨트롤러 및 상기 스토리지 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
US20160259592A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
Eisenman et al. Bandana: Using non-volatile memory for storing deep learning models
EP3433745B1 (en) Scaled set dueling for cache replacement policies
US7096321B2 (en) Method and system for a cache replacement technique with adaptive skipping
CN105493053B (zh) 多核处理器及更新多核处理器中的高速缓存的方法
EP1654660B1 (en) A method of data caching
US20130007373A1 (en) Region based cache replacement policy utilizing usage information
US20130097387A1 (en) Memory-based apparatus and method
CN107220188B (zh) 一种自适应缓冲块替换方法
CN1361887A (zh) 具有保护的最近最少使用置换方法
JP2021524078A (ja) キャッシュからトラックを削除するのに用いる複数のキャッシュ削除アルゴリズムの1つを選択
JP6166616B2 (ja) 情報処理方法、情報処理装置及びプログラム
Perez et al. Reference-distance eviction and prefetching for cache management in spark
US20160103765A1 (en) Apparatus, systems, and methods for providing a memory efficient cache
JP6402647B2 (ja) データ配置プログラム、データ配置装置およびデータ配置方法
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
US9699254B2 (en) Computer system, cache management method, and computer
JP6394231B2 (ja) データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法
US11301395B2 (en) Method and apparatus for characterizing workload sequentiality for cache policy optimization
CN110162272B (zh) 一种内存计算缓存管理方法及装置
US7529891B2 (en) Balanced prefetching exploiting structured data
Li et al. SS-LRU: a smart segmented LRU caching
JP2014010604A (ja) ストレージ装置とプログラムと方法
JP2016162243A (ja) データ格納制御プログラム、データ格納制御装置、およびデータ格納制御方法
Gawanmeh et al. Enhanced Not Recently Used Algorithm for Cache Memory Systems in Mobile Computing
US8621156B1 (en) Labeled cache system