(57)【要約】管理システムは、ストレージ装置におけるデータベースの１以上のスキーマを構成する複数のデータ単位を管理する。ストレージ装置は、複数の記憶領域を有する複数の第１記憶デバイス集合を有する。１以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれている。１以上の第２記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第２記憶デバイス集合が前記第１記憶デバイス集合に追加される場合に、管理システムは、第１記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない２以上のデータ単位を、複数の空き記憶領域が前記第１記憶デバイス集合及び第２記憶デバイス集合に分散するよう少なくとも１つの第１記憶デバイス集合から第２記憶デバイス集合の空き記憶領域に移動させる。
2013183143.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置におけるデータベースの１以上のスキーマを構成する複数のデータ単位を管理する管理システムであって、
記憶資源と、
前記記憶資源に接続された制御デバイスと
を有し、
前記ストレージ装置は、複数の記憶領域を有する複数の第１記憶デバイス集合を有し、
前記１以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
前記記憶資源は、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と、前記データ単位の順序を示す順序情報とを含む管理情報を記憶し、
前記第１記憶デバイス集合は、１以上の第１記憶デバイスの集合であり、
前記制御デバイスは、
（Ａ）１以上の第２記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第２記憶デバイス集合が前記第１記憶デバイス集合に追加される場合に、前記管理情報に基づいて、前記第１記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない２以上のデータ単位を、複数の空き記憶領域が前記第１記憶デバイス集合及び前記第２記憶デバイス集合に分散するよう少なくとも１つの前記第１記憶デバイス集合から前記第２記憶デバイス集合の空き記憶領域に移動させる、
管理システム。
【請求項２】
第１記憶デバイス集合の数は、Ｐであり（Ｐは２以上の整数）、各第１の記憶デバイスが、Ｑ個の記憶領域を有しており（Ｑは１以上の整数）、故に、Ｐ個の第１記憶デバイス集合が、（Ｐ×Ｑ）個の記憶領域を有しており、
順番が連続したＰ個のデータ単位毎に、順番が連続したＰ個のデータ単位が、異なる第１記憶デバイス集合の、同一行のＰ個の記憶領域に格納されており、
前記制御デバイスは、前記（Ａ）において、Ｘ番目の第１記憶デバイス集合のうちＸ番目に古いデータ単位を（Ｘは整数、且つ、Ｘ＝０、１、…、（Ｑ−１））、Ｘ番目の第１記憶デバイス集合の記憶領域から前記第２記憶デバイス集合の空き記憶領域に移動させる、
請求項１に記載の管理システム。
【請求項３】
前記（Ａ）の後、前記制御デバイスは、前記Ｘ番目の第１記憶デバイス集合に生じた空き記憶領域が、前記Ｘ番目の第１記憶デバイス集合における最新のデータ単位を格納している記憶領域に隣接していない場合、前記Ｘ番目の第１記憶デバイス集合における２番目に新しいデータ単位を、前記２番目に新しいデータ単位を記憶している記憶領域から、前記Ｘ番目の第１記憶デバイス集合における空き記憶領域に移動させる、
請求項２に記載の管理システム。
【請求項４】
前記（Ａ）において、前記制御デバイスは、前記第１記憶デバイス集合から前記第２記憶デバイス集合へのデータ単位の移動を、Ｙ回行った場合に（Ｙは自然数）、前記（Ａ）を終了し、
前記Ｙの値は、前記第２記憶デバイス集合が有する記憶領域の数以下である、
請求項２に記載の管理システム。
【請求項５】
前記制御デバイスは、
前記第１記憶デバイス集合が複数ある場合に、前記第１記憶デバイス集合と同数のデータ単位をそれぞれの前記第１記憶デバイス集合から前記第２記憶デバイス集合に移動させる、
請求項１に記載の管理システム。
【請求項６】
前記制御デバイスは、
前記第１記憶デバイス集合が複数ある場合に、前記第２記憶デバイス集合に移動させる前記データ単位の選択対象とする前記第１記憶デバイス集合を順次切り替えることにより、同数のデータ単位がそれぞれの前記第１記憶デバイス集合から前記第２記憶デバイス集合に移動されるようにする、
請求項５に記載の管理システム。
【請求項７】
前記制御デバイスは、
前記第１記憶デバイス集合が複数ある場合に、複数の前記第１記憶デバイス集合からそれぞれ順序が比較的はなれたデータ単位を前記第２記憶デバイス集合に移動させる、
請求項６に記載の管理システム。
【請求項８】
前記制御デバイスは、
前記第２記憶デバイス集合に移動させる前記データ単位についての前記第１記憶デバイス集合内における順序の順位を、異なる前記第１記憶デバイス集合間で異ならせる、
請求項７に記載の管理システム。
【請求項９】
前記制御デバイスは、
（Ｂ）前記第１記憶デバイス集合における前記順序性スキーマの前記データ単位を格納可能な記憶領域の空き領域が所定量以下であると判定した場合に、前記順序性スキーマのデータ単位を格納可能な新たな記憶領域を追加させ、前記追加させる新たな記憶領域が前記第２記憶デバイス集合の記憶領域であるか否かを判定し、前記新たな記憶領域が前記第２記憶デバイス集合の記憶領域である場合に、前記（Ａ）を行う
請求項１に記載の管理システム。
【請求項１０】
前記制御デバイスは、
前記データベースの前記スキーマに対する新たなデータ単位の追加が発生したか否かを判定し、
前記データ単位の追加が発生した場合に、前記（Ｂ）を行い、
前記（Ａ）を行った後に、前記新たなデータ単位を、前記空き領域に格納させることにより、連続する前記データ単位が異なる記憶デバイス集合に格納されるようにする
請求項９に記載の管理システム。
【請求項１１】
前記制御デバイスは、
前記（Ａ）を実行した後に、
（Ｃ）前記空き領域と、当該空き領域が含まれる前記第１記憶デバイス集合における最新のデータ単位が格納された記憶領域とが所定の範囲内に存在しない場合に、前記所定の範囲内のデータ単位を前記空き領域に移動させる
請求項１に記載の管理システム。
【請求項１２】
前記制御デバイスは、
前記（Ｃ）において、前記所定の範囲とは、前記空き領域に隣接する範囲である
請求項１１に記載の管理システム。
【請求項１３】
前記制御デバイスは、
前記（Ｃ）を行った後に、新たなデータ単位を前記空き領域に格納することにより、前記第１記憶デバイス集合における新しい複数のデータ単位が、前記第１記憶デバイス集合の比較的限られた範囲に格納されるようにする
請求項１１に記載の管理システム。
【請求項１４】
ストレージ装置におけるデータベースの１以上のスキーマを構成する複数のデータ単位を管理するコンピュータに実行させるためのコンピュータプログラムであって、
前記ストレージ装置は、複数の記憶領域を有する複数の第１記憶デバイス集合を有し、
前記１以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
前記コンピュータプログラムは、
１以上の第２記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第２記憶デバイス集合が前記第１記憶デバイス集合に追加されるか否かを判断し、
前記判断の結果が肯定的の場合に、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と前記データ単位の順序を示す順序情報とを含む管理情報を基に、前記第１記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない２以上のデータ単位を、複数の空き記憶領域が前記第１記憶デバイス集合及び前記第２記憶デバイス集合に分散するよう少なくとも１つの前記第１記憶デバイス集合から前記第２記憶デバイス集合の空き記憶領域に移動させる、
ことを前記コンピュータに実行させるコンピュータプログラム。
【請求項１５】
ストレージ装置におけるデータベースの１以上のスキーマを構成する複数のデータ単位を管理する方法であって、
前記ストレージ装置は、複数の記憶領域を有する複数の第１記憶デバイス集合を有し、
前記１以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれており、
前記方法は、
１以上の第２記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第２記憶デバイス集合が前記第１記憶デバイス集合に追加されるか否かを判断し、
前記判断の結果が肯定的の場合に、前記順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報と前記データ単位の順序を示す順序情報とを含む管理情報を基に、前記第１記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない２以上のデータ単位を、複数の空き記憶領域が前記第１記憶デバイス集合及び前記第２記憶デバイス集合に分散するよう少なくとも１つの前記第１記憶デバイス集合から前記第２記憶デバイス集合の空き記憶領域に移動させる、
管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース（以下、ＤＢ）のデータ単位の物理的な配置を管理する技術に関する。
【背景技術】
【０００２】
現在、ＤＢを基盤とする多くのアプリケーションが存在しており、ＤＢに関する一連の処理・管理を行うＤＢＭＳは極めて重要なものとなっている。ＤＢの特徴の一つは、多大な量のデータを扱うことである。そのため、ＤＢＭＳが稼動する計算機システムの多くにおいては、ＤＢＭＳが動作する計算機に大容量のディスクを持つ記憶装置を接続し、記憶装置上にＤＢデータを記憶するシステム形態が一般的である。【０００３】
このシステム形態をとっている場合においては、記憶装置のディスク上にデータが記憶されるので、ＤＢに関する処理（ＤＢ処理）を行う際にはディスクに対してアクセスが必然的に発生する。特に、ペタバイトクラスの超大規模ＤＢにおいて、そのＤＢのデータから、ある特定のデータを探し出す処理には膨大な時間を要することになる。そこで、大量のデータの中から特定のデータを探し出す検索処理を高速化する技術として、特許文献１に開示されている技術が知られている。【０００４】
特許文献１に開示されている技術は、データの読み出しを行う都度、タスクを動的に作成し、タスクを並列に非順序で実行することでデータの読み出しを多重化する技術である。当該技術を用いたＤＢＭＳによると、タスクを発生順に実行する従来のＤＢＭＳと比較して、検索性能を飛躍的に向上することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３４４１４号公報
【特許文献２】米国特許第６８８０１０２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の超大規模ＤＢは、ＰＯＳデータやセンサデータ等、日々追加される順序性を持ったデータ（例えば、時系列データ等、以下、順序性データ）を扱うことが多く、この順序性データに対する検索では、直近のデータになるほどアクセスされる可能性が高くなるようなこともある。高並列で処理を実行し、高多重でストレージにＩ／Ｏを発行して性能向上を図るＤＢＭＳにおいては、性能を最大限引き出すため、例えば、Ｉ／Ｏ多重度を稼ぐために可能な限り多くのディスクに対してＩ／Ｏを発行する必要がある。しかし、ディスク間でＤＢデータの配置にアンバランス（例えば、特定のディスクにデータが集中して配置されている、特定のディスクに順序関係が近いデータが固まって配置されている等）があった場合、それはそのままＩ／Ｏのアンバランスに繋がり、結果として、Ｉ／Ｏ多重度を高めることができず、性能を引き出せないという課題がある。また、個々のディスクで見れば、物理的なアクセスレンジが狭ければ狭いほど性能は向上するため、ディスク内において順序性が保たれてＤＢデータが配置されている方が良い。【０００７】
Ｉ／Ｏアンバランスを解消するための従来技術として、Ｉ／Ｏ統計を用いたマイグレーション技術がある。この技術は、ディスク毎にＩ／Ｏの統計を取っておき、ある特定のディスクにＩ／Ｏが集中している場合は、そのディスク上のデータを別のディスクに移動し、Ｉ／Ｏ負荷のバランスを取る。しかし、この技術は、一旦Ｉ／Ｏのアンバランスが生じてからでないとマイグレーションが行われないため、その間は性能が低下してしまうという問題がある。【０００８】
また、特許文献２には、効率的な論理ボリュームの管理方法に関し、論理ボリュームへのデータ領域追加時に、論理ボリュームのアドレス（論理アドレス）レベルでデータのマイグレーションを行うことでデータ配置のアンバランスを解消する技術が開示されている。特許文献２に開示された、論理ボリュームの論理アドレスによってマイグレーションを行う技術では、ＤＢのデータの内容に応じてデータの移動を行うわけではない。例え、論理アドレスとＤＢのデータの順序性に関係があったとしても、その関係が崩れた場合には特定のディスクに順序関係の近いデータが集中したり、個々のディスクでアクセスレンジが広くなったりし、その結果、Ｉ／Ｏのアンバランスが生じて性能を引き出せなくなる可能性がある。
【課題を解決するための手段】
【０００９】
管理システムは、ストレージ装置におけるデータベースの１以上のスキーマを構成する複数のデータ単位を管理する。ストレージ装置は、複数の記憶領域を有する複数の第１記憶デバイス集合を有する。１以上のスキーマには、それぞれの順序が規定される順序性を有する複数のデータ単位により構成される順序性スキーマが含まれている。１以上の第２記憶デバイスの集合でありそれぞれの記憶領域が空きの記憶領域である第２記憶デバイス集合が前記第１記憶デバイス集合に追加される場合に、管理システムは、順序性スキーマを構成するどのデータ単位がどの記憶領域に記憶されているかを示す情報であるマッピング情報とデータ単位の順序を示す順序情報とを含む管理情報に基づいて、第１記憶デバイス集合の複数の記憶領域にそれぞれ格納されている複数のデータ単位のうち順序が連続しない２以上のデータ単位を、複数の空き記憶領域が前記第１記憶デバイス集合及び第２記憶デバイス集合に分散するよう少なくとも１つの第１記憶デバイス集合から第２記憶デバイス集合の空き記憶領域に移動させる。管理システムは、単一の計算機で構成されていても良いし、複数の計算機で構成された一種の計算機システムでも良い。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１実施形態に係る計算機システムの一例の構成図である。
【図２Ａ】図２Ａは、第１実施形態に係るスキーマ情報の一例の構成図である。
【図２Ｂ】図２Ｂは、第１実施形態に係るＤＢマッピング情報の一例の構成図である。
【図２Ｃ】図２Ｃは、第１実施形態に係るＤＢデータ追加情報の一例の構成図である。
【図３Ａ】図３Ａは、第１実施形態に係るＯＳマッピング情報の一例の構成図である。
【図３Ｂ】図３Ｂは、第１実施形態に係るストレージマッピング情報の一例の構成図である。
【図４Ａ】図４Ａは、第１実施形態に係るＤＢデータ領域管理情報の一例の構成図である。
【図４Ｂ】図４Ｂは、第１実施形態に係るＤＢデータ領域属性情報の一例の構成図である。
【図４Ｃ】図４Ｃは、第１実施形態に係るＤＢデータ配置情報の一例の構成図である。
【図５Ａ】図５Ａは、第１実施形態に係るデータ領域追加指示の一例の構成図である。
【図５Ｂ】図５Ｂは、第１実施形態に係るデータ移動指示の一例の構成図である。
【図５Ｃ】図５Ｃは、第１実施形態に係る順序追加型のＤＢデータの物理的な配置例を示す図である。
【図６】図６は、第１実施形態に係る管理処理のフローチャートである。
【図７】図７は、第１実施形態に係るデータ追加時処理のフローチャートである。
【図８】図８は、第１実施形態に係る追加セグメント分散処理のフローチャートである。
【図９Ａ】図９Ａは、第１実施形態に係るＤＢデータの移動を説明する第１の図である。
【図９Ｂ】図９Ｂは、第１実施形態に係るＤＢデータの移動を説明する第２の図である。
【図１０Ａ】図１０Ａは、第１実施形態に係るＤＢデータの移動を説明する第３の図である。
【図１０Ｂ】図１０Ｂは、第１実施形態に係るＤＢデータの移動を説明する第４の図である。
【図１１Ａ】図１１Ａは、第１実施形態に係るＤＢデータの移動を説明する第５の図である。
【図１１Ｂ】図１１Ｂは、第１実施形態に係るＤＢデータの移動を説明する第６の図である。
【図１２Ａ】図１２Ａは、第１実施形態に係るＤＢデータの移動を説明する第７の図である。
【図１２Ｂ】図１２Ｂは、第１実施形態に係るＤＢデータの移動を説明する第８の図である。
【図１３】図１３は、第２実施形態に係る追加セグメント分散処理のフローチャートである。
【図１４】図１４は、第２実施形態に係るセグメント隣接処理のフローチャートである。
【図１５Ａ】図１５Ａは、第２実施形態に係るＤＢデータの移動を説明する第１の図である。
【図１５Ｂ】図１５Ｂは、第１実施形態に係るＤＢデータの移動を説明する第２の図である。
【図１６Ａ】図１６Ａは、第２実施形態に係るＤＢデータの移動を説明する第３の図である。
【図１６Ｂ】図１６Ｂは、理想的なＤＢデータの配置を説明する図である。
【図１７Ａ】図１７Ａは、変形例に係るＤＢデータの移動を説明する第１の図である。
【図１７Ｂ】図１７Ｂは、変形例に係るＤＢデータの移動を説明する第２の図である。
【図１８Ａ】図１８Ａは、変形例に係るＤＢデータの移動を説明する第３の図である。
【図１８Ｂ】図１８Ｂは、変形例に係るＤＢデータの移動を説明する第４の図である。
【図１９Ａ】図１９Ａは、変形例に係るＤＢデータの移動を説明する第５の図である。
【図１９Ｂ】図１９Ｂは、変形例に係るＤＢデータの移動を説明する第６の図である。
【発明を実施するための形態】
【００１１】
本発明の幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、計算機、ストレージ装置等に含まれるプロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置（計算機、ストレージ装置等）が行う処理としても良い。また、コントローラは、プロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウエア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布計算機又は記憶メディアであっても良い。
【００１３】
また、計算機における入出力装置の代替としてシリアルインタフェースやイーサーネットインタフェース（イーサーネットは登録商標）を入出力装置とし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用装置を接続し、表示用情報を表示用装置に送信したり、入力用情報を表示用装置から受信することで、表示用装置で表示を行ったり、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。
【実施例１】
【００１４】
まず、実施例１を説明する。【００１５】
図１は、実施例１に係る計算機システムの一例の構成図である。【００１６】
計算機システムにおいては、通信ネットワーク１８０、１８２を介して管理システムの一例としての計算機１００と、ストレージ装置１５０とが接続される。計算機１００は、ストレージ装置１５０に格納されているＤＢのデータを管理するＤＢＭＳ１２０を実行する。【００１７】
このＤＢＭＳ１２０は、高い並列度でストレージ装置１５０にＩ／Ｏを発行して性能向上を図るＤＢＭＳが望ましい。例えば、ＤＢＭＳ１２０は、ＤＢのクエリを受け付け、受け付けたクエリを実行するために必要な１以上のデータベースオペレーションと１以上のデータベースオペレーションの実行手順とを表す情報を含んだクエリ実行プランを生成し、生成したクエリ実行プランに基づいて、上記受け付けたクエリを実行して良い。ＤＢＭＳ１２０は、そのクエリの実行において、データベースオペレーションを実行するためのタスクを動的に生成し、動的に生成されたタスクを実行して良い。例えば、ＤＢＭＳ１２０は、クエリの実行において、（ａ）データベースオペレーションを実行するためのタスクを生成すること、（ｂ）生成されたタスクを実行することで、当該タスクに対応したデータベースオペレーションに必要なデータを読み出すためにデータベースへデータ読出し要求を発行すること、（ｃ）上記（ｂ）で実行されたタスクに対応したＮ番目のデータベースオペレーションの実行結果に基づき（Ｎ＋１）番目のデータベースオペレーションを実行する場合には、当該実行結果に基づくタスクを新たに生成すること（Ｎは１以上の整数）、及び、（ｄ）その新たに生成したタスクについて上記（ｂ）及び上記（ｃ）を行うこと、を行い、上記（ｂ）及び（ｄ）において、２以上の実行可能なタスクが存在する場合には、それら２以上のタスクのうちの少なくとも２つのタスクを並行して実行するようになっていて良い。このＤＢＭＳ１２０は、前述した特許文献１に開示の技術に従うＤＢＭＳで良い。【００１８】
通信ネットワーク１８０、１８２は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）等のネットワークであっても良く、また、ファイバチャネル等で構成されるネットワーク（ストレージエリアネットワーク：ＳＡＮ）であっても良い。図１において、計算機１００、及びストレージ装置１５０はそれぞれ１台のみ記載しているが、それぞれ複数台であっても良い。【００１９】
計算機１００は、例えば一般的な計算機により実現することができる。例えば、計算機１００は、ＣＰＵ（制御デバイス）１０４、入出力装置１０６、記憶装置１０８、メモリ１１０、Ｉ／Ｆ（１）１１２、及び、Ｉ／Ｆ（２）１１４を有する。ＣＰＵ１０４、入出力装置１０６、記憶装置１０８、メモリ１１０、Ｉ／Ｆ（１）１１２、及び、Ｉ／Ｆ（２）１１４は、内部バス１０２を介して接続されている。【００２０】
Ｉ／Ｆ（１）１１２は、通信ネットワーク１８０とのインタフェースである。Ｉ／Ｆ（２）１１４は、通信ネットワーク１８２とのインタフェースである。入出力装置１０６は、例えば、マウス、キーボード等の入力装置や、液晶ディスプレイの出力装置を含む。管理用記憶デバイスの一例としての記憶装置１０８、及びメモリ１１０の少なくとも一方には、ＤＢＭＳ１２０、管理プログラム１３０、オペレーティングシステム（以下、ＯＳ）１４０が格納される。ＤＢＭＳ１２０、管理プログラム１３０、及びＯＳ１４０は、ＣＰＵ１０４によって実行される。【００２１】
ＤＢＭＳ１２０は、ＤＢの表や索引等のスキーマに関するスキーマ情報１２２と、ＤＢのデータが論理的に格納されるＤＢデータ領域とＯＳ１４０上のデバイスとを対応付けるＤＢマッピング情報１２４を保持する。ＤＢＭＳ１２０は、ＤＢＭＳ１２０がＤＢデータを追加した際、追加したＤＢデータに関するＤＢデータ追加情報１２６を作成し、管理プログラム１４０に送信する。ＯＳ１４０は、ＯＳ１４０上のデバイスとストレージ装置１５０上の論理的な記憶領域とを対応付けるＯＳマッピング情報１３２を保持する。管理プログラム１４０は、必要に応じてＤＢＭＳ１２０、ＯＳ１３０、ストレージ装置１５０の制御プログラム１７４から各種情報を取得し、ＤＢデータ領域の属性や実際のＤＢデータの配置等に関するＤＢデータ領域情報１４２を作成して保持する。尚、管理プログラム１４０は、ネットワーク１８０もしくはネットワーク１８２を介して計算機１００と接続された別の計算機（例えば、ホスト計算機）に備えるようにして、当該別の計算機上で動作させても良く、また、ストレージ装置１５０に備えるようにして、当該ストレージ装置１５０上で動作させるようにしても良い。【００２２】
ストレージ装置１５０は、コントローラ１５４と、複数のディスク（ＨＤＤ：記憶デバイスの一例）１５６を有し、コントローラ１５４及び複数のディスク１５６は内部バス１５２によって接続される。コントローラ１５４は、例えば、Ｉ／Ｆ（１）１６２、Ｉ／Ｆ（２）１６４、ＣＰＵ（制御デバイス）１６６、キャッシュメモリ１６８、及びメモリ１７０を有する。Ｉ／Ｆ（１）１６２、Ｉ／Ｆ（２）１６４、ＣＰＵ１６６、キャッシュメモリ１６８、及びメモリ１７０は、内部バス１６０を介して接続されている。【００２３】
Ｉ／Ｆ（１）１６２は、通信ネットワーク１８０とのインタフェースである。Ｉ／Ｆ（２）１６４は、通信ネットワーク１８２とのインタフェースである。メモリ１７０には、ストレージ装置１５０を制御する制御プログラム１７２が格納される。制御プログラム１７２は、ＣＰＵ１６６によって実行される。【００２４】
制御プログラム１７２は、ストレージ装置１５０の論理的な記憶領域（ＬＵ：Logical Unit）と、ディスク１５６が有する物理的な記憶領域（セグメント）とを対応付けるストレージマッピング情報１７４を保持する。ディスク１５６は、例えばハードディスクドライブ（磁気記憶装置）である。ストレージ装置１５０においては、複数のディスク１５６をＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）構成にしても良い。尚、ディスク１５６に加えて、又は、ディスク１５６に代えて、他種の記憶メディアを有する記憶デバイス（例えばフラッシュメモリドライブ）を備えても良い。【００２５】
このストレージ装置１５０では、後述のデータ領域追加指示５００、及びデータ移動指示５１０を、Ｉ／Ｆ（１）１６２又はＩＦ（２）１６４を介して受信し、データ領域追加指示５００を受け付けた際は、その指示の内容に応じてデータが格納される記憶領域を追加し、また、データ移動指示５１０を受け付けた際は、その指示の内容に応じてデータ（データ単位）の移動を行う。【００２６】
続いて、計算機１００又はストレージ装置１５０に格納される各種情報の詳細について説明する。【００２７】
図２Ａは、実施例１に係るスキーマ情報の一例の構成図である。【００２８】
スキーマ情報１２２は、ＤＢを構成する表や索引等のスキーマに関する情報であり、スキーマ毎にエントリを有する。各エントリは、スキーマを識別するための識別子を登録するフィールド２００、スキーマの名前を登録するフィールド２０２、スキーマの種別を登録するフィールド２０４、スキーマが扱うデータのタイプを登録するフィールド２０６、スキーマが格納されるデータ領域のＩＤ（ＤＢデータ領域ＩＤ）を登録するフィールド２０８、使用しているデータページ数を登録するフィールド２１０を有する。フィールド２０６に格納されるデータのタイプとしては、逐次追加される順序性データであることを示す順序追加と、順序性データではないデータであることを示す非順序とがある。ここで、順序性データを格納するスキーマが順序性スキーマである。スキーマ情報１２２は、ＤＢ構築時に作成され、ＤＢデータの追加・削除時に更新される。【００２９】
図２Ｂは、実施例１に係るＤＢマッピング情報の一例の構成図である。【００３０】
ＤＢマッピング情報１２４は、ＤＢの各スキーマが格納されるＤＢデータ領域とＯＳ上のデバイスとの対応付けに関する情報であり、ＤＢデータ領域毎にエントリを有する。各エントリは、ＤＢデータ領域を識別するための識別子（ＤＢデータ領域ＩＤ）を登録するフィールド２２０、ＤＢデータ領域が作られるデバイスのファイルパスを登録するフィールド２２２、ＤＢデータ領域に割当られている物理的な記憶領域のサイズ（同図では、例えば、割当てられているセグメントと呼ばれる領域単位の数）を登録するフィールド２２４、ＤＢデータ領域に割当てられている領域の中で使用しているセグメント数を登録するフィールド２２６を有する。本実施例では、１つのセグメントには、例えば、ＤＢにおけるデータページが４０９６ページ分格納される。ＤＢマッピング情報１２４は、ＤＢ構築時に作成され、ＤＢデータ領域の追加、削除、変更時に更新される。【００３１】
図２Ｃは、実施例１に係るＤＢデータ追加情報の一例の構成図である。【００３２】
ＤＢデータ追加情報１２６は、ＤＢＭＳ１２０によりＤＢデータの追加時に作成され、管理プログラム１４０に送信される。ＤＢデータ追加情報１２６は、追加したＤＢデータに関する情報であり、追加したＤＢデータ毎にエントリを有する。ここで、ＤＢデータ毎とは、所定のデータ量（例えば、１セグメントに対応するデータ量）のＤＢデータを単位としたデータ単位毎を意味している。以下、データ単位について、ＤＢデータということもある。各エントリは、ＤＢデータを追加したスキーマの識別子（スキーマＩＤ）を登録するフィールド２４０、ＤＢデータを追加したＤＢデータ領域の識別子（ＤＢデータ領域ＩＤ）を登録するフィールド２４２、ＤＢデータを追加したＤＢデータ領域上の論理的なアドレス（同図では、例えば、論理ページＩＤ）を登録するフィールド２４４、追加したＤＢデータのサイズ（同図では、例えば、データページ数）を登録するフィールド２４６、追加したＤＢデータの順序を特定可能な情報（順序性情報）を登録するフィールド２４８、追加したＤＢデータの範囲の情報（例えば、ＩＤが0〜49999の範囲等）を登録するフィールド２５０を有する。尚、追加したＤＢデータのスキーマのデータタイプが順序追加の場合のみ、フィールド２４８、及びフィールド２５０は有効となり、それぞれに対応する情報が格納される。【００３３】
図３Ａは、実施例１に係るＯＳマッピング情報の一例の構成図である。【００３４】
ＯＳマッピング情報１３２は、ＯＳ１３０上のデバイスと、ストレージ装置１５０上の論理的な記憶領域（ＬＵ）とを対応付ける情報であり、デバイス毎にエントリを有する。各エントリは、デバイスが作られているＯＳ１３０上のファイルパスを登録するフィールド３００、デバイスに対応する記憶領域（ＬＵ）を持つストレージ装置１５０を識別するための識別子（ストレージ装置ＩＤ：ＳＴ−ＩＤ）を登録するフィールド３０２、デバイスに対応する記憶領域（ＬＵ）を識別するための番号（ＬＵＮ）を登録するフィールド３０４を有する。ＯＳマッピング情報１３２は、システム構築時に作成され、システム構成に変更があった場合に更新される。【００３５】
図３Ｂは、実施例１に係るストレージマッピング情報の一例の構成図である。【００３６】
ストレージマッピング情報１７４は、ストレージ装置１５０の論理的な記憶領域（ＬＵ）と、ディスク１５６が有する物理的な領域であるセグメントとを対応付ける情報であり、ＬＵを構成するセグメント毎にエントリを有する。各エントリは、ストレージ装置１５０を識別するめの識別子（ＳＴ−ＩＤ）を登録するフィールド３１０、ＬＵを識別するための番号（ＬＵＮ）を登録するフィールド３１２、ＬＵ内の論理的な記憶領域のアドレス（例えば、論理ページＩＤ）を登録するフィールド３１４、セグメントを格納しているディスクを識別するための番号（ディスクＮｏ）を登録するフィールド３１６、フィールド３１４の論理的な領域に対応するセグメント内のアドレス（例えば、物理ページＩＤ）を登録するフィールド３１８、セグメントを識別するための番号（セグメントＮｏ）を登録するフィールド３２０を有する。本実施例では、フィールド３２０に格納されるセグメントＮｏは、ディスクＮｏで示されるディスク内で一意に識別するための番号である。ストレージマッピング情報１７４は、システム構築時に作成され、システム構成に変更があった場合に更新される。なお、フィールド３１６におけるディスクとは、１台のハードディスクドライブ（ＨＤＤ）であっても良いし、複数のＨＤＤがＲＡＩＤ構成されたＲＧ（Raid Group）であっても良い。ここで、１台のハードディスク、又はＲＧが、記憶デバイス集合である。【００３７】
図４Ａは、実施例１に係るＤＢデータ領域管理情報の一例の構成図である。【００３８】
ＤＢデータ領域管理情報１４２は、管理プログラム１４０により作成されて保持される。ＤＢデータ領域管理情報１４２は、ＤＢデータ領域属性情報４００、ＤＢデータ配置情報４０２を有する。【００３９】
図４Ｂは、実施例１に係るＤＢデータ領域属性情報の一例の構成図である。【００４０】
ＤＢデータ領域属性情報４００は、ＤＢデータ領域に関する情報であり、ＤＢデータ領域毎にエントリを有する。各エントリは、ＤＢデータ領域を識別するための識別子（ＤＢデータ領域ＩＤ）を登録するフィールド４１０、ＤＢデータ領域に格納されるスキーマを識別するための識別子（スキーマＩＤ）を登録するフィールド４１２、ＤＢデータ領域に格納されるスキーマが扱うデータのタイプを登録するフィールド４１４、ＤＢデータ領域が作られているストレージ装置１５０を識別するための識別子を登録するフィールド４１６、ＤＢデータ領域が作られているストレージ装置１５０上の記憶領域（ＬＵ）を識別するための番号（ＬＵＮ）を登録するフィールド４１８、ＤＢデータ領域に割当られているセグメント数を登録するフィールド４２０、ＤＢデータ領域に割当られている領域の中で使用しているセグメント数を登録するフィールド４２２、次にデータ移動の対象となるディスクの番号（ディスクＮｏ）を登録するフィールド４２４を有する。ＤＢデータ領域属性情報４００は、管理プログラム１４０起動時に、ＤＢＭＳ１２０から取得されたスキーマ情報１２２及びＤＢマッピング情報１２４、ＯＳ１３０から取得されたＯＳマッピング情報１３２、ストレージ装置１５０の制御プログラム１７２から取得されたストレージマッピング情報１７４に基づいて作成され、その後、ＤＢデータに追加があった際に必要に応じて更新される。【００４１】
図４Ｃは、実施例１に係るＤＢデータ配置情報の一例の構成図である。【００４２】
ＤＢデータ配置情報４０２は、所定のデータ量のＤＢデータであるデータ単位についての物理的配置に関する情報であり、１つのデータ単位を格納可能なセグメント毎にエントリを有する。各エントリは、ストレージ装置１５０を識別するめの識別子（ＳＴ−ＩＤ）を登録するフィールド４３０、ＬＵを識別するための番号（ＬＵＮ）を登録するフィールド４３２、ＬＵ内の論理的な領域のアドレス（例えば、論理ページＩＤ）を登録するフィールド４３４、セグメントを格納しているディスクを識別するための番号（ディスクＮｏ）を登録する４３６、セグメントを識別するための番号（セグメントＮｏ）を登録するフィールド４３８、セグメントに格納されているＤＢデータ（データ単位）の順序性情報を登録するフィールド４４０、セグメントに格納されているＤＢデータ（データ単位）の範囲の情報を登録するフィールド４４２を有する。ＤＢデータ配置情報４０２は、管理プログラム１４０起動時に作成され、ＤＢＭＳ１２０がＤＢデータの追加を行ってＤＢデータ追加情報１２６を管理プログラム１４０に送信した際に、そのＤＢデータ追加情報１２６の内容によってエントリの追加が行われる。【００４３】
図５Ａは、実施例１に係るデータ領域追加指示の一例の構成図である。【００４４】
データ領域追加指示５００は、管理プログラム１４０により、ストレージ装置１５０に対して発行される。データ領域追加指示５００は、データの記憶領域（データ領域）を追加するストレージ装置１５０を識別するための識別子を登録するフィールド５０２、データ領域を追加する記憶領域（ＬＵ）の番号（ＬＵＮ）を登録するフィールド５０４、追加するデータ領域のセグメント数を登録するフィールド５０６を有する。データ領域追加指示５００を受信したストレージ装置１５０は、内部で持っている未使用データ領域から、フィールド５０６で指定されたセグメント数のセグメントをフィールド５０４で指定された記憶領域に追加し、ストレージマッピング情報１７４を更新し、その結果を管理プログラム１４０に返信する。【００４５】
図５Ｂは、実施例１に係るデータ移動指示の一例の構成図である。【００４６】
データ移動指示５１０は、管理プログラム１４０により、ストレージ装置１５０に対して発行される。データ移動指示５１０は、データを移動するストレージ装置を識別するための識別子を登録するフィールド５１２、データを移動する記憶領域（ＬＵ）の番号（ＬＵＮ）を登録するフィールド５１４、データ移動元のディスクの番号を登録するフィールド５１６、データ移動元のセグメントを識別するための番号を登録するフィールド５１８、データ移動先のディスクの番号を登録するフィールド５２０、データ移動先のセグメントを識別するための番号を登録するフィールド５２２を有する。データ移動指示５１０を受信したストレージ装置１５０は、フィールド５１６で指定されたディスクのフィールド５１８で指定されたセグメント上のＤＢデータ（データ単位）を、フィールド５２０で指定されたディスクのフィールド５２２で指定されたセグメントに移動し、ストレージマッピング情報１７４を更新し、その結果を管理プログラム１４０に返信する。【００４７】
図５Ｃは、実施例１に係る順序追加型のＤＢデータの物理的な配置例を示す図である。【００４８】
ＬＵ５３０は、番号０〜４の５つのディスク５５０で構成される。各ディスク５５０では、セグメントＮｏ５４０が０〜４までの５つのセグメント５４２が割当てられる。ディスク番号０のセグメントＮｏ０のセグメント５４２には、順序性１のＤＢデータ（データ単位）が格納され、ディスク番号１のセグメントＮｏ０のセグメントには、順序性２のＤＢデータが格納され、ディスク番号２のセグメントＮｏ０のセグメント５４２には、順序性３のＤＢデータが格納され、ディスク番号３のセグメントＮｏ０のセグメント５４２には、順序性４のＤＢデータが格納され、ディスク番号４のセグメントＮｏ０のセグメント５４２には、順序性５のＤＢデータが格納され、ディスク番号０のセグメントＮｏ１のセグメント５４２には、順序性６のＤＢデータが格納され、同様にして、各ディスク５５０の各セグメント５４２に、順序性７以降のＤＢデータがそれぞれ格納される。ストレージ装置１５０は、図５Ｃに示すように、連続するＤＢデータが、異なるディスク５５０に格納されるように、ＤＢデータを分散させて格納する。【００４９】
ＬＵ５３０上の論理的な記憶領域は、先頭の記憶領域から順に、ディスク番号０のセグメントＮｏ０のセグメント５４２、ディスク番号１のセグメントＮｏ０のセグメント５４２、ディスク番号２のセグメントＮｏ０のセグメント５４２、ディスク番号３のセグメントＮｏ０のセグメント５４２、ディスク番号４のセグメントＮｏ０のセグメント５４２、ディスク番号０のセグメントＮｏ１のセグメント５４２、ディスク番号１のセグメントＮｏ１のセグメント５４２、・・・に対応している。【００５０】
次に、実施例１に係る計算機システムにおける処理動作を説明する。【００５１】
図６は、実施例１に係る管理処理のフローチャートである。【００５２】
管理処理は、計算機１００のＣＰＵ１０４が管理プログラム１４０を実行することにより実現される。【００５３】
システム管理者等によって、計算機１００上で、管理プログラム１４０が起動されると、管理処理を開始する（ステップ６００）。【００５４】
管理プログラム１４０は、ＤＢＭＳ１２０からスキーマ情報１２２、ＤＢマッピング情報１２４を取得し（ステップ６０２）、ＯＳ１３０からＯＳマッピング情報１３２を取得し（ステップ６０４）、ストレージ装置１５０の制御プログラム１７２からストレージマッピング情報１７４を取得し（ステップ６０６）、それらの情報に基づいてＤＢデータ領域属性情報４００、及びＤＢデータ配置情報４０２を作成し（ステップ６０８）、その後、ＤＢＭＳ１２０からのＤＢデータ追加情報１２６の受信待ち状態となる。【００５５】
管理プログラム１４０は、ＤＢＭＳ１２０からＤＢデータ追加情報１２６を受信したか否かを判定し（ステップ６１０）、その結果、ＤＢデータ追加情報１２６を受信した場合（ステップ６１０でＹｅｓ）には、データ追加時処理（図７参照）を実行する（ステップ６１２）。データ追加時処理を実行後には、管理プログラム１４０は、ＤＢＭＳ１２０に追加データのストレージ装置１５０への書込み指示を行うこととなり、ＤＢＭＳ１２０の指示に従って追加データがストレージ装置１５０に格納されることとなる。なお、ストレージ装置１５０は、連続するデータが異なるディスクに分散されるように空き領域に対して追加データを格納する。【００５６】
データ追加時処理を終了した後、もしくはステップ６１０でＤＢデータ追加情報１２６を受信していない場合（ステップ６１０でＮｏ）は、管理プログラム１４０は、システム管理者による管理プログラム１４０の終了の指示を受けたか否かを判定し（ステップ６１４）、その結果、終了の指示を受けた場合（ステップＳ６１４でＹｅｓ）には、管理プログラム１４０を終了して管理処理を終了する（ステップ６１６）、一方、終了の指示を受けていない場合（ステップＳ６１４でＮｏ）には、ステップ６１０から処理を繰り返す。【００５７】
図７は、実施例１に係るデータ追加時処理のフローチャートである。【００５８】
データ追加時処理は、計算機１００のＣＰＵ１０４が管理プログラム１４０を実行することにより実現される。【００５９】
管理プログラム１４０は、図６のステップ６１０で受信したデータ追加情報１２６を基に、データ領域属性情報４００の対応するＤＢデータ領域のエントリを更新し（ステップ７０２）、当該ＤＢデータ領域のエントリの割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回ったか否かを判定する（ステップ７０４）。尚、この所定の閾値は予め管理プログラム１４０が内部に持っておいても良いし、管理プログラム１４０の起動時等にシステム管理者等から設定されても良い。また、上記ステップ７０４においては、ＤＢデータ領域のエントリの割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回ったか否かにより、未使用のセグメント数が所定量以下であるか否かを判定するようにしているが、これに代えて、例えば、追加するＤＢデータを格納するためのセグメントが不足するか否かを判定しても良く、また、未使用のセグメント数の絶対数が所定値以下であるか否かを判定しても良い。【００６０】
ステップ７０４の判定の結果、割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回っている場合（ステップ７０４でＹｅｓ）には、管理プログラム１４０は、ステップ７０６以降の処理を行い、閾値を下回っていない場合（ステップ７０４でＮｏ）には、データ追加時処理を終了する（ステップ７１８）。【００６１】
ステップ７０６では、管理プログラム１４０は、データ領域追加指示５００の各フィールドに情報をセットしてストレージ装置１５０に送信する（ステップ７０６）。具体的には、管理プログラム１４０は、ＤＢデータ領域属性情報テーブル４００の対応するＤＢデータ領域のエントリのフィールド４１６のＳＴ−ＩＤをデータ領域追加指示５００のフィールド５０２にセットし、フィールド４１８のＬＵＮをデータ領域追加指示５００のフィールド５０４にセットし、フィールド５０６に追加セグメント要求数をセットする。尚、データ領域追加指示５００のフィールド５０６に設定する追加セグメント要求数は、予めシステム管理者等から与えられた値としても良いし、現在の割当セグメント数から計算した値（例えば、現割当セグメント数の半分）としても良い。【００６２】
管理プログラム１４０は、ステップ７０６で送信したデータ領域追加指示５００の応答をストレージ装置１５０から受信した後、ストレージ装置１５０からストレージマッピング情報１７４を再取得し（ステップ７０８）、取得したストレージマッピング情報１７４の情報に基づいて、ストレージ装置１５０において新たに追加されたセグメントに関するデータ配置情報４０２のエントリを追加する（ステップ７１０）。【００６３】
続いて、管理プログラム１４０は、データ領域属性情報４００のＤＢデータが追加されたＤＢデータ領域に対応するエントリを検索して、追加されたＤＢデータのスキーマのデータタイプをフィールド４１４の値により特定し（ステップ７１２）、そのデータタイプが順序追加であるか否か、すなわち、当該スキーマが順序性スキーマであるか否かを判定する（ステップ７１４）。【００６４】
ステップ７１４の判定の結果、データタイプが順序追加の場合（ステップ７１４でＹｅｓ）には、管理プログラム１４０は、追加セグメント分散処理（図８参照）を実行し（ステップ７１６）、その後、データ追加時処理を終了する（ステップ７１８）。一方、データタイプが順序追加でない場合（ステップ７１４でＮｏ）には、管理プログラム１４０は、そのままデータ追加時処理を終了する（ステップ７１８）。【００６５】
図８は、実施例１に係る追加セグメント分散処理のフローチャートである。【００６６】
追加セグメント分散処理は、計算機１００のＣＰＵ１０４が管理プログラム１４０を実行することにより実現される。【００６７】
管理プログラム１４０は、変数Ｎに“１”をセットする（ステップ８０２）。次いで、管理プログラム１４０は、ＤＢデータ配置情報４０２を検索して、追加したセグメントの中のＮ番目のセグメントが存在するディスクが新しく追加されたディスク（第２記憶デバイス集合）か、すなわち、既存の全ＤＢデータ領域を構成するディスク（１以上の第１記憶デバイス集合）として使われていないか否かを判定し（ステップ８０４）、この結果、新しく追加されたディスク（第２記憶デバイス集合）ではない場合（ステップ８０４でＮｏ）には、処理をステップ８１０に進める。【００６８】
一方、ステップ８０４の判定の結果、新しく追加されたディスク（第２記憶デバイス集合）である場合（ステップ８０４でＹｅｓ）には、管理プログラム１４０は、対応するエントリのフィールド４２４に格納されているデータ移動ディスクＮｏが指すディスク上のセグメントの中で、フィールド４４０の順序性情報の順序がＮ番目に古いＤＢデータを持つセグメントのＤＢデータ（データ単位）を、新しく追加されたディスクのＮ番目のセグメントに移動するようにデータ移動指示５１０に情報をセットしてストレージ装置１５０に送信する（ステップ８０６）。具体的には、管理プログラム１４０は、データ移動指示５１０のフィールド５１６に、データ移動ディスクＮｏが示すディスクのディスクＮｏを格納し、フィールド５１８に、当該ディスク上のＮ番目に古いＤＢデータを持つセグメントのセグメントＮｏを格納し、フィールド５２０に、新しく追加されたディスクのディスクＮｏを格納し、フィールド５２２に、新しく追加されたディスクのＮ番目のセグメントのセグメントＮｏを格納する。【００６９】
次いで、管理プログラム１４０は、ステップ８０６で送信したデータ移動指示５１０の応答をストレージ装置１５０から受信した後、ＤＢデータ移動の内容に応じてデータ配置情報４０２を更新する（ステップ８０８）。具体的には、移動元のディスクのセグメントに対応するエントリのフィールド４４０及び４４２の順序性情報及びデータ範囲情報を、移動先のディスクのセグメントに対応するエントリのフィールド４４０及び４４２に登録し、移動元のエントリのフィールド４４０及び４４２の内容をクリアする。【００７０】
続いて、管理プログラム１４０は、変数Ｎをインクリメント（＋１）し（ステップ８１０）、ステップ８０６でデータを移動した場合は、フィールド４２４のデータ移動ディスクＮｏに次のディスク（次の第１記憶デバイス集合）の番号をセットし（ステップ８１２）、変数Ｎが追加したセグメント数と同じか否か、すなわち、追加したセグメント数−１回処理（ステップ８０４〜ステップ８１２）を繰り返したか否かを判定する（ステップ８１４）。この結果、変数Ｎが追加したセグメント数よりも小さい場合（ステップ８１４でＮｏ）には、管理プログラム１４０は、ステップ８０４からの処理を再び実行する。従って、ステップ７０６でセットしたＤＢデータ領域の追加セグメント数−１回だけステップ８０４〜８１２の処理が繰り返されることとなる。この処理により、連続するＤＢデータが一つのディスクに集まらないようにしつつ、複数のディスク９００〜９１０に空き領域が分散されることとなる。また、この処理により、複数のディスク９００〜９１０にほぼ同数の空き領域（空きセグメント）が備えられることとなる。【００７１】
一方、ステップ８１４の判定の結果、変数Ｎが追加したセグメント数と同じである場合（ステップ８１４でＹｅｓ）には、管理プログラム１４０は、追加セグメント分散処理を終了する（ステップ８１６）。【００７２】
次に、図７に示すデータ追加時処理と、図８に示す追加セグメント分散処理とが実行された場合におけるＤＢデータの移動の具体例を説明する。【００７３】
図９Ａは、実施例１に係るＤＢデータの移動を説明する第１の図である。図９Ｂは、実施例１に係るＤＢデータの移動を説明する第２の図である。図１０Ａは、実施例１に係るＤＢデータの移動を説明する第３の図である。図１０Ｂは、実施例１に係るＤＢデータの移動を説明する第４の図である。図１１Ａは、実施例１に係るＤＢデータの移動を説明する第５の図である。図１１Ｂは、実施例１に係るＤＢデータの移動を説明する第６の図である。図１２Ａは、実施例１に係るＤＢデータの移動を説明する第７の図である。図１２Ｂは、実施例１に係るＤＢデータの移動を説明する第８の図である。ここで、これら図面においては、ディスク（９００等）の内部の各矩形は、それぞれセグメントに対応し、矩形の左横の数字は、当該ディスクにおけるセグメントの番号を示し、矩形内に記載された数字は、当該セグメントに格納されているＤＢデータ（データ単位）の順序性を示している。例えば、矩形内の数字が“１”は、順序性１のデータが対応するセグメントに格納されていることを示している。また、図示の個々のディスクにおいて、縦方向に並んだセグメントは、アドレスの並びに沿って並んでいるものとする。つまり、セグメントが連続（隣接）しているとは、アドレス範囲が連続（隣接）していることを意味する。図によれば、Ｐ個のディスクがある場合（Ｐは２以上の整数）、Ｐ（横）×Ｑ（縦）個のセグメントを有する（Ｑは１以上の整数）。つまり、各ディスクが、Ｑ個のセグメントを有する。Ｑの数は、ディスクの容量（或いはディスクのうちのどの範囲をＤＢデータの格納範囲とするか）に応じて異なる。同一行にあるセグメントは、アドレスが同一とする。【００７４】
図９Ａに示すように、処理を開始する時点における或るスキーマのデータが格納されるデータ領域としては、ディスク９００〜９０８の５つのディスク（５つの第１記憶デバイス集合）の記憶領域が割り当てられている。すなわち、ここでいう「ディスク」は、単体の記憶デバイスでも良いし、複数の記憶デバイス（例えばＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループ）でも良い。ディスク９００〜９０８には、それぞれ５つのセグメントが割り当てられている。順序性１のデータ（データ単位）は、ディスク９００のセグメントＮｏ０のセグメントに格納され、順序性２のデータは、ディスク９０２のセグメントＮｏ０のセグメントに格納され、順序性３のデータは、ディスク９０４のセグメントＮｏ０のセグメントに格納されており、同様にして各データがディスクのセグメントに格納されている。このような状態は、例えば、ＤＢＭＳ１２０（或いは、ストレージ装置１５０のＣＰＵ１６６）が、先頭の順序性データから順に格納する際に、格納先とするディスクを順次切り替えることにより、実現される。【００７５】
このような状態において、スキーマのデータを格納するための記憶領域として、新しくディスク９１０（第２記憶デバイス集合）の５つのセグメントを追加する場合を例に挙げて、追加セグメント分散処理におけるデータの移動を以下説明する。尚、ＤＢデータ領域属性情報４００のフィールド４２４に格納されたデータ移動ディスクＮｏは、ディスク９００を指しているものとする。【００７６】
スキーマのデータを格納する領域は、新しくディスク９１０の５つのセグメントが追加されると、図９Ｂに示すように、ディスク９００〜ディスク９０８の既存のデータ領域に対して、新たなディスク９１０の５つのセグメントが追加されることとなる。例えば、管理プログラム１４０が、ディスク９００〜ディスク９０８（ディスクの一群）に新たなディスク９１０が追加されたか否かを監視していて、新たなディスク９１０が追加された場合にはそれを検出して良い。この状態では、ディスク９１０のセグメントＮｏ０〜Ｎｏ４のセグメントが未使用となっている。ここで、図８に示す追加セグメント分散処理を実行しなかった場合には、次の順序のデータ（例えば、順序性２６から順序性３０までのデータ）は、ディスク９１０のセグメントＮｏ０からセグメントＮｏ４のセグメントに順次追加されることになる。この状態で、直近の５セグメント分のデータ（この例では、順序性２６から順序性３０のデータ）にアクセスすることを想定すると、ディスク９１０にアクセスが集中してしまい、結果として処理の並列度が高まらず性能を向上することができない。【００７７】
図９Ｂに示す状態において、追加セグメント分散処理における変数Ｎ＝１とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１０Ａに示すように管理プログラム１４０は、順序性１のデータ（データ単位）を移動する。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏがディスク９００を指しているので、管理プログラム１４０は、ディスク９００の中で順序性がＮ番目（ここでは、１番目）に古いデータ（ここでは、順序性１のデータ）を持つセグメント（ここでは、セグメントＮｏ０）のデータを、追加したディスク９１０のＮ番目（ここでは、１番目）のセグメント（ここでは、セグメントＮｏ０のセグメント）に移動させる。この後、管理プログラム１４０は、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏを、次のディスク、すなわち、ディスク９０２を指すようにセットする。【００７８】
その後、追加セグメント分散処理における変数Ｎ＝２とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１０Ｂに示すように、管理プログラム１４０は、順序性７のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０２を指しているので、管理プログラム１４０は、ディスク９０２の中で順序性がＮ番目（ここでは、２番目）に古いデータ（ここでは、順序性７のデータ）を持つセグメント（ここでは、セグメントＮｏ１）のデータを、追加したディスク９１０のＮ番目（ここでは、２番目）のセグメント（ここでは、セグメントＮｏ１）に移動させる。ここで、逐次インクリメントされるＮ番目に古いＤＢデータを移動させるようにするので、管理プログラム１４０は、他のディスクから移動されたＤＢデータと、順序が比較的はなれたＤＢデータをディスク９１０に移動させることができる。すなわち、ディスク９１０に連続するＤＢデータが移動されることを適切に低減することができる。この後、管理プログラム１４０は、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏを、次のディスク、すなわち、ディスク９０４を指すようにセットする。【００７９】
その後、追加セグメント分散処理における変数Ｎ＝３とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１１Ａに示すように、管理プログラム１４０は、順序性１３のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０４を指しているので、管理プログラム１４０は、ディスク９０４の中で順序性がＮ番目（ここでは、３番目）に古いデータ（ここでは、順序性１３のデータ）を持つセグメント（ここでは、セグメントＮｏ２）のデータを、追加したディスク９１０のＮ番目（ここでは、３番目）のセグメント（ここでは、セグメントＮｏ２）に移動させる。この後、管理プログラム１４０は、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏを、次のディスク、すなわち、ディスク９０６を指すようにセットする。【００８０】
その後、追加セグメント分散処理における変数Ｎ＝４とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１１Ｂに示すように、管理プログラム１４０は、順序性１９のデータを移動させる。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０６を指しているので、管理プログラム１４０は、ディスク９０６の中で順序性がＮ番目（ここでは、４番目）に古いデータ（ここでは、順序性１９のデータ）を持つセグメント（ここでは、セグメントＮｏ３）のデータを、追加したディスク９１０のＮ番目（ここでは、４番目）のセグメント（ここでは、セグメントＮｏ３）に移動させる。この後、管理プログラム１４０は、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏを、次のディスク、すなわち、ディスク９０８を指すようにセットする。【００８１】
図９Ｂの状態に対して、追加セグメント分散処理が実行されて、データの移動が終わった場合には、図１２Ａに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク９００のセグメントＮｏ０、ディスク９０２のセグメントＮｏ１、ディスク９０４のセグメントＮｏ２、ディスク９０６のセグメントＮｏ３、ディスク９１０のセグメントＮｏ４といったように、異なるディスクに分散されることとなる。【００８２】
図１２Ａに示す状態において、ＤＢＭＳ１２０により、順序性２６から順序性３０までのデータがストレージ装置１５０に追加されると、図１２Ｂに示すように連続するデータが異なるディスクに分散されて格納されることとなる。すなわち、順序性２６のデータは、ディスク９００のセグメントＮｏ０のセグメントに格納され、順序性２７のデータは、ディスク９０２のセグメントＮｏ１のセグメントに格納され、順序性２８のデータは、ディスク９０４のセグメントＮｏ２のセグメントに格納され、順序性２９のデータは、ディスク９０６のセグメントＮｏ３のセグメントに格納され、順序性３０のデータは、ディスク９１０のセグメントＮｏ４のセグメントに格納される。【００８３】
すなわち、以上の説明によれば、ディスクの数がＰであり（Ｐは２以上の整数）、各ディスクが、Ｑ個のセグメントを有しており（Ｑは１以上の整数）、故に、Ｐ個のディスクが、（Ｐ×Ｑ）個のセグメントを有しており、順番が連続したＰ個のＤＢデータ毎に、順番が連続したＰ個のＤＢデータが、異なるディスクの同一行のＰ個のセグメントに格納されるようになっている。この場合、管理プログラム１４０は、Ｘ番目の第１記憶デバイス集合のうちＸ番目に古いデータを（Ｘは整数、且つ、Ｘ＝０、１、…、（Ｑ−１））、Ｘ番目のディスクのセグメントから追加されたディスクの空きセグメントに移動させる。その後、管理プログラム１４０は、Ｘ番目のディスクに生じた空きセグメントが、Ｘ番目のディスクにおける最新のデータ単位を格納しているセグメントに隣接していない場合、Ｘ番目のディスクにおける２番目に新しいＤＢデータを、２番目に新しいＤＢデータを記憶しているセグメントから、Ｘ番目のディスクにおける空きセグメントに移動させる。【００８４】
以上説明したように、実施例１によると、未使用のデータ領域（セグメント）が各ディスクに分散されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図１２Ｂに示す状態となり、例えば、直近の５セグメント分のデータ（ここでは、順序性２６から順序性３０のデータ）に対してアクセスすることを想定すると、ディスク９００、ディスク９０２、ディスク９０４、ディスク９０６、ディスク９１０にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。【００８５】
ここで、直近の１０セグメント分のデータ（ここでは、順序性２１から順序性３０のデータ）にアクセスすることを想定すると、実施例１の技術だけでは、ディスク上の物理的なアクセスレンジ（アクセスされる範囲）が広くなってしまうディスクが出てくる場合が考えられる。例えば、ディスク９００では、セグメントＮｏ０からセグメントＮｏ４までの範囲に対してアクセスされることとなる。物理的なアクセスレンジが狭ければ狭いほど性能は向上するため、アクセスレンジが広がったディスクに関しては、性能向上の割合が小さくなってしまう。これに対して、以下の実施例２では、ディスクにおける物理的なアクセスレンジを狭めることができる技術を説明する。
【実施例２】
【００８６】
次に、実施例２に係る計算機システムについて説明する。【００８７】
実施例２に係る計算機システムは、実施例１に係る計算機システムにおける追加セグメント分散処理において、更にセグメント隣接処理（図１４参照）を行うようにしたものである。実施例２に係る計算機システムの構成は、図１に示す実施例１に係る計算機システムと同様である。以下、実施例２に係る計算機システムについて、実施例１に係る計算機システムとの相違点を中心に説明する。【００８８】
図１３は、実施例２に係る追加セグメント分散処理のフローチャートである。なお、図８に示す実施例１に係る追加セグメント分散処理と同様な部分には、同一の符号を付している。【００８９】
実施例２における追加セグメント分散処理においては、ステップ８０８とステップ８１０との間にセグメント隣接処理（図１４参照）を実行するステップ１３００が追加されている。【００９０】
図１４は、実施例２に係るセグメント隣接処理のフローチャートである。【００９１】
管理プログラム１４０は、ＤＢデータ配置情報４０２を検索して、追加したセグメントの中のＮ番目（この変数Ｎは、追加セグメント分散処理から引き継いだ変数である。）のセグメントが存在するディスクが新しく追加されたディスクか、すなわち、既存の全ＤＢデータ領域を構成するディスクとして使われていないか否かを判定し（ステップ１４０２）、この結果、新しく追加されたディスクではない場合（ステップ１４０２でＮｏ）には、処理をステップ１４１０に進める。【００９２】
ステップ１４０２の判定の結果、新しく追加されたディスクの場合（ステップＳ１４０２でＹｅｓ）には、管理プログラム１４０は、図１３の追加セグメント分散処理のステップ８０６で移動元になったセグメント、すなわち、現在、未使用のセグメントのセグメントＮｏと、当該セグメントが属するディスクの全セグメントの中でフィールド４４０の順序性情報が一番新しいセグメントＮｏとを取得し（ステップ１４０４）、両セグメントが隣接しているか否か、すなわち、両セグメントのセグメントＮｏが±１であるか否かを判定する（ステップ１４０６）。【００９３】
その結果、両セグメントが隣接している場合（ステップ１４０６でＹｅｓ）には、管理プログラム１４０は、セグメント隣接処理を終了する（ステップ１４１６）。一方、両者のセグメントが隣接していない場合（ステップ１４０６でＮｏ）には、管理プログラム１４０は、そのディスクの全セグメントの中で一番新しいデータを格納しているセグメントに隣接しているセグメントのデータを、ステップ８０６で移動元になったセグメントに移動するようにデータ移動指示５１０に情報をセットしてストレージ装置１５０に送信し、ストレージ装置１５０からその応答を受信後、データ配置情報４０２を更新して（ステップ１４０８）、セグメント隣接処理を終了する（ステップ１４１６）。【００９４】
ステップ１４０２の判定の結果、新しく追加されたディスクではない場合（ステップ１４０２でＮｏ）には、管理プログラム１４０は、追加したセグメント中のＮ番目のセグメント（現在、未使用のセグメント）と、当該セグメントが属するディスクの全セグメントの中でフィールド４４０の順序性情報が一番新しいセグメントのセグメントＮｏとを取得し（ステップ１４１０）、両セグメントが隣接しているか否か、すなわち、両セグメントのセグメントＮｏが±１であるか否かを判定する（ステップ１４１２）。【００９５】
その結果、両セグメントが隣接している場合（ステップ１４１２でＹｅｓ）には、管理プログラム１４０は、セグメント隣接処理を終了する（ステップ１４１６）。一方、両者のセグメントが隣接していない場合（ステップ１４１２でＮｏ）には、管理プログラム１４０は、そのディスクの全セグメントの中で一番新しいデータを記憶しているセグメントに隣接しているセグメントのデータを、追加したセグメント中のＮ番目のセグメントに移動するようにデータ移動指示５１０に情報をセットしてストレージ装置１５０に送信し、ストレージ装置１５０からその応答を受信後、データ配置情報４０２を更新して（ステップ１４１４）、セグメント隣接処理を終了する（ステップ１４１６）。【００９６】
尚、同一ディスク上で順序性が一番新しいデータを記憶しているセグメントの両隣のセグメントが未使用の場合は、更にその隣のセグメントのデータを移動するようにしても良い。また、セグメント隣接処理では、同一ディスク上で順序性が一番新しいセグメントと、未使用のセグメントとが隣接するようにしているが、本発明はこれに限られず、例えば、各スキーマのデータ範囲に対する検索頻度の統計情報を管理プログラム１４０の内部にもっておいて、検索頻度の高いデータを記憶しているセグメント同士が、隣接するようにデータの移動を行っても良い。また、一番新しいデータが格納されているセグメントに対して所定の範囲内（例えば、前後２セグメント以内）に空き領域が存在しない場合に、その範囲内のいずれかのセグメントのデータを空き領域に移動させるようにしても良い。【００９７】
次に、図１４に示すセグメント隣接処理を行った場合におけるＤＢデータの移動の具体例を説明する。【００９８】
図１５Ａは、実施例２に係るＤＢデータの移動を説明する第１の図である。図１５Ｂは、実施例１に係るＤＢデータの移動を説明する第２の図である。図１６Ａは、実施例２に係るＤＢデータの移動を説明する第３の図である。図１６Ｂは、理想的なデータ配置を説明する図である。【００９９】
図１５Ａは、図１３に示す追加セグメント分散処理において、セグメント隣接処理を実行する前の状態（図１０Ｂ、図１１Ａ、図１１Ｂ、図１２Ａ）を便宜的にまとめて示した図である。尚、追加した１つのセグメントに起因するセグメント隣接処理は、追加セグメント分散処理の１つのセグメントに対する処理に引き続いて行われる。【０１００】
まず、図１０Ｂに示すように、ディスク９００のセグメントＮｏ０のデータ（順序性１のデータ）がディスク９１０のセグメントＮｏ０のセグメントに移動した後には、セグメント隣接処理（ステップ１３００）により、図１５Ａに示すように、ディスク９００の中で順序性が一番新しいデータ（ここでは、順序性２１のデータ）を持つセグメント（ここでは、セグメントＮｏ４のセグメント）に隣接しているセグメント（ここでは、セグメントＮｏ３のセグメント）のデータ（ここでは、順序性１６のデータ）を、追加セグメント分散処理によって未使用となったセグメント（ここでは、セグメントＮｏ０のセグメント）に移動する。同様にして、図１１Ａに示すように、ディスク９０２のセグメントＮｏ１のデータ（順序性７のデータ）がディスク９１０のセグメントＮｏ１のセグメントに移動した後には、図１５Ａに示すように、ディスク９０２のセグメントＮｏ３のデータ（ここでは、順序性１７のデータ）をセグメントＮｏ１のセグメントに移動する。また、図１１Ｂに示すように、ディスク９０４のセグメントＮｏ２のデータ（順序性１３のデータ）がディスク９１０のセグメントＮｏ２のセグメントに移動した後には、図１５Ａに示すように、ディスク９０４のセグメントＮｏ３のデータ（ここでは、順序性１８のデータ）をセグメントＮｏ２のセグメントに移動する。ディスク９０６に関しては、ディスク９０６の中で順序性が一番新しいデータ（ここでは、順序性２４のデータ）を持つセグメント（ここでは、セグメントＮｏ４のセグメント）と、追加セグメント分散処理によって未使用となったセグメント（ここでは、セグメントＮｏ３のセグメント）が隣接しているため、セグメント隣接処理によってデータの移動は行われない。【０１０１】
セグメント隣接処理が実行されて、データの移動が終わった場合には、図１５Ｂに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク９００のセグメントＮｏ３、ディスク９０２のセグメントＮｏ３、ディスク９０４のセグメントＮｏ３、ディスク９０６のセグメントＮｏ３、ディスク９１０のセグメントＮｏ４といったように、異なるディスクに分散されることとなる。また、未使用のセグメントが、各ディスクの一番新しいデータを持つセグメントと隣接することとなる。【０１０２】
図１５Ｂに示す状態において、順序性２６から順序性３０までのデータが追加されると、図１６Ａに示すように異なるディスクに分散されて格納されることとなる。すなわち、順序性２６のデータは、ディスク９００のセグメントＮｏ３のセグメントに格納され、順序性２７のデータは、ディスク９０２のセグメントＮｏ３のセグメントに格納され、順序性２８のデータは、ディスク９０４のセグメントＮｏ３のセグメントに格納され、順序性２９のデータは、ディスク９０６のセグメントＮｏ３のセグメントに格納され、順序性３０のデータは、ディスク９１０のセグメントＮｏ４のセグメントに格納される。【０１０３】
以上により、実施例２では、追加されたデータ領域（セグメント）が各ディスクに分散され、且つ個々のディスクでは未使用のセグメントが最新のデータを持つセグメントと隣接されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図１６Ａに示す状態となり、例えば、直近の５セグメント分のデータ（ここでは、順序性２６から順序性３０のデータ）に対してアクセスすることを想定すると、実施例１と同様に、ディスク９００、ディスク９０２、ディスク９０４、ディスク９０６、ディスク９１０にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。更に、直近の１０セグメント分のデータ（ここでは、順序性２１から順序性３０のデータ）にアクセスすることを想定すると、実施例１では、ディスク上の物理的なアクセスレンジが広くなってしまうディスク（例えばディスク９００）が発生したが、実施例２では、ディスク９００においては、物理的なアクセスレンジがセグメントＮｏ３とセグメントＮｏ４のセグメントに限られるので、アクセスレンジが広くなるディスクの発生が抑えられる。ディスク上の物理的なアクセス範囲は狭ければ狭いほど性能は良くなるため、実施例２によると、実施例１に比して、更に性能を向上することが可能となる。【０１０４】
ここで、ＤＢデータの理想的な配置を示して、実施例２の効果についてさらに説明する。【０１０５】
図１６Ｂは、理想的なデータ配置を説明する図である。【０１０６】
図１６Ｂに示すデータの配置は、例えば、図９Ｂの状態から、ディスク間、及び各ディスク内で順序性情報に従った順番に並ぶようにＤＢデータを移動し、その後、未使用のセグメントに順序性２６から順序性３０までのデータを追加することにより実現することができる。【０１０７】
図１６Ｂに示す状態において、直近の５セグメント分のデータ（ここでは、順序性２６から順序性３０のデータ）にアクセスすることを想定すると、ディスク９０２、ディスク９０４、ディスク９０６、ディスク９０８、ディスク９１０にアクセスが分散し、処理の並列度が高まり性能を向上することが可能となる。更に、直近の１０セグメント分のデータ（ここでは順序性２１から３０のデータ）にアクセスすることを想定すると、どのディスクにおいてもアクセスレンジは最小となる。【０１０８】
ここで、図９Ｂに示す状態から図１６Ｂに示す状態にするためには、セグメントのデータ移動が２０回必要になる。これに対して、図９Ｂに示す状態から、図１６Ａに示す状態にするためには、セグメントのデータ移動は７回で済む。図１６Ｂに示すような理想的な状態するためのデータ移動の回数と、図１６Ａに示すような状態するためのデータ移動の回数との差は、スキーマを構成するセグメントの数が多くなれば多くなるほど、大きくなってしまう。実施例２によると、セグメントの移動回数とそのオーバヘッドを抑えながら、ある範囲のデータのアクセスでは理想的なデータ配置の状態と同様の効果が得られる。【０１０９】
次に、実施例１の変形例について説明する。【０１１０】
本変形例は、実施例１における追加セグメント分散処理において、データを移動させる対象とするセグメントを決定する方法を異ならせたものである。【０１１１】
具体的には、図８に示す追加セグメント分散処理のステップ８０６において、管理プログラム１４０は、対応するエントリのフィールド４２４に格納されているデータ移動ディスクＮｏが指すディスク上のセグメントの中で、フィールド４４０の順序性情報の順序がＮ＋１番目に古いセグメントのＤＢデータを、新しく追加されたディスクのＮ番目のセグメントに移動するようにデータ移動指示５１０に情報をセットしてストレージ装置１５０に送信するようにしている。【０１１２】
次に、変形例に係る追加セグメント分散処理が実行された場合におけるＤＢデータの移動の具体例を説明する。【０１１３】
図１７Ａは、変形例に係るＤＢデータの移動を説明する第１の図である。図１７Ｂは、変形例に係るＤＢデータの移動を説明する第２の図である。図１８Ａは、変形例に係るＤＢデータの移動を説明する第３の図である。図１８Ｂは、変形例に係るＤＢデータの移動を説明する第４の図である。図１９Ａは、変形例に係るＤＢデータの移動を説明する第５の図である。図１９Ｂは、変形例に係るＤＢデータの移動を説明する第６の図である。【０１１４】
図９Ｂに示す状態において、変形例に係る追加セグメント分散処理における変数Ｎ＝１とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１７Ａに示すように、順序性６のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏがディスク９００を指しているので、ディスク９００の中で順序性がＮ＋１番目（ここでは、２番目）に古いデータ（ここでは、順序性６のデータ）を持つセグメント（ここでは、セグメントＮｏ１）のデータが、追加したディスク９１０のＮ番目（ここでは、１番目）のセグメント（ここでは、セグメントＮｏ０のセグメント）に移動されることになる。この後、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏは、次のディスク、すなわち、ディスク９０２を指すようにセットされる。【０１１５】
その後、追加セグメント分散処理における変数Ｎ＝２とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１７Ｂに示すように、順序性１２のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０２を指しているので、ディスク９０２の中で順序性がＮ＋１番目（ここでは、３番目）に古いデータ（ここでは、順序性１２のデータ）を持つセグメント（ここでは、セグメントＮｏ２）のデータが、追加したディスク９１０のＮ番目（ここでは、２番目）のセグメント（ここでは、セグメントＮｏ１）に移動されることになる。この後、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏは、次のディスク、すなわち、ディスク９０４を指すようにセットされる。【０１１６】
その後、追加セグメント分散処理における変数Ｎ＝３とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１８Ａに示すように、順序性１８のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０４を指しているので、ディスク９０４の中で順序性がＮ＋１番目（ここでは、４番目）に古いデータ（ここでは、順序性１８のデータ）を持つセグメント（ここでは、セグメントＮｏ３）のデータが、追加したディスク９１０のＮ番目（ここでは、３番目）のセグメント（ここでは、セグメントＮｏ２）に移動されることになる。この後、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏは、次のディスク、すなわち、ディスク９０６を指すようにセットされる。【０１１７】
その後、追加セグメント分散処理における変数Ｎ＝４とした場合の処理（ステップＳ８０４〜ステップ８０８）が実行されると、図１８Ｂに示すように、順序性２４のデータが移動される。すなわち、追加セグメント分散処理が実行されると、フィールド４２４のデータ移動ディスクＮｏは、ディスク９０６を指しているので、ディスク９０６の中で順序性がＮ＋１番目（ここでは、５番目）に古いデータ（ここでは、順序性２４のデータ）を持つセグメント（ここでは、セグメントＮｏ４）のデータが、追加したディスク９１０のＮ番目（ここでは、４番目）のセグメント（ここでは、セグメントＮｏ３）に移動されることになる。この後、ＤＢデータ領域属性情報４００のフィールド４２４のデータ移動ディスクＮｏは、次のディスク、すなわち、ディスク９０８を指すようにセットされる。【０１１８】
その後、追加セグメント分散処理が実行されて、データの移動が終わった場合には、図１９Ａに示す状態となる。すなわち、新たなデータの追加が行われる前において、未使用のセグメントが、ディスク９００のセグメントＮｏ１、ディスク９０２のセグメントＮｏ２、ディスク９０４のセグメントＮｏ３、ディスク９０６のセグメントＮｏ４、ディスク９１０のセグメントＮｏ５といったように、異なるディスクに分散されることとなる。【０１１９】
図１９Ａに示す状態において、順序性２６から順序性３０までのデータが追加されると、図１９Ｂに示すように連続するデータが異なるディスクに分散されて格納されることとなる。すなわち、順序性２６のデータは、ディスク９００のセグメントＮｏ１のセグメントに格納され、順序性２７のデータは、ディスク９０２のセグメントＮｏ２のセグメントに格納され、順序性２８のデータは、ディスク９０４のセグメントＮｏ３のセグメントに格納され、順序性２９のデータは、ディスク９０６のセグメントＮｏ４のセグメントに格納され、順序性３０のデータは、ディスク９１０のセグメントＮｏ４のセグメントに格納される。【０１２０】
以上説明したように、変形例によると、実施例１と同様に、未使用のデータ領域（セグメント）が各ディスクに分散されることとなり、その後、その未使用のセグメントに対して新たなデータの追加が行われる。この結果、図１９Ｂに示す状態となり、例えば、直近の５セグメント分のデータ（ここでは、順序性２６から順序性３０のデータ）に対してアクセスすることを想定すると、ディスク９００、ディスク９０２、ディスク９０４、ディスク９０６、ディスク９１０にアクセスが分散するため、処理の並列度が高まり、性能を向上することが可能となる。さらに、変形例によると、実施例１に比して、古いデータを各ディスクの先頭に近いセグメントに格納することができる。なお、変形例に対して、実施例２と同様な処理を行うようにしてもよい。【０１２１】
上記した実施例１及び実施例２では、追加セグメント分散処理は、ＤＢデータの領域が所定量以下の場合（例えば、ＤＢデータ領域が不足するか、もしくはＤＢデータ領域の割当セグメント数に対する使用セグメント数の割合が所定の閾値を下回った場合）に行われるようにしていたが、これに限られず、例えば、システム管理者からの指示等を契機として行われるようにしても良い。これにより、ＤＢデータ領域が不足していなくても、新しくディスクを追加して、追加したディスク上のセグメントに既存のＤＢデータ領域を構成するディスクのセグメントのデータを移動することで、Ｉ／Ｏの並列度を高め、性能を向上することができる。【０１２２】
以上、幾つかの実施例及び変形例を説明したが、本発明は、それらの実施例及び変形例に限られない。例えば、計算機１００に接続された別の計算機で、管理プログラム１４０が実行されても良い。その場合、当該別の計算機が、管理システムで良い。
【符号の説明】
【０１２３】
１００…計算機、１２０…ＤＢＭＳ、１２２…スキーマ情報、１２４…ＤＢマッピング情報、１２６…ＤＢデータ追加情報、１３０…ＯＳ、１３２…ＯＳマッピング情報、１４０…管理プログラム、１４２…ＤＢデータ領域管理情報、１５０…ストレージ装置、１５４…コントローラ、１５６…ディスク（ＨＤＤ）、１７２…制御プログラム、１７４…ストレージマッピング情報、１８０、１８２…ネットワーク
【図１】
2013183143.tif 000003
【図２Ａ】
2013183143.tif 000004
【図２Ｂ】
2013183143.tif 000005
【図２Ｃ】
2013183143.tif 000006
【図３Ａ】
2013183143.tif 000007
【図３Ｂ】
2013183143.tif 000008
【図４Ａ】
2013183143.tif 000009
【図４Ｂ】
2013183143.tif 000010
【図４Ｃ】
2013183143.tif 000011
【図５Ａ】
2013183143.tif 000012
【図５Ｂ】
2013183143.tif 000013
【図５Ｃ】
2013183143.tif 000014
【図６】
2013183143.tif 000015
【図７】
2013183143.tif 000016
【図８】
2013183143.tif 000017
【図１２Ｂ】
2013183143.tif 000018
【図１３】
2013183143.tif 000019
【図１４】
2013183143.tif 000020
【図１６Ａ】
2013183143.tif 000021
【図１６Ｂ】
2013183143.tif 000022
【図１９Ｂ】
2013183143.tif 000023
【図９Ａ】
2013183143.tif 000024
【図９Ｂ】
2013183143.tif 000025
【図１０Ａ】
2013183143.tif 000026
【図１０Ｂ】
2013183143.tif 000027
【図１１Ａ】
2013183143.tif 000028
【図１１Ｂ】
2013183143.tif 000029
【図１２Ａ】
2013183143.tif 000030
【図１５Ａ】
2013183143.tif 000031
【図１５Ｂ】
2013183143.tif 000032
【図１７Ａ】
2013183143.tif 000033
【図１７Ｂ】
2013183143.tif 000034
【図１８Ａ】
2013183143.tif 000035
【図１８Ｂ】
2013183143.tif 000036
【図１９Ａ】
2013183143.tif 000037
【国際調査報告】
2013183143.tif 000038
2013183143.tif 000039