以下、本発明の実施の形態について図面を用いて説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成を示す図である。
計算機システムは、ホスト計算機1、ストレージ装置2及びクライアント3を含む。ホスト計算機1及びストレージ装置2は、ネットワーク5を介して互いに接続され、データを送受信する。ネットワーク5は、例えば、SAN(Storage Area Network)である。ホスト計算機1及びクライアント3は、ネットワーク6を介して互いに接続される。なお、第1の実施の形態では、ネットワーク5と、ネットワーク6とが、それぞれ独立した形態となっているが、双方の機能を兼ねる単一のネットワークであってもよい。
ホスト計算機1は、ストレージ装置2によって提供される記憶資源を利用して各種業務処理を実行する。
ホスト計算機1は、演算装置101、主記憶装置102、ネットワーク5に接続されるインタフェース103、及びネットワーク6に接続されるインタフェース104を備える。演算装置101、主記憶装置102、インタフェース103、及びインタフェース104は、内部バスを介して互いに接続される。
演算装置101は、主記憶装置102に記憶されたプログラムを実行することによって、各種業務処理を実行する。
主記憶装置102は、演算装置101によって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。第1の実施の形態では、アプリケーションプログラム110及びデータベース管理システム120が記憶されている。また、アプリケーションプログラム110とデータベース管理システム120とがともにホスト計算機1に格納されているが、別途データベースサーバを設けるなど、別の計算機に格納するようにしてもよい。
アプリケーションプログラム110は、演算装置101によって実行されることによって、ホスト計算機1に業務処理を実行させる。アプリケーションプログラム110は、例えば、Webアプリケーションなどである。
データベース管理システム120は、ストレージ装置2などに格納されたデータを管理する。データベース管理システム120は、問合せ処理部121、実行情報取得部122、レイアウト変更計画部123及びレイアウト変更実行部124を含む。問合せ処理部121、実行情報取得部122、レイアウト変更計画部123及びレイアウト変更実行部124は、演算装置101によって実行されるプログラムである。
問合せ処理部121は、外部又はアプリケーションプログラム110からのデータアクセス要求を受け付ける。データアクセス要求の内容は、例えば、SQLである。また、問合せ処理部121は、要求されたデータを外部又はアプリケーションプログラム110に応答する。問合せ処理部121の処理の詳細は、図6にて後述する。
実行情報取得部122は、問合せ処理部121から実行情報を受信し、受信した実行情報を問合せ実行情報管理表127に格納する。実行情報取得部122の処理の詳細は、図7にて後述する。
レイアウト変更計画部123は、問合せ実行情報管理表127に記録された実行情報に基づいて、データベース管理システム120によって管理されるデータが格納される領域のレイアウト変更計画案を作成する。レイアウト変更計画部123の処理の詳細は、図14にて後述する。
レイアウト変更実行部124は、作成されたレイアウト変更計画案に基づいて、データが格納される領域のレイアウトを変更する。具体的には、一例として、データが格納されている領域を移動させるようにストレージ装置2に要求したり、データベースのスキーマ情報を変更したりする。レイアウト変更実行部124の処理の詳細は、図15にて後述する。
ボリューム管理表125は、記憶部202によって提供されるボリュームの情報を格納する表である。ボリューム管理表125の詳細は、図3にて後述する。
レイアウト管理表126は、データベース管理システム120によって管理されるデータを格納する領域のレイアウトを管理する表である。レイアウト管理表126の詳細は、図4にて後述する。
問合せ実行情報管理表127は、実行された問合せ処理の実行時刻などの実行情報を格納する。問合せ実行情報管理表127の詳細は、図8にて後述する。
ボリューム消費電力モデル情報表128は、問合せを実行する場合に消費される電力量を算出するための情報を格納する。ボリューム消費電力モデル情報表128の詳細は、図9にて後述する。
レイアウト変更計画管理表129は、レイアウト変更計画部123によって作成されたレイアウト変更計画案を格納する。レイアウト変更計画管理表129の詳細は、図16にて後述する。
ストレージ装置2は、ホスト計算機1によって読み書きされるデータを格納する。ストレージ装置2は、制御部201、記憶部202及びインタフェース203を備える。また、ストレージ装置2には、図示しない電源部及び冷却部が含まれる。冷却部は、例えば、複数の冷却ファンによって構成される。電源部は、例えば、複数の電源モジュールによって構成される。
制御部201は、インタフェース203を介して受け付けたアクセス要求に基づいて、記憶部202に格納されたデータを外部に提供する。制御部201は、入出力処理部211、自動電力制御部212及びボリューム情報表213を含む。
入出力処理部211は、記憶部202に格納されたデータのアクセス要求を受け付ける。また、入出力処理部211は、要求されたデータが取得されると、要求元にデータを送信する。
自動電力制御部212は、二次記憶装置222の消費電力を制御する。例えば、二次記憶装置222に一定時間アクセスされなかった場合には、ディスクドライブの回転を停止させるなどの省電力機能を実行する。
ボリューム情報表213は、記憶部202によって提供されるボリュームの情報を格納する。ボリューム情報表213の詳細は、図12にて後述する。
記憶部202は、ホスト計算機1によって読み書きされるデータを格納する。記憶部202は、補助記憶装置221及び二次記憶装置222を備える。
補助記憶装置221は、二次記憶装置222に格納されたデータの読み書きを高速化するために一時的にデータを格納する記憶装置であって、いわゆるキャッシュメモリである。例えば、アクセスされる可能性の高いデータを予測して、あらかじめ補助記憶装置221に格納しておくことによって、二次記憶装置からデータを取得することなく、要求されたデータを提供できる。補助記憶装置221は、データを高速に読み書きすることができる。また、補助記憶装置221は、揮発性メモリであっても、不揮発性メモリであってもよい。
二次記憶装置222は、ホスト計算機1によってアクセスされるデータを格納する記憶装置である。二次記憶装置222には、大容量の記憶資源が用いられ、本発明の第1の実施の形態では、磁気ディスク装置が用いられる。
また、制御部201は、二次記憶装置222によって提供される複数の記憶領域を論理的に1つのボリューム223として、ホスト計算機1に提供する。ホスト計算機1は、ボリューム223に対してデータを読み書きする。
なお、本発明の第1の実施の形態では、ストレージ装置2にデータベース管理システム120によって管理されるデータが格納されるが、ホスト計算機1に二次記憶装置を備える構成としてもよい。
クライアント3は、ネットワーク5を介して、ホスト計算機1に接続し、各種業務処理の実行を指示する。
図2は、本発明の第1の実施の形態のデータベースによって管理されているオブジェクト(関係表)のレイアウトを説明する図である。
本発明の第1の実施の形態では、データベース管理システム120によって、関係表R及び関係表Sが管理されている。関係表R及び関係表Sは、論理的にはそれぞれ1つの関係表であるが、物理的にはボリュームV1及びボリュームV2に分散して格納されている。
関係表R及び関係表Sは、具体的には、ストレージ装置2の記憶部202のボリュームV1及びボリュームV2にラウンドロビン分散で格納されている。ラウンドロビン分散では、データを各ボリュームに交互に格納することによって、ボリュームV1及びボリュームV2にデータを分散して格納する。このようにデータを格納することによって、ディスクアクセスの負荷を分散させ、アクセス性能を向上させることができる。
図3は、本発明の第1の実施の形態のデータベース管理システム120に含まれるボリューム管理表125を示す図である。
ボリューム管理表125は、ストレージ装置2によって提供されるボリューム223に関する情報を格納する。
本発明の第1の実施の形態では、ボリューム管理表125がデータベース管理システム120に含まれているため、必要に応じてストレージ装置2から情報を取得する。なお、ストレージ装置2にボリューム管理表125を保持し、ホスト計算機1が必要に応じて参照するようにしてもよい。
また、ストレージ装置2のボリューム223の構成が変更された場合に、ホスト計算機1のデータベース管理システム120にボリューム223の構成変更を通知し、通知された内容に基づいてボリューム管理表125を更新するようにしてもよい。
ボリューム管理表125は、ボリューム1251及びサイズ1252を含む。ボリューム1251は、ボリューム223を識別する識別子である。サイズ1252は、当該ボリュームに格納可能な記憶容量である。
また、ホスト計算機1のデータベース管理システム120によって、複数のストレージ装置2に格納されたデータが管理される場合には、ストレージ装置2の識別子をボリューム管理表125に追加してもよい。
図4は、本発明の第1の実施の形態のデータベース管理システム120に含まれるレイアウト管理表126を示す図である。
レイアウト管理表126は、データベース管理システム120によって管理されるオブジェクト(関係表)のレイアウト情報を格納する。
レイアウト管理表126は、オブジェクト1261、サイズ1262、格納方法1263及びボリューム1264を含む。
オブジェクト1261は、データベース管理システム120によって管理されるオブジェクトの識別子である。サイズ1262は、当該オブジェクトを格納するために必要な記憶容量である。
格納方法1263は、オブジェクトをボリューム223に格納する方法である。ボリューム1264は、オブジェクトが格納されているボリュームの識別子を格納する。
具体的に説明すると、レコード1265は、関係表Rは10GBのサイズであって、ボリュームV1及びV2にラウンドロビン分散で格納されていることを示している。
図5は、本発明の第1の実施の形態の各処理部における情報の流れを示す図である。
まず、ホスト計算機1で実行されたアプリケーションプログラム110の処理から、データベース管理システム120によって管理されるデータにアクセスする手順について説明する。ここでは、関係表からデータを取得する場合について説明する。
演算装置101は、アプリケーションプログラム110を実行すると、データベース管理システム120の問合せ処理部121にデータを取得するための問合せを送信する。
演算装置101は、問合せ処理部121の処理において、データの問合せを受信すると、問合せ実行計画を生成する。そして、生成された問合せ実行計画に基づいて、ネットワーク5を介して、ストレージ装置2の制御部201にデータの入出力要求(取得要求)を送信する。
ストレージ装置2の制御部201は、受信した入出力要求に基づいて、記憶部202によって提供されるボリューム223に格納された関係表から要求されたデータを取得する。
制御部201は、記憶部202に対する要求されたデータの取得が完了すると、取得されたデータを、ホスト計算機1のデータベース管理システム120の問合せ処理部121に送信する。
演算装置101は、取得されたデータを問合せ処理部121が受信すると、アプリケーションプログラム110の処理に取得されたデータを引き渡し、処理を継続する。
なお、データを更新、追加又は削除などの問合せの場合には、処理が成功したか否かなどの情報を問合せ処理部121に応答する。
次に、問合せ実行時に問合せの実行情報を格納し、データベース管理システム120によって管理されるデータのレイアウトを変更する手順について説明する。
演算装置101は、データベース管理システム120の問合せ処理部121の処理において、要求されたデータをアプリケーションプログラム110に送信すると、実行情報取得部122を実行し、当該問合せの実行情報を送信する。
演算装置101は、実行情報取得部122の処理において、受信した問合せの実行情報を問合せ実行情報管理表127に格納する。受信した問合せの実行情報を問合せ実行情報管理表127に格納する処理は、問合せが実行されるたびに実行される。
演算装置101は、管理者から、レイアウトの変更指示を受け付けると、レイアウト変更計画部123を実行する。レイアウト変更計画部123の処理では、問合せ実行情報管理表127に基づいて、レイアウト変更計画案を作成し、実際に適用するレイアウト変更計画案を選択する。
レイアウト変更実行部124は、選択されたレイアウト変更計画案への変更要求をストレージ装置2の制御部201に送信する。
ストレージ装置2の制御部201は、レイアウトの変更要求を受信すると、受信したレイアウト変更計画案に基づいて、記憶部202に格納されたオブジェクト(データ)のレイアウトを変更する。
ストレージ装置2の制御部201は、レイアウトの変更が完了すると、その旨をホスト計算機1のレイアウト変更実行部に通知する。
レイアウト変更実行部124は、ストレージ装置2の制御部201から通知された内容に基づいて、レイアウト変更の可否などの情報を管理者に提示する。
以下、本発明の第1の実施の形態における処理の詳細を説明する。
図6は、本発明の第1の実施の形態のデータベース管理システム120の問合せ処理部121の処理手順を示すフローチャートである。
問合せ処理部121による処理では、アプリケーションプログラム110などから送信された問合せを受信し、受信した問合せに基づいてストレージ装置2からデータを取得する。そして、取得されたデータを問合せの送信元に応答する。
演算装置101は、まず、アプリケーションプログラム110による処理において送信された問合せを受信する(S601)。
演算装置101は、受信した問合せに基づいて問合せ実行計画を生成し、さらに、生成された問合せ実行計画を最適化する(S602)。このとき、所定の評価基準に基づいて、一つ以上の問合せ実行計画が生成される。複数の問合せ実行計画が生成された場合には、最も評価の高い実行計画を選択する。このように最も評価の高い実行計画を選択することを問合せ実行計画の最適化という。
演算装置101は、最適化された問合せ実行計画に基づいて、ストレージ装置2の記憶部202からデータを取得する(S603)。そして、取得されたデータを問合せの回答として、問合せを送信したアプリケーションプログラム110による処理に送信する(S604)。
最後に、演算装置101は、実行情報取得部122を実行し、実行された問合せに関する情報を送信する(S605)。
図7は、本発明の第1の実施の形態のデータベース管理システム120の実行情報取得部122の処理手順を示すフローチャートである。
実行情報取得部122は、問合せが実行されるたびに実行され、問合せの実行情報を記録する。問合せの実行情報には、実行時間、問い合わせ内容(SQL)、及び問合せ実行計画などが含まれる。
演算装置101は、まず、問合せ処理部121による処理によって実行された問合せの実行情報を受信し(S701)、受信した実行情報を問合せ実行情報管理表127に格納する(S702)。
図8は、本発明の第1の実施の形態の問合せ実行情報管理表127を示す図である。
問合せ実行情報管理表127には、前述のように、問合せの実行情報が記録され、データベース管理システム120の問合せ処理部121が実行されるたびにレコードが追加される。
問合せ実行情報管理表127は、問合せID1271、開始時刻1272、終了時刻1273、実行時間1274、問合せ1275、及び実行計画1276を含む。
問合せID1271は、実行された問合せを一意に識別する識別子である。問合せID1271は、実行されるたびに新たに取得される。
開始時刻1272は、当該問合せの実行が開始された時刻である。終了時刻1273は、当該問合せの実行が終了した時刻である。実行時間1274は、当該問合せの実行時間である。
問合せ1275は、アプリケーションプログラム110又は外部から送信された問合せの内容である。具体的には、SQLが格納される。
実行計画1276は、問合せを受信した問合せ処理部121によって生成された実行計画である。問合せ処理部121で複数の実行計画が生成された場合には、最適化された実行計画が実行計画1276に格納される。
以上のように、問合せが実行されるたびに実行情報を記録し、レイアウト変更計画を生成するための情報として活用する。
ここで、ストレージ装置2において実行される処理について説明する。ストレージ装置2では、ストレージ装置2の消費電力を低減する省電力化処理、及び、ホスト計算機1からの要求に基づいてストレージ装置2からデータを入出力する処理が実行される。
まず、ストレージ装置2における省電力化処理について説明する。本発明の第1の実施の形態のストレージ装置2では、一定時間ボリュームがアクセスされない場合には、消費電力を低減するためにボリュームをスリープ化する。
ボリュームのスリープ化とは、当該ボリュームを提供するディスクドライブの回転を減速若しくは停止させること、又は、ディスクドライブのヘッドの動作を停止させることなどをいう。
また、本発明のスリープ化には、二次記憶装置222以外のストレージ装置2の各部の消費電力を低減させることも含まれる。例えば、補助記憶装置221の一部の給電を停止し、補助記憶装置221の記憶容量を減らすことによって、消費電力を低減するように、補助記憶装置221の一部の給電を停止することもスリープ化に含む。
さらに、補助記憶装置221及び二次記憶装置222の一部が停止されている状態では、当該停止部位を冷却する冷却ファンを停止させてもよい。また、停止部位を制御する制御部201の給電を部分的に停止させてもよい。さらに、給電が停止されている部位に対応する電源モジュールを停止させてもよい。
なお、ボリュームがスリープ化されている状態をスリープ状態という。一方、ボリュームがアクセスされている場合など、通常の稼働状態をアクティブ状態という。
図9は、本発明の第1の実施の形態の各ボリュームの消費電力に関する情報を含むボリューム消費電力モデル情報表128を示す図である。
ボリューム消費電力モデル情報表128には、ボリュームの状態に応じた消費電力量、ボリュームの状態遷移に要する時間及び消費電力が含まれる。また、各ボリュームがスリープ化されるまでの待機時間なども含まれる。
なお、ボリューム消費電力モデル情報表128は、データベース管理システム120の内部に事前に設定されているが、ユーザによって別途設定されてもよい。ユーザによって設定される場合には、変更された設定項目を必要に応じてストレージ装置2に反映させるようにしてもよい。また、ボリューム消費電力モデル情報表128は、データベース管理システム120に含まれているが、ストレージ装置2に格納されていてもよい。この場合には、必要に応じてホスト計算機1がストレージ装置2からボリューム消費電力モデル情報表128を取得する
図9を参照すると、レコード1281から1283には、ボリュームの状態に応じた単位時間当たりの消費電力が格納されている。また、レコード1284には、アクティブ状態からスリープ状態に移行するまでの時間の閾値が格納されている。
図10は、本発明の第1の実施の形態のボリュームの状態遷移、ボリュームの状態ごとの消費電力量、及びボリュームの状態が遷移する場合の消費電力量を示す図である。
各円は、ボリュームの状態を示している。また、各ボリュームの状態は、図9に示したボリューム消費電力モデル情報表128に対応する消費電力が記載されている。なお、本発明の第1の実施の形態では、状態が遷移する際に消費される電力及び必要な時間については考慮しないものとする。
図11は、本発明の第1の実施の形態のストレージ装置2の入出力処理部211によって、ホスト計算機1から送信された入出力要求を処理する手順を示すフローチャートである。
ストレージ装置2の制御部201は、ホスト計算機1の問合せ処理部121が実行されることによって、ホスト計算機1から送信されたデータの入出力要求を受信する(S1101)。
制御部201は、入出力処理部211の処理によって、データの入出力要求を受信すると、データを入出力する対象のボリューム223を特定する。制御部201は、対象ボリュームの状態を取得するために、ボリューム情報表213を参照する(S1102)。ボリューム情報表213は、記憶部202によって提供されるボリュームの情報を格納する表である。
図12は、本発明の第1の実施の形態のストレージ装置2によって提供されるボリューム223の情報を格納するボリューム情報表213である。
ボリューム情報表213は、ボリューム名2131、電力モード2132、及び最終アクセス時間2133を含む。
ボリューム名2131は、ストレージ装置2によって提供されるボリューム223の名称が格納される。電力モード2132は、ボリューム223の状態が格納される。具体的には、ボリューム223が稼働中である場合には「アクティブ」、ボリューム223に一定期間アクセスがなく、ボリューム223がスリープ状態である場合には「スリープ」となる。最終アクセス時間2133は、ボリューム223が最後にアクセスされた日時が記録される。
ここで、図11のフローチャートの説明に戻る。
制御部201は、ボリューム情報表213を参照し、対象ボリュームの状態を取得する。そして、対象ボリュームの状態がスリープ状態か否かを判定する(S1102)。スリープ状態でない場合には(S1102の結果が「No」)、S1105の処理を実行する。
制御部201は、対象ボリュームの状態がスリープ状態である場合には(S1102の結果が「Yes」)、対象ボリュームをアクティブ化する(S1103)。ボリュームのアクティブ化とは、例えば、磁気ディスクドライブの回転が停止しているスリープ状態の場合に、磁気ディスクドライブの回転を再開させるなどによって、ボリューム223をアクセス可能な状態にすることである。そして、ボリューム情報表213の電力モード2132を「スリープ」から「アクティブ」に更新する(S1104)。
制御部201は、ボリューム情報表213の最終アクセス時間2133を更新する(S1105)。さらに、制御部201は、記憶部202にデータの入出力要求を送信し、対象ボリュームのデータを読み書きする(S1106)。
以上の処理が終了すると、制御部201は、ホスト計算機1に対して、問合せの回答を送信し、処理の完了を通知する。
図13は、本発明の第1の実施の形態のストレージ装置2の自動電力制御部212によって、アクティブ状態のボリュームをスリープ状態に移行させる手順を示すフローチャートである。
本発明の第1の実施の形態のストレージ装置2では、ホスト計算機1の処理とは独立して、一定時間アクセスされないボリュームがスリープ状態となるように制御される。本処理は、制御部201の自動電力制御部212によって、周期的に実行される。
制御部201は、ボリューム情報表213を参照し、すべてのボリュームに対して以下の処理を実行する。制御部201は、まず、ボリューム情報表213の電力モード2132を参照し、対象のボリュームがスリープ状態か否かを判定する(S1301)。スリープ状態である場合には(S1301の結果が「Yes」)、別のボリュームについて処理を実行する。
一方、制御部201は、対象のボリュームがスリープ状態でない場合には(S1301の結果が「No」)、ボリューム情報表213の最終アクセス時間2133を参照し、対象のボリュームがアクセスされていない期間が所定の時間(例えば、N秒)以上であるか否かを判定する(S1302)。判定の基準となる所定の時間は、ボリューム消費電力モデル情報表128に事前に設定されており、本発明の第1の実施の形態では、レコード1284を参照すると、「1分」に設定されている。
制御部201は、対象のボリュームがアクセスされていない期間が所定の時間以上の場合には(S1302の結果が「Yes」)、対象ボリュームをスリープ状態に移行させることによって(S1303)、消費電力を低減させる。そして、対象ボリュームについて、ボリューム情報表213の電力モード2132の値を「スリープ」に更新する(S1304)。
以上のように、本発明の第1の実施の形態では、所定の時間、ボリューム223がアクセスされない場合には、当該ボリュームをスリープ状態に移行させることによって、消費電力を低減することができる。そこで、ボリューム223がアクセスされるタイミングを一時に集中させるように制御することなどによって、ボリュームの省電力機能を稼働させて消費電力を低減させる。
図14は、本発明の第1の実施の形態のデータベース管理システム120のレイアウト変更計画部123の処理手順を示すフローチャートである。
レイアウト変更計画部123は、データベース管理システム120にレイアウト変更要求を受け付けた場合に実行される。レイアウト変更計画部123では、所定の評価基準に基づいて、データベース管理システム120によって管理されるデータが格納される記憶領域の候補レイアウト変更計画を作成する。
演算装置101は、レイアウト変更要求を受け付けると、候補レイアウト変更計画を作成する。例えば、図2を参照すると、関係表R及び関係表Sは、ボリュームV1及びボリュームV2にラウンドロビン分散で格納されているが、ハッシュ分散で格納するようにレイアウトを変更する計画を作成する。なお、レイアウト変更計画の作成については、さらに具体的な例を後述する。
演算装置101は、レイアウト変更計画管理表129をホスト計算機1のデータベース管理システム120に作成し、候補レイアウト変更計画ごとにレコードを生成する(S1401)。レイアウト変更計画管理表129の詳細については、図16にて具体例を後述する。
演算装置101は、候補レイアウト変更計画ごとに予測電力コストを算出し、レイアウト変更計画管理表129の対応するレコードに算出された予測電力コストを設定する(S1402)。本発明の第1の実施の形態では、ストレージ装置2において消費される電力の平均を電力コストとする。なお、消費電力の平均以外にも、消費電力の最大値などを電力コストとしてもよい。
演算装置101は、最後に、レイアウト変更計画管理表129に格納された候補レイアウト変更計画の中で最も予測電力コストの値が小さい候補レイアウト変更計画を選択する。そして、選択された候補レイアウト変更計画に基づいてレイアウト変更実行部124を実行する(S1403)。なお、予測電力コストが最も少ない候補レイアウト変更計画を常に選択するのではなく、あらかじめ設定された閾値よりも少ない予測電力コストのレイアウト変更計画から選択するようにしてもよい。具体的には、予測電力コストが所定の閾値よりも少ない複数のレイアウト変更計画の中から、問合せ実行時間が最小の候補レイアウト変更計画を選択してもよい。例えば、10%の電力コストの低減を目標とする場合には、閾値を変更前のレイアウトの予測電力コストの90%の値とすればよく、10%の電力コストの低減を実現した上で、問合せ実行時間が最小の候補レイアウト変更計画を選択することも可能となる。
図15は、本発明の第1の実施の形態のデータベース管理システム120のレイアウト変更実行部124の処理手順を示すフローチャートである。
演算装置101は、レイアウト変更実行部124が実行されると、レイアウト変更計画部123によって送信されたレイアウト変更計画を受信する(S1501)。
演算装置101は、受信したレイアウト変更計画に基づいて、ストレージ装置2の記憶部202に格納されたオブジェクトのレイアウトを変更する。具体的には、ストレージ装置2のボリューム223に配置されたオブジェクトの移動などを、ストレージ装置2の制御部201に要求し、さらに、変更されたレイアウトに基づいて、データベースを再編成及び再定義する。
また、ストレージ装置2に対してレイアウトの変更を指示した場合に、レイアウトの変更が完了した旨の通知をホスト計算機1が受信し、当該通知に基づいて、データベース管理システム120によって、データベースを再編成及び再定義するようにしてもよい。
なお、本発明の第1の実施の形態では、ホスト計算機1でレイアウト変更計画を作成しているが、ストレージ装置2でレイアウト変更計画を作成してもよい。この場合には、ストレージ装置2にレイアウト変更計画部123及びレイアウト変更実行部124を含むように構成すればよい。
ここで、以上説明した本発明の第1の実施の形態の構成及び処理手順に従って、具体的にレイアウト変更計画を作成する一例を説明する。
まず、初期状態としては、図2に示したように、関係表R及び関係表Sがデータベース管理システム120によって管理されている。関係表R及び関係表Sは、ボリュームV1及びボリュームV2にラウンドロビン分散で格納されている。
演算装置101は、レイアウト変更実行部124を実行し、候補レイアウト変更計画を作成する。本発明の第1の実施の形態では、案1としてラウンドロビン分散(変更無し)、案2としてハッシュ分散、案3として単純格納の候補レイアウト変更計画が作成される。
図16は、本発明の第1の実施の形態のレイアウト変更計画管理表129を示す図である。
レイアウト変更計画管理表129は、案1291、概要1292、レイアウト変更計画1293及び予測電力コスト1294を含む。
案1291は、作成された候補レイアウト変更計画の識別子である。概要1292は、作成された候補レイアウト変更計画の概要である。
レイアウト変更計画1293は、候補レイアウト変更計画の内容が格納される。実際には、候補レイアウト変更計画に対応するレイアウト管理表が主記憶装置102に構築され、構築されたレイアウト管理表のアドレスが格納される。
図16を参照すると、案1に対応するレイアウト管理表は、関係表R及び関係表Sが、ラウンドロビン分散で、ボリュームV1及びボリュームV2に格納されることを示しており、図4に示したレイアウト管理表と同じである。ボリュームV1及びボリュームV2に配置される関係表R及び関係表Sのレイアウトを図17Aに示す。
また、案2に対応するレイアウト管理表は、関係表R及び関係表Sがハッシュ分散で、ボリュームV1及びボリュームV2に格納されることを示している。ハッシュ分散では、ハッシュ関数を利用して、関係表R及び関係表Sに格納されたデータがボリュームV1及びボリュームV2に均等に分散するように配置される。また、関係表R及び関係表Sのキー値が同じ場合には、同じボリュームにレコードが格納される。ボリュームV1及びボリュームV2に配置される関係表R及び関係表Sのレイアウトを図17Bに示す。
さらに、案3に対応するレイアウト管理表は、ボリュームV1に関係表Rが格納され、ボリュームV2に関係表Sが格納されることを示している。ボリュームV1及びボリュームV2に配置される関係表R及び関係表Sのレイアウトを図17Cに示す。
予測電力コスト1294は、候補レイアウト変更計画ごとに計算される消費電力の予測値である。予測電力コスト1294の値は、レイアウト変更計画部123のS1402の処理で計算される。予測電力コストは、前述したように、ストレージ装置2において消費される電力の平均である。具体的な算出方法については、図18A、図18B及び図18Cを参照しながら説明する。
図18A、図18B及び図18Cは、候補レイアウト変更計画の各案に対応する各ボリュームの状態を時系列で示した図である。図18A、図18B及び図18Cには、図8に示した問合せ実行情報管理表127の問合せIDが#1001から#1003までの実行情報に対応する問合せを実行した場合の各ボリュームに対するアクセス状況が示されている。問合せID#1001及び#1003は、指定された条件で関係表Rと関係表SをIDで結合した結果を取得する問合せである。問合せID#1002は、指定された条件で関係表Sのみから情報を取得する問合せである。
なお、予測電力コストは、図9に示したボリューム消費電力モデル情報表128に設定された値に基づいて計算する。また、本発明の第1の実施の形態では、ホスト計算機1とストレージ装置2とを接続するネットワークの帯域は10GB/分(167MB/秒)と仮定する。したがって、ホスト計算機1及びストレージ装置2の間で大量のデータを連続してやり取りすると、データの伝送がボトルネックになる。
以上の前提条件に基づいて、候補レイアウト変更計画の各案の予測電力コストを算出する。
図18Aは、本発明の第1の実施の形態における候補レイアウト変更計画の案1に対応する各ボリュームの状態を時系列で示す図である。
問合せID#1001及び#1003は、前述のように、関係表R及び関係表Sを内部結合した結果を取得する問合せであり、実行計画がハッシュ結合となっている。
具体的に問合せの実行手順を説明すると、まず、関係表Rをすべて読み出してハッシュ表R’が主記憶装置102に作成される。そして、関係表Sを読み出してハッシュ表R’と照合し、照合結果が問合せの実行結果となる。
案1では、関係表Rは、ボリュームV1及びボリュームV2にラウンドロビン分散で格納されているため、データを読み出している間は、ボリュームV1及びボリュームV2の両方に連続して(交互に)アクセスすることになる。同様に、関係表Sを読み出す場合にもボリュームV1及びボリュームV2の両方に連続して(交互に)アクセスする。
したがって、問合せID#1001及び#1003が実行されている12:31から12:42までの間、12:52から13:03までの間はボリュームV1及びボリュームV2がアクティブ状態となっている。
また、問合せID#1002では、指定された条件を満たすレコードを関係表Sから取得する問合せであるため、関係表Sのみが読み出される。関係表Sは、ボリュームV1及びボリュームV2にラウンドロビン分散で格納されているため、問合せID#1002の問合せが実行されている間は、ボリュームV1及びボリュームV2に常にアクセスされる。したがって、12:42から12:52までの間はボリュームV1及びボリュームV2がアクティブ状態となっている。
以上より、案1では、問合せID#1001から#1003の問合せを実行した場合には、問合せが実行されている間、常にボリュームV1及びV2がアクティブ状態となるため、20W×32分×2=1280W=76800Jが消費電力となる。また、平均消費電力は、1280W÷32分=40W/分となる。
図18Bは、本発明の第1の実施の形態における候補レイアウト変更計画の案2に対応する各ボリュームの状態を時系列で示す図である。
案2では、関係表Rは、ボリュームV1及びボリュームV2にハッシュ分散で格納されているため、ボリュームV1に格納された関係表Rに結合される関係表Sのデータは、ボリュームV1に格納されている。ボリュームV2についても同様である。
問合せID#1001及び#1003では、まず、ボリュームV1に格納されている関係表Rのデータを読み出し、ハッシュ表を作成し、同じくボリュームV1に格納されている関係表Sと照合する。そして、ボリュームV2についても同様に処理することによって、問合せの実行結果を取得する。
したがって、問合せID#1001及び#1003が実行されている12:31から12:42までの間、前半にはボリュームV1がアクティブ状態となり、ボリュームV2がスリープ状態となる。一方、後半には、ボリュームV2がアクティブ状態となり、ボリュームV1がスリープ状態となる。問合せID#1003の場合も同様である。
問合せID#1002では、関係表Sに格納されたデータを順次読み出すため、案1と同様に、問合せID#1002の問合せが実行されている間は、ボリュームV1及びボリュームV2に常にアクセスされる。したがって、12:42から12:52までの間はボリュームV1及びボリュームV2がアクティブ状態となっている。
以上より、案2では、問合せID#1001から#1003の問合せを実行した場合には、(20W×5.5分+15W×1分+1W×4.5分)×2+20W×10分×2+(20W×5.5分+15W×1分+1W×4.5分)×2=918W=55080Jが消費電力となる。また、平均消費電力は、918W÷32分=28.7W/分となる。
図18Cは、本発明の第1の実施の形態における候補レイアウト変更計画の案3に対応する各ボリュームの状態を時系列で示す図である。
案3では、関係表Rは、ボリュームV1に格納され、関係表SはボリュームV2に格納されている。
問合せID#1001及び#1003では、まず、ボリュームV1に格納されている関係表Rのデータを読み出し、ハッシュ表を作成する。このとき、ボリューム1のみアクセスされる。そして、ボリュームV2に格納されている関係表Sと照合する。このとき、ボリュームV1は、アクセスされる必要がないため、スリープ状態に移行する。なお、図4のレイアウト管理表126を参照すると、関係表Rのサイズは10GBであって、関係表Sのサイズ(100GB)よりも小さいため、関係表Rに格納されたデータを読み出す時間は関係表Sに格納されたデータを読み出す時間よりも大幅に短くなっている。
問合せID#1002では、関係表Sのデータのみを読み出すため、ボリュームV2のみにアクセスされる。
以上より、案3では、問合せID#1001から#1003の問合せを実行した場合には、(20W×1分+15W×1分+1W×9分)×2+(15W×1分+20W×10分)×2+(20W×10分+1W×10分)=728W=43680Jが消費電力となる。また、平均消費電力は、728W÷32分=22.8W/分となる。
以上のように、案1から案3までの候補レイアウト変更計画について予測電力コストを算出すると、案3のレイアウト変更計画の予測電力コストが最も少なくなる。したがって、予測電力コストが最小となるようにレイアウトを変更する場合には、案3のレイアウト変更計画を選択して、レイアウト変更実行部124を実行する。
本発明の第1の実施の形態によれば、候補レイアウト変更計画を作成し、問合せ実行情報に基づいて、作成された候補レイアウト変更計画ごとのストレージ装置2の消費電力を算出する。そして、消費電力が最も少ない候補レイアウト変更計画を選択し、ストレージ装置2に格納されるデータベースオブジェクトのレイアウトを変更することによって、ストレージ装置2の消費電力を低減することができる。
なお、本発明の第1の実施の形態では、計算機システムに一台のホスト計算機1が含まれているが、複数のホスト計算機1が含まれていてもよい。計算機システムに複数のホスト計算機1が含まれる場合には、一台のホスト計算機1をレイアウト変更専用のホスト計算機1とし、当該ホスト計算機1にのみレイアウト変更計画部123、レイアウト変更実行部124及び関連する情報を備えるように構成してもよい。また、レイアウト変更計画部123、レイアウト変更実行部124及び関連する情報を独立した構成とし、ホスト計算機1ではなく、ストレージ装置2に備えるように構成してもよい。
(第2の実施の形態)
本発明の第1の実施の形態では、候補レイアウト変更計画の予測電力コストを計算して、レイアウト変更計画を決定する方法について説明した。
本発明の第2の実施の形態では、実行情報取得部が問合せの実行情報を収集し、当該実行情報に基づいて、レイアウト変更計画部によって省電力化ルールベースのレイアウト変更計画を作成する方法について説明する。
なお、本発明の第1の実施の形態と共通する内容については適宜説明を省略する。
図19は、本発明の第2の実施の形態のデータベースによって管理されているオブジェクト(関係表)のレイアウトを説明する図である。
本発明の第2の実施の形態では、データベース管理システム120によって、関係表R、関係表S、関係表T及び関係表Uが管理されている。関係表R、関係表S、関係表T及び関係表Uは、ボリュームV1、ボリュームV2及びボリュームV3に分散して格納されている。具体的には、関係表R、関係表S、関係表T及び関係表Uは、ストレージ装置2の記憶部202のボリュームV1、ボリュームV2及びボリュームV3にラウンドロビン分散で格納されている。
図20は、本発明の第2の実施の形態のデータベース管理システム120に含まれるボリューム管理表125を示す図である。
本発明の第2の実施の形態のボリューム管理表125の構成は、第1の実施の形態と同じである。図20を参照すると、本発明の第2の実施の形態では、各ボリュームのサイズは、500GBとなっている。
図21は、本発明の第2の実施の形態のデータベース管理システム120に含まれるレイアウト管理表126を示す図である。
本発明の第2の実施の形態のレイアウト管理表126の構成は、第1の実施の形態と同じである。
図21を参照すると、関係表R及び関係表Sのサイズは100GBであり、関係表T及び関係表Uのサイズは50GBとなっている。また、各関係表は、ラウンドロビン分散で各ボリュームに格納されている。
図22は、本発明の第2の実施の形態の問合せ実行情報管理表127を示す図である。
問合せ実行情報管理表127は、本発明の第1の実施の形態と同様に、データベース管理システム120の問合せ処理部121が実行されるたびに実行情報が記録される。また、問合せ実行情報管理表127の構成は、本発明の第1の実施の形態と同じである。
本発明の第2の実施の形態の問合せ実行情報管理表127には、問合せIDが#2001から#2005までのレコードが示されている。問合せIDが#2001、#2003及び#2004の問合せは、所定の条件を満たすレコードを2つの関係表を結合して取得する問合せである。問合せIDが#2002及び#2005の問合せは、所定の条件を満たすレコードを単一の関係表から取得する問合せである。
図23は、本発明の第2の実施の形態のデータベース管理システム120のレイアウト変更計画部123の処理手順を示すフローチャートである。
レイアウト変更計画部123は、本発明の第1の実施の形態と同様に、データベース管理システム120にレイアウト変更要求を受け付けた場合に実行される。本発明の第2の実施の形態のレイアウト変更計画部123では、共起情報に基づいて、同時にアクセスされるオブジェクト(関係表)を集中して配置させるように候補レイアウト変更計画を作成する。
演算装置101は、レイアウト変更要求を受け付けると、まず、統計情報管理表130を主記憶装置102に作成する(S2301)。統計情報管理表130には、問合せによって同時にアクセスされるオブジェクトの組合せごとにレコードが作成される。そして、問合せの実行情報に基づいて、各関係表(オブジェクト)のアクセス回数などの統計情報が格納される。統計情報管理表130を作成する手順については、図24にて後述する。また、統計情報管理表130の具体例については、図25にて後述する。
次に、演算装置101は、S2301の処理で作成された統計情報管理表130に基づいて、新しくレイアウト管理表を構築する(S2302)。そして、新レイアウト管理表が構築されたか否かを判定する(S2303)。構築された新レイアウト管理表は、ホスト計算機1の主記憶装置102に記憶される。新レイアウト管理表を構築できなかった場合には(S2303の結果が「No」)、本処理を終了する。
演算装置101は、新レイアウト管理表が構築されると(S2303の結果が「Yes」)、構築された新レイアウト管理表を参照するレイアウト変更計画管理表を作成する(S2304)。
演算装置101は、作成されたレイアウト変更計画管理表から新レイアウト管理表を参照するレイアウト変更計画を選択し、レイアウト変更実行部124を実行する(S2305)。
図24は、本発明の第2の実施の形態の統計情報管理表130を作成する手順を示すフローチャートである。
演算装置101は、問合せ実行情報管理表127を参照し、問合せの処理時刻が新しい順に所定の件数(N件)の実行情報を取得する。そして、取得された実行情報を解析し、各問合せにおけるオブジェクトの組合せごとのアクセス回数を算出し、統計情報管理表130に格納する(S2401)。さらに、アクセス回数に基づいて、全レコードの非アクセスオブジェクトの加重個数を算出し、統計情報管理表130に格納する。
演算装置101は、非アクセスオブジェクトの加重個数に基づいて、統計情報管理表130の各レコードを降順に整列する(S2402)。
図25は、本発明の第2の実施の形態の統計情報管理表130を示す図である。
統計情報管理表130は、問合せの実行時にアクセスされるオブジェクトの組合せX1301、アクセスオブジェクト個数1302、非アクセスオブジェクト個数1303、頻度1304及び非アクセスオブジェクト加重個数1305を含む。
オブジェクトの組合せX1301は、オブジェクトごとにさらにフィールドを含み、問合せの実行によってアクセスされるオブジェクトに対応するフィールドには、‘1’(アクセス有)、アクセスされないオブジェクトには、‘0’(アクセス無)が格納される。
アクセスオブジェクト個数1302は、問合せによってアクセスされるオブジェクトの個数である。例えば、関係表R及び関係表Sにアクセスする問合せの場合には、‘2’が格納される。なお、オブジェクトの組合せXのアクセスオブジェクトの個数は、n(X)と表す。
非アクセスオブジェクト個数1303は、問合せによってアクセスされないオブジェクトの個数である。例えば、関係表Sのみにアクセスする問合せの場合には、‘3’が格納される。なお、オブジェクトの組合せXの非アクセスオブジェクトの個数は、4−n(X)で表すことができる。
頻度1304は、問合せの実行情報に基づいて、問合せによってアクセスされるオブジェクト(関係表)の組合せと一致する頻度(割合)である。本発明の第2の実施の形態では、頻度1304は、全体を1とした場合の頻度としたが、問合せの実行回数そのものであってもよい。なお、頻度はf(X)と表される。
非アクセスオブジェクト加重個数1305は、非アクセスオブジェクト個数1303を頻度1304で加重した値である。本発明の第2の実施の形態では、非アクセスオブジェクト加重個数を、(4−n(X))×f(X)としている。
なお、統計情報管理表130にすべての値が設定されると、非アクセスオブジェクトの加重個数に基づいて、各レコードが降順に整列される(図24のS2402)。そして、整列された統計情報管理表130の先頭レコードから順にオブジェクトを割り当てることによって、非アクセスオブジェクトの個数が多く、かつ、頻度の多いオブジェクトの組合せを優先して、各ボリュームにオブジェクトを割り当てることができる。
図26は、本発明の第2の実施の形態の新レイアウト管理表を構築する手順を示すフローチャートである。
演算装置101は、まず、新たにレイアウト管理表を作成するために、主記憶装置102に記憶領域を割り当てる(S2601)。
演算装置101は、次に、非アクセスオブジェクトの加重個数に基づいて降順に整列された統計情報管理表130を先頭のレコードから順に取得して以下の処理を実行する(S2602)。
演算装置101は、取得されたレコードに対応するオブジェクトの組合せXの要素(オブジェクト、関係表)がボリューム223に割当済みか否かを判定する(S2603)。オブジェクトの組合せXの要素が割当済みの場合には(S2603の結果が「T」)、次のレコードについて処理を継続する。
演算装置101は、オブジェクトの組合せXの要素が割当済みでない場合には(S2602の結果が「F」)、割り当てられたオブジェクトの容量が最も小さいボリュームを選択する(S2604)。なお、空き領域が最も多いボリュームを選択してもよい。
演算装置101は、オブジェクトの組合せXの要素を選択されたボリュームに割当可能か否かを判定する(S2605)。演算装置101は、オブジェクトの組合せXの要素を割当可能でない場合には(S2605の結果が「F」)、次のレコードについて処理を継続する。
なお、本発明の第2の実施の形態では、オブジェクトの組合せXの要素のうち一部が割り当てられている場合には、S2604からS2606の処理を実行せずに、次のレコードについて処理を継続しているが、既に割り当てられているオブジェクトと同じボリュームに、未割当のオブジェクトを割り当てるようにしてもよい。
演算装置101は、オブジェクトの組合せXの要素を割当可能な場合には(S2605の結果が「T」)、新レイアウト管理表に当該割当を追加し(S2606)、次のレコードについて処理を継続する。
演算装置101は、統計情報管理表130のすべてのレコードについて処理が終了すると、未割当のオブジェクトが残っているか否かを判定する(S2607)。未割当のオブジェクトが残っている場合には(S2607の結果が「T」)、新レイアウト管理表を削除し(S2608)、新レイアウト管理表の構築が失敗したものとして本処理を終了する。未割当のオブジェクトが残っていない場合には(S2607の結果が「F」)、新レイアウト管理表の構築が成功したものとして本処理を終了する。
ここで、以上の手順に従って、本発明の第2の実施の形態のレイアウト変更計画管理表129を作成する具体例について説明する。主として、作成された統計情報管理表130に基づいて、新レイアウト管理表を構築する手順について説明する。
図25に示された統計情報管理表130を参照すると、レコード1306からレコード1309の非アクセスオブジェクト加重個数が0よりも大きい値となっている。統計情報管理表130は、非アクセスオブジェクト加重個数1305の値で降順に整列されているため、図26のS2602のループでは、レコード1308、1307(1307、1308の順でも可)、1306、1309の順で処理が実行される。
まず、レコード1308について検討すると、オブジェクトの組合せXの要素は、関係表Rのみとなる。また、関係表Rはボリューム223に割り当てられていない(S2603の結果が「F」)。
各ボリューム223には、現時点では、各ボリューム223にオブジェクト(関係表)が割り当てられていないため、割当容量が最小のボリュームとして、ボリュームV1が選択される(S2604)。
図20のボリューム管理表125を参照すると、ボリュームV1のサイズは500GBであり、図21のレイアウト管理表126を参照すると、関係表Rのサイズは100GBである。したがって、ボリュームV1に関係表Rを割当可能である(S2605の結果が「T」)。そして、新レイアウト管理表にオブジェクト「関係表R」、サイズ「100GB」、格納方法「単純格納」、ボリューム「V1」としてレコードを追加する。
同様に、レコード1307について検討すると、ボリュームV2に関係表Sが格納される。
レコード1306では、オブジェクトの組合せXの要素は、関係表T及び関係表Uとなる。また、関係表T及び関係表Uはボリューム223に割り当てられていない(S2603の結果が「F」)。
割当容量が最小のボリュームは、ボリュームV3となる(S2604)。また、ボリュームV3のサイズは500GBであり、関係表T及び関係表Uのサイズはそれぞれ50GBである。したがって、ボリュームV3に関係表T及び関係表Uを割り当てることができる(S2605の結果が「T」)。そして、新レイアウト管理表にオブジェクト「関係表T」及び「関係表U」に対応するレコードをそれぞれ追加する。
レコード1309では、オブジェクトの組合せXの要素は、関係表R及び関係表Sとなる。関係表R及び関係表Sは、既にボリューム223に割り当てられているため(S2603の結果が「T」)、次のレコードに対して処理が継続される。
以上のようにして、新レイアウト管理表が構築される。以下、本発明の第2の実施の形態の新レイアウト管理表を含むレイアウト変更計画管理表129を図27に示す。
図27は、本発明の第2の実施の形態のレイアウト変更計画管理表129を示す図である。
本発明の第2の実施の形態では、ルールベースでレイアウト変更計画を作成しており、一つのレイアウト変更計画案が立案されている。
また、レイアウト変更計画1293には、前述した手順で構築された新レイアウト管理表が参照されている。
なお、図27に示すレイアウト変更計画管理表129には、予測電力コスト1294が含まれていないが、他の手順でレイアウト管理表を構築した場合などには、レイアウト変更計画案ごとに予測電力コスト1294を計算してレイアウト変更計画を選択するようにしてもよい。
図28は、本発明の第2の実施の形態の変更前及び変更後の各関係表のレイアウトを示す図である。
変更前の関係表R、関係表S、関係表T、及び関係表Uは、ボリュームV1、ボリュームV2及びボリュームV3にラウンドロビン分散で格納されている。
一方、図27に示した新レイアウト管理表に基づいて各関係表が各ボリュームに配置されると、関係表RはボリュームV1に、関係表SはボリュームV2に、関係表T及び関係表Uは、ボリュームV3に格納される。
変更前には、すべてのボリュームがアクティブ状態となっている。この場合の電力コストを1として、統計情報管理表130を参照しながら変更後の電力コストを計算する。
関係表Rのみがアクセスされている場合には(レコード1308)、頻度が0.35であり、稼働しているボリュームはボリュームV1のみである。したがって、レイアウト変更後の消費電力コストは、0.35×1÷3=0.117となる。
関係表Sのみがアクセスされている場合には(レコード1307)、頻度が0.35であり、稼働しているボリュームはボリュームV2のみである。したがって、レイアウト変更後の消費電力コストは、レコード1308の場合と同様に、0.35×1÷3=0.117となる。
関係表R及び関係表Sがアクセスされる場合には(レコード1309)、頻度が0.05であり、稼働しているボリュームはボリュームV1及びV3となる。したがって、レイアウト変更後の消費電力コストは、0.05×2÷3=0.033となる。
関係表T及び関係表Uがアクセスされる場合には(レコード1306)、頻度が0.25であり、稼働しているボリュームはボリュームV3のみである。したがって、レイアウト変更後の消費電力コストは、0.25×1÷3=0.083となる。
以上より、レイアウト変更後の消費電力コストは、0.117+0.117+0.033+0.083=0.35となり、65%の消費電力を削減することができる。
本発明の第2の実施の形態によれば、データベースオブジェクトの共起情報に基づいて、同時にアクセスされるオブジェクトを同じボリュームに格納するようにレイアウトを変更することによって、ストレージ装置2の消費電力を低減させることができる。
(第3の実施の形態)
本発明の第3の実施の形態のストレージ装置2では、ボリューム223が複数のディスクドライブによって構成され、さらに、データを分散して保持するストライピング(例えば、RAID0)が適用されている場合について、消費電力を低減する方法について説明する。
図29は、本発明の第3の実施の形態のデータベースによって管理されているオブジェクト(関係表)のレイアウトを説明する図である。
本発明の第3の実施の形態では、データベース管理システム120によって、関係表R、関係表S、関係表T及び関係表Uが管理されている。関係表R、関係表S、関係表T及び関係表Uは、ボリュームV1、ボリュームV2及びボリュームV3に分散されて格納されている。
また、関係表R、関係表S、関係表T及び関係表Uは、本発明の第2の実施の形態と同様に、ボリュームV1、ボリュームV2及びボリュームV3にラウンドロビン分散で格納されている。
さらに、ボリュームV1、ボリュームV2及びボリュームV3は、ディスクアクセスを高速化させるために、3台のディスクドライブによって構成されたRAID0(ストライピング)が適用されている。なお、初期状態では、格納されているデータにかかわらず、各ディスクドライブによって提供される記憶領域がページ単位に分割され、ページごとにデータが分散されて格納されている(対称ストライピング)。
図30は、本発明の第3の実施の形態のデータベース管理システム120に含まれるボリューム管理表125を示す図である。
本発明の第3の実施の形態のボリューム管理表125の構成は、本発明の第1の実施の形態の構成に加え、ボリューム構成1253及びディスクドライブ1254を含む。
ボリューム構成1253は、各ボリュームの構成を示す。ディスクドライブ1254は、各ボリュームを構成するディスクドライブの識別子が格納される。
図30を参照すると、本発明の第1の実施の形態と同様に、各ボリュームのサイズは、500GBとなっている。また、各ボリュームは、図29にて説明したように、3台のディスクドライブによって1つの記憶領域が提供されている。さらに、データが各ディスクドライブに分散して格納されるストライピング構成となっており、初期状態では、ボリューム構成1253の値が「対称ストライピング」となっている。
図31は、本発明の第3の実施の形態のデータベース管理システム120に含まれるレイアウト管理表126を示す図である。
本発明の第3の実施の形態のレイアウト管理表126は、本発明の第2の実施の形態と同じである。ホスト計算機1は、ディスクドライブに直接データを読み書きするのではなく、ボリューム223に対してデータを読み書きするため、レイアウト管理表126は本発明の第2の実施の形態と同じになっている。
図32は、本発明の第3の実施の形態のデータベース管理システム120の問合せ処理部121の処理手順を示すフローチャートである。
本発明の第3の実施の形態の問合せ処理は、アプリケーションプログラム110などから送信された問合せを受信する処理から、問合せの実行結果を呼出し元に送信する処理までについては、図6に示した本発明の第1の実施の形態の問合せ処理と同じである。具体的には、図6のS601からS604までの処理と、図32のS3201からS3204までの処理とは同じ処理である。
演算装置101は、S3201からS3204までの処理が終了すると、実行情報取得部122を実行し、実行情報とアクセスされたページに関連する情報を送信する(S3205)。
図33は、本発明の第3の実施の形態のデータベース管理システム120の実行情報取得部122の処理手順を示すフローチャートである。
実行情報取得部122は、問合せが実行されるたびに実行され、問合せの実行情報及び問合せの実行によってアクセスされたページの情報を記録する。
演算装置101は、まず、問合せ処理部121の処理から実行された問合せの実行情報及びアクセスされたページに関連する情報を受信する(S3301)。そして、受信した実行情報を問合せ実行情報管理表127に格納し、さらに、受信したページアクセス情報に基づいて、ページアクセス統計管理表131を更新する(S3302)。
問合せ実行情報管理表127は、本発明の第1の実施の形態と同じである。また、ページアクセス統計管理表131については、図34にて後述する。
図34は、本発明の第3の実施の形態のデータベース管理システム120に含まれるページアクセス統計管理表131を示す図である。
ページアクセス統計管理表131は、各ボリュームによって提供される記憶領域について、ページごとのアクセス回数を管理する。
ページアクセス統計管理表131は、ボリューム1311、ページ番地1312、オブジェクト1313、及びアクセス回数1314を含む。
ボリューム1311は、ボリューム223の識別子である。ページ番地1312は、各ボリュームによって提供される記憶領域のページの位置を示している。オブジェクト1313は、当該ページに格納されたデータベースオブジェクトを識別する情報が格納され、例えば、「関係表R」などと記録される。アクセス回数1314は、当該ボリュームのページ番地にアクセスされた回数を格納する。
図35は、本発明の第3の実施の形態のデータベース管理システム120のレイアウト変更計画部123の処理手順を示すフローチャートである。
レイアウト変更計画部123は、本発明の第1の実施の形態と同様に、データベース管理システム120にレイアウト変更要求を受け付けた場合に実行される。本発明の第3の実施の形態では、レイアウト変更計画部123が実行されると、ページごとのアクセス情報に基づいて、アクセスが集中するページを特定のディスクドライブに集中して配置させるように候補レイアウト変更計画を作成する。このように、レイアウトを変更することによって、アクセス頻度の低いページを格納するディスクドライブをスリープ化させることによって省電力化を図ることができる。
演算装置101は、レイアウト変更要求を受け付けると、まず、統計情報管理表130を主記憶装置102に作成する(S3501)。次に、S3501の処理で作成された統計情報管理表130に基づいて、新しくレイアウト管理表を構築する(S3502)。そして、新レイアウト管理表が構築されたか否かを判定する(S3503)。新レイアウト管理表を構築できなかった場合には(S3503の結果が「No」)、本処理を終了する。S3501からS3503までの処理は、図23に示した本発明の第2の実施の形態のレイアウト変更計画処理と同じである。また、統計情報管理表130の構成についても本発明の第2の実施の形態と同じである。
演算装置101は、新レイアウト管理表が構築されると(S3503の結果が「Yes」)、ページマップ管理表132を構築する(S3504)。ページマップ管理表132の構築方法については、図36にて後述し、ページマップ管理表132の構成については、図37にて後述する。
演算装置101は、新レイアウト管理表、ページマップ管理表、及び、ボリューム管理表を参照するレイアウト変更計画管理表を作成する(S3505)。作成されたレイアウト変更計画管理表の一例を、図37にて後述する。
最後に、演算装置101は、作成されたレイアウト変更計画管理表に基づいてレイアウト変更実行部124を実行する(S3506)
図36は、本発明の第3の実施の形態のページマップ管理表132を構築する手順を示すフローチャートである。
演算装置101は、まず、ページマップ管理表132を構築するために、主記憶装置102に記憶領域を割り当てる(S3601)。
演算装置101は、ボリュームごとに、ページアクセス統計管理表131の各レコードをアクセス回数に基づいて降順に整列する(S3602)。
演算装置101は、ボリュームごとに、整列されたページアクセス統計管理表131の各レコードを読み出し、容量が残っている最も番号が小さいディスクドライブを選択する(S3803)。例えば、ボリューム2であれば、ディスクドライブD21、D22及びD23によって構成されているため、最も番号が小さいディスクドライブは、D21となる。
演算装置101は、ページマップ管理表132に、ボリューム、ページ番地、選択されたディスクドライブ、及びディスクドライブ内のページ番地を含むレコードを追加する(S3804)。こうすることによって、番号が小さいディスクドライブにアクセス回数の多いページを集中させることができる。
図37は、本発明の第3の実施の形態のレイアウト変更計画管理表129を示す図である。
本発明の第3の実施の形態では、本発明の第2の実施の形態と同様に、ルールベースでレイアウト変更計画を作成しており、一つのレイアウト変更計画案が作成される。
また、本発明の第3の実施の形態のレイアウト変更計画1293には、新レイアウト管理表、ボリューム管理表、及びページマップ管理表132が含まれている。
図37の新レイアウト管理表を参照すると、本発明の第2の実施の形態と同様に、関係表RはボリュームV1に、関係表SはボリュームV2に、関係表T及び関係表Uは、ボリュームV3に格納される。また、ボリューム管理表では、アクセス頻度の高いページが番号の若いディスクドライブに集中するように配置されるため、ボリューム構成が対称ストライピングから非対称ストライピングに変更される。
ページマップ管理表132は、ボリューム1321、ページ番地1322、ディスクドライブ1323、及びディスク内ページ番地1324を含む。
ボリューム1321は、ボリュームの識別子である。ページ番地1322は、ボリューム内におけるページの配置を示している。ディスクドライブ1323は、当該ページを物理的に提供するディスクドライブの識別子である。ディスク内ページ番地1324は、ディスクドライブ内における当該ページの配置を示している。
演算装置101は、レイアウト変更実行部124を実行し、ページマップ管理表132に基づいて、ストレージ装置2に各ページの配置を変更するように要求する。
図38は、本発明の第3の実施の形態の変更前及び変更後の各関係表のレイアウトを示す図である。
変更前の関係表R、関係表S、関係表T、及び関係表Uは、ボリュームV1、ボリュームV2及びボリュームV3にラウンドロビン分散で格納されている。また、各ボリュームは、3台のディスクドライブによって構成され、RAID0(ストライピング)が適用されている。
一方、図37に示した新レイアウト管理表に基づいて、各関係表が各ボリュームに配置されると、関係表RはボリュームV1に、関係表SはボリュームV2に、関係表T及び関係表Uは、ボリュームV3に格納される。
さらに、各ボリュームでは、図37に示したページマップ管理表132に基づいて、アクセス回数の多いデータが若い番号が付されたディスクドライブに優先して格納されるように構成される。具体的に、ボリューム1では、ディスクドライブD11、D12及びD13によって構成され、番号の若いD11のディスクドライブにアクセス回数の多いページが格納される。他のボリュームについても同様である。
本発明の第3の実施の形態によれば、アクセス頻度の高いデータを格納する領域を特定のディスクドライブに集中させることによって、アクセス頻度の低いデータを格納するディスクドライブを休ませることができる。特に、特定のデータに対して集中的にアクセスされる場合には、ボリュームを構成する一部のディスクドライブのみを稼働させることによって、消費電力を低減することができる。
(第4の実施の形態)
本発明の第4の実施の形態では、複数のディスクドライブによって構成される単一のボリュームが提供され、パリティ情報を含むRAID構成(例えば、RAID5)となっている場合について、消費電力を低減する方法について説明する。
図39は、本発明の第4の実施の形態のデータベースによって管理されているオブジェクト(関係表)のレイアウトを説明する図である。
本発明の第4の実施の形態では、データベースによって関係表R及び関係表Sが管理される。関係表R及び関係表Sを格納するボリュームは、6台のディスクドライブによって構成され、RAID5構成となっている。
各ディスクドライブによって提供される記憶領域は、所定の容量でページごとに分割され、関係表R、関係表S又はパリティデータを分散して格納している。
図40は、本発明の第4の実施の形態のデータベース管理システム120に含まれるボリューム管理表125を示す図である。
本発明の第4の実施の形態のボリューム管理表125の構成は、本発明の第3の実施の形態と同じである。図40を参照すると、ディスクドライブD11、D12、D13、D14、D15、及びD16によってRAID5構成となっているボリュームV1が記憶領域として提供されていることがわかる。
図41は、本発明の第4の実施の形態のデータベース管理システム120に含まれるレイアウト管理表126を示す図である。
本発明の第4の実施の形態のレイアウト管理表126の構成は、本発明の第2の実施の形態と同じである。図41を参照すると、本発明の第4の実施の形態では、各関係表は、ボリュームV1にそれぞれ格納されている。
図42は、本発明の第4の実施の形態の統計情報管理表130を示す図である。
本発明の第4の実施の形態の統計情報管理表130の構成は、本発明の第2の実施の形態と同じである。本発明の第4の実施の形態では、オブジェクトの種類が関係表R及び関係表Sの二種類となっている。
図43は、本発明の第4の実施の形態のデータベース管理システム120のレイアウト変更計画部123の処理手順を示すフローチャートである。
レイアウト変更計画部123は、本発明の第1の実施の形態と同様に、データベース管理システム120にレイアウト変更要求を受け付けた場合に実行される。本発明の第4の実施の形態のレイアウト変更計画部123では、本発明の第3の実施の形態と同様に、本発明の第3の実施の形態では、レイアウト変更計画部123が実行されると、ページごとのアクセス情報に基づいて、アクセスが集中するページを特定のディスクドライブに集中して配置させるように候補レイアウト変更計画を作成する。
演算装置101は、レイアウト変更要求を受け付けると、まず、ボリュームごとに、統計情報管理表130を主記憶装置102に作成する(S4301)。次に、S4301の処理で作成された統計情報管理表130に基づいて、新しくレイアウト管理表を構築する(S4302)。新レイアウト管理表の構築方法については、図44にて後述する。
演算装置101は、新レイアウト管理表が構築されたか否かを判定する(S4303)。新レイアウト管理表を構築できなかった場合には(S4303の結果が「No」)、本処理を終了する。
演算装置101は、新レイアウト管理表が構築されると(S4303の結果が「Yes」)、ページマップ管理表132を構築する(S4304)。ページマップ管理表132の構築方法については、図45にて後述し、ページマップ管理表132の構成については、図46にて後述する。
演算装置101は、新レイアウト管理表、ページマップ管理表、及び、ボリューム管理表を参照するレイアウト変更計画管理表を作成する(S4305)。作成されたレイアウト変更計画管理表の一例は、図47にて後述する。
演算装置101は、以上のS4301からS4305までの処理をボリュームごとに実行する。最後に、演算装置101は、作成されたレイアウト変更計画管理表に基づいてレイアウト変更実行部124を実行する(S4306)
図44は、本発明の第4の実施の形態の新レイアウト管理表を構築する手順を示すフローチャートである。
演算装置101は、まず、新たにレイアウト管理表を構築するために、主記憶装置102に記憶領域を割り当てる(S4401)。
演算装置101は、次に、ボリュームを構成するディスクドライブから1台のディスクをパリティディスクとして選択する(S4402)。
演算装置101は、次に、非アクセスオブジェクトの加重個数に基づいて降順に整列された統計情報管理表130を先頭のレコードから順に取得して以下の処理を実行する(S4403)。
演算装置101は、取得されたレコードに対応するオブジェクトの組合せXの要素(関係表)がボリューム223に割当済みか否かを判定する(S4404)。オブジェクトの組合せXの要素が割当済みの場合には(S4404の結果が「T」)、次のレコードについて処理を継続する。
演算装置101は、オブジェクトの組合せXの要素が割当済みでない場合には(S4404の結果が「F」)、当該オブジェクトの組合せを格納可能なティアが存在するか否かを判定する(S4405)。ティアとは、ボリュームを構成する1台以上のディスクドライブの組合せである。なお、本発明の第4の実施の形態では、オブジェクトの組合せごとにティアを設定するが、図42の統計情報管理表130を参照すると、結果的に、オブジェクトごと、すなわち、関係表R及び関係表Sそれぞれにティアが設定される。
演算装置101は、オブジェクトの組合せを格納可能なティアが存在しない場合には(S4405の結果が「F」)、次のレコードについて処理を継続する。
演算装置101は、オブジェクトの組合せを格納可能なティアが存在する場合には(S4405の結果が「T」)、新レイアウト管理表に割当を追加し(S4406)、次のレコードについて処理を継続する。
演算装置101は、統計情報管理表130のすべてのレコードについて処理が終了すると、未割当のオブジェクトが残っているか否かを判定する(S4407)。未割当のオブジェクトが残っている場合には(S4407の結果が「T」)、新レイアウト管理表を削除し(S4408)、新レイアウト管理表の構築が失敗したものとして本処理を終了する。未割当のオブジェクトが残っていない場合には(S4407の結果が「F」)、新レイアウト管理表の構築が成功したものとして本処理を終了する。
図45は、本発明の第4の実施の形態のページマップ管理表132を構築する手順を示すフローチャートである。
演算装置101は、まず、ページマップ管理表132を構築するために、主記憶装置102に記憶領域を割り当てる(S4501)。
演算装置101は、ボリューム内のティアごとに、ページアクセス統計管理表131の各レコードをアクセス回数で降順に整列する(S4502)。
演算装置101は、ティアごとに、整列されたページアクセス統計管理表131の各レコードを読み出し、容量が残っている最も番号が小さいディスクドライブを選択する(S4503)。ページマップ管理表132に、ボリューム、ページ番地、選択されたディスクドライブ、及びディスクドライブ内のページ番地を含むレコードを追加する(S4504)。このように処理することによって、最も番号が小さいディスクドライブにアクセス回数の多いページを集中させることができる。
図46は、本発明の第4の実施の形態のページアクセス統計管理表131を示す図である。
本発明の第4の実施の形態のページアクセス統計管理表131の構成は、本発明の第3の実施の形態と同じである。
また、本発明の第4の実施の形態では、オブジェクト(関係表)の組合せごとにティアを設定する。図46では、ページ番地で降順に整列されているが、レイアウト変更計画管理表129を作成する段階では、図45のS4503の処理によって、ティアごとにアクセス回数で降順に整列された状態となっている。
具体的には、ディスクD11及びD12を、関係表Rを格納するティアとし、ディスクD13、D14及びD15を、関係表Sを格納するティアとする。また、パリティをディスクD16に格納する。そして、まず、関係表Rに格納されるデータを格納するページをアクセス回数1314で整列し、続いて、関係表Sに格納されるデータを格納するページをアクセス回数1314で整列する。
演算装置101は、このように整列されたページアクセス統計管理表131に基づいて、ページマップ管理表132にレコードを追加する(図45のS4704)。
図47は、本発明の第4の実施の形態のレイアウト変更計画管理表129を示す図である。
本発明の第4の実施の形態では、本発明の第2の実施の形態と同様に、ルールベースでレイアウト変更計画を作成しており、一つのレイアウト変更計画案が作成される。
また、本発明の第4の実施の形態のレイアウト変更計画1293には、本発明の第3の実施の形態と同様に、新レイアウト管理表、ボリューム管理表、及びページマップ管理表132が含まれている。
図47の新レイアウト管理表を参照すると、関係表R及び関係表Sは、ボリュームV1に格納され、関係表RはディスクドライブD11及びD12に、関係表SはディスクドライブD13、D14及びD15に格納される。
また、ボリューム管理表を参照すると、関係表ごとに、アクセス頻度の高いページが番号の小さいディスクドライブに集中するように配置される非対称ストライピングとなっている。さらに、ページマップ管理表132を参照すると、各関係表を格納するティアごとにアクセス回数の多い順にページが配置されている。
図48は、本発明の第4の実施の形態の変更後の各関係表のレイアウトを示す図である。
図48に示した各関係表のレイアウトでは、図47に示したレイアウト変更計画管理表129に基づいて、関係表R及び関係表Sは、各関係表に対応するティアに格納される。
また、各ティアにおいてアクセス回数の多いページから順にディスクドライブに配置される。具体的には、関係表Rを格納するティアは、ディスクD11及びD12によって構成され、図46に示したページアクセス統計管理表131に基づいて、アクセス回数が最も多いページ番地#03がディスクドライブD11の先頭ページに配置される。さらに、ページ番地#06、#05、#07の順に各ページが配置される。
同様に、関係表Sを格納するティアは、ディスクドライブD13、D14及びD15によって構成され、アクセス回数が最も多いページ番地#16がディスクドライブD13の先頭ページに配置される。さらに、ページ番地#14、#17、#13の順に各ページが配置される。なお、ディスクドライブD16には、前述したように、パリティが格納される。
本発明の第4の実施の形態によれば、アクセス頻度の高いデータを格納する領域を特定のディスクドライブに集中させることによって、アクセス頻度の低いデータを格納するディスクドライブを休ませることができる。特に、特定のデータに対して集中的にアクセスされる場合には、ボリュームを構成する一部のディスクドライブのみを稼働させることによって、消費電力を低減することができる。
具体的には、意思決定支援システム(DSS)などのように、特定の情報が集中して参照されるシステムでは、例えば、関係表Rのみをアクセスしている場合には、ディスクドライブD13、D14及びD15をスリープ状態にさせることができる。一方、オンライントランザクション処理のように複数のオブジェクトに対してアクセスされる場合には、アクセス頻度の少ないディスクドライブD12、D14及びD15をスリープ状態にさせることができる。
また、本発明の第4の実施の形態によれば、パリティを格納しているため、1台のディスクドライブが故障した場合であっても復旧させることができる。さらに、パリティを別途NVRAMなどの不揮発性RAMに格納し、定期的にパリティを格納したドライブに反映させることなどによって、パリティディスクをスリープ状態にさせてもよい。