JP2016126619A - データ配置装置、データ配置プログラム及びデータ配置方法 - Google Patents

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

Info

Publication number
JP2016126619A
JP2016126619A JP2015001068A JP2015001068A JP2016126619A JP 2016126619 A JP2016126619 A JP 2016126619A JP 2015001068 A JP2015001068 A JP 2015001068A JP 2015001068 A JP2015001068 A JP 2015001068A JP 2016126619 A JP2016126619 A JP 2016126619A
Authority
JP
Japan
Prior art keywords
data
segment
segments
record
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.)
Pending
Application number
JP2015001068A
Other languages
English (en)
Inventor
高橋 秀和
Hidekazu Takahashi
秀和 高橋
美穂 村田
Miho Murata
美穂 村田
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 JP2015001068A priority Critical patent/JP2016126619A/ja
Priority to US14/977,925 priority patent/US20160196074A1/en
Publication of JP2016126619A publication Critical patent/JP2016126619A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • 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
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】記憶領域の位置に応じて読み出し性能の異なる記憶装置からのデータの読み出し効率を向上させる。【解決手段】データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、第1格納装置から1以上のセグメントを選択する選択部と、選択されたセグメントに含まれるデータ間の関連性に基づく評価値を算出する算出部と、評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における格納領域の位置に応じた読み出し性能についての情報とに基づいて、格納領域における選択されたセグメントの配置位置を決定する決定部と、を含むデータ配置装置により、上記課題の解決を図る。【選択図】図1

Description

本発明は、データの配置技術に関する。
ストレージ装置は、サイズの小さなデータへの不規則なアクセスにおけるスループットが低く、シーケンシャルアクセスのコストに比べて、ランダムアクセスのコストが高い。このスループットを向上させる技術として、キャッシュ技術がある。
キャッシュ技術は、処理速度の速い制御装置が低速の記憶装置からデータをより速く読み出す場合にメモリを使用して処理時間を短縮する技術である。制御装置が低速の記憶装置からデータを読み出した場合、その読み出したデータを一時的にメモリに保持しておくことで、次回からはハードディスクより読み書きが早いメモリからデータを読み出せる。
このようなキャッシュ技術に関して、例えば、least frequently used(LFU)方式、least recently used(LRU)方式がある。またはキャッシュ技術の1つとして、アクセス履歴に基づき、関連性のあるデータを同一のセグメントに取りまとめ、ディスクへ書き戻すアクティブロケータ(AL)技術がある(例えば、特許文献1)。
国際公開第2013/114538号 特表2005−502121号公報 特開平11−85411号公報 特開2011−175334号公報
AL技術により生成されるセグメントには、関連性の強いデータが集約されたセグメントと、関連性がそれほど強くないデータが集まったセグメントが存在する。読み出し効率が高いデータとは、関連性の強いデータが集約されたセグメントには、関連するデータ同士が含まれているため、キャッシュに読み出すと、キャッシュヒット率が高くなりやすい(すなわち、読み出し効率が高い)。一方、関連性がそれほど強くないデータが集まったセグメントには、関係のないデータ同士またはあまり関係のないデータ同士が含まれているため、キャッシュに読み出してもキャッシュヒット率が高くなりにくい(すなわち、読み出し効率が低い)。
上記したセグメントの「読み出し効率が高い」または「読み出し効率が低い」という特性は、データアクセスのパターンや、個別のデータの重要度の変更に応じて、変化する。
しかしながら、データ(ALの場合はセグメント)のサイズ・アクセス頻度・特性や、ディスクの特性を考慮せずにデータを書き戻すと、読み出し効率が異なるセグメントが混在して書き戻されてしまう。その結果、次にディスクからまとめて読み出される場合には、無駄なデータも読み出されることになる。
また、ディスクのシーケンシャルread性能は、ディスクの内周側よりも外周側のデータの読み出し時間が短く、すなわちシーケンシャルread性能が高い。このように、ディスクのシーケンシャルread性能は、データの物理的位置(ディスクの内周か外周)によって、例えば1.5倍から最大2倍の性能差がある。したがって、サイズの大きなデータをディスクから読み出す場合、データの物理的位置によって読出し時間が大きく異なる。
しかしながら、データをまとめて読み出すことはデータ単体で読み出すより読み出しコストが大きい。そのため、読み出し効率が低いセグメントが内周に記録されると、外周に記録された場合より、まとめて読み出すときの読出しコストが大きくなってしまう。
本発明は、一側面として、記憶領域の位置に応じて読み出し性能の異なる記憶装置からのデータの読み出し効率を向上させる技術を提供する。
本発明の一側面にかかるデータ配置装置は、選択部、算出部、決定部を含む。選択部は、データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、第1格納装置から1以上のセグメントを選択する。算出部は、選択されたセグメントに含まれるデータ間の関連性に基づく評価値を算出する。決定部は、評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における格納領域の位置に応じた読み出し性能についての情報とに基づいて、格納領域における選択されたセグメントの配置位置を決定する。
本発明の一側面によれば、記憶領域の位置に応じて読み出し性能の異なる記憶装置からのデータの読み出し効率を向上させることができる。
本実施形態におけるデータ配置装置の一例を示す。 本実施形態における情報処理システムの一例を示す。 本実施形態における、レコード及びセグメントについて説明するための図である。 本実施形態におけるサーバの一例を示す。 本実施形態におけるレコード・セグメント対応テーブルの一例である。 本実施形態における関連性保管テーブル34の一例である。 本実施形態におけるセグメント管理テーブルの一例である。 本実施形態における空き領域管理テーブルの一例である。 本実施形態におけるディスク性能保管テーブルの一例である。 本実施形態における関連性情報の蓄積について説明するための図である。 図10に対応する関連性保管テーブルの更新例を示す。 本実施形態におけるリクエスト到着に応じて実行されるセグメント管理テーブルの更新処理の全体の流れを示すフローチャートの一例である。 関連性解析部23による解析処理(S4)を説明するための図である。 本実施形態におけるセグメントのディスクへの書き戻しフローを示す。 本実施形態におけるリクエストが指定するレコードをメモリ31又はディスク41から読み出して要求元に送信するまでの処理(S1)の詳細なフローを示す。 本実施形態における読み出し効率に応じたセグメントの配置及びセグメントの読み出し単位について説明するための図である。
図1は、本実施形態におけるデータ配置装置の一例を示す。データ配置装置1は、選択部2、算出部3、決定部4を含む。データ配置装置1の一例として、サーバ11が挙げられる。
選択部2は、データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、第1格納装置から1以上のセグメントを選択する。選択部2の一例として、書き戻し実行部26として機能する制御装置21が挙げられる。第1格納装置の一例として、メモリ31が挙げられる。
算出部3は、選択されたセグメントに含まれるデータ間の関連性に基づく評価値を算出する。算出部3の一例として、特性抽出部27として機能する制御装置21が挙げられる。第2格納装置の一例として、ディスク41が挙げられる。
決定部4は、評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における格納領域の位置に応じた読み出し性能についての情報とに基づいて、格納領域における選択されたセグメントの配置位置を決定する。決定部4の一例として、記録場所決定部29として機能する制御装置21が挙げられる。格納領域の位置に応じた読み出し性能についての情報の一例としては、ディクス性能保管テーブル37が挙げられる。
このように構成することにより、記憶領域の位置に応じて読み出し性能の異なる記憶装置からのデータの読み出し効率を向上させることができる。
算出部3は、セグメントに含まれるデータ間の関連性が強いほど、評価値を高く算出する。決定部4は、評価値と読み出し性能情報とに基づいて、評価値が高いセグメントほど、配置位置を、より読み出し性能の高い位置に決定する。
このように構成することにより、アクセスされやすいデータ群を含むセグメントを読み出し性能の高い位置に配置することにより、読み出しコストの増加を抑えることができる。
データ配置装置11は、さらに、書込部5を含む。書込部5は、決定された配置位置に基づいて、選択された複数のセグメントを格納領域に書き込む。書込部5の一例として、書き戻し実行部26として機能する制御装置21が挙げられる。
このように構成することにより、より読み出し効率のよいセグメントが読み出し性能の高い位置に配置することにより、読み出しコストの増加を抑えることができる。
データ配置装置1は、さらに、読出部6を含む。読出部6は、読み出し要求で指定されたデータを含むセグメントの配置位置に応じて、格納領域から読み出すセグメントの個数を変更し、配置位置から連続した格納領域に配置されているセグメントを個数分読み出す。読出部6の一例として、入出力管理部22として機能する制御装置21が挙げられる。
このように構成することにより、読み出し効率の高いセグメントほど、読み出し性能が高い位置に配置されているので、より多くのセグメントをまとめて読み出すようにしている。一方、読み出し効率の低いセグメントほど、読み出し性能が低い位置に配置されているが、その分、より少ないセグメントをまとめて読み出す、または1セグメントを読み出すようにしている。これにより、読み出しコストの増加を抑えることができる。
また、上記関連性は、データのアクセス履歴から生成されるデータ間の関連性である。これにより、データのアクセス履歴に基づき形成されるセグメントに含まれるデータの内容や性質に応じて、ディスク上での配置を決定し、読み出しコストの増加を抑えることができる。
図2は、本実施形態における情報処理システムの一例を示す。情報処理システムにおいて、サーバ装置(以下、サーバと称する)11は、通信ネットワーク(以下、単に、ネットワークと称する)61を介して、情報処理装置の一例であるクライアント41と接続されている。クライアント51は、サーバ11にデータの読み込みや書込み等のアクセス要求(以下、「リクエスト」と称する)を行う。本実施形態では、1リクエストにより指定されるデータを「レコード」と称する。
サーバ11は、制御装置21、メモリ装置(以下、「メモリ」と称する)31、ストレージ装置(ディスク)41を含む。制御装置21は、中央演算処理装置(CPU)等のプロセッサである。
ストレージ装置41は、例えば、ハードディスクドライブ(HDD)等のディスク装置である。以下では、ストレージ装置41をディスク41と称する。
メモリ31は、ディスク41に比して高速にアクセス可能な記憶装置である。メモリ31としては、例えば、RAM(Random Access Memory)、フラッシュメモリ等がある。
サーバ11は、上記の構成に加えて、BIOS(Basic Input/Output System)を格納したROM、プログラムメモリ等を有する。制御装置21が実行するプログラムは、ネットワーク61を介して取得されてもよいし、可搬型メモリやCD−ROM等のコンピュータ読み取り可能な可搬型記録媒体がサーバ11に装着されることにより取得されてもよい。制御装置21が実行するプログラムには、本実施形態で説明する処理を実行するプログラムも含む。
本実施形態では、制御装置21は、メモリ31上のデータをディスク41に書き戻す際、レコードの内容やレコード処理の内容に起因する特性も考慮し、ディスク41上の記録場所を決定する。レコードの内容に起因する特性とは、レコードの重要度やアクセス回数等についての特性である。また、レコード処理の内容に起因する特性とは、関連するレコードは同時期にアクセスされて処理されるという経験則に基づいて、アクセス履歴を利用した特性である。レコードの内容やレコード処理の内容に起因する特性は、読み出し単位(セグメント)の読み出し効率に影響を与える。セグメントの詳細については図3で説明する。ディスク上の記録場所は、シーケンシャルread性能が有意に異なる複数の領域に分割されている。制御装置21は、その読み出し効率に応じていずれかの領域を指定して1以上のセグメントを書き込む。
制御装置21は、セグメントをディスク41に書き戻す際、複数のセグメントをまとめて書き戻す。まとめて書き戻す複数セグメントそれぞれについて優先度を算出し、優先度が高いセグメントからより高性能な領域に割り当てる。
制御装置21は、データ処理(新規作成、参照、更新(ALによる再配置など)など)が発生する度にデータの特性(筋の良さを示す指標)を抽出し、データごとにその特性情報を保存する。
制御装置21は、複数のセグメントをディスクに書き戻す際、データ処理時に保存した特性情報基づいて、各セグメントの優先度を算出する。
図3は、本実施形態における、レコード及びセグメントについて説明するための図である。本実施形態では、説明の便宜のため、リクエストで指定されたデータを、レコードとして表す。レコードは、「キー」、「値」を含む。「キー」は、レコード(値)を一意に識別するための情報である。「値」は、「キー」より特定されるレコードの内容(値)である。
ディスク41には、レコードがセグメント単位で記憶されている。セグメントとは、リクエストで指定されたレコードの履歴に基づいて、関連性が認められるレコードの集合であり、ディスク41に対する読み書きの最小単位である。セグメントの内容は、後述するように制御装置21の処理によって更新される。ここで、リクエストは、Read要求及びWrite要求を含む。
本実施形態では、例えば、セグメントサイズは固定サイズであるとする。また、メモリからディスクへセグメントを書き戻す際に、まとめ書きする単位(セグメント数)が調整される。
レコードは、セグメント単位で、ディスク41から読み出され、メモリ31に格納される。すなわち、リクエストで指定されたレコードが属するセグメントに含まれる全レコードが、ディスク41から読み出され、メモリ31に格納される。そして、メモリ31の容量が不足した場合、メモリ31に保持されたレコードは、セグメント単位で、ディスク41に書き戻される。
図4は、本実施形態におけるサーバの一例を示す。上述の通り、サーバ11は、制御装置21、メモリ31、ディスク41を含む。メモリ31は、ディスク41から読み出された複数のセグメントをキャッシングして、一時的に格納する領域(以下、「キャッシュ領域」と称する)を含む。キャッシュ領域32の容量が不足した場合、LRU方式や、LFU方式等のアルゴリズムを用いて、キャッシュ領域32からいずれかのセグメントが抽出され、ディスク41に書き戻される。
メモリ31は、レコード・セグメント対応テーブル33、関連性保管テーブル34、セグメント管理テーブル35、空き領域管理テーブル36、ディスク性能保管テーブル37を保持する。レコード・セグメント対応テーブル33は、レコードを特定するキーと、そのレコードが属するセグメントとの対応関係を示す情報を格納する。関連性保管テーブル34は、リクエストで指定されたレコード毎に、前回リクエストで指定されたレコードを順次関係付けて、累積したその関係付けの情報を管理するテーブルである。セグメント管理テーブル35は、ディスク41上における、セグメント毎の物理位置及び特性(指標値)を管理するテーブルである。空き領域管理テーブル36は、ディスク41上の空き領域を管理するテーブルである。ディスク性能保管テーブル37は、ディスク41上の物理位置毎の読み出し性能を管理するテーブルである。
制御装置21は、本実施形態に係るプログラムを実行することにより、入出力管理部22、解析要否判断部23、関連性解析部24、セグメント配置部25、書き戻し実行部26、特性抽出部27、優先度算出部28、記録場所決定部29として機能する。
入出力管理部22は、クライアント51等の要求元から入力されたリクエストに応じてメモリ31を検索し、メモリ31にリクエストで指定されたレコードがなければさらにディスク41を検索し、リクエストで指定されたレコードを要求元に送信する。なおリクエストは、クライアント51が送信するだけでなく、サーバ11において実行されているプロセスその他の主体がリクエストの発行元となる場合もあり得る。また、入出力装置がサーバ11に接続されている場合、ユーザが入出力装置に対してリクエストを入力することも想定される。
リクエストが入力されると、入出力管理部22は、まずメモリ31からリクエストで指定されたレコードを検索する。リクエストで指定されたレコードがメモリ31上に存在する場合に、入出力管理部22は、そのレコードをメモリ31から読み出して要求元に返信する。
また、入出力管理部22は、リクエストで指定されたレコードがメモリ31上に存在しない場合には、ディスク41からリクエストで指定されたレコードを検索する。入出力管理部22は、リクエストで指定されたレコードがディスク41上に存在する場合に、レコード・セグメント対応テーブル33を用いて、リクエストで指定されたレコードの属するセグメントに含まれる全レコードをディスク41から読み出す。そして、入出力管理部22は、その読み出したセグメントに含まれる全レコードのうち、リクエストで指定されたレコードを要求元に返信する。このとき、入出力管理部22は、その読み出したセグメントに含まれる全レコードをメモリ31に格納する。
なお、上記では、入出力管理部22は、ディスク41から読み出したセグメントに含まれる全レコードをメモリ31へ格納する処理を、リクエストがあったタイミングで行う場合について説明したが、これに限定されない。例えば、入出力管理部22は、一定期間のアクセス頻度を取得してアクセス頻度が高いセグメントを優先的にディスク41から読み出してメモリ31に格納してもよい。
解析要否判断部23は、関連性保管テーブル34を用いて、連続するリクエスト間で指定されたレコードが属するセグメントが同一かどうかを判定することにより、関連性解析部24に関連性の解析を行わせるか否かを決定する。
関連性解析部24は、解析要否判断部23の判定結果に応じて、関連性保管テーブル34から、今回のリクエストで指定されたレコードの属するセグメントのレコードと、前回のリクエストで指定されたレコードの属するセグメントのレコードとの関連性を解析する。関連性解析部24は、その解析結果に基づいて、レコードの所属するセグメントの決定を行う。
セグメント配置部25は、関連性解析部24の決定に従い、レコード・セグメント対応テーブル33のセグメントの配置を更新する。
書き戻し実行部26は、キャッシュ領域32の容量が不足すると、入出力管理部22からの指示に基づいて、書き戻し処理を実行する。書き戻し処理を実行する場合、書き戻し実行部26は、特徴抽出部27、優先度算出部36、記録場所決定部29を呼び出す。特徴抽出部27、優先度算出部36、記録場所決定部29の処理後、書き戻し実行部26は、書き戻し対象セグメントを、後述する記録場所決定部29により割り当てられたディスク41上の領域に書き戻す。
特徴抽出部27は、レコード・セグメント対応テーブル33、関連性保管テーブル34を参照し、セグメントの特性として読み出し効率の高さを示す指標値を算出し、算出した指標値をセグメント管理テーブル35に格納する。
優先度算出部36は、算出された指標値に基づいて、セグメント毎に、読み出し効率の高さについての優先度を決定する。
記録場所決定部29は、空き領域管理テーブル36とディスク性能保管テーブル37を参照して、空き領域のディスクの物理位置に応じて、ディスク性能順に空き領域を順番付けする。記録場所決定部29は、優先度を決めた全セグメントを、優先度の高い順に、よりディスク性能の高い空き領域に割り当てる。
図5は、本実施形態におけるレコード・セグメント対応テーブルの一例である。レコード・セグメント対応テーブル33には、メモリ31及びディスク41に格納された全レコード分のキーと、そのキーに対応するセグメント名とが対応付けられて格納されている。
レコード・セグメント対応テーブル33は、「キー」、「セグメント」の項目を含む。「キー」は、レコードを特定する情報であり、レコード名に相当する。「セグメント」は、キーにより特定されるレコードが属するセグメントを示す。
図6は、本実施形態における関連性保管テーブル34の一例である。関連性保管テーブル34は、キャッシュ領域32に保持されているレコードを対象としたテーブルである。関連性保管テーブル34は、今回リクエストで指定されたレコードと、前回リクエストで指定されたレコードを関係付けたテーブルである。
関連性保管テーブル34は、「キー」、「関連性」の項目を含む。「キー」は、レコードを特定する情報であり、レコード名に相当する。
「関連性」には、今回リクエストで指定されたレコードを示す「キー」K1の前にリクエストで指定されたレコードの「キー」K2と、K1とK2との関連性の強さnと、が順次累積して格納される。図6では、関連性は{K2:n}と表記される。関連性の強さnは、アクセス回数×重要度で表される。関連性の強さについては後述する。
たとえば、今回リクエストで指定されたレコードが“A”であり、前回リクエストで指定されたレコードが“C”であり、レコードAC間の関連性の強さが3であるとする。この場合、関連性保管テーブル34において、キー=Aに対応する項目「関連性」に{C:3}が格納される。
図7は、本実施形態におけるセグメント管理テーブルの一例である。セグメント管理テーブル35は、「セグメント名」、「物理位置」、「指標値」の項目を含む。「セグメント名」は、セグメントを特定する情報である。「物理位置」は、ディスク41におけるそのセグメントの物理位置を示す。「指標値」は、そのセグメントの読み出し効率の高さを示す値であり、指標値が高いほど読み出し効率が高いことを示す。
図8は、本実施形態における空き領域管理テーブルの一例である。空き領域管理テーブル36は、「物理位置」、「領域サイズ」の項目を含む。「物理位置」には、ディスク41において、情報が書き込まれていない領域の開始位置(Logical Block Addressing(LBA))を示す。「領域サイズ」には、その物理位置に対応する空き領域の領域サイズを示す。
図9は、本実施形態におけるディスク性能保管テーブルの一例である。ディスク性能保管テーブル37は、「物理位置範囲」、「読み出し性能」、「読み出し方」の項目を含む。「物理位置範囲」は、ディスク41上の物理位置の範囲を示す。「読み出し性能」は、その物理位置範囲の、単位時間当たり読み出し性能を示す。「読み出し方」は、1回のread処理にてまとめて読み出すセグメント数を示す。
図9では、物理位置:0〜250の場合、読み出し性能:90メガバイト(MB)/secであり、読み出し方は「まとめ読みしない」(すなわち、1セグメントずつ読み出す)と設定されている。物理位置:251〜500の場合、読み出し性能:100MB/secであり、読み出し方は「セグメント2個づつまとめ読み」と設定されている。物理位置:501〜1000の場合、読み出し性能:120MB/secであり、読み出し方は「セグメント4個づつまとめ読み」と設定されている。物理位置:1001〜の場合、読み出し性能:140MB/secであり、読み出し方は「セグメント8個づつまとめ読み」と設定されている。
このように、ディスク性能保管テーブル37では、物理位置範囲の読み出し性能が高くなるほど、まとめて読み出すセグメント数を増やすように、「物理位置範囲」、「読み出し性能」、「読み出し方」のエントリが設定されている。
次に関連性保管テーブル34にて管理される関連性情報の蓄積処理について説明する。本実施形態では、同じクライアント51から続けてアクセスされたレコード間には関連性があり、続けてアクセスされた回数が多いほど、関連性が強いとみなす。
また、本実施形態では、同じクライアントから続けてアクセスされたレコード同士と、違うクライアントからのアクセスだが、偶然に入出力管理部22に届いた順序が連続していたレコードとを区別し、後者は関連性がないとみなす。
また、本実施形態では、同じクライアントからのリクエストであっても、レコードによって重要度が違う場合があり、リクエストに指定された重要度が大きいほど、関連性が強いとみなす。例えば、Webのアクセスログを蓄積しておき、ユーザごとにWebサイトをたどった経歴を分析するデータ処理の場合、各Webサイトページがレコードに相当し、重要度が高い。一方、Webサイトに付随する広告データもレコードとなるが、ランダムにWebサイトに表示される(ランダムに続けてアクセスされる)ため、重要度は低い。
関連性情報の蓄積方法について説明する。同じクライアントからのリクエストには、共通のセッション番号が振られる。各リクエストには、レコードごとの重要度を表す数値を含める。他のレコードと全く関連がないレコードは、重要度0とする。重要度は、リクエストを投入するアプリケーションプログラムまたはユーザによって指定される。入出力管理部22はリクエストを到着順にチェックし、共通のセッション番号で連続してアクセスされたレコードの後者を、前者の関連性情報として記録する。
図10は、本実施形態における関連性情報の蓄積について説明するための図である。図11は、図10に対応する関連性保管テーブルの更新例を示す。図10において、クライアントX,Yにて動作しているアプリケーションプログラムまたはユーザの指示により生成されるリクエストを、“Get(K,N)”で表す。ここで、「K」は、レコードを特定するキーを示す。「N」は、そのレコードの重要度を示す数値である。
生成されたリクエストは、クライアントより発行される際に、クライアント毎にセッション番号が付与される。図10では、クライアントXより発行されるリクエストを、“Get(K,N,SeN)”で表す。SeNは、クライアント毎に設定されるセッション番号を示す。図10の例では、クライアントXより発行されるリクエストにはセッション番号として“X”が付与されるとする。クライアントYより発行されるリクエストにはセッション番号として“Y”が付与されるとする。
図10の例では、クライアントX,Yが、矢印で示す順序(Rq1,Rq2,Rq3,Rq4,Rq5の順)で、入出力管理部22にリクエストを発行するとする。本実施形態では、各リクエストには、今回のリクエストで指定されたレコードのキーと共に、前回のリクエストで指定されたレコードのキーも付与されているものとするがこれに限定されない。例えば、入出力管理部22は、メモリ31やレジスタ等に要求元毎のリクエストの履歴を保存していてもよい。
まず、クライアントXから、リクエストRq1:Get(A,10,X)が発行される。このとき、重要度には、「10」が設定されているものとする。図10では、リクエストRq1の前に発行されたリクエストはない。この場合、入出力管理部22は、リクエストRq1で指定されたレコード「A」と関連するレコードはないと判定し、図11(A)に示すように、関連性保管テーブル34を更新しない。
次に、クライアントXから、リクエストRq2:Get(B,10,X)が発行される。このとき、重要度には、「10」が設定されているものとする。リクエストRq2は、リクエストRq1と同じセッションで、かつ続けてアクセスされている。この場合、入出力管理部22は、Rq2で指定されたレコード「B」とRq1で指定されたレコード「A」とは関連していると判定する。この場合、入出力管理部22は、図11(B)に示すように、関連性保管テーブル34を更新する。
具体的には、今回のリクエストRq2で指定されたレコードのキーが「B」であり、前回のリクエストで指定されたレコードが「A」であるので、入出力管理部22は、関連性保管テーブル34のキー「B」に対応する「関連性」に「A」を格納する。また、入出力管理部22は、レコード「B」と「A」の関連性を算出し、関連性保管テーブル34に格納する。レコード「B」と「A」の関連性は、BとAが続けてアクセスされた(同じセッション内で)回数1×重要度10=10と算出される。
次に、クライアントYから、リクエストRq3:Get(C,5,Y)が発行される。このとき、重要度には、「5」が設定されているものとする。リクエストRq3は、リクエストRq2に続けてアクセスされているが、リクエストRq2とは違うセッションである。この場合、入出力管理部22は、Rq3で指定されたレコード「C」とRq2で指定されたレコード「B」とは関連していないと判定する。この場合、入出力管理部22は、図11(C)に示すように、関連性保管テーブル34を更新しない。
次に、クライアントYから、リクエストRq4:Get(D,5,Y)が発行される。このとき、重要度には、「5」が設定されているものとする。リクエストRq4は、リクエストRq3と同じセッションで、かつ続けてアクセスされている。この場合、入出力管理部22は、Rq4で指定されたレコード「D」とRq3で指定されたレコード「C」とは関連していると判定する。この場合、入出力管理部22は、図11(D)に示すように、関連性保管テーブル34を更新する。
具体的には、今回のリクエストRq4で指定されたレコードのキーが「D」であり、前回のリクエストで指定されたレコードが「C」であるので、入出力管理部22は、関連性保管テーブル34のキー「D」に対応する「関連性」に「C」を格納する。また、入出力管理部22は、レコード「D」と「C」の関連性を算出し、関連性保管テーブル34に格納する。レコード「D」と「C」の関連性は、DとCが続けてアクセスされた(同じセッション内で)回数1×重要度5=5と算出される。
次に、クライアントYから、リクエストRq5:Get(E,0,Y)が発行される。このとき、重要度には、「5」が設定されているものとする。リクエストRq5は、リクエストRq4と同じセッションで、かつ続けてアクセスされているが、重要度0のため、入出力管理部22は、Rq5で指定されたレコード「E」は他のどのレコードとも関連していないと判定する。この場合、入出力管理部22は、図11(E)に示すように、関連性保管テーブル34を更新しない。
図12は、本実施形態におけるリクエスト到着に応じて実行されるセグメント管理テーブルの更新処理の全体の流れを示すフローチャートの一例である。本フローチャートは、サーバ11に対してリクエストがなされる度に実行される。
まず、入出力管理部22が、リクエストが指定するレコードをメモリ31又はディスク41から読み出して要求元に送信する(S1)。このとき、リクエストが指定するレコードがメモリ31に存在しない場合、入出力管理部22は、レコード・セグメント対応テーブル33を用いて、リクエストが指定するレコードが属するセグメントの全レコードをディスク41から読み出す。そして、入出力管理部22は、読み出したセグメントの全レコードのうち、リクエストが指定するレコードを要求元に送信する。S1の処理については、図15で詳述する。
次に、入出力管理部22は、今回のリクエストに含まれる前回のリクエストが指定したレコードを参照して関連性保管テーブル34を更新する(S2)。S2の処理は、図10及び図11で説明した処理に相当する。
関連性保管テーブル34が更新されると、解析要否判断部23は、関連性解析部24による関連性解析が必要か否かを判定する(S3)。すなわち、解析要否判断部23は、レコード・セグメント対応テーブル33に基づいて、今回のリクエストが指定するレコード(今回レコードR1)と前回のリクエストが指定したレコード(前回レコードR2)とが異なるセグメントに属するか否かを判断する。今回レコードR1と前回レコードR2とが同じセグメントに属する場合、すなわち、関連性解析が不要と判断された場合(S3で「No」)、制御装置21は本フローチャートの処理を終了する。
今回レコードR1と前回レコードR2とが異なるセグメントに属する場合、すなわち関連性解析が必要と判断された場合(S3で「Yes」)、関連性解析部23は、レコードの関連性を解析する(S4)。関連性解析部23は、例えばグラフ分割の手法を用いて、データ間の関連性を解析する。ここでは、関連性解析部23は、今回レコードR1が属するセグメントに含まれる全レコードと、前回レコードR2が属するセグメントに含まれる全レコードとの間で、2レコードの組み合わせを求め、その2レコード間の関連性の強度を算出する。ここで、レコード間の関連性の強度とは、図10、図11で説明したアクセス回数に重要度を乗じて得られる値である。関連性解析部23は、さらに、例えばセグメントの規則の範囲内で、2つのセグメントのパターンを求める。関連性解析部23は、各パターンについて、2セグメントをまたぐ各レコードの組み合わせの関連性の強度の総和を算出する。関連性解析部23は、その総和に応じて、セグメントのパターンを決定する。S4の処理については、図13を用いて詳述する。
次に、セグメント配置部25は、関連性解析部23の解析結果に基づいて、レコードとセグメントの対応付けの変更が必要か否か、すなわち、セグメントの再編成をする必要があるかを判断する(S5)。いずれのレコードの所属先セグメントに変更がない場合、すなわちレコードとセグメントの対応付けの変更が不要と判断された場合(S5で「No」)、制御装置21は本フローチャートの処理を終了する。
レコードの所属先セグメントに変更がある場合、すなわちレコードとセグメントの対応付けの変更が必要と判断した場合(S5で「Yes」)、セグメント配置部25は、次の処理を行う。すなわち、セグメント配置部25は、S5でのセグメントの再構成の結果に基づいて、レコードとセグメントの対応付けを変更する(S6)。
セグメント配置部25は、その変更したレコードとセグメントとの対応関係に基づいて、レコード・セグメント対応テーブル33を更新する(S7)。たとえば、S5でのセグメントの再構成の結果、レコードの所属するセグメントが変更された場合、レコード・セグメント対応テーブル33において、そのレコードの「キー」に対応するセグメント名が更新される。
図13は、関連性解析部23による解析処理(S4)を説明するための図である。図13(A)に示すように、クライアントXより今回受け付けたリクエストが、Get(H,3,X)であり、前回受け付けたリクエストが、Get(G,3,X)であるとする。
レコード・セグメント対応テーブル33に示すように、今回レコードHと前回レコードGとは、異なるセグメントに属するから、関連性解析部23による解析処理が行われる。
レコード・セグメント対応テーブル33のレコード間の関係は、図13(B)のように示される。関連性解析部23は、今回レコードHが属するセグメント#6に含まれる全レコードH,Iと、前回レコードGが属するセグメント#5に含まれる全レコードF,Gとの間で、2レコードの組み合わせを求め、その2レコード間の関連性の強度を算出する。2つのレコード間で、相互に関連している場合には、関連性解析部23は、関連性の強度の和をそのレコード間の関連性の強度とする。例えば、レコードFG間のように、レコードFについてレコードGが関連し、かつレコードGについてレコードFが関連している場合には、レコードFについてレコードGの関連性強度=1とレコードFについてレコードGの関連性強度=3の和4を算出する。
これにより、図13(C)に示すように、2つのセグメント間の、2つのレコードの組み合わせにおける、各レコード間の関連性の強度CFG=4、CFH=0、CFI=0、CGH=3、CGI=0、CHI=1が得られる。ここで関連性がないレコード間の関連性の強度Cは0で示される。
関連性解析部23は、例えばセグメント内の最大レコード数(例えば3個)を満たす範囲内で、2つのセグメントに属する全レコード数を分割する全てのセグメントパターンを設定するとする。図13(B)の例ではレコードの個数が4個(レコードF〜I)であり、1セグメントに収容可能な最大レコード数が3個であるとする。このとき、セグメントパターンは、3:1で分けた場合には4通り((FGH)(I)、(GHI)(F)、(HIF)(G)、(FGI)(H))となる。また、2:2で分けた場合には3通り((FG)(HI)、(FH)(GI)、(FI)(GH)、(GH)(FI)、(GI)(FH)、(HI)(FG))となる。このように、全部で7通りのセグメントパターンが設定される。
次に、関連性解析部23は、図13(D)に示すように、各セグメントパターンを採用した場合に、異なるセグメントに属することになったレコード同士の関連性の強度を全て抽出して合計する。
そして、関連性解析部23は、異なるセグメントに属することになるレコードの組についての関連性の強度の合計が最も小さいセグメントパターンを選択し、新たなセグメントを決定する(S17)。図13(B)の場合には、以下のようになる。
(FGH)(I):CFI+CGI+CHI=1
(GHI)(F):CFG+CFH+CFI=4
(HIF)(G):CFG+CGH+CGI=7
(FGI)(H):CFH+CGH+CHI=3
(FG)(HI):CFH+CFI+CGH+CGI=3
(FH)(GI):CFG+CFI+CGH+CHI=8
(FI)(GH):CFG+CFH+CGI+CHI=5
これより、全セグメントパターンのうち、セグメント(FGH)と、セグメント(I)のセグメントパターンのレコード間の関連性の強度の合計が1となり、最も小さくなる。したがって、関連性解析部23は、このセグメントパターン(FGH)(I)を新たなセグメントとして決定する。
セグメント配置部25は、関連性解析部23による解析結果に応じて、図13(E)に示すように、レコードとセグメントの対応付けを変更する(S6)。さらに、セグメント配置部25は、その変更したレコードとセグメントとの対応関係に基づいて、レコード・セグメント対応テーブル33を更新する。
なお、図13では、強度Cを算出する場合、レコード間の関連性の強度(アクセス回数に重要度を乗じて得られる値)を用いたが、このアクセス回数と重要度とによる重み付けた関連性を用いる方法に限定されない。例えば、一方から他方へのレコード間の関連性を一律に1として、上記と同様に計算してもよい。この場合、CFG=2、CFH=0、CFI=0、CGH=1、CGI=0、CHI=1となる。
図14は、本実施形態におけるセグメントのディスクへの書き戻しフローを示す。入出力管理部22は、レコード処理の度(定期的でもよい)に、キャッシュ領域32上のセグメントの合計のサイズをチェックして、キャッシュ領域32の容量が不足しているか判定する(S11)。キャッシュ領域32の容量が不足した場合とは、例えば、ディスク41から読み出したセグメントをキャッシュ領域32へ格納しようとしたときにキャッシュ領域32の容量が不足した場合や、キャッシュ領域32に閾値を超えてデータが格納されている場合等である。ここでは、後者の場合を例に説明する。入出力管理部22は、キャッシュ領域32上のセグメントの合計のサイズが予め決めた閾値を超えるか否かを判定する。閾値としては、例えば、キャッシュ領域32の容量の90%等が予め所定の記憶領域に設定されている。
合計サイズが予め決めた閾値を超えると判定した場合(S11で「YES」)、入出力管理部22は、書き戻し実行部26にキャッシュ領域32にあるセグメントのディスク41への書き戻しを指示する。
書き戻し実行部26は、キャッシュ領域32上にあるセグメントから、予め決められた数のセグメントを選ぶか、または合計が予め決められたサイズになるよう複数のセグメントを選び出す(S12)。
セグメントの選び方には、ランダム選択方法、LRU方法、LFU方法がある。ランダム選択方法は、例えば、キャッシュ領域32上にある複数のセグメントから1以上のセグメントをランダムに選ぶ方法である。LRU方法は、アクセス順にセグメントをキューイングしておき、最も長くアクセスされていないセグメントから選ぶ方法である。LFU方法は、アクセス頻度順にセグメントをキューイングしておき、最もアクセス頻度の低いセグメントから選ぶ方法である。
なお、選ぶセグメントの数や合計サイズは、どれぐらいのセグメント間で記録場所を調整したいかに依存する。例えば、選ぶセグメントの数を、ディスク41上の領域の数の5倍の数にすることが考えられる。
特性抽出部27は、書き戻し実行部26から指示があると、選択したセグメント全てに対して、以下のようにセグメント毎の指標値を算出し、セグメント管理テーブル35に格納する(S13)。すなわち、特性抽出部27は、レコード・セグメント対応テーブル33及び関連性保管テーブル34を用いて、選択したセグメント単位で、セグメントに含まれる全レコードの、関連性の強度(=アクセス回数×重要度)を合計する。
例えば、図5のレコード・セグメント対応テーブル33及び図6の関連性保管テーブル34の場合、セグメント#1に属するレコードはA,Cであり、レコードAの関連性の強度は3であり、レコードCの関連性の強度は1である。この場合、セグメント#1の指標値は、3+1=4が得られる。
なお、セグメント毎の指標値はセグメントが変更される度に更新してもよいが、書き戻し処理内でまとめて算出してもよい。
優先度算出部28は、S13で算出されたセグメントの指標値の大きさに応じて、選択したセグメントのそれぞれの優先度を決める(S14)。すなわち、優先度算出部28は、セグメントの指標値が大きいほど、より高い優先度に設定する。
記録場所決定部29は、ディスク41上の空き領域を確認する(S15)。すなわち、記録場所決定部29は、空き領域管理テーブル36から、ディスク41上の空き領域の物理位置を特定する。
記録場所決定部29は、ディスク性能保管テーブル37から、その特定した空き領域に対応する物理位置範囲の読み出し性能を取得する。記録場所決定部29は、物理位置範囲の読み出し性能の高い順に、空き領域を順番付けする。
記録場所決定部29は、優先度を付与したセグメントを、優先度の高い順に、より読み出し性能の高い空き領域に割り当てることを決定する(S16)。同一の物理位置範囲に複数のセグメントを割り当てる場合、記録場所決定部29は、より優先度の高いセグメントを、例えば、より物理位置の番号の小さい領域に割り当てる。
記録場所決定部29は、決定した割当内容に基づいて、関係性保管テーブル34、セグメント管理テーブル35及び空き領域管理テーブル36を更新する(S17)。具体的には、記録場所決定部29は、関係性保管テーブル34から、S12で選択したセグメントのエントリを削除する。また、記録場所決定部29は、セグメント管理テーブル35に、セグメントが割り当てられた領域に対応するエントリを追加する。さらに、記録場所決定部29は、空き領域管理テーブル36から、セグメントが割り当てられた空き領域に対応するエントリを削除する。
書き戻し実行部26は、S16にて優先度順に決められた記録場所に、セグメントを書き戻す(S18)。
図15は、本実施形態におけるリクエストが指定するレコードをメモリ31又はディスク41から読み出して要求元に送信するまでの処理(S1)の詳細なフローを示す。図15のフローは、図12のS1のフローの詳細を示す。
入出力管理部22は、クライアント51からリクエストを受信し、そのリクエストで指定されたレコードのキーを取得する(S21)。入出力管理部22は、その取得したキーに基づいて、リクエストで指定されたレコードがキャッシュ領域32にあるか否かを判定する(S22)。指定されたレコードがキャッシュ領域32にある場合(S22でYES)、入出力管理部22は、キャッシュ領域32から読み出したそのレコードを要求元に返す(S29)。
指定されたレコードがキャッシュ領域32にない場合(S22でNO)、入出力管理部22は、レコード・セグメント対応テーブル33から、指定されたレコードの属するセグメントを特定する(S23)。
入出力管理部22は、セグメント管理テーブル35から、特定したセグメントの物理位置を特定する(S24)。入出力管理部22は、ディスク性能保管テーブル37を用いて、特定した物理位置からのセグメントの読み出し方を特定する(S25)。
入出力管理部22は、特定した読み出し方を用いて、ディスク41の、特定した物理位置から、特定したセグメントを読み出す(S26)。例えば、ディスク性能保管テーブル37から特定された読み出し方が「セグメント10個まとめ読み」である場合、入出力管理部22は、特定したセグメントの物理位置から、特定されたセグメントを含めて周辺または連続するセグメント10個をまとめて読み出す。
なお、読み出し方について、領域ごとにまとめ読みするかしないかだけを予め決めておき、上記セグメントの物理位置が実際に特定された場合に、その物理位置からまとめ読みするかしないかを決めるようにしてもよい。
また、まとめ読みの単位は、負荷の大きさ(入出力管理部22が単位時間あたりに受け取るリクエストの数など)に応じて決めても良い。例えば、負荷が大きい時はまとめ読みの単位を大きくし、負荷が小さい時はまとめ読みの単位を小さくするように調整してもよい。
入出力管理部22は、読み出したセグメントをキャッシュ領域32に格納すると共に、そのセグメントに含まれる、指定されたレコードを要求元に返す(S27)。入出力管理部22は、関連性保管テーブル34に、その読み出したセグメントに対応するエントリを追加する(S28)。
図16は、本実施形態における読み出し効率に応じたセグメントの配置及びセグメントの読み出し単位について説明するための図である。ディスク41の外周側ほど、ディクスの読み出し速度が高速で、読み出し性能が高く、読み出し効率の高いセグメントが配置されている。ディスク41の内周側ほど、ディクスの読み出し速度が低速で、読み出し性能が低く、読み出し効率の低いセグメントが配置されている。
外周側に配置されたセグメントについては、複数のセグメントがまとめ読みされるものとする。内周側に配置されたセグメントについては、まとめ読みされないものとする。
例えば、図16では、外周側に配置されたセグメントについては、1回の読み出し処理により4セグメントがまとめて読み出され、キャッシュに保持される。このとき、レコードAへのアクセス時、レコードB,C,その他のレコードも一緒にキャッシュに保持される。レコードA,B,Cは関連性があるので、キャッシュ上にある間に、レコードB,Cもアクセスされやすい。したがって、キャッシュヒット率が高くなる。このように、キャッシュに読み出されたレコードは相互に関連しているのでアクセス頻度も高く、無駄読みになりにくい。
また、内周側に配置されたセグメントについては、1回の読み出し処理により1セグメントが読み出され、キャッシュに保持される。このとき、レコードPへのアクセス時、レコードQ,Rも一緒にキャッシュに保持される。レコードP,Q,Rは関連性がないので、キャッシュ上にある間に、レコードQ,Rもアクセスされる確立は低い。すなわち、レコードQ,Rは、無駄読みされたレコードとなる。ところが、無駄読みされるのはこのレコードQ,Rのみであり、無駄読みされるレコード数を抑えることができる。
本実施形態によれば、データのアクセス履歴に基づいて生成されるセグメントに含まれるレコード間の関連性に応じて、ディスク上でのセグメントの配置を決定し、ディスクに書き戻すことができる。その結果、読み出し効率の高いセグメントはシーケンシャルread性能の高い領域に記録され、読み出し効率の低いセグメントはシーケンシャルread性能の低い領域に記録されることになるので、読出しコストの増加を抑えることができる。
また、ディスクからのセグメントの読み出しの際に、ディスクの記憶領域の読み出し位置のシーケンシャルread性能に応じて、読み出すセグメント数を制御することができる。すなわち、読み出し位置のシーケンシャルread性能が高いほど、読み出すセグメント数をより多くする。一方、読み出し位置のシーケンシャルread性能が低いほど、読み出すセグメント数をより少なくする。これにより、読出しコストの増加を抑えることができる。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 データ配置装置
2 選択部
3 算出部
4 決定部
5 書込部
6 読出部
11 サーバ
21 制御装置
22 入出力管理部
23 解析要否判断部
24 関連性解析部
25 セグメント配置部
26 書き戻し実行部
27 特性抽出部
28 優先度算出部
29 記録場所決定部
31 メモリ
32 キャッシュ領域
33 レコード・セグメント対応テーブル
34 関連性保管テーブル
35 セグメント管理テーブル
36 空き領域管理テーブル
37 ディスク性能保管テーブル
41 ディスク
51 クライアント

Claims (7)

  1. データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、該第1格納装置から1以上のセグメントを選択する選択部と、
    選択された前記セグメントに含まれる前記データ間の前記関連性に基づく評価値を算出する算出部と、
    前記評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における前記格納領域の位置に応じた読み出し性能についての情報とに基づいて、該格納領域における前記選択されたセグメントの配置位置を決定する決定部と、
    を備えることを特徴とするデータ配置装置。
  2. 前記算出部は、前記セグメントに含まれる前記データ間の前記関連性が強いほど、前記評価値を高く算出し、
    前記決定部は、前記評価値と前記読み出し性能情報とに基づいて、前記評価値が高い前記セグメントほど、前記配置位置を、より読み出し性能の高い位置に決定する
    ことを特徴とする請求項1に記載のデータ配置装置。
  3. 前記データ配置装置は、さらに、
    決定された前記配置位置に基づいて、前記選択されたセグメントを前記格納領域に書き込む書込部
    を備えることを特徴とする請求項1または2に記載のデータ配置装置。
  4. 前記データ配置装置は、さらに、
    読み出し要求で指定されたデータを含む前記セグメントの前記配置位置に応じて、前記格納領域から読み出すセグメントの個数を変更し、前記配置位置から連続した格納領域に配置されているセグメントを前記個数分読み出す読出部と、
    を備えることを特徴とする請求項1〜3のうちいずれか1項に記載のデータ配置装置。
  5. 前記関連性は、前記データのアクセス履歴から生成されるデータ間の関連性である
    ことを特徴とする請求項1〜4のうちいずれか1項に記載のデータ配置装置。
  6. コンピュータに、
    データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、該第1格納装置から1以上のセグメントを選択し、
    選択した前記セグメントに含まれる前記データ間の該関連性に基づく評価値を算出し、
    前記評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における前記格納領域の位置に応じた読み出し性能についての情報とに基づいて、該格納領域における前記選択したセグメントの配置位置を決定する、
    処理を実行させることを特徴とするデータ配置プログラム。
  7. コンピュータが、
    データ間の関連性に応じてグループ化されたデータ群である複数のセグメントが格納された第1格納装置の空き容量に応じて、該第1格納装置から1以上のセグメントを選択し、
    選択した前記セグメントに含まれる前記データ間の該関連性に基づく評価値を算出し、
    前記評価値と、格納領域の位置に応じて読み出し性能が異なる第2格納装置における前記格納領域の位置に応じた読み出し性能についての情報とに基づいて、該格納領域における前記選択したセグメントの配置位置を決定する、
    ことを特徴とするデータ配置方法。
JP2015001068A 2015-01-06 2015-01-06 データ配置装置、データ配置プログラム及びデータ配置方法 Pending JP2016126619A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015001068A JP2016126619A (ja) 2015-01-06 2015-01-06 データ配置装置、データ配置プログラム及びデータ配置方法
US14/977,925 US20160196074A1 (en) 2015-01-06 2015-12-22 Data arrangement apparatus, storage medium, and data arrangement method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015001068A JP2016126619A (ja) 2015-01-06 2015-01-06 データ配置装置、データ配置プログラム及びデータ配置方法

Publications (1)

Publication Number Publication Date
JP2016126619A true JP2016126619A (ja) 2016-07-11

Family

ID=56286550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015001068A Pending JP2016126619A (ja) 2015-01-06 2015-01-06 データ配置装置、データ配置プログラム及びデータ配置方法

Country Status (2)

Country Link
US (1) US20160196074A1 (ja)
JP (1) JP2016126619A (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285959B2 (en) * 2010-01-25 2012-10-09 Netapp, Inc. Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking
GB2529670A (en) * 2014-08-28 2016-03-02 Ibm Storage system

Also Published As

Publication number Publication date
US20160196074A1 (en) 2016-07-07

Similar Documents

Publication Publication Date Title
US9128844B2 (en) Enhancing analytics performance using distributed multi-tiering
Li et al. C-miner: Mining block correlations in storage systems.
US6748491B2 (en) Designing a cache using an LRU-LFU array
JP6166616B2 (ja) 情報処理方法、情報処理装置及びプログラム
US10409728B2 (en) File access predication using counter based eviction policies at the file and page level
US10067968B2 (en) Pre-caching of relational database management system based on data retrieval patterns
Li et al. TaP: Table-based Prefetching for Storage Caches.
JP6402647B2 (ja) データ配置プログラム、データ配置装置およびデータ配置方法
Grimsrud et al. Multiple prefetch adaptive disk caching
US10656839B2 (en) Apparatus and method for cache provisioning, configuration for optimal application performance
US10489074B1 (en) Access rate prediction in a hybrid storage device
CN110287152B (zh) 一种数据管理的方法以及相关装置
Teng et al. A low-cost disk solution enabling LSM-tree to achieve high performance for mixed read/write workloads
On et al. FD-buffer: a buffer manager for databases on flash disks
JPH08147218A (ja) キャッシュ制御装置
JP6394231B2 (ja) データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法
JP2017027301A (ja) ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法
Wu et al. A data management method for databases using hybrid storage systems
US7529891B2 (en) Balanced prefetching exploiting structured data
JPH07182220A (ja) 分散ファイルシステムおよびそのファイルキャッシング方法
JP2016126619A (ja) データ配置装置、データ配置プログラム及びデータ配置方法
CN111796757B (zh) 一种固态硬盘缓存区管理方法和装置
WO2016147279A1 (ja) データ管理制御プログラム、データ管理制御装置、及びデータ管理制御方法
JP2023507146A (ja) 頻繁にアクセスされるバケットのセットとあまり頻繁にアクセスされないバケットのセットとを備えたハッシュテーブルを使用するシステム及び方法
US8621156B1 (en) Labeled cache system