JP2013246773A - 計算機システム及びデータ管理方法 - Google Patents

計算機システム及びデータ管理方法 Download PDF

Info

Publication number
JP2013246773A
JP2013246773A JP2012122037A JP2012122037A JP2013246773A JP 2013246773 A JP2013246773 A JP 2013246773A JP 2012122037 A JP2012122037 A JP 2012122037A JP 2012122037 A JP2012122037 A JP 2012122037A JP 2013246773 A JP2013246773 A JP 2013246773A
Authority
JP
Japan
Prior art keywords
data
storage area
element data
potential value
control unit
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
JP2012122037A
Other languages
English (en)
Inventor
Akira Aoki
亮 青木
Hiroya Matsuba
浩也 松葉
Toshiyuki Ukai
敏之 鵜飼
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012122037A priority Critical patent/JP2013246773A/ja
Publication of JP2013246773A publication Critical patent/JP2013246773A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データストアのI/O単位に依存しない静的制御処理と、アクセス頻度に応じた動的制御処理とを組み合わせて、アクセス頻度の変化への柔軟性を持った階層的な記憶領域の制御を実現する。
【解決手段】計算機によって提供される複数の記憶領域を用いて構成されたデータストアを用いてサービスを提供する計算機システムであって、データストアには、サービスに用いられる業務データが格納され、計算機システムは、業務データの配置を管理する制御部を備え、制御部は、サービスの提供中に、業務データを構成する要素データごとのアクセス頻度の変化からパラメータを算出し、各要素データのアクセス頻度の予測を示すポテンシャル値を算出し、ポテンシャル値に基づいて、移動させる第1の要素データを選択し、格納する記憶領域を決定する。
【選択図】図1

Description

本発明は、階層的に記憶領域にデータを格納するデータストアにおけるデータ管理方法に関する。
従来、ストレージシステム、ファイルシステム及びデータベース等、階層的な記憶領域を制御するデータストアが様々なデータ管理に用いられてきた。
データストアでは、性能を向上させるために、データへのアクセス頻度に応じてデータを適切な階層の記憶領域に格納する必要がある。
データへのアクセス頻度を決定するためには、当該データに対する将来のアクセスを全て把握する必要があり、現実的に不可能である。そのため、従来は、過去のアクセス実績に基づいて、データへのアクセス頻度を予測する方法が採用されている。アクセス頻度の予測には大きく分けて二つの情報が用いられる。
一つ目は、アクセスの有無、及び、アクセスから得られるパラメータ(読み出し及び書き込み、シーケンシャルアクセス及びランダムアクセス、データサイズ、時刻等)が記録されたアクセス情報である。以下の説明では、当該アクセス情報を、動的制御情報と記載する。また、動的制御情報を用いた、記憶領域の制御方法を動的制御処理と記載する。
二つ目は、任意のデータと当該データに関するアクセス情報を事前に解析し、解析の結果から把握されるアクセスの特徴情報である。以下の説明では、任意のデータと当該データに関するアクセス情報を業務情報と記載し、また、解析の結果から把握されるアクセスの特徴情報を静的制御情報と記載する。また、静的制御情報を用いた、記憶領域の制御方法を静的制御処理と記載する。
動的制御処理の一つに、LRU(Least Recently Used)を用いた処理がある。LRUを用いて処理では、アクセス情報そのものを用いて、アクセス頻度を予測する。LRUをキャッシュの制御にLRUを適用した場合、キャッシュ領域の空き領域が不足すると、アルゴリズムに従って、キャッシュ済みデータを他の記憶領域に格納する。このとき、LRUでは、データの意味までは考慮されない。
しかし、LRUを用いた処理では、データに対するアクセスパターンがランダムである場合、キャッシュヒット率が特に低下し、不必要なデータの移動が発生する問題がある。
一方、静的制御処理にはキャッシュテーブルを用いた処理がある。キャッシュテーブルを用いて処理は、予め業務情報を解析し、解析結果から予測される使用頻度が高いテーブルをアクセス性能の高い記憶領域に格納する。
静的制御処理は、動的制御処理に比べ、アクセスパターンによってキャッシュヒット率が左右されにくく、過去のアクセス実績がないデータについても制御することができる。
しかし、静的制御処理が動的制御処理より優れているわけではない。静的制御処理では、予め業務情報を解析する必要があるため、アクセス特性の変化に対応させるためには時間がかかる。一方、動的制御処理は、アクセス情報そのものを用いるため、即座にアクセス特性の変化に対応できる。
また、階層な記憶領域の制御では、データを各記憶領域へ格納するときのI/Oサイズ(以下、制御I/O単位と称する)によって、ヒット率及びスループットが変化し、性能に大きく影響する。
動的制御処理では、データの意味が考慮されないため、制御I/O単位の制限がなく、任意のI/Oサイズで制御処理が可能である。
一方、静的制御処理では、業務情報の解析精度を上げるため、業務に即したデータ単位を用意し、又は、データの意味及びアクセスの特徴が現れるまで、解析する個々のデータサイズを大きくする必要がある。また、解析結果から得られる静的制御情報は、解析時のデータ単位に対して、意味を持つ特徴データであるため、少なくとも、制御I/O単位は解析時に用いた解析単位以上の大きさを用いる必要がある。そのため、結果的に静的制御処理における、制御I/O単位は、動的制御処理の制御I/O単位に比べ大きくなる傾向がある。
したがって、静的制御処理より、動的制御処理の方がキャッシュの空間効率がよいという利点が存在する。
前述のように、いずれの制御方法にも利点及び欠点があるため、データの特性に合わせて二つの制御方法を適宜変更する制御方法が考えられている(例えば、特許文献1参照)。
特許文献1では、「アクセス頻度の低下したボリュームを高速な記憶装置から低速な記憶領域に移動する」等のポリシを持つストレージシステムと、「管理者が定期的にチェックするサーバプログラムのログは、常に高速ディスクに記憶する」等のポリシを持つストレージシステムを使用するホスト装置が記載されている。前者のポリシは、アクセス情報に依存するため、動的制御処理に対応し、後者のポリシは、アクセス情報に依存しないため、静的制御処理に対応する。
各装置が各々のポリシに基づいて、独自に制御処理を実行すると、ポリシが衝突してしまうが、特許文献1では、特ストレージシステムがホスト装置のポリシを理解することによって、前述の問題を解決している。具体的には、ホスト装置が移動を希望しないボリュームに対して、移動禁止を指示するポリシがストレージシステム側に設定される。
特許文献1では、前述したような方法を用いることによって、データの特性に合わせて動的制御処理と静的制御処理とを適宜変更している。
特開2006−252247号公報
特許文献1に記載の技術では、データの特性に合わせて、動的制御処理及び静的制御処理を用いることによって、二つの制御処理の利点を有効に活用し、実効性能を高めている。
しかし、特許文献1に記載の技術では、データの特性が変化した場合に、性能が低下する。
例えば、特許文献1では、静的制御処理において、「管理者が定期的にチェックするサーバプログラムのログは、常に高速ディスクに記憶する」という業務に即したポリシを挙げたが、高速ディスクには、サーバプログラムのログだけでなく、サーバプログラムのログを含むボリューム全てが格納される。これは、対象となるストレージシステムがボリュームを管理するデータストアであるためである。
制御I/O単位がデータストアで扱われるデータ単位に限定されている場合、前述したように、上位階層の記憶領域の空間効率、及びヒット率を低下する。さらに、静的制御処理において、サーバプログラムのログを定期的にチェックする必要がなくなった場合、設定されたポリシを変更するまで、データへのアクセス変化に対応できない。動的制御処理ではアクセスの変化に対応できるが、ランダムアクセスに対しては、ヒット率が低下し、不必要なデータ移動が発生する。
本発明は、データストアにおいて扱われるデータの単位に依存しない静的制御情報を付加し、かつ、静的制御処理及び動的制御処理を組み合わせた、階層な記憶領域の制御を実現することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つ以上の計算機を含み、前記計算機によって提供される複数の記憶領域から構成されたデータストアを用いてサービスを提供する計算機システムであって、前記計算機は、プロセッサ、及び前記プロセッサに接続される複数の記憶媒体を有し、前記データストアには、サービスに用いられる業務データが格納され、前記計算機システムは、前記業務データごとのアクセス特性に基づいて決定され、前記データストアを構成する記憶領域の中から、初期の前記業務データの配置先を決定するための第1のポテンシャルを格納する静的制御情報と、前記業務データを構成する要素データごとに、前記要素データへのアクセス頻度に対応して変化するパラメータを格納する動的制御情報と、前記業務データを格納する前記記憶領域を決定するための階層設定情報と、を保持し、前記データストアを構成する前記記憶領域に格納された、前記業務データを管理するデータストア管理部と、前記静的制御情報及び前記動的制御情報を用いて、前記データストアを構成する記憶領域に格納される前記業務データの配置を管理する制御部と、を備え、前記制御部は、前記サービスの提供中に、前記データストア管理部から前記業務データへのアクセスを検知した場合、当該業務データを構成する前記要素データごとのアクセス頻度の変化から前記パラメータを算出し、前記各要素データの第1のポテンシャル値及び前記算出されたパラメータを用いて、前記各要素データのアクセス頻度の予測を示す第2のポテンシャル値を算出し、前記第2のポテンシャル値に基づいて、移動させる第1の要素データを選択し、前記階層設定情報、及び、前記第1の要素データの前記第2のポテンシャル値に基づいて、前記第1の要素データを格納する前記記憶領域を決定することを特徴とする。
本発明によれば、業務データに対して、業務データの解析結果から決定された第1のポテンシャルを付加することができため、ランダムアクセスに強く、空間効率及びヒット率を上昇させることができる。さらに、アクセス頻度に基づいた第2のポテンシャル値を用いて要素データの格納位置を変更することによって、アクセス変化に対応したデータの管理が可能となる。
本発明の第1の実施例における計算機システムの構成例を示すブロック図である。 本発明の第1の実施例におけるユーザアプリケーションデータ、論理データ及びブロックデータの対応関係を示す説明図である。 本発明の第1の実施例における帳簿リストテーブルの一例を示す説明図である。 本発明の第1の実施例における口座テーブルの一例を示す説明図である。 本発明の第1の実施例におけるL2記憶装置におけるデータの構成例を示す説明図である。 本発明の第1の実施例における静的制御情報の一例を示す説明図である。 本発明の第1の実施例における動的制御情報の一例を示す説明図である。 本発明の第1の実施例におけるブロックデータ管理情報の一例を示す説明図である。 本発明の第1の実施例における関数情報に格納される関数の一例を示す説明図である。 本発明の第1の実施例における階層設定情報の一例を示す説明図である。 本発明の第1の実施例における階層記憶領域の制御処理の概要を示す説明図である。 本発明の第1の実施例における静的制御処理における構成例を示す説明図である。 本発明の第1の実施例における定義情報の構成例を示す説明図である。 本発明の第1の実施例における静的制御処理の詳細を説明するフローチャートである。 本発明の第1の実施例におけるブロックデータの検索処理の詳細を説明するフローチャートである。 本発明の第1の実施例における動的制御処理における構成例を示す説明図である。 本発明の第1の実施例における検索リストの一例を示す説明図である。 本発明の第1の実施例における格納リストの一例を示す説明図である。 本発明の第1の実施例におけるデータの読出処理の詳細を説明するフローチャートである。 本発明の第1の実施例におけるデータの読出処理の詳細を説明するフローチャートである。 本発明の第1の実施例におけるデータの書込処理の詳細を説明するフローチャートである。 本発明の第1の実施例におけるデータの書込処理の詳細を説明するフローチャートである。 本発明の第1の実施例における温度及び動的ポテンシャル値の更新処理の詳細を説明するフローチャートである。 本発明の第1の実施例における検索リストの更新処理の詳細を説明するフローチャートである。 本発明の第1の実施例における書戻処理の詳細を説明するフローチャートである。 本発明の第1の実施例における一時領域における書戻処理の詳細を説明するフローチャートである。 本発明の第2の実施例における計算機システムの構成例を示すブロック図である。
[第1の実施例]
図1は、本発明の第1の実施例における計算機システムの構成例を示すブロック図である。
第1の実施例の階層記憶管理システムは、計算機100から構成される。図1では、計算機100は1台であるが、2台以上あってよい。この場合、各計算機100は、直接接続してもよいし、また、LAN又はWAN等のネットワークを介して接続してもよい。
計算機100は、データストアを構成し、また、データストアを管理する。なお、本実施例では、データストアとしてリレーショナルデータベースが用いられる。
計算機100は、プロセッサ101、メモリ102、L1記憶装置103及びL2記憶装置104を備える。
プロセッサ101は、メモリ102に格納されるプログラムを実行する。プロセッサ101がメモリ102に格納されるプログラムを実行することによって、後述する計算機100の機能が実現される。以下の説明では、プログラムを主体に処理を記載する場合には、プロセッサ101によってプログラムが実行されていることを示すものとする。
メモリ102は、プロセッサ101が実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。メモリ102は、例えば、DRAMのような半導体メモリが考えられる。また、メモリ102は、L1記憶装置103及びL2記憶装置104より高速にアクセスすることができる。
本実施例のメモリ102は、ユーザアプリケーションプログラム110、ユーザアプリケーションデータ120、データベース管理プログラム130、データベース管理情報140、定義情報150、静的制御情報160、動的制御情報170を格納する。また、メモリ102は、データベース(図示省略)を構成する記憶領域であるL0記憶領域180を含む。
ユーザアプリケーションプログラム110は、データベース管理プログラム130によって管理されるデータベースを用いて、任意のサービスを提供するプログラムである。
ユーザアプリケーションデータ120は、ユーザアプリケーションプログラム110が使用するデータであり、ユーザアプリケーションプログラム110に依存したデータ構造を持つデータである。
図2において後述するように、ユーザアプリケーションデータ120は、データストアに格納される複数の論理データから構成される。ここで、論理データとは、データストアとユーザアプリケーションプログラム110との間で入出力されるデータであり、本実施例では、テーブルに対応する。なお、データストアが、ファイルシステムの場合には、ファイルが論理データに対応する。
データベース管理プログラム130は、データベース管理情報140を用いて、複数の記憶領域を組み合わせた階層的な記憶領域(以下、階層記憶領域と記載する)内に格納されるデータを管理し、SQLを使用可能なリレーショナルデータベース機能を提供する。
本実施例おいて、階層記憶領域は、L0記憶領域180、L1記憶領域181及びL2記憶領域182から構成される。なお、L0記憶領域180、L1記憶領域181及びL2記憶領域182については後述する。
階層記憶領域内に格納される論理データは、所定の固定長のデータから構成される。本実施例では、階層記憶領域内のデータは、ブロック単位のデータから構成されるものとする。このとき、データベース管理プログラム130は、階層記憶領域に対して、ブロック単位でI/O制御を行う。一般的なリレーショナルデータベースのブロックサイズは2KB〜64KBであるが、本発明はブロックサイズに限定されない。以下の説明では、ブロック単位のデータをブロックデータとも記載する。
前述したように、ユーザアプリケーションデータ120は一つ以上の論理データから構成され、また、論理データは一つ以上のブロックデータから構成される。したがって、ユーザアプリケーションデータ120は、一つ以上のブロックデータから構成される。
本実施例のデータベース管理プログラム130は、データベース管理部131、ブロック取得部132、静的制御部133及び動的制御部134を含む。
データベース管理部131は、データベースの管理、データベースに対するSQLの処理、及び階層記憶領域へのI/O制御を行う。
ブロック取得部132は、指定された条件に一致するブロックデータを階層記憶領域から取得する。ブロック取得部132が実行する処理の詳細については後述する。
静的制御部133は、静的制御情報160を用いて、階層記憶領域に対して、静的制御処理を実行する。静的制御部133が実行する処理の詳細については後述する。
動的制御部134は、動的制御情報170を用いて、階層記憶領域に対して、動的処理を実行する。動的制御部134が実行する処理の詳細については後述する。
データベース管理情報140は、データベース管理プログラム130が実行する処理に必要な情報を格納する。また、データベース管理情報140は、データベースの機能を実現するために必要な情報も含む。
テーブルデータ141は、リレーショナルデータベースにおけるテーブルに関する情報を格納する。
データベース管理情報140、テーブルデータ141及びL0記憶領域180の詳細については、図2を用いて後述する。
定義情報150は、階層記憶領域から、任意の論理データに対応するブロックデータを取得する方法に関する情報を格納する。定義情報150の詳細については、図12を用いて後述する。
静的制御情報160は、静的制御処理に関する情報を格納する。静的制御情報160の詳細については、図5を用いて後述する。
動的制御情報170は、動的制御処理に関する情報を格納する。動的制御情報170の詳細については、図6を用いて後述する。
L1記憶装置103及びL2記憶装置104は、データベースを構成する記憶領域を提供する記憶装置である。L1記憶装置103は、データベースを構成する記憶領域であるL1記憶領域181を含み、L2記憶装置104は、データベースを構成する記憶領域であるL2記憶領域182を含む。
L1記憶装置103及びL2記憶装置104は、例えば、HDD(Hard Disk Drive)及びSDD(Solid State Drive)などが考えられる。
本実施例では、前述したように、L0記憶領域180、L1記憶領域181及びL2記憶領域182から階層記憶領域が構成される。データベース管理プログラム130は、階層記憶領域に対してデータを書き出し、また、データを読み出す。
L0記憶領域180は、データベース管理部131及びブロック取得部132が読み出したブロックデータを一時的にキャッシュする。L1記憶領域181及びL2記憶領域182は、それぞれ、データベースのデータを格納する。
L0記憶領域180は、階層記憶領域のうち最上層の記憶領域である。L1記憶領域181は、L0記憶領域180の下位、かつ、L2記憶領域182の上位に位置する記憶領域である。また、L2記憶領域182は、階層記憶領域のうち最下層の記憶領域である。
なお、前述した階層記憶領域を構成する記憶領域の組合せを一例であって、本発明は階層記憶領域の構成に限定されない。
本実施例では、L0記憶領域を提供するメモリ102に揮発性のDRAM、L1記憶領域181を提供するL1記憶装置103に不揮発性のSSD、L2記憶領域182を提供するL2記憶装置104に不揮発性のHDDを用いるものとする。
なお、前述の各記憶領域の組合せは一例であって、上位の階層の記憶領域が高速かつ小容量、下位の階層の記憶領域が低速かつ大容量となる構成であれば、前述した構成でなくてもよい。例えば、L2記憶領域182を提供するL2記憶装置104には、ネットワークを介して接続され、HDD等の記憶装置を複数備えるストレージシステムを用いてもよい。
さらに、階層記憶領域を構成する各記憶領域は、単一の記憶領域から構成される必要はなく、例えば、複数のNAS装置を組み合わせた複数の記憶領域を用いてもよい。
また、階層記憶領域の設置場所は、図1に示す例に限定されない。例えば、異なる計算機が備えるHDDを用いてもよい。
なお、メモリ102に格納されるプログラム及び情報は、メモリ102上に格納される必要はなく、L1記憶装置103、L2記憶装置104、又は図示しない外部記憶装置等に格納されてもよい。この場合、プロセッサ101が、必要に応じて、L1記憶装置103、L2記憶装置104、又は図示しない外部記憶装置等からメモリ102に、プログラム又はデータを読み出す。なお、プロセッサ101は、データを読み出す場合、データの一部又は全部を読み出すことができる。
なお、ユーザアプリケーションプログラム110及びデータベース管理プログラム130は、プログラムによって実現しているが本発明はこれに限定されない。例えば、専用のハードウェアを用いてユーザアプリケーションプログラム110及びデータベース管理プログラム130が備える機能を実現してもよい。
また、静的制御部133及び動的制御部134が有する機能をまとめて、一つの制御部としてもよい。
前述したユーザアプリケーションプログラム110及びデータベース管理プログラム130は、図示しないオペレーティングシステム(OS)の一部、又は、図示しないユーザアプリケーションプログラムによって使用される入出力ライブラリとして提供されてもよい。
なお、図1の計算機100は、物理的な計算機である必要はなく、仮想計算機であってもよい。この場合、プロセッサ101、メモリ102、L1記憶装置103、及びL2記憶装置104等の計算機リソースは、仮想化プログラム(図示省略)等によって仮想的な計算機リソースとして仮想計算機に割り当てられる。
なお、計算機100が、ユーザアプリケーションプログラム110及びユーザアプリケーションデータ120を備えているが、本発明は前述した構成に限定されない。例えば、ネットワークを介して接続されたクライアント計算機が、ユーザアプリケーションプログラム110及びユーザアプリケーションデータ120を備えていてもよい。なお、計算機100とクライアント計算機とを接続するネットワークの種別に限定されない。
なお、階層記憶領域は、L0記憶領域180、L1記憶領域181、L2記憶領域182から構成されているが、本発明は、階層記憶領域を構成する記憶領域の数に限定されない。
図2は、本発明の第1の実施例におけるユーザアプリケーションデータ120、論理データ及びブロックデータの対応関係を示す説明図である。
図2では、ユーザアプリケーションプログラム110が金融関係のデータを扱う口座管理プログラムである場合について説明する。
ユーザアプリケーションプログラム110は、口座を管理するために、口座データをデータベースから読み出し、また口座データをデーベースに書き込む。このとき、データベース管理プログラム130は、ユーザアプリケーションプログラム110からの読出要求又は書込要求に対する処理を実行する。
図2に示す例では、ユーザアプリケーションプログラム110が、口座A及び口座Bに関する処理の実行状況を示しており、ユーザアプリケーションデータ120は、口座Aデータ200−1及び口座Bデータ200−2を含む。
口座Aデータ200−1及び口座Bデータ200−2は、複数のテーブル(論理データ)に含まれるデータから構成される。各テーブルは、データベース管理情報140のテーブルデータ141に格納される。
図2に示す例では、テーブルデータ141には、元帳A1テーブル211、帳簿リストテーブル212、口座テーブル213、元帳B1テーブル214及び元帳B2テーブル215が格納される。
元帳A1テーブル211は、口座Aデータ200−1の仕訳帳情報を格納する。元帳B1テーブル214は、口座Bデータ200−2の仕訳帳情報を格納する。元帳B2テーブル215は、口座Bデータ200−2の普通預金情報を格納する。また、帳簿リストテーブル212は、複数の帳簿の管理情報を格納する。口座テーブル213は、複数の口座の管理情報を格納する。
ここで、帳簿リストテーブル212及び口座テーブル213の一例を説明する。
図3Aは、本発明の第1の実施例における帳簿リストテーブル212の一例を示す説明図である。図3Bは、本発明の第1の実施例における口座テーブル213の一例を示す説明図である。
帳簿リストテーブル212は、帳簿リストテーブル212は、口座ID301、元帳種類302及び元帳番号303を含む。口座ID301は、口座を一意に識別するための識別子である。元帳種類302は、帳簿の種類を示す情報である。元帳番号303は、帳簿の種類ごとに帳簿を一意に識別するための識別子である。
口座テーブル213は、口座ID311、顧客番号312及び暗証番号313を含む。口座ID311は、口座ID301と同一のものである。顧客番号312は、口座の所有者である顧客を一意に識別するための識別子である。暗証番号313は、口座に対して設定された暗証番号である。
図2の説明に戻る。
図2が示す例では、口座Aデータ200−1は、元帳A1テーブル211、帳簿リストテーブル212及び口座テーブル213に含まれるデータから構成され、また、口座Bデータ20−2は、帳簿リストテーブル212、口座テーブル213、元帳B1テーブル214及び元帳B2テーブル215から構成される。
各テーブルは、ユーザアプリケーションプログラム110又はOS等が認識可能な論理的なデータ構造のデータであり、複数のブロックデータから構成される。したがって、L0記憶領域180には、各テーブルを構成するブロックデータが格納される。
図2の示す例では、口座Aデータ200−1を構成する、元帳A1テーブル211のデータにはブロックデータ1(251)が対応し、帳簿リストテーブル212のデータにはブロックデータ2−1(252−1)及びブロックデータ2−2(252−2)が対応し、口座テーブル213のデータにはブロックデータ3(253)が対応する。また、口座Bデータ200−2を構成する、元帳B1テーブル214のデータにはブロックデータ4(254)が対応し、元帳B2テーブル215のデータにはブロックデータ5(255)が対応し、帳簿リストテーブル212のデータにはブロックデータ2−1(252−1)及びブロックデータ2−2(252−2)が対応し、口座テーブル213のデータにはブロックデータ3(253)が対応する。
データベース管理プログラム130は、ユーザアプリケーションプログラム110から論理データの読出要求を受け付けると、当該論理データ(テーブル)を読み出す。また、データベース管理プログラム130は、ユーザアプリケーションプログラム110から論理データの書込要求を受け付けると、当該論理データ(テーブル)に更新内容を書き込む。
本実施例では、L2記憶領域182には、サービスの提供に用いられる全てのテーブルを格納されているものとし、また、L1記憶領域181には、アクセス頻度の高いテーブルが格納されているものとする。この場合、データベース管理プログラム130が、L1記憶領域181又はL2記憶領域182から必要なテーブルを読み出し、L0記憶領域180に一時的に格納(キャッシュ)する。
また、データベース管理プログラム130は、所定の条件が満たされた場合、L1記憶領域181又はL2記憶領域182に、L0記憶領域180にキャッシュされたテーブルを格納する。
図4は、本発明の第1の実施例におけるL2記憶装置104におけるデータの構成例を示す説明図である。
データベース管理プログラム130は、論理空間401に格納されたテーブルを用いてサービスを提供する。L2記憶領域182には、各テーブルを構成するブロックデータが格納される。
図4の示す例では、論理空間401には、元帳A1テーブル211、帳簿リストテーブル212、口座テーブル213、元帳B1テーブル214及び元帳B2テーブル215が格納され、L2記憶領域182には、各テーブルを構成するブロックデータ1(251)、ブロックデータ2−1(252−1)、ブロックデータ2−2(252−2)、ブロックデータ3(253)、ブロックデータ4(254)及びブロックデータ5(255)が格納される。
図5は、本発明の第1の実施例における静的制御情報160の一例を示す説明図である。
図5では、静的制御情報160がファイル形式の情報である場合について説明する。
静的制御情報160は、ユーザアプリケーションデータ120に対するアクセスの特徴を示す情報を格納する。本実施例では、アクセスの特徴を示す情報として、アクセス頻度を表すポテンシャル値を用いる。静的制御情報160に設定されるポテンシャル値を静的ポテンシャル値とも記載する。
静的制御情報160は、複数のフィールドから構成される複数のレコードを含むファイルである。静的制御情報160に含まれるレコードは、口座ID501及び静的ポテンシャル値502から構成される。
口座ID501は、口座データを一意に識別するための識別子である。
静的ポテンシャル値502は、口座ID501に対応する口座データに設定された静的ポテンシャル値である。静的ポテンシャル値502は、本実施例における特徴情報であり、当該口座データに対するアクセス頻度が数値化された値である。
本実施例では、静的ポテンシャル値502には、最大値「1.0」から最小値「0」までの値が設定される。また、静的ポテンシャル値が高い場合、アクセスの頻度が高いデータであることを表し、また、ポテンシャル値が低い場合、アクセスの頻度が低いデータであることを表す。
静的ポテンシャル値は、予め設定された値である。具体的には、ユーザアプリケーションデータ120に関する業務情報が解析され、当該解析の結果に基づいて算出される。例えば、新たにレコードが追加される場合には、「0」が設定される。なお、業務情報には、サービスにおけるユーザアプリケーションデータ120の使用方法等が含まれる。
静的制御部133は、静的制御情報160のレコードを処理単位としてI/O処理を実行し、ファイルに対してレコードを1件ずつ入出力することによって処理を実行する。例えば、サービスの実行中に新しく口座が作られる場合、静的制御部133は、静的制御情報160に新たなレコードが追加し、当該レコードの静的ポテンシャル値502に「0」を設定する。また、口座が解約された場合、静的制御部133は、対応するレコードを削除する。
図5では、口座データと静的ポテンシャル値とが対応づけられたファイルを一例として示したが、本発明はこれに限定されず、静的制御情報160には、ユーザアプリケーションデータ120と静的ポテンシャル値とが対応づけられた形式の情報が含まれればよい。また、静的制御情報160には、ユーザアプリケーションデータ120の種別ごとに異なるファイルが含まれてよい。
なお、静的制御情報160の設定方法としては、予め計算機100に設定する方法、GUIを用いて入力する方法、データベースに組み込まれたマイニングによって自動敵に設定する方法等が考えられる。
図6は、本発明の第1の実施例における動的制御情報170の一例を示す説明図である。
動的制御情報170は、動的制御部134が動的制御処理を実行する場合に用いる各種情報を格納する。具体的には、動的制御情報170は、ブロックデータ管理情報600、関数情報610、階層設定情報620、検索リスト630及び階層制御情報640を含む。
ブロックデータ管理情報600は、ブロックデータにおける各種情報を格納する。ブロックデータ管理情報600の詳細については、図7を用いて後述する。
関数情報610は、ブロックデータに対するアクセスに依存したパラメータ(温度)の変化値を算出する関数の情報を格納する。関数情報610の詳細については、図8を用いて後述する。
階層設定情報620は、各階層記憶領域に設定される動的ポテンシャル値の範囲を示す情報を格納する。
検索リスト630は、L0記憶領域180から、下位の階層の記憶領域に移動させるブロックデータを検索するための情報を格納する。検索リスト630の詳細については、図16を用いて後述する。
階層制御情報640は、L0記憶領域180以外の階層の記憶領域に対する制御処理の実行に必要な情報を格納する。階層制御情報640の詳細については、図6を用いて後述する。
なお、本発明は、後述する動的制御処理を実現できる情報であれば、動的制御情報170に格納される情報及び情報の形式に限定されない。
図7は、本発明の第1の実施例におけるブロックデータ管理情報600の一例を示す説明図である。
図7では、L0記憶領域180に格納されるブロックデータを例に説明する。
ブロックデータ管理情報600は、ブロックデータの管理に必要な各種フィールドから構成されるレコードを複数含む。具体的には、ブロックデータ管理情報600に含まれるレコードは、ブロックデータID701、静的ポテンシャル値702、オフセット703、温度704及びタイムスタンプ705から構成される。
ブロックデータID701は、ブロックデータを一意に識別するための識別子を格納する。
静的ポテンシャル値702は、ブロックデータに設定された静的ポテンシャル値を格納する。静的ポテンシャル値702は、静的ポテンシャル値502と同一のものである。
オフセット703は、静的ポテンシャル値のオフセットを格納する。ここで、静的ポテンシャル値のオフセットとは、静的ポテンシャル値の変動幅を表す値である。本実施例では、ブロックデータに対するアクセス頻度に応じて、静的ポテンシャル値がオフセット703の範囲内で変化する。
温度704は、サービス実行時における、ブロックデータへのアクセス頻度を示すパラメータである温度を格納する。
タイムスタンプ705は、ブロックデータにアクセスされた時刻を示すタイムスタンプを格納する。
本実施例では、ブロックデータは、実際のデータのほかに、ブロックID、静的ポテンシャル値、ポテンシャルオフセット、温度及びタイムスタンプを含むものとする。
動的制御部134が、所定の記憶領域からブロックデータを読み出す場合、ブロックデータから各種情報を取得することによってブロックデータ管理情報600を生成する。また、動的制御部134は、所定の記憶領域にブロックデータの書き込む時に、当該ブロックにブロックデータ管理情報600の各フィールドの値を格納する。
図8は、本発明の第1の実施例における関数情報610に格納される関数の一例を示す説明図である。
図8に示す例では、任意のブロックデータにおいて、当該ブロックデータの状態が変化した経過時間を変数として温度を算出するための関数T(t)を表す。ここで、tは経過時間を表す。
本実施例では、関数として、温度上昇関数811及び温度下降関数812が用いられる。温度上昇関数811は温度の上昇時に用いる関数であり、温度下降関数812は温度の下降時に用いる関数である。
なお、領域813において、温度上昇関数811及び温度下降関数812は、点(250,0)で点対称な関数である。また、温度下降関数812は、経過時間が500ms以上の場合には一定値となる。
図9は、本発明の第1の実施例における階層設定情報620の一例を示す説明図である。
階層設定情報620は、階層記憶領域を構成する記憶領域のうち、ブロックデータを格納する記憶領域を決定するため必要な各種フィールドから構成されるレコードを複数含む。具体的には、階層設定情報620に含まれるレコードは、階層ID901及び閾値902から構成される。
階層ID901は、階層記憶領域を構成する記憶領域を一意に識別するための識別子を格納する。本実施例では、記憶装置の識別子が格納される。具体的には、L1記憶領域181を提供するL1記憶装置103の識別子又はL2記憶領域182を提供するL2記憶装置104の識別子が格納される。
閾値902は、動的ポテンシャル値の範囲を格納する。図9に示す例では、動的ポテンシャル値の範囲が1.0以下かつ0.4以上の場合にはL1記憶領域181にブロックデータを格納し、動的ポテンシャル値の範囲が0.4未満かつ0.0以上の場合にはL2記憶領域182にブロックデータが格納されることを表す。
(動的静的共通の階層記憶制御について)
次に本実施例における処理の概要を説明する。
本実施例では、動的ポテンシャル値(Pdynamic)は、下式(1)を用いて算出される。
ここで、t1及びt2は、タイムスタンプを表す。ただし、t1はt2より大きい値であるものとする。また、Tblockは、ブロックデータを格納する領域の温度を表し、Tmaxは温度の最大値を表す。また、Poffsetはオフセット定数を表し、Pstaticは静的ポテンシャル値を表す。
式(1)に示すように、オフセット定数に温度変化に依存する定数を乗算した値が、オフセット703に対応する。また、Tblockは、温度704に対応する。
なお、動的ポテンシャル値を算出するための式(1)は一例であって、本発明は動的ポテンシャル値を算出する数式に限定されない。
図10は、本発明の第1の実施例における階層記憶領域の制御処理の概要を示す説明図である。
本実施例では、式(1)からわかるように、アクセス頻度が高い場合、ブロックデータの動的ポテンシャル値が高くなり、また、アクセス頻度が低い場合、ブロックデータの動的ポテンシャル値が低くなる。
したがって、階層記憶領域の制御処理では、動的ポテンシャル値の範囲をそのまま階層記憶領域を構成する各記憶領域にマップする方法を採用する。具体的には、L1記憶領域181及びL2記憶領域182に対し、図9で示した閾値902に示された動的ポテンシャル値の範囲を、図10に示すようにマップする。
また、本実施例では、階層記憶領域の制御処理の性能を上げるため、データベースを用いたサービスの開始前に、階層記憶領域内のデータを最適に配置する。
具体的には、静的制御部133が、事前にユーザアプリケーションデータ120を解析することによって算出された静的ポテンシャル値を用いて、初期のアプリケーションデータ120(ブロックデータ)の配置を行う。したがって、初期状態では、ブロックデータの動的ポテンシャルは、静的ポテンシャル値と同一となる。データベースを用いたサービスの開始後、動的制御部134が、アクセス変化に応じてL0記憶領域からブロックデータを書き戻す場合、動的ポテンシャル値に基づいて、ブロックデータの配置を変更する。
図10に示す例では、静的ポテンシャル値1030が設定されたブロックデータ1000を示す。初期配置では、静的ポテンシャル値1030がL2記憶領域に設定された閾値の範囲内に含まれるため、ブロックデータ1000は、L2記憶領域182に配置される。サービスの開始後、ブロックデータ1000の動的ポテンシャルは、サービスの実行に伴うアクセス頻度の変化に応じて、ポテンシャルオフセット1020分だけ変化する。
データベース管理部131は、ユーザアプリケーションプログラム110からの処理要求にしたがって、L1記憶領域181又はL2記憶領域182から所定のブロックデータを読み出して、L0記憶領域180に格納(キャッシュ)する。
例えば、ブロックデータ1000へのアクセス頻度が高くなることによって、ブロックデータ1000の動的ポテンシャル値は、最大動的ポテンシャル値1031まで変化する。一方、ブロックデータ1000へのアクセス頻度が低くなることによって、ブロックデータ1000の動的ポテンシャル値は、最小動的ポテンシャル値1032まで変化する。
図10に示すように、L0記憶領域180からL1記憶領域181又はL2記憶領域182に格納する場合に、L1記憶領域181に対応する閾値の範囲内に動的ポテンシャル値があるときには、L0記憶領域180からL1記憶領域181へブロックデータが格納される。また、L2記憶領域182より下位のL3記憶領域が存在する場合、ブロックデータ800の動的ポテンシャルが、L3記憶領域に設定された閾値の範囲内にあるときには、L0記憶領域180からL3記憶領域ブロックデータが格納される。
(静的制御処理)
図11は、本発明の第1の実施例における静的制御処理における構成例を示す説明図である。
静的制御処理では、静的制御部133が、任意のユーザアプリケーションデータ120を構成する論理データに対応するブロックデータに静的ポテンシャル値を割り当てられる。また、静的制御では、静的ポテンシャル値に基づいて、アクセスパターンに依存しないブロック単位で、データの配置が制御される。
図11に示す例では、データベース管理部131が、L1記憶装置103又はL2記憶装置104から、ブロックデータ1(251)、ブロックデータ2−1(252−1)及びブロックデータ3(253)から構成される口座Aデータ200−1を取得し、取得された口座Aデータ200−1をL0記憶領域180に格納する。
静的制御部133は、静的制御情報160を参照し、ユーザアプリケーションデータ120を構成する論理データを特定し、さらに当該論理データを構成するブロックデータに静的ポテンシャル値を設定する。図11に示す例では、ブロックデータ1(251)、ブロックデータ2−1(252−1)及びブロックデータ3(253)には、静的ポテンシャル値として「1.0」が設定され、また、オフセットが「0」に初期化された状態を表す。
静的制御部133は、ブロックデータに対する初期化処理を実行した後、階層設定情報620を参照して、各ブロックデータを適切な記憶領域に格納する。
図11に示す例では、予め、静的制御情報160及び定義情報150が定義されており、データベース管理プログラム130が管理する全てのデータがL1記憶領域181及びL2記憶領域182に格納されているものとする。
図12は、本発明の第1の実施例における定義情報150の構成例を示す説明図である。
定義情報150は、任意の論理データを構成するブロックデータを取得する方法及び手順を示す情報を格納する。静的制御部133は、格納された情報に基づいて、後述する処理を実行することによって、論理データを構成するブロックデータに静的ポテンシャル値を割り当てることが可能になる。
なお、定義情報150に格納される情報は、予め設定されていてもよいし、GUI等を用いてユーザが入力してもよい。
図12に示す例では、複数のSQLクエリ1201〜1206が列挙されたファイルを示す。SQLクエリ1201、1202、1204〜1206は、条件と一致するブロックデータを取得するためのクエリである。SQLクエリ1203は、条件と一致するファイルの情報(論理データ)を取得するためSQLクエリ1203である。
なお、本実施例では、定義情報150にSQLを用いているが、本発明はこれに限定されず、シェルスクリプト及びXML等で記述されたデータモデル定義ファイル、並びに、モデル変換定義ファイル等が格納されてもよい。
本実施例では、静的制御部133が、図12に示すSQLクエリを上から順に実行する。なお、イコール記号の後のクエッションマークには、ユーザによって指定された識別番号が代入される。例えば、SQLクエリ1203が実行されると、リスト1250が出力され、各リストの値がSQLクエリ1204〜1206に代入される。
図13は、本発明の第1の実施例における静的制御処理の詳細を説明するフローチャートである。
静的制御処理は、静的制御部133によって実行される。静的制御部133は、静的制御情報160が設定された場合、静的制御情報160が更新された場合、又は、システムがリセットされる場合等、ブロックデータに静的ポテンシャル値を割り当てるときに、以下で説明する静的制御処理を開始する。
なお、静的制御処理の実行時には、L2記憶領域182に、処理対象のブロックデータが格納されており、また、静的制御情報160、定義情報150及び階層設定情報620が予め設定されていることを前提とする。
静的制御部133は、初期化処理の開始時間のタイムスタンプを取得する(ステップS1301)。静的制御部133は、静的制御処理が終了するまで取得された開始時間のタイムスタンプを保持する。取得された開始時間のタイムスタンプは、ブロックデータに対して初期化処理が実行されたか否かを判定するために用いられる。
次に、静的制御部133は、静的制御情報160を反映したか否かを判定する(ステップS1302)。
具体的には、静的制御情報160に含まれる全てのレコードについて処理が完了したか否かが判定される。
静的制御情報160を反映したと判定された場合、静的制御部133は、処理を終了する。
静的制御情報160を反映していないと判定された場合、静的制御部133は、静的制御情報160から一つのレコードを読み出し、読み出されたレコードに対してブロックデータの検索処理を実行する(ステップS1303)。
ブロックデータの検索処理では、一つのユーザアプリケーションデータ120を構成するブロックデータを検索するための処理である。なお、ブロックデータの検索処理の詳細については、図14を用いて後述する。
次に、静的制御部133は、ブロックデータの検索処理によって検索された全てのブロックデータの初期化処理が完了したか否かを判定する(ステップS1304)。
具体的には、静的制御部133は、検索されたブロックデータの数が設定されたカウンタ変数の値が、0であるか否かを判定する。当該カウンタ変数の値が0である場合、検索された全てのブロックデータの初期化処理が完了したと判定される。
検索された全てのブロックデータの初期化処理が完了したと判定された場合、静的制御部133は、ステップS1302に戻り、同様の処理を実行する。
検索された全てのブロックデータの初期化が完了していないと判定された場合、静的制御部133は、検索されたブロックデータを一つ選択し、選択されたブロックデータのタイムスタンプが、開始時間より古いか否かを判定する(ステップS1305)。ステップS1305の処理は、静的ポテンシャル値の更新処理であるか否かを判定するための処理である。具体的には、以下のような処理が実行される。
静的制御部133は、ブロックデータを一つ選択したとき、カウンタ変数の値を「1」デクリメントする。また、静的制御部133は、ブロックデータ管理情報600を参照して、選択されたブロックデータに対応するレコードのタイムスタンプ705を取得する。
静的制御部133は、取得されたタイムスタンプ705と開始時間とを比較し、取得されたタイムスタンプ705より開始時間が大きいか否かを判定する。取得されたタイムスタンプ705より開始時間が大きい場合、選択されたブロックデータのタイムスタンプが、開始時間より古いと判定される。
なお、選択されたブロックデータのタイムスタンプが開始時間より新しい場合、静的ポテンシャル値の更新処理であると判定できる。
以上が、ステップS1305の処理である。
選択されたブロックデータのタイムスタンプが開始時間より古いと判定された場合、静的制御部133は、選択されたブロックデータのタイムスタンプを更新する(ステップS1306)。
具体的には、静的制御部133は、ブロックデータに対応するレコードのタイムスタンプ705に開始時間を上書きする。
次に、静的制御部133は、選択されたブロックデータに対して、温度及びオフセットを初期化する(ステップS1307)。
具体的には、静的制御部133は、ブロックデータ管理情報600を参照し、選択されたブロックデータの当該ブロックに対応するレコードのオフセット703及び温度704に「0」を設定する。
次に、静的制御部133は、選択されたブロックデータに対して、静的ポテンシャル値を設定する(ステップS1308)。
具体的には、静的制御部133は、ブロックデータ管理情報600を参照し、選択されたブロックデータに対応するレコードの静的ポテンシャル値702に、静的制御情報160の静的ポテンシャル値502を設定する。このとき、選択されたブロックデータによって構成される論理データに対応するレコードの静的ポテンシャル値502が設定される。
次に、静的制御部133は、静的ポテンシャル値に基づいて、階層記憶領域のうち対応する記憶領域にブロックデータを配置し(ステップS1309)、その後ステップS1304に戻り同様の処理を実行する。
具体的には、静的制御部133は、階層設定情報620を参照し、選択されたブロックデータの静的ポテンシャル値が含まれる閾値を特定する。さらに、静的制御部133は、特定された閾値に対応する記憶領域に、選択されたブロックデータを格納する。
ステップS1305において、選択されたブロックデータのタイムスタンプが開始時間より古くないと判定された場合、すなわち、静的ポテンシャル値の更新処理である場合、静的制御部133は、新たに設定される静的ポテンシャル値が、選択されたブロックデータに設定される静的ポテンシャル値以上であるか否かを判定する(ステップS1310)。
具体的には、静的制御部133は、ブロックデータ管理情報600を参照し、新たに設定される静的ポテンシャル値と、選択されたブロックデータに対応するレコードの静的ポテンシャル値702とを比較する。静的制御部133は、当該比較の結果に基づいて、新たに設定される静的ポテンシャル値が、静的ポテンシャル値702以上であるか否かを判定する。
新たに設定される静的ポテンシャル値が、選択されたブロックデータに設定される静的ポテンシャル値以上であると判定された場合、静的制御部133は、ステップS1308へ進む。一方、選択されたブロックデータに設定される静的ポテンシャル値より小さいと判定された場合、静的制御部133は、ステップS1309に進む。
図14は、本発明の第1の実施例におけるブロックデータの検索処理の詳細を説明するフローチャートである。
ブロックデータの検索処理は、静的制御部133、データベース管理部131及びブロック取得部132が連携して処理を実行される。
なお、ブロック検索処理では、ステップS1303において選択されたレコードの口座ID501が指定される。
静的制御部133は、定義情報150を取得する(ステップS1401)。
次に、静的制御部133は、指定された口座ID501及び定義情報150を用いて、ブロックデータの検索用SQLクエリを生成する(ステップS1402)。
具体的には、静的制御部133は、SQLクエリ1201〜1203に、指定された口座ID501を設定する。
次に、静的制御部133は、生成された検索用SQLクエリに基づいて、ブロックデータを検索する(ステップS1403)。
具体的には、静的制御部133が、データベース管理部131又はブロック取得部132に対して、生成された検索用SQLクエリの実行指示を出力する。
図12に示す例では、ブロック取得部132にはSQLクエリ1201、1202、1204〜1206の実行指示が出力され、データベース管理部131にはSQLクエリ1203の実行指示が出力される。ここで、ブロック取得部132及びデータベース管理部131によって実行される処理について説明する。
ブロック取得部132は、SQLクエリ1201を実行することによって、口座テーブル213から、指定された口座IDに対応するレコードを構成するブロックデータを検索する。
次に、ブロック取得部132は、SQLクエリ1202を実行することによって、帳簿リストテーブル212から、指定された口座IDに対応する口座データを構成するブロックデータを検索する。
次に、データベース管理部131は、SQLクエリ1203を実行することによって、帳簿リストテーブル212から、指定された口座IDに対応する口座に関連する帳簿の元帳番号303を取得する。これによって、リスト1250が生成される。
次に、静的制御部133は、SQLクエリ1203の実行結果であるリスト1250に基づいて、SQLクエリ1204〜1206を生成し、ブロック取得部132に、生成されたSQLクエリ1204〜1206の実行指示を出力する。
ブロック取得部132は、SQLクエリ1204〜1206を実行することによって、検索された帳簿テーブルを構成するブロックを全て検索する。
なお、SQLクエリ1204〜1206は、SQLクエリ1203の実行結果であるリスト1250の長さNに応じて、N回実行される。
以上がステップS1403の処理である。
次に、静的制御部133は、検索されたブロックデータをL0記憶領域180に格納し(ステップS1404)、処理を終了する。
(動的制御処理)
図15は、本発明の第1の実施例における動的制御処理における構成例を示す説明図である。
動的制御処理では、動的制御部134が、ユーザアプリケーションデータを構成する論理データに対するアクセス頻度の変化にしたがって、階層記憶領域へのブロックデータの配置場所を制御する。
データベース管理部131は、ユーザアプリケーションプログラム110の処理要求に応じて、L1記憶装置103及びL2記憶装置104からレコード単位で論理データを読み出し、読み出された論理データをL0記憶領域180へ格納する。
動的制御部134は、L0記憶領域180に格納された論理データに対してアクセスがあった場合、当該論理データを構成するブロックデータの温度を更新し、さらに動的ポテンシャル値を算出する。
L0記憶領域180は、L1記憶領域181及びL2記憶領域182より、記憶容量が小さいため、L1記憶領域181及びL2記憶領域182に格納される全てのデータを格納できない。したがって、L0記憶領域180の使用容量が所定の閾値以上となった場合、記憶容量を確保するために、所定のデータをL0記憶領域180から他の記憶領域に書き戻す必要がある。
そこで、動的制御部134は、空き領域を確保するために、不要なブロックデータ、すなわち、将来、アクセス頻度が低くなるブロックデータを特定する。本実施例では、前述したブロックデータを特定するために動的ポテンシャル値が用いられる。
具体的には、動的制御部134は、階層設定情報620及び検索リスト630を参照して、L0記憶領域180から他の記憶領域に、動的ポテンシャル値が最も低いブロックデータを書き戻す。動的ポテンシャル値が低いブロックデータは、サービス提供中においてアクセス頻度が低いことを示す。したがって、サービスの継続中は、当該ブロックデータのアクセス頻度が低いと予測することができる。
なお、L0記憶領域180の使用容量の閾値の情報は、閾値情報1503に格納される。例えば、L0記憶領域180の識別子と、L0記憶領域180に格納可能なブロックデータの数とが対応づけられている。なお、L0記憶領域180の使用容量、使用割合等の情報が対応づけられていてもよい。
L0記憶領域180から他の記憶領域にブロックデータを書き戻すときに、L2記憶領域182から読み出されたブロックデータが、動的ポテンシャル値が上昇することによって、L1記憶領域181に書き戻される場合がある。しかし、L1記憶領域181は、L2記憶領域182より記憶容量が小さいため、L2記憶領域182の全てのブロックデータを格納できず、また、L1記憶領域181に格納された他のデータに対するアクセス性能も低下する。
そのため、本実施例では、L1記憶領域181を通常領域1521と一時領域1522とに分けてブロックデータを管理する。具体的には、通常領域1521には、初期の配置時にL1記憶領域181に格納されたデータが格納され、一時領域1522には、初期の配置時にL2記憶領域182に格納されたデータが格納される。
動的制御部134は、一時領域1522の使用容量が所定の閾値以上となった場合、一時領域1522に格納されたブロックデータをL2記憶領域182に書き戻す。
そのため、本実施形態では、階層制御情報640は、一時領域1522に格納されるブロックデータを管理するための情報として、格納リスト1501及び一時領域割合情報1502を含む。
格納リスト1501は、一時領域1522に格納されるブロックデータを管理するための情報である。格納リスト1501の詳細については、図17を用いて後述する。一時領域割合情報1502は、L1記憶領域181のうち、一時領域1522として確保する記憶領域の割合を示す数値を格納する。
なお、L1記憶領域181の使用容量の閾値は、閾値情報1503に格納される。
図16は、本発明の第1の実施例における検索リスト630の一例を示す説明図である。
検索リスト630は、動的ポテンシャル値ごとに、ブロックデータの識別子のリストを有するデータ構造となっている。なお、ブロックデータのリストは、双方向リンクドリスト、かつ、LRU(Least Recently Used)リストとなっている。本実施例では、左から順に、ブロックデータのアクセス時間が最新であることを示す。
以下の説明では、各動的ポテンシャル値におけるリストをクラスタと記載する。
また、検索リスト630は、動的ポテンシャル値が大きい順に各クラスタがソートされた形式のデータとなっている。
これによって、動的制御部134は、高速に、書き戻すブロックデータを検索することができる。
図17は、本発明の第1の実施例における格納リスト1501の一例を示す説明図である。
格納リスト1501は、ブロックデータの識別子のリストから構成されるデータ構造となっている。なお、ブロックデータのリストは、双方向リンクドリスト、かつ、LRU(Least Recently Used)リストとなっている。本実施例では、左から順に、最新のブロックデータのアクセス時間が最新であることを示す。
一時領域1522からL2記憶領域182にブロックデータを書き戻す場合に、動的制御部134が、格納リスト1501を用いて処理を実行する。そのため、格納リスト1501は、アクセス頻度が低いブロックデータを高速に検索できるLRUリストとなっている。
図18A及び図18Bは、本発明の第1の実施例におけるデータの読出処理の詳細を説明するフローチャートである。
データの読出処理は、データベース管理部131及び動的制御部134によって実行される。データの読出処理は、データベース管理部131が階層記憶領域から論理データを読み出す場合に開始される。
なお、データの読出処理の実行時には、データベース管理部131によって、読み出される論理データを構成するブロックデータの識別子が指定される。
データベース管理部131は、L0記憶領域180に、指定されたブロックデータの識別子に対応するブロックデータが格納されているか否かを判定する(ステップS1801)。以下、指定されたブロックデータの識別子に対応するブロックデータを対象ブロックデータとも記載する。
具体的には、データベース管理部131は、L0記憶領域180から対象ブロックデータの読出処理を実行する。当該読出処理の結果、対象ブロックデータの読み出しに失敗した場合、データベース管理部131は、L0記憶領域180に、対象ブロックデータが格納されていないと判定する。
L0記憶領域180に、対象ブロックデータが格納されていると判定された場合、データベース管理部131は、ステップS1804に進む。
L0記憶領域180に、対象ブロックデータが格納されいないと判定された場合、データベース管理部131は、L1記憶領域181に、対象ブロックデータが格納されているか否かを判定する(ステップS1802)。ステップS1802の判定処理は、ステップS1801の判定処理と同一の処理が実行される。
L1記憶領域181に、対象ブロックデータが格納されていると判定された場合、データベース管理部131は、L1記憶領域181から、対象ブロックデータを読み出し、読み出された対象ブロックデータをL0記憶領域180に格納し(ステップS1805)、その後、ステップS1804に進む。
L1記憶領域181に、対象ブロックデータが格納されていないと判定された場合、データベース管理部131は、L2記憶領域182から、対象ブロックデータを読み出し、読み出された対象ブロックデータをL0記憶領域180に格納し(ステップS1803)、その後、ステップS1804に進む。
なお、本実施例では、L2記憶領域に、全てのデータ(ブロックデータ)が格納されているため、必ず、データベースから対象ブロックデータを読み出すことができる。
データベース管理部131は、L0記憶領域180に、対象ブロックデータが格納された後、動的制御部134を呼び出し(ステップS1804)、処理を終了する。
動的制御部134は、データベース管理部131から呼び出されると、格納リスト1501を参照し、対象ブロックデータに対応する識別子が登録されているか否かを判定する(ステップS1811)。すなわち、対象ブロックデータが一時領域1522に格納されていたブロックデータであるか否かが判定される。
格納リスト1501に、対象ブロックデータの識別子が登録されていないと判定された場合、動的制御部134は、ステップS1813に進む。
格納リスト1501に、対象ブロックデータの識別子が登録されていると判定された場合、動的制御部134は、格納リスト1501から、対象ブロックデータの識別子を削除する(ステップS1812)。
次に、動的制御部134は、対象ブロックデータの温度及び動的ポテンシャル値の更新処理を実行する(ステップS1813)。温度及び動的ポテンシャル値の更新処理の詳細については、図20を用いて後述する。
次に、動的制御部134は、更新された動的ポテンシャル値に基づいて、検索リスト630の更新処理を実行する(ステップS1814)。検索リスト630の更新処理の詳細については、図21を用いて後述する。
次に、動的制御部134は、閾値情報1503を参照し、L0記憶領域180の使用容量が所定の閾値以上であるか否かを判定する(ステップS1815)。すなわち、L0記憶領域180の空き容量を確保する必要があるか否かが判定される。
具体的には、動的制御部134は、L0記憶領域180に格納されているブロックデータの数が、閾値以上であるか否かを判定する。
L0記憶領域180の使用容量が所定の閾値より小さいと判定された場合、動的制御部134は、処理を終了する。
L0記憶領域180の使用容量が所定の閾値以上であると判定された場合、動的制御部134は、ブロックデータの書戻処理を実行し(ステップS1816)、処理を終了する。これによって、L0記憶領域180から、L1記憶領域181又はL2記憶領域182のいずれかに、ブロックデータが書き戻される。なお、ブロックデータの書戻処理の詳細については、図22を用いて後述する。
図19A及び図19Bは、本発明の第1の実施例におけるデータの書込処理の詳細を説明するフローチャートである。
データの書込処理は、データベース管理部131及び動的制御部134によって実行される。データの書込処理は、データベース管理部131が、ユーザアプリケーションプログラム110からデータベースへの書込要求を受けた場合に開始される。
なお、データの書込処理の実行時には、データベース管理部131によって、書き込むデータと、当該データを反映させるブロックデータの識別子とが指定される。
データベース管理部131は、指定されたブロック識別子に対応するブロックデータに対して、書き込むデータを反映させる(ステップS1901)。
データベース管理部131は、動的制御部134を呼び出し(ステップS1902)、処理を終了する。
動的制御部134は、データベース管理部131から呼び出されると、ステップS1911〜ステップS1914の処理を実行する。なお、ステップS1911〜ステップS1914の処理は、ステップS1813〜ステップS1816と同一であるため説明を省略する。
図20は、本発明の第1の実施例における温度及び動的ポテンシャル値の更新処理の詳細を説明するフローチャートである。
温度及び動的ポテンシャル値の更新処理の実行時には、更新対象のブロックデータの識別子が指定される。また、更新対象のブロックデータが、L0記憶領域180から他の記憶領域に書き戻されるブロックデータであることを示す情報が指定されてもよい。
動的制御部134は、現在のタイムスタンプを取得する(ステップS2001)。
次に、動的制御部134は、過去のタイムスタンプを取得する(ステップS2002)。
具体的には、動的制御部134は、ブロックデータ管理情報600を参照し、更新対象のブロックデータの対応するレコードのタイムスタンプ705からタイムスタンプを取得する。
次に、動的制御部134は、現在のタイムスタンプ及び過去のタイムスタンプを用いて、更新対象のブロックデータが更新されるまでの経過時間を算出する(ステップS2003)。
具体的には、動的制御部134は、現在のタイムスタンプから過去のタイムスタンプを減算することによって、経過時間を算出する。なお、動的制御部134は、経過時間が算出された後、更新対象のブロックデータに対応するレコードのタイムスタンプ705に、現在のタイムスタンプを上書きする。
次に、動的制御部134は、更新対象のブロックデータが、L0記憶領域180から書き戻されるブロックデータであるか否か判定する(ステップS2004)。以下の説明では、現在格納されている記憶領域から他の記憶領域に書き戻されるブロックデータを、書き戻し対象のブロックデータとも記載する。ステップS2004では、具体的には、以下のような判定方法が考えられる。
読出処理及び書込処理の実行過程において当該更新処理が実行される場合、更新対象のブロックデータは書き戻し対象のブロックデータではないと判定される。また、書戻処理の実行過程において当該更新処理が実行される場合、更新対象のブロックデータは書き戻し対象のブロックデータであると判定される。
また、動的制御部134が、更新処理の実行時に指定された情報を参照することによって、更新対象のブロックデータが書き戻し対象のブロックデータであるか否かを判定してもよい。
更新対象のブロックデータが書き戻し対象のブロックデータであると判定された場合、動的制御部134は、当該ブロックデータの温度を下げて(ステップS2005)、ステップS2006に進む。
具体的には、動的制御部134は、温度下降関数812に、算出された経過時間を代入することによって、変化値を算出する。なお、算出された変化値は、式(1)における関数Tの値に対応する。
一方、更新対象のブロックデータが書き戻し対象のブロックデータでないと判定された場合、動的制御部134は、当該ブロックデータの温度を上げて(ステップS2009)、ステップS2006に進む。
具体的には、動的制御部134は、温度上昇関数811に、算出された経過時間を代入することによって、変化値を算出する。なお、算出された変化値は、式(1)における関数Tの値に対応する。
次に、動的制御部134は、算出された変化値を用いて、更新対象のブロックデータの温度を更新する(ステップS2006)。
具体的には、動的制御部134は、ブロックデータ管理情報600を参照し、更新対象のブロックデータに対応するレコードの温度704に、算出された変化値を加算する。
なお、温度上昇関数811を用いて算出された変化値は正の値であるため、温度704の値は大きくなる。一方、温度下降関数812を用いて算出された変化値は負の値であるため、温度704の値は小さくなる。
次に、動的制御部134は、オフセットを算出する(ステップS2007)。すなわち、式(1)の左側の1項目の値が算出される。
具体的には、動的制御部134は、更新された温度704をTmaxで除算して第1算出値を算出し、当該第1算出値をPoffsetに乗算することによって、オフセットを算出する。このとき、動的制御部134は、算出されたオフセットを、更新対象のブロックデータに対応するレコードのオフセットに格納する。
次に、動的制御部134は、動的ポテンシャル値を算出し(ステップS2008)、処理を終了する。
具体的には、動的制御部134は、更新対象のブロックデータに対応するレコードの静的ポテンシャル値702から静的ポテンシャル値を取得し、取得された静的ポテンシャル値にオフセットを加算することによって、動的ポテンシャル値を算出する。算出された動的ポテンシャル値は、メモリ102上に一時的に格納される。
図21は、本発明の第1の実施例における検索リスト630の更新処理の詳細を説明するフローチャートである。
検索リスト630の更新処理の実行時には、更新対象のブロックデータの識別子、及び当該ブロックデータの動的ポテンシャル値が指定される。
動的制御部134は、検索リスト630に、指定された動的ポテンシャル値に対応するクラスタが存在するか否かを判定する(ステップS2101)。以下の説明では、指定された動的ポテンシャル値に対応するクラスタを対象クラスタとも記載する。
具体的には、動的制御部134は、検索リスト630のクラスタを上から順に参照して、指定された動的ポテンシャル値と一致するクラスタを検索する。
対象クラスタが存在すると判定された場合、動的制御部134は、ステップS2103に進む。
対象クラスタが存在しないと判定された場合、動的制御部134は、検索リスト630に新たにクラスタを追加する(ステップS2102)。
このとき、上から順に、クラスタの動的ポテンシャル値が大きくなるように、クラスタが追加される。なお、動的制御部134は、クラスタを追加した後、クラスタの動的ポテンシャル値に基づいて、クラスタをソートしてもよい。
次に、動的制御部134は、更新対象のブロックデータが、新規なブロックデータであるか否かを判定する(ステップS2103)。
具体的には、動的制御部134は、更新対象のブロックデータがL0記憶領域180に格納されているか否かを判定する。当該ブロックデータがL0記憶領域180に格納されていない場合、更新対象のブロックデータは、新規なブロックデータであると判定される。
更新対象のブロックデータが新規なブロックデータであると判定された場合、動的制御部134は、ステップS2106に進む。これは、新規なブロックデータである場合、対象クラスタには、当該ブロックデータの識別子が登録されていないためである。
更新対象のブロックデータが新規なブロックデータでないと判定された場合、動的制御部134は、対象クラスタから当該ブロックデータを削除する(ステップS2104)。
具体的には、動的制御部134は、更新対象のブロックデータが所属するクラスタから、当該ブロックデータの識別子を削除する。また、動的制御部134は、削除された識別子が他のブロックデータの識別子とリンクされている場合には、当該リンク関係も更新する。
次に、動的制御部134は、対象クラスタの最も右側に、更新対象のブロックデータの識別子を追加する(ステップS2105)。
図16で説明したように、検索リスト630に含まれるクラスタは、LRUリストとなっているため、アクセス時間が最新であることを示す右側に、更新対象のブロックデータに対応する識別子が追加される。
次に、動的制御部134は、空のクラスタが存在するか否かを判定する(ステップS2106)。
具体的には、動的制御部134は、上から順に検索リスト630を参照し、ブロックデータの識別子が含まれないクラスタを検索する。ブロックデータの識別子が存在しないクラスタが、空のクラスタとして検索される。
空のクラスタが存在しないと判定された場合、動的制御部134は、処理を終了する。
空のクラスタが存在すると判定された場合、動的制御部134は、検索リスト630から、当該空のクラスタを削除し(ステップS2107)、処理を終了する。
図22は、本発明の第1の実施例における書戻処理の詳細を説明するフローチャートである。
動的制御部134は、検索リスト630を参照し、動的ポテンシャル値が最も低いクラスタを選択する(ステップS2201)。
次に、動的制御部134は、選択されたクラスタの最も左側のブロックデータの識別子を選択する(ステップS2202)。すなわち、アクセス時間が最も古いブロックデータが、書き戻し対象のブロックデータとして選択される。
なお、書き出し対象のブロックデータは一つである必要はなく、二つ以上選択してもよい。この場合、アクセス時間が古いブロックデータから順番に選択する方法が考えられる。
次に、動的制御部134は、書き戻し対象のブロックデータの温度及び動的ポテンシャル値の更新処理を実行する(ステップS2203)。なお、温度及び動的ポテンシャル値の更新処理は、図20で説明した処理と同一の処理である。
次に、動的制御部134は、選択されたクラスタから、選択されたブロックデータの識別子を削除する(ステップS2204)。ステップS2204の処理は、ステップS2104と同一の処理である。
次に、動的制御部134は、選択されたクラスタが空であるか否かを判定する(ステップS2205)。
具体的には、動的制御部134は、選択されたクラスタに一つ以上のブロックデータの識別子が含まれるか否かを判定する。選択されたクラスタに一つ以上のブロックデータの識別子が含まれる場合、選択されたクラスタは空でないと判定される。
選択されたクラスタが空であると判定された場合、動的制御部134は、検索リスト630から当該クラスタを削除し(ステップS2208)、ステップS2206に進む。
選択されたクラスタが空でないと判定された場合、動的制御部134は、選択されたブロックデータが、初期配置時にL2記憶領域182に格納され、かつ、L1記憶領域181に書き戻されるブロックデータであるか否か判定する(ステップS2206)。具体的には、以下のような処理が実行される。
動的制御部134は、ブロックデータ管理情報600を参照し、選択されたブロックデータに対応するレコードの静的ポテンシャル値702を取得する。動的制御部134は、取得された静的ポテンシャル値702と階層設定情報620とを比較して、初期配置時に、選択されたブロックデータがL2記憶領域182に格納されていたか否かを判定する。
さらに、動的制御部134は、算出された動的ポテンシャル値と階層設定情報620を比較し、L1記憶領域181に書き戻されるブロックデータであるか否かを判定する。
ステップS2206の条件を満たさないと判定された場合、動的制御部134は、算出された動的ポテンシャル値に基づいて、所定の記憶領域に、選択されたブロックデータを書き戻す(ステップS2207)。
具体的には、動的ポテンシャル値がL1記憶領域181に設定された閾値の範囲内にある場合、選択されたブロックデータは、L1記憶領域181の通常領域1521に格納され、動的ポテンシャル値がL2記憶領域182に設定された閾値の範囲内にある場合、選択されたブロックデータは、L2記憶領域182に格納される。
ステップS2006の条件を満たさないと判定された場合、動的制御部134は、格納リスト1501に、選択されたブロックデータの識別子を登録する(ステップS2209)。その後、動的制御部134は、L1記憶領域181の一時領域1522に、選択されたブロックデータを書き戻し(ステップS2210)、処理を終了する。
具体的には、選択されたブロックデータの識別子が最も右側に追加される。
図23は、本発明の第1の実施例における一時領域1522における書戻処理の詳細を説明するフローチャートである。
一時領域1522における書戻処理は、タイマに基づいて、周期的に実行される。
動的制御部134は、格納リスト1501及び閾値情報1503を参照し、一時領域1522に格納されるブロックデータのサイズが所定の閾値以上であるか否かを判定する(ステップS2201)。すなわち、一時領域1522からL2記憶領域182にブロックデータを書き戻す必要があるか否かが判定される。
一時領域1522に格納されるブロックデータのサイズが所定の閾値より小さいと判定された場合、動的制御部134は、処理を終了する。
一時領域1522に格納されるブロックデータのサイズが所定の閾値以上であると判定された場合、動的制御部134は、書き戻し対象のブロックデータの識別子を格納リスト1501から削除する(ステップS2302)。
具体的には、動的制御部134は、格納リスト1501を参照し、アクセス時間が最も古い、すなわち、最も左側のブロックデータの識別子を削除する。
次に、動的制御部134は、書き戻し対象のブロックデータの温度及びオフセットを初期化する(ステップS2303)。
具体的には、動的制御部134は、一度、L0記憶領域180に、書き戻し対象のブロックデータを読み出し、ブロックデータ管理情報600を参照して、当該ブロックデータに対応するレコードのオフセット703及び温度704に「0」を設定する。
次に、動的制御部134は、初期に配置された記憶領域に、書き戻し対象のブロックデータを書き戻す(ステップS2304)。
具体的には、動的制御部134は、当該ブロックデータの静的ポテンシャル値及び階層設定情報620に基づいて、初期に配置された記憶領域を特定し、特定された記憶領域に当該ブロックデータを書き戻す。
第1の実施例では、計算機100が、単一のユーザアプリケーションプログラムを備えるものとして説明したが、本発明はこれに限定されない。例えば、種類が異なる複数のユーザアプリケーションプログラムが、同時に、データベースにアクセスしてもよい。
アクセス対象のデータを共有しない場合、ユーザアプリケーションプログラムごとに静的制御情報を生成し、各ブロック等へ反映すればよい。また、アクセス対象のデータを共有する場合、データを共有する複数のユーザアプリケーションプログラムの業務情報を一つとみなして当該業務情報を解析し、共通の静的制御情報を生成し、共通の静的制御情報をブロックデータに反映すればよい。
以上のように、第1の実施例によれば、データベース管理プログラム130が制御するデータの単位(テーブル単位)に依存することなく、ユーザアプリケーションデータに対して、静的制御情報を付与することができる。また、静的制御情報が付与された論理データを、ブロック単位に管理することによって、動的制御情報をブロック単位に付与することができる。これによって、静的制御処理及び動的制御処理を組み合わせた階層的な記憶領域におけるデータ配置を実現することができる。
[第2の実施例]
第1の実施例では、データストアとしてデータベースを用いていたが、第2の実施例では、データストアとしてファイルシステムを用いる点が異なる。
以下、第1の実施例との差異を中心に第2の実施例について説明する。なお、第1の実施例と同一の構成は同一の符号を付与し、同一の構成については説明を省略する。
図24は、本発明の第2の実施例における計算機システムの構成例を示すブロック図である。
第2の実施例では、計算機100は、データベース管理プログラム130の代わりに、ファイルシステム2410を備え、データベース管理部131の代わりにファイルシステム管理部2411を備える。また、計算機100は、データベース管理情報140の代わりにファイルシステム管理情報2420を格納する。ファイルシステム管理情報2420には、テーブルデータ141の代わりにファイルデータ2421が含まれる。
ファイルシステム2410は、ファイルシステム管理情報2420を用いて、階層記憶領域内のデータを制御し、ファイルシステム機能を提供する。
ファイルシステム管理部2411は、ファイルシステムの管理及び階層記憶領域のI/O制御を行う。
ファイルシステム管理情報2420は、ファイルシステム2410が実行する処理に関する情報を格納し、ファイルデータ2421のほかに、ファイルシステムの機能を実現するために必要な情報(図示省略)を含む。
ファイルデータ2421は、ファイルシステムにおける個々のファイルに関する情報を格納する。個々のファイルは、第1の実施例と同様にブロックから構成される。
また、本実施例形態では、データストアとしてファイルシステムを用いているため、定義情報150には、SQLクエリを用いたブロックデータの取得方法とは異なる情報が格納される。例えば、OSが提供するシステムコール等を用いて、ファイル名及びファイルのオフセット等を指定することによって、ブロックを取得する方法が考えられる。
なお、その他の構成及び実行される処理は、第1の実施例と同一である。
第2の実施例によれば、ファイルシステム2410が制御するデータの単位(ファイル)に依存することなく、論理データに対して、静的制御情報を付与することができる。また、静的制御情報が付与された論理データを、ブロック単位に管理することによって、動的制御情報をブロック単位に付与することができる。これによって、静的制御処理と動的制御処理を組み合わせた、階層的な記憶領域の制御を、通常のファイルにおいても、実現することができる。
なお、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
さらに、本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
100 計算機
101 プロセッサ
102 メモリ
103 L1記憶装置
104 L2記憶装置
110 ユーザアプリケーションプログラム
120 ユーザアプリケーションデータ
130 データベース管理プログラム
131 データベース管理部
132 ブロック取得部
133 静的制御部
134 動的制御部
140 データベース管理情報
141 テーブルデータ
150 定義情報
160 静的制御情報
170 動的制御情報
180 L0記憶領域
181 L1記憶領域
182 L2記憶領域
600 ブロックデータ管理情報
610 関数情報
620 階層設定情報
630 検索リスト
640 階層制御情報
1501 格納リスト
1502 一時領域割合情報
1503 閾値情報
1521 通常領域
1522 一時領域
2410 ファイルシステム
2411 ファイルシステム管理部
2420 ファイルシステム管理情報
2421 ファイルデータ

Claims (10)

  1. 少なくとも一つ以上の計算機を含み、前記計算機によって提供される複数の記憶領域から構成されたデータストアを用いてサービスを提供する計算機システムであって、
    前記計算機は、プロセッサ、及び前記プロセッサに接続される複数の記憶媒体を有し、
    前記データストアには、サービスに用いられる業務データが格納され、
    前記計算機システムは、
    前記業務データごとのアクセス特性に基づいて決定され、前記データストアを構成する記憶領域の中から、初期の前記業務データの配置先を決定するための第1のポテンシャルを格納する静的制御情報と、
    前記業務データを構成する要素データごとに、前記要素データへのアクセス頻度に対応して変化するパラメータを格納する動的制御情報と、
    前記業務データを格納する前記記憶領域を決定するための階層設定情報と、
    を保持し、
    前記データストアを構成する前記記憶領域に格納された、前記業務データを管理するデータストア管理部と、
    前記静的制御情報及び前記動的制御情報を用いて、前記データストアを構成する記憶領域に格納される前記業務データの配置を管理する制御部と、
    を備え、
    前記制御部は、
    前記サービスの提供中に、前記データストア管理部から前記業務データへのアクセスを検知した場合、当該業務データを構成する前記要素データごとのアクセス頻度の変化から前記パラメータを算出し、
    前記各要素データの第1のポテンシャル値及び前記算出されたパラメータを用いて、前記各要素データのアクセス頻度の予測を示す第2のポテンシャル値を算出し、
    前記第2のポテンシャル値に基づいて、移動させる第1の要素データを選択し、
    前記階層設定情報、及び、前記第1の要素データの前記第2のポテンシャル値に基づいて、前記第1の要素データを格納する前記記憶領域を決定することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記計算機システムは、前記データストアを構成する記憶領域から、前記要素データ単位のデータを取得する取得部を備え、
    前記制御部は、前記静的制御情報の中から、一つの前記業務データを選択し、
    前記取得部は、前記選択された業務データを構成する前記要素データを検索し、
    前記制御部は、
    前記検索された要素データに対して、前記選択された業務データに対応する前記第1のポテンシャル値を設定し、
    前記階層設定情報、及び、前記設定された第1のポテンシャル値に基づいて、前記選択された業務データを構成する要素データを配置する前記記憶領域を特定し、
    前記特定された記憶領域に、前記選択された業務データを構成する要素データを配置することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記計算機システムは、前記業務データを構成する要素データの取得方法を格納する定義情報を保持し、
    前記取得部は、前記定義情報に基づいて、前記選択された業務データを構成する要素データを検索することを特徴とする計算機システム。
  4. 請求項1又は請求項2に記載の計算機システムであって、
    前記データストアを構成する記憶領域は、第1の記憶領域、第2の記憶領域、及び第3の記憶領域を含み、
    前記制御部は、
    前記階層設定情報、及び、前記設定された第1のポテンシャル値に基づいて、前記第2の記憶領域又は前記第3の記憶領域のいずれかに、前記業務データを構成する要素データを配置し、
    前記データストア管理部が、前記第2の記憶領域又は前記第3の記憶領域のいずれかに格納される業務データのアクセスを検知した場合、前記第1の記憶領域に前記業務データを構成する要素データを読み出し、
    前記第1の記憶領域の使用容量が所定の閾値以上である場合、前記第1の記憶領域に読み出された業務データを構成する要素データのうち、前記第2のポテンシャル値が最も小さく、かつ、アクセス時間が最も古い前記要素データを、前記第1の要素データとして選択し、
    前記階層設定情報、及び、前記第1の要素データの第2のポテンシャル値に基づいて、前記第1の要素データを格納する前記記憶領域として、前記第2の記憶領域又は前記第3の記憶領域のいずれかを決定し、
    前記第2の記憶領域又は前記第3の記憶領域のいずれかに、前記第1の要素データを格納することを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記第2の記憶領域は、前記第1のポテンシャル値に基づいて前記第2の記憶領域に配置された前記業務データを構成する要素データを格納する通常領域と、前記第1のポテンシャル値に基づいて前記第3の記憶領域に配置された前記要素データを構成する要素データを格納する一時領域と、を含み
    前記制御部は、
    前記第2の記憶領域に前記第1の要素データを格納する場合に、前記静的制御情報及び前記階層設定情報を参照して、前記第1の記憶領域に読み出される前に、前記第1の要素データが格納された前記記憶領域を特定し、
    前記第1の要素データが、前記第2の記憶領域から読み出された要素データである場合、前記第1の要素データを前記通常領域に格納し、
    前記第1の要素データが、前記第3の記憶領域から読み出された要素データである場合、前記第1の要素データを前記一時領域に格納し、
    前記一時領域の空き容量が所定の閾値以上である場合に、アクセス時間に基づいて、前記一時領域に格納される前記要素データの中から、移動させる第2の要素データを選択し、
    前記選択された第2の要素データを前記第3の記憶領域に格納することを特徴とする計算機システム。
  6. 少なくとも一つ以上の計算機を含み、前記計算機によって提供される複数の記憶領域から構成されたデータストアを用いてサービスを提供する計算機システムにおけるデータ管理方法であって、
    前記計算機は、プロセッサ、及び前記プロセッサに接続される複数の記憶媒体を有し、
    前記データストアには、サービスに用いられる業務データが格納され、
    前記計算機システムは、
    前記業務データごとのアクセス特性に基づいて決定され、前記データストアを構成する記憶領域の中から、初期の前記業務データの配置先を決定するための第1のポテンシャルを格納する静的制御情報と、
    前記業務データを構成する要素データごとに、前記要素データへのアクセス頻度に対応して変化するパラメータを格納する動的制御情報と、
    前記業務データを格納する前記記憶領域を決定するための階層設定情報と、
    を保持し、
    前記データストアを構成する前記記憶領域に格納された、前記業務データを管理するデータストア管理部と、
    前記静的制御情報及び前記動的制御情報を用いて、前記データストアを構成する記憶領域に格納される前記業務データの配置を管理する制御部と、を有し、
    前記方法は、
    前記制御部が、前記サービスの提供中に、前記データストア管理部から前記業務データへのアクセスを検知した場合、当該業務データを構成する前記要素データごとのアクセス頻度の変化から前記パラメータを算出する第1のステップと、
    前記制御部が、前記各要素データの第1のポテンシャル値及び前記算出されたパラメータを用いて、前記各要素データのアクセス頻度の予測を示す第2のポテンシャル値を算出する第2のステップと、
    前記制御部が、前記第2のポテンシャル値に基づいて、移動させる第1の要素データを選択する第3のステップと、
    前記制御部が、前記階層設定情報、及び、前記第1の要素データの前記第2のポテンシャル値に基づいて、前記第1の要素データを格納する前記記憶領域を決定する第4のステップと、を含むことを特徴とするデータ管理方法。
  7. 請求項6に記載のデータ管理方法であって、
    前記計算機システムは、前記データストアを構成する記憶領域から、前記要素データ単位のデータを取得する取得部を有し、
    前記方法は、さらに、
    前記制御部が、前記静的制御情報の中から、一つの前記業務データを選択する第5のステップと、
    前記取得部が、前記選択された業務データを構成する前記要素データを検索する第6のステップと、
    前記制御部が、前記検索された要素データに対して、前記選択された業務データに対応する前記第1のポテンシャル値を設定する第7のステップと、
    前記制御部が、前記階層設定情報、及び、前記設定された第1のポテンシャル値に基づいて、前記選択された業務データを構成する要素データを配置する前記記憶領域を特定し、前記特定された記憶領域に前記選択された業務データを構成する要素データを配置する第8のステップと、を含むことを特徴とするデータ管理方法。
  8. 請求項6に記載のデータ管理方法であって、
    前記計算機システムは、前記要素データの取得方法を格納する定義情報を保持し、
    前記第6のステップでは、前記定義情報に基づいて、前記選択された業務データを構成する要素データが検索されることを特徴とするデータ管理方法。
  9. 請求項6又は請求項7に記載のデータ管理方法であって、
    前記データストアを構成する記憶領域は、第1の記憶領域、第2の記憶領域、及び第3の記憶領域を含み、
    前記第8のステップでは、前記階層設定情報、及び、前記設定された第1のポテンシャル値に基づいて、前記第2の記憶領域又は前記第3の記憶領域のいずれかに前記業務データを構成する要素データが配置され、
    前記方法は、前記データストア管理部が、前記第2の記憶領域又は前記第3の記憶領域のいずれかに格納される業務データのアクセスを検知した場合、前記第1の記憶領域に前記業務データを構成する要素データを読み出すステップを含み、
    前記第3のステップでは、前記第1の記憶領域の使用容量が所定の閾値以上である場合に、前記第1の記憶領域に読み出された業務データを構成する要素データのうち、前記第2のポテンシャル値が最も小さく、かつ、アクセス時間が最も古い前記要素データが、前記第1の要素データとして選択され、
    前記第4のステップは、
    前記階層設定情報、及び、前記第1の要素データの第2のポテンシャル値に基づいて、前記第1の要素データを格納する前記記憶領域として、前記第2の記憶領域又は前記第3の記憶領域のいずれかを選択する第9のステップと、
    前記第2の記憶領域又は前記第3の記憶領域のいずれかに、前記第1の要素データを格納する第10のステップと、を含むことを特徴とするデータ管理方法。
  10. 請求項9に記載のデータ管理方法であって、
    前記第2の記憶領域は、前記第1のポテンシャル値に基づいて前記第2の記憶領域に配置された前記業務データを構成する要素データを格納する通常領域と、前記第1のポテンシャル値に基づいて前記第3の記憶領域に配置された前記業務データを構成する要素データを格納する一時領域と、を含み、
    前記第9のステップにおいて、前記第2の記憶領域が選択された場合に、前記制御部が、前記静的制御情報及び前記階層設定情報を参照して、前記第1の記憶領域に読み出される前に、前記第1の要素データが格納された前記記憶領域を特定するステップと、
    前記制御部が、前記第1の要素データが前記第2の記憶領域から読み出された要素データである場合、前記第1の要素データを前記通常領域に格納するステップと、
    前記制御部が、前記第1の要素データが前記第3の記憶領域から読み出された要素データである場合、前記第1の要素データを前記一時領域に格納するステップと、
    前記制御部が、前記一時領域の空き容量が所定の閾値以上である場合に、アクセス時間に基づいて、前記一時領域に格納される前記要素データの中から、移動させる第2の要素データを選択するステップと、
    前記制御部が、前記選択された第2の要素データを前記第3の記憶領域に格納するステップと、を含むことを特徴とするデータ管理方法。
JP2012122037A 2012-05-29 2012-05-29 計算機システム及びデータ管理方法 Pending JP2013246773A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012122037A JP2013246773A (ja) 2012-05-29 2012-05-29 計算機システム及びデータ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012122037A JP2013246773A (ja) 2012-05-29 2012-05-29 計算機システム及びデータ管理方法

Publications (1)

Publication Number Publication Date
JP2013246773A true JP2013246773A (ja) 2013-12-09

Family

ID=49846452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012122037A Pending JP2013246773A (ja) 2012-05-29 2012-05-29 計算機システム及びデータ管理方法

Country Status (1)

Country Link
JP (1) JP2013246773A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190271969A1 (en) * 2018-03-02 2019-09-05 Hitachi, Ltd. Information collection and display system, information collection method, and information display method
US10725710B2 (en) 2015-03-26 2020-07-28 Fujitsu Limited Hierarchical storage device, hierarchical storage control device, computer-readable recording medium having hierarchical storage control program recorded thereon, and hierarchical storage control method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725710B2 (en) 2015-03-26 2020-07-28 Fujitsu Limited Hierarchical storage device, hierarchical storage control device, computer-readable recording medium having hierarchical storage control program recorded thereon, and hierarchical storage control method
US20190271969A1 (en) * 2018-03-02 2019-09-05 Hitachi, Ltd. Information collection and display system, information collection method, and information display method

Similar Documents

Publication Publication Date Title
US10657101B2 (en) Techniques for implementing hybrid flash/HDD-based virtual disk files
EP3161609B1 (en) Storage device, program, and information processing method
US7711916B2 (en) Storing information on storage devices having different performance capabilities with a storage system
US10242050B2 (en) Database caching in a database system
US9355112B1 (en) Optimizing compression based on data activity
US9182927B2 (en) Techniques for implementing hybrid flash/HDD-based virtual disk files
CN110268394A (zh) Kvs树
US9280300B2 (en) Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage
CN110291518A (zh) 合并树无用单元指标
CN110268399A (zh) 用于维护操作的合并树修改
US10540095B1 (en) Efficient garbage collection for stable data
CN108140040A (zh) 存储器中数据库的选择性数据压缩
CN110268391A (zh) 用于缓存数据的系统和方法
US8874860B2 (en) Logical buffer pool extension
WO2019149261A1 (zh) 分布式文件系统的文件存储方法及分布式文件系统
CN105683928B (zh) 用于数据高速缓存策略的方法、服务器和存储器设备
CN114253908A (zh) 键值存储系统的数据管理方法及其装置
Carniel et al. A generic and efficient framework for flash-aware spatial indexing
CN107133334B (zh) 基于高带宽存储系统的数据同步方法
US10185660B2 (en) System and method for automated data organization in a storage system
Awasthi et al. Hybrid HBase: Leveraging Flash SSDs to Improve Cost per Throughput of HBase.
JP2013246773A (ja) 計算機システム及びデータ管理方法
Wu et al. A data management method for databases using hybrid storage systems
Tang et al. Tuning object-centric data management systems for large scale scientific applications
Gu et al. Adaptive cache policy scheduling for big data applications on distributed tiered storage system