JP4854973B2 - 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム - Google Patents

記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム Download PDF

Info

Publication number
JP4854973B2
JP4854973B2 JP2005065347A JP2005065347A JP4854973B2 JP 4854973 B2 JP4854973 B2 JP 4854973B2 JP 2005065347 A JP2005065347 A JP 2005065347A JP 2005065347 A JP2005065347 A JP 2005065347A JP 4854973 B2 JP4854973 B2 JP 4854973B2
Authority
JP
Japan
Prior art keywords
storage
record
page
storage area
records
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.)
Expired - Fee Related
Application number
JP2005065347A
Other languages
English (en)
Other versions
JP2006251990A (ja
Inventor
晃英 西野
久幸 圓佛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005065347A priority Critical patent/JP4854973B2/ja
Priority to US11/174,766 priority patent/US7797290B2/en
Publication of JP2006251990A publication Critical patent/JP2006251990A/ja
Application granted granted Critical
Publication of JP4854973B2 publication Critical patent/JP4854973B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システムに関する。
多くのデータベースシステムでは、効率的なデータ入出力環境を維持するためデータベースの再編成が必要となる。たとえば、以下のような目的で再編成が行われる。
・ページ内のレコード間にある空き領域の統合(フラグメンテーション解消)
・オーバフローページにあるレコードをプライムページに格納することによるアクセス性能向上
・データベース内においてレコードが満杯状態になる前の領域の拡張
従来の一般的な再編成処理では、まず、複写元のデータベースより容量の大きい複写先データベースを用意する。次に、複写元のデータベース中にある全てのレコードが、複写先データベースに格納される(たとえば、特許文献1参照)。この処理について、以下具体的に説明する。
図14は、従来の一般的なデータベース再構築方法を示す図である。図14には、データベース941のデータを再構築して、データベース951に格納する場合の例が示されている。
この方式では、データベースを使用する処理機能からアクセスしているデータベース941(複写元)とは別に、新規に再編成を実施するためのデータベース951(複写先)を用意する。各データベース941、951には、対応するインデックス942、952が設けられている。また、データベース941は、複数のプライムページを格納するプライムページ格納領域941aと、複数のオーバフローページを格納するオーバフローページ格納領域941bとを有している。同様に、データベース951は、複数のプライムページを格納するプライムページ格納領域951aと、複数のオーバフローページを格納するオーバフローページ格納領域951bとを有している。なお、この例では、データベース951は、データベース941よりも記憶容量が拡張されているものとする。
そして、複写元のデータベース941の先頭ページから順に、格納されているレコードが複写先のデータベース951に複写され、データベースの再編成が実施される(ステップS111)。
このとき、複写元のデータベース941に対するレコードの更新を意図するトランザクション961を受け付けることができる。たとえば、トランザクション961によってプライムページ内のレコード(レコード番号「R1」)が変更され、オーバフローページにレコード(レコード番号「R33」)が追加される(ステップS112)。再編成中にレコードの更新処理が行われると、その処理内容が更新後ログ943に記録される(ステップS113)。
ここで、この複写されたレコードに対して応用プログラムからの更新があった場合、複写のレコードに対する更新後ログ943を複写先のデータベース951のレコードに付け込む(ステップS114)。付け込みとは、更新されたレコードの内容をデータベース951に反映させる処理である。付け込みによりレコードの上書きを行うことで、整合性が保証される。このようなデータベースの再編成方式は、DBsnapperと呼ばれる。
特開2000−339210号公報
しかし、図14に示した方式では、別個に複写先のデータベースを確保する必要があるため、たとえば、少しの容量拡張に対しても、複写元以上の容量を有する複写先のデータベースを用意する必要があった。すなわち、複写を行うデータの容量に対して、二倍以上の容量を有するデータベースが必要であった。また、複写が終了した複写元のデータベースが無駄となるという問題があった。さらに、データベースを設置するスペースが増大し、維持費がかかるという問題があった。
本発明はこのような点に鑑みてなされたものであり、データベースを再編成可能な記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システムを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデータベース再編成プログラムが提供される。本発明に係るデータベース再編成プログラムは、コンピュータに、基本領域21内の複数のページそれぞれに対して格納すべきレコードがインデックス3aにより定義されたデータベースの再編成処理を実行させるためのものである。
このデータベース再編成プログラムを実行するコンピュータは、拡張データベース作成手段4、拡張インデックス作成手段5およびレコード再編成手段6を有する。
拡張データベース作成手段4は、データベースの再編成要求に応じて、新たな拡張領域22を作成し、基本領域21と拡張領域22とからなる拡張データベース2を作成する。
拡張インデックス作成手段5は、基本領域21および拡張領域22の各ページに格納すべきレコードを定義した拡張インデックス3bを作成する。
レコード再編成手段6は、インデックス3aを参照することにより基本領域21内のページを選択し、選択したページ内のレコードを、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに移動すると共に、拡張データベース2内のページ毎の移動の進捗状況をページ状態管理テーブル7に設定する。
このようなデータベース再編成プログラムを実行するコンピュータによれば、データベースの再編成要求が入力されると、このデータベースに拡張データベース作成手段4により新たな拡張領域22が作成され、基本領域21と拡張領域22とからなる拡張データベース2が作成される。
また、拡張インデックス作成手段5により基本領域21および拡張領域22の各ページに格納すべきレコードを決める拡張インデックス3bが作成される。
そして、レコード再編成手段6によりインデックス3aを参照することにより基本領域21内のページが順次選択され、選択されたページ内のレコードが拡張インデックス3bを参照することにより拡張データベース2の選択したページに移動される。さらに、レコード再編成手段6により、データベース2内のページ毎の移動の進捗状況がページ状態管理テーブル7に設定される。
また、上記課題を解決するために、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定することを特徴とするデータベース再編成方法が提供される。
このようなデータベース再編成方法によれば、データベースの再編成要求が入力されると、拡張データベース作成手段により新たな拡張領域が作成され、また、基本領域と拡張領域とからなる拡張データベースが作成される。その後、拡張インデックス作成手段により基本領域および拡張領域に格納すべきレコードを決める拡張インデックスが作成される。
その後、レコード再編成手段によって、インデックスが参照されることにより基本領域内のページが選択され、選択されたページ内のレコードは、拡張インデックスを参照することにより拡張データベース内の選択したページに移動される。さらに、レコード再編成手段により、拡張データベース内のページ毎の移動の進捗状況がページ状態管理テーブルに設定される。
N個の記憶領域のそれぞれに記憶されていたレコード群を、M個の記憶領域の範囲内でM個の記憶領域に再配置させる制御を行うことができる。
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。図1の例では、記憶手段1に設けられたデータベースを再構成し、拡張データベース2を作成するものとする。
拡張データベース2内の記憶領域は、基本領域21と拡張領域22とを有している。
ここで、基本領域21は、再構成前のデータベースが有していた領域であり、拡張領域22は、再構成により新たに拡張された領域である。
この基本領域21と拡張領域22とは、それぞれ複数のページに分割されている。図1では、基本領域21はページ番号「P0」、「P1」および「P2」のページを有し、拡張領域22はページ番号「P3」、「P4」および「P5」のページを有している。そして、データベースの再構成前の各ページに格納すべきレコードが、インデックス3aで定義されている。また、拡張データベース2に対してレコードの更新処理が行われると、更新処理の内容がログとして保存される。
なお、図1の例では、インデックス3a、拡張インデックス3bにおいて、レコード番号(Rm:mは0以上の整数)とページ番号(Pn:nは0以上の整数)との対応関係が示されている。各ページには、インデックス3a、拡張インデックス3bで対応付けられたレコード番号以下であり、且つ、ページ番号が1つ小さいページに対応付けられたレコード番号より大きなレコード番号を有するレコードが格納される。
拡張データベース作成手段4は、データベースの再編成要求に応じて、新たな拡張領域を作成し、前述したように基本領域21と拡張領域22とで構成される拡張データベース2を作成する。
拡張インデックス作成手段5は、基本領域21および拡張領域22に格納すべきレコードを決める拡張インデックス3bを作成する。
レコード再編成手段6は、インデックス3aを参照することにより基本領域21内の、後述する未編成のページを選択する。そして、レコード再編成手段6は、選択したページ内のレコードを、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに再編成する。また、レコード再編成手段6は、拡張データベース2内のページ毎の再編成の進捗状況をページ状態管理テーブル7に設定する。
ページ状態管理テーブル7には、拡張前のデータベース内のページ毎に、再編成の状態が設定されている。再編成の状態としては、未編成(図中「未」と示す)、再編成処理中(図中「中」と示す)、および編成済(図中「済」と示す)がある。
レコード書き込み手段8は、更新レコードの書き込み要求に応じてページ状態管理テーブル7を参照し、書き込み対象のページの状態に応じて、更新レコードの書き込み対象を判定する。具体的には、レコード書き込み手段8は、拡張データベース2内の書き込み対象ページが未編成の状態であればインデックス3aを参照し、拡張データベース2内の該当ページに対して更新レコードを書き込む。書き込み対象ページが編成済の状態であれば拡張インデックス3bを参照して、拡張データベース2内の該当ページに対して前記更新レコードを書き込む。さらに、レコード書き込み手段8は、書き込み対象ページが再編成処理中の状態であれば編成済に遷移するのを待ち、再編成処理中から編成済の状態に遷移したときに、拡張データベース2に更新レコードを書き込む。
このようなデータベース再編成装置によれば、データベースの再編成要求が入力されると、レコード再編成手段6により、インデックス3aを参照することにより基本領域21内のページが順次選択され、選択されたページ内のレコードが、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに再編成される。さらに、レコード再編成手段6により、拡張データベース2内のページ毎の再編成の進捗状況がページ状態管理テーブル7に設定される。詳述すると、このページ状態管理テーブル7は、インデックス3aに対応したページ番号が割り振られており、拡張前のデータベースのレコードが格納された各ページに対して、処理が終了したか否かの進捗状況が設定される。
ここで、ページ番号「P0」〜「P2」が大きい順に、ページが選択されるものとする。図1には、ページ番号「P1」のページを再編成しているときのページ状態管理テーブル7が示されている。この例では、ページ番号「P0」のページが未編成、ページ番号「P1」のページが再編成処理中、ページ番号「P2」のページが編成済である。
データベース再編成処理中に、更新レコードの書き込み要求が入力されると、レコード書き込み手段により、ページ状態管理テーブル7が参照され、書き込み対象のページの状態が判断される。
たとえば、レコード番号「R3」が更新レコード9aとして入力された場合、拡張前のデータベースのページ番号「P0」のページが書き込み対象となる。図1の例では、ページ番号「P0」のページは、未編成の状態である。そのため、更新レコード9aは、インデックス3aを参照し、得られた書き込み先である拡張データベース2のページ番号「P0」のページに書き込まれる。
レコード番号「R4」が更新レコード9bとして入力された場合、拡張前のデータベースのページ番号「P1」のページが書き込み対象となる。図1の例では、ページ番号「P1」のページは、再編成処理中の状態である。そのため、該当ページの状態が編成済になるのを待ち、更新レコード9bは、拡張インデックス3bを参照し、拡張データベース2の得られた書き込み先に書き込まれる。
レコード番号「R6」が更新レコード9cとして入力された場合、拡張前のデータベースのページ番号「P2」のページが書き込み対象となる。図1の例では、ページ番号「P2」のページは、編成済の状態である。そのため、更新レコード9cは拡張インデックス3bを参照し、得られた書き込み先である拡張データベース2のページ番号「P5」のページに書き込まれる。
このようにして、レコードの書き込みを停止することなく、データベースの再編成が行われる。なお、ページが再編成処理中の場合、書き込みの待機時間が発生するが、1ページの再編成処理は短時間で実行できるため、業務を停止させる程の影響はない。
以下、本発明の実施の形態を具体的に説明する。
図2は、本発明の実施の形態のシステム構成例を示す図である。本発明の実施の形態では、複数のホストコンピュータ100、200、300、400と複数の端末装置31、32、・・・とがネットワーク10を介して接続されている。ホストコンピュータ100、200、300、400には、ストレージデバイス500、600が接続されている。また、ホストコンピュータ100と他のホストコンピュータ200、300、400とは、高速の通信回線で互いに接続されている。ホストコンピュータ200、300、400は、その通信回線を介して、ホストコンピュータ100内の共有メモリにアクセスできる。
ホストコンピュータ100、200、300、400は、ネットワーク10を介して端末装置31、32、・・・からの要求に応じて、ストレージデバイス500、600内に構築されたデータベースに対するトランザクションを実行する。また、少なくとも1つのホストコンピュータは、データベースを再構成するための処理機能を有している。本実施の形態では、ホストコンピュータ100がデータベースの再構成を行うものとする。ホストコンピュータ100は、データベースの再構成を行うために、以下のようなハードウェア構成を有している。
図3は、データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。ホストコンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス101aを介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、共有メモリ106、ストレージデバイスインタフェース107、通信インタフェース108、およびホストコンピュータ間通信インタフェース109が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。さらに、データベースの再編成時には、RAM102内に、データベース内のブロック毎の状態を示すページ状態管理テーブルが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス101aを介してCPU101に送信する。
共有メモリ106は、他のホストコンピュータ200、300、400との間で共有可能な記録媒体である。この共有メモリ106は、データベースの再編成時には、ページ状態管理テーブルの内容が、所定のタイミングで格納されるページ状態管理データ格納部として機能する。なお、ページ状態管理テーブルおよびページ状態管理データ格納部については後に詳述する。
共有メモリ106としては、たとえば、バッテリでバックアップされた半導体メモリが使用される。
ストレージデバイスインタフェース107は、ストレージデバイス500、600に接続されている。ストレージデバイスインタフェース107は、CPU101からの指示に従って、ストレージデバイス500、600に対するデータの入出力を行う。
通信インタフェース108は、ネットワーク10に接続されている。通信インタフェース108は、ネットワーク10を介して、端末装置31、32、・・・との間でデータの送受信を行う。
ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400に接続されている。ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400との間でデータの送受信を行う。たとえば、ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400に対して共有メモリ106に格納されている情報を送信する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、ホストコンピュータ100のハードウェア構成を説明したが、他のホストコンピュータ200、300、400も同様のハードウェア構成で実現することができる。ただし、ホストコンピュータ200、300、400には、共有メモリは搭載されていなくてもよい。
以下、図2、3に示す構成のシステムにおけるデータベース再編成処理について詳細に説明する。
図4は、本実施の形態を実現するための機能を示すブロック図である。図4には、ストレージデバイス500内に構築されているデータベースが拡張データベース520aに再編成された場合の例が示されている。
ホストコンピュータ100には、ストレージデバイス500、600が接続されている。
ストレージデバイス500には、インデックス510、拡張インデックス550、基本領域521と拡張領域522とを有する拡張データベース520a、更新前ログ530、および更新後ログ540が含まれる。データベースの再編成を実行する以前のデータベースには、拡張領域522および拡張インデックス550は存在せず、インデックス510、基本領域521を有するデータベース、更新前ログ530および更新後ログ540を用いて端末装置31、32、・・・に対するサービスが提供される。
インデックス510には、基本領域521の各ページに格納すべきレコードの識別番号(レコード番号)が定義されている。拡張インデックス550には、データ再編成後の基本領域521および拡張領域522の各ページに格納すべきレコードの識別番号(レコード番号)が定義されている。基本領域521および拡張領域522は、複数のページに分割された記憶領域を有している。すなわち、拡張データベース520aの記憶容量は、基本領域521と拡張領域522との容量を加えたものになる。データ再編成前には、各ページにインデックス510で対応付けられたレコードが格納されており、データ再編成後には、各ページに拡張インデックス550で対応付けられたレコードが格納される。
更新前ログ530には、再編成前のデータベースおよび拡張データベース520a内の、それぞれのレコードが更新された際の更新前のレコードの内容が記録される。更新後ログ540には、再編成前のデータベースおよび拡張データベース520a内の、それぞれのレコードが更新された際の更新後のレコードの内容が記録される。
ホストコンピュータ100は、再編成トランザクション処理部110、ページ状態管理テーブル120、オンライントランザクション処理部130およびページ状態管理データ格納部140を有する。
再編成トランザクション処理部110は、データベースの再編成処理を行う。具体的には、再編成トランザクション処理部110は、データベースの再編成要求を受け付けると、ストレージデバイス500内に、前述の拡張インデックス550および拡張領域522を作成する。これにより、拡張データベース520aの記憶容量は、拡張前のデータベースに対して拡張領域522の分だけ大きく設定される。そして、再編成トランザクション処理部110は、拡張データベース520a内のレコードをページ単位で再編成する。その際の各ページの状態は、ページ状態管理テーブル120に設定される。
ページ状態管理テーブル120には、データベース再編成中に、拡張データベース520a内の各ページの状態が登録される。ページの状態は、「未編成」、「再編成処理中」、「編成済」がある。
オンライントランザクション処理部130は、端末装置31、32、・・・からの要求に応じてデータベース操作のトランザクションを実行する。なお、データベース再構成処理中においては、オンライントランザクション処理部130は、ページ状態管理テーブル120を参照し、アクセス対象とすべきデータベースを判断する。
ページ状態管理データ格納部140は、ページ状態管理テーブル120の内容が変更されたときに、前述したページ状態管理テーブル120の登録内容を、前述した共有メモリ106に格納する。
図5は、インデックスとデータベースとのデータ構造を示す図である。
次に、図5を参照してインデックス510とデータベース520との関係について詳細に説明する。
データベース520は、拡張領域522を作成する前のデータベースである。
インデックス510には、各ページのページ番号に対応付けて、そのページに格納すべきレコードのレコード番号が定義されている(ページ番号をPm、レコード番号をRnで表している)。
効率的なトランザクション処理を行うために、レコード番号の小さいレコードほど、ページ番号の小さいページに割り当てられる。そこで、インデックス510では、各ページのページ番号に対応付けて、そのページに格納されるレコードに対するレコード番号の最大値が設定されている。
図5の例ではインデックス510において、ページ番号「P0」に対応付けてレコード番号「R3」が設定されている。これは、ページ番号「P0」のページに対して、レコード番号が「R0x」〜「R3x」(xは0以上の整数)のレコードが登録されることを意味する。
また、ページ番号「P1」に対応付けてレコード番号「R4」が設定されている。これは、ページ番号「P1」のページに対して、レコード番号「R4x」のレコードが登録されることを意味する。
ページ番号「P2」に対応付けてレコード番号「R6」が設定されている。これは、ページ番号「P2」のページに対して、レコード番号が「R5x」、「R6x」のレコードが登録されることを意味する。
なお、データベース520がネットワークデータベース(NDB)として利用される場合、各レコードには、ツリー構造で互いに関連付けられた複数のデータが含まれる。この場合、再編成前のデータベース520でのデータ間の関連付けは、再編成後の拡張データベース520aで再現される。
データベース520の基本領域521には、複数のプライムページを格納するためのプライムページ格納領域521aと複数のオーバフローページを格納するためのオーバフローページ格納領域521bとが設けられている。プライムページは、インデックス510に設定されている各ページ番号に対応する記憶領域である。各プライムページには、インデックス510で定義されたレコード番号のレコードのみが格納できる。
オーバフローページは、プライムページの容量不足によって、レコード番号に対応するプライムページに格納できなかったレコードを格納するための記憶領域である。オーバフローページにレコードが格納された場合、そのレコードのレコード番号に対応するプライムページ内に、オーバフローページへのポインタが設定される。そのポインタを参照することで、レコードが格納されたオーバフローページを特定できる。
このように、各プライムページには、格納可能なレコードのレコード番号が予め指定されている。そして、1つのプライムページにレコードが格納しきれなくなると、レコードがオーバフローページに格納される。
しかし、オーバフローページに格納されるレコードの量が増加すると、データベース520へのアクセス効率が悪化する。すなわち、任意のレコードにアクセスする場合、オンライントランザクション処理部130は、まずインデックス510を参照して、レコードが登録されているプライムページを判断する。そして、オンライントランザクション処理部130は、該当するプライムページからアクセス対象のレコードを検索する。
ここで、アクセス対象のレコードが見つからない場合、オンライントランザクション処理部130は、プライムページに登録されているポインタを参照して、関連付けられたオーバフローページを判断する。そして、オンライントランザクション処理部130は、該当するオーバフローページからアクセス対象のレコードを検索する。
このように、オーバフローページに格納されたページにアクセスする場合、オンライントランザクション処理部130において2段階の検索処理が行われる。そのため、アクセスの処理効率が低下する。
そこで、オーバフローページに格納されたレコードの量が増加した場合、プライムページの容量を拡張するように、データベース再編成が行われる。データベース520を再編成する際には、データベース520内の各レコードがページ単位で再編成される。その際、基本領域521内のプライムページの状態が、ページ状態管理テーブル120で管理される。
図6は、ページ状態管理テーブルのデータ構造例を示す図である。ページ状態管理テーブル120には、データベース520内のプライムページのページ番号に対応付けて、そのページの状態が設定されている。状態には、未編成(図中「未」と示す)、再編成処理中(図中「中」と示す)、および編成済(図中「済」と示す)がある。未編成の状態とは、該当するページに格納されているレコードの再編成処理が行われていないことを示す。再編成処理中の状態とは、該当するページに格納されているレコードの再編成処理中であることを示す。編成済の状態とは、該当するページに格納されているレコードの再編成処理が完了したことを示す。
なお、本実施の形態では、オンライントランザクションを継続して実行しながらデータベース再編成処理を行うことができる。以下、データベース再構成処理と、データベース再構成中のオンライントランザクションについて具体的に説明する。
図7は、データベース再編成処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS11]再編成トランザクション処理部110は、ストレージデバイス500に拡張インデックス550を作成する。この拡張インデックス550では、プライムページの数を増加させるように、ページ番号の数を増加させる。すなわち、図5に示すレコード「R1」〜「R6」の数以上のプライムページ格納領域について定義される。プライムページの数が増加することにより、データベース520の容量が増加する。
[ステップS12]再編成トランザクション処理部110は、拡張インデックス550に基づいて、拡張領域522を作成する。
[ステップS13]再編成トランザクション処理部110は、ページ状態管理テーブル120の全てのページの状態を「未編成」にする。
[ステップS14]再編成トランザクション処理部110は、拡張データベース520aのプライムページから、基本領域521の、拡張領域522側に最も近い未編成のプライムページを選択する。
[ステップS15]再編成トランザクション処理部110は、ページ状態管理テーブル120におけるステップS14で選択したプライムページの状態を、「再編成処理中」に変更する。
[ステップS16]再編成トランザクション処理部110は、拡張データベース520a内のステップS14で選択したプライムページ内のレコードを、再編成する。
具体的には、再編成トランザクション処理部110は、ステップS14で選択したプライムページ内のレコードをRAM102に読み込み、このプライムページ内のレコードを削除する。次に、RAM102内のレコードを移動先のプライムページに格納する。この際の移動先のプライムページは、ステップS11で作成した拡張インデックス550に従う。また、再編成トランザクション処理部110は、ステップS14で選択したプライムページからポインタで指し示されたオーバフローページに格納されたレコードも、同様に再編成する。
[ステップS17]再編成トランザクション処理部110は、ステップS14で選択されたプライムページおよびポインタで関連付けられたオーバフローページに格納されていた全てのレコードの再編成が行われたか否かを判断する。ページ内の全てのレコードの再編成が完了したら(ステップS17のYes)、処理がステップS18に進められる。再編成の完了していないレコードがある場合(ステップS17のNo)、処理がステップS16に進められ、該当レコードの再編成が行われる。
[ステップS18]再編成トランザクション処理部110は、ページ状態管理テーブル120におけるステップS14で選択したプライムページの状態を、「編成済」に変更する。
[ステップS19]再編成トランザクション処理部110は、拡張データベース520a内の全てのページに対する再編成処理が完了したか否かを判断する。全てのページの再編成が完了した場合、処理が終了する。再編成していないページがある場合、処理がステップS14に進められ、該当ページの再編成が行われる。
このように、再編成トランザクション処理部110がページ単位で再編成を行い、ページ状態管理テーブル120における編成対象のページの状態を適宜更新する。これにより、ページ状態管理テーブル120を参照することで、オンライントランザクション処理部130が各プライムページの状態を認識することができる。オンライントランザクション処理部130が、プライムページの状態を認識することにより、データベース再構成中であっても、データベースに対するレコード更新のトランザクションが可能となる。
また、再編成処理の途中に、何らかの原因によりページ状態管理テーブル120の内容が消去された場合においても、ページ状態管理テーブル120が、ページ状態管理データ格納部140に格納された登録内容を再度読み込むことにより、中断された状態から、引き続き再編成処理を行うことができる。
図8は、データベース再構成中のレコード更新処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS21]オンライントランザクション処理部130は、インデックス510を参照し、処理対象のレコードが格納されているプライムページを判断する。そして、オンライントランザクション処理部130は、ページ状態管理テーブル120を参照し、該当するプライムページの状態が、再編成処理中、未編成または編成済かを判断する。再編成処理中であれば、処理がステップS22に進められる。未編成であれば、処理がステップS23に進められる。編成済であれば、処理がステップS26に進められる。
[ステップS22]アクセス対象のプライムページが再編成処理中の場合、オンライントランザクション処理部130は、所定時間待機後処理をステップS21に進め、再度プライムページの状態を判断する。
[ステップS23]アクセス対象のプライムページが未編成であれば、オンライントランザクション処理部130は、インデックス510を参照する。
[ステップS24]オンライントランザクション処理部130は、ステップS23で参照したインデックス510の内容に従って、拡張データベース520aから更新対象のレコードをリードする。
[ステップS25]オンライントランザクション処理部130は、ステップS24でリードしたレコードの内容を更新し、拡張データベース520aにライトする。その後、処理が終了する。
[ステップS26]アクセス対象のプライムページが編成済であれば、オンライントランザクション処理部130は、拡張インデックス550を参照する。
[ステップS27]オンライントランザクション処理部130は、ステップS26で参照した拡張インデックス550の内容に従って、拡張データベース520aから更新対象のレコードをリードする。
[ステップS28]オンライントランザクション処理部130は、ステップS27でリードしたレコードの内容を更新し、拡張データベース520aにライトする。その後、処理が終了する。
このように、更新対象となるプライムページの状態に応じて、アクセスするインデックスを判断することで、データベース再編成中であってもオンライントランザクションが可能となる。
図9〜図12は、データベースの再編成処理を具体的に示す概念図である。
図9は、再編成処理前のストレージデバイスを示す概念図である。
図9に示すように、再編成処理前のデータベース520の基本領域521は、複数のプライムページを格納するプライムページ格納領域521aと複数のオーバフローページを格納するオーバフローページ格納領域521bとを有している。このデータベース520は、プライムページ格納領域521aのページ番号「P0」のページにレコードR1、R2が格納され、ページ番号「P1」のページにレコードR4が格納され、ページ番号「P2」のページにレコードR5が格納されている。また、オーバフローページ格納領域521bのページ番号「00」のページにR3が格納され、ページ番号「01」のページにR6が格納されている。
図10は、再編成要求が出されたときのストレージデバイスを示す概念図である。
システム管理者からの操作入力等によってデータベース520の再編成要求が出されると、再編成トランザクション処理部110は、ストレージデバイス500内に拡張インデックス550と、プライムページ格納領域522aおよびオーバフローページ領域522bを有する拡張領域522とを作成する。
また、再編成トランザクション処理部110は、ページ状態管理テーブル120の全てのページの状態を「未編成」にする。
その後、再編成トランザクション処理部110によって、拡張データベース520aの再編成が開始される。
レコードの再編成は、1つのプライムページ毎に生成される再編成トランザクション111により実行される。
再編成トランザクション111がスタートすると、基本領域521内の、拡張領域522側に最も近いプライムページに格納されているレコードから再編成処理が開始される。
図10の例では、ページ番号「P2」のページに格納されているR5から再編成処理が開始される。ページ番号「P2」のページに対する処理を完了すると、次に、ページ番号「P1」のページに格納されているレコードに対して処理を行う。このようにして、順次再編成処理を進めていく。
この際、まず、拡張領域522のページ(本実施の形態ではページ番号「P5」、「P4」、「P3」のページ)に、拡張領域522に格納すべきレコード(本実施の形態ではレコード「R6」、「R5」、「R4」)を、それぞれ移動させる。
その後、基本領域521の、すでに移動されたレコードが格納されていたページ(本実施の形態では、ページ番号「P2」、「P1」、「P0」)に、基本領域521に格納すべきレコード(本実施の形態ではレコード「R3」、「R2」、「R1」)を、それぞれ移動させる。
図11は、再編成処理中のストレージデバイスを示す概念図である。
図11では、ページ状態管理テーブル120において、ページ番号「P2」のプライムページの状態が編成済(図中「済」と示す)に変更されており、ページ番号「P1」のプライムページの状態が再編成処理中(図中「中」と示す)に変更されている。
次に、再編成トランザクション111では、拡張データベース520a内の編成対象のプライムページ、およびそのプライムページからポインタで関連付けられたオーバフローページから、順次レコードが読み出される。図11の例では、ページ番号「P1」のプライムページからレコード番号「R4」のレコードが読み出され、ページ番号「01」のオーバフローページからレコード番号「R6」のレコードが読み出される。
次に、読み出されたレコードの内容が、拡張インデックス550に従って拡張データベース520aに書き込まれる。図11の例では、拡張データベース520aに対する拡張インデックス550において、レコード番号「R4」、「R6」のレコードは、それぞれページ番号「P3」、「P5」に対応付けられている。したがって、レコード番号「R4」のレコードはページ番号「P3」のプライムページに書き込まれ、「R6」のレコードはページ番号「P5」のプライムページに書き込まれる。
このようにして、拡張データベース520aのページ番号「P1」のプライムページのレコードおよびページ番号「P1」のプライムページに関連付けられたオーバフローページのレコードが、拡張インデックス550を参照することにより、対応付けた新たなプライムページに全て格納されると、ページ状態管理テーブル120における該当ページ(本実施形態ではページ番号「P1」のページ)の状態が、再編成処理中から編成済(図中「済」と示す)に変更される。これにより、1つのプライムページに対する再編成トランザクションが終了する。
再編成トランザクション処理部110は、他のプライムページに対する同様の再編成トランザクションを繰り返し実行する。これにより、拡張データベース520aの先頭ページから最終ページまでのレコードの再編成が実施される。
図12は、再編成済のストレージデバイスを示す概念図である。
図12に示すように、全てのページ状態管理テーブル120のプライムページが、「済」に変更となったことを確認すると、拡張データベース520aの再編成処理を終了する。本実施形態では、プライムページ「P2」、「P1」、「P0」の順番で再編成処理を行ったため、プライムページ「P0」が「済」になったことを確認すると、拡張データベース520aの再編成処理を終了する。
図13は、データベース再編成処理とオンライントランザクションとが同時に実行された場合の処理を具体的に示す概念図である。
図11に示す状態、すなわち、再編成中に、オンライントランザクション処理部130が端末装置31からレコードの更新の処理要求を受け取ると、オンライントランザクション131が開始される。オンライントランザクション131では、ページ状態管理テーブル120が参照され、書き込み対象のプライムページの状態が未編成の場合、インデックス510が参照され、データベース520aの該当ページにレコードが追加される。また、書き込み対象のプライムページの状態が編成済の場合、拡張インデックス550が参照され、データベース520の該当ページにレコードが追加される。
ページ状態が再編成処理中の場合は、排他制御によりオンライントランザクション131を待機させる。そして、再編成が完了し、ページ状態が編成済になると、前述した処理を行う。
図13に示す例では、オンライントランザクション処理部130が、レコード「R3」およびレコード「R6」に対して更新の処理要求を受け取った場合を示している。レコード「R3」の更新の処理を行う場合、オンライントランザクション131は、ページ状態管理テーブル120を参照し、書き込み対象のプライムページの状態が未編成であると判断してインデックス510を参照する。そして、書き込み対象のプライムページ「P0」に登録されたポインタを参照して、関連付けられたオーバフローページ「00」のレコード「R3」を検索する。その後、このオーバフローページ「00」にレコード「R33」を追加する(ステップS41)。
また、レコード「R6」の更新の処理を行う場合、オンライントランザクション131は、ページ状態管理テーブル120を参照し、書き込み対象のプライムページの状態が編成済であると判断して拡張インデックス550を参照する。そして、書き込み対象のプライムページ「P5」を参照してレコード「R6」を検索する。その後、このプライムページ「P5」にレコード「R66」を追加する(ステップS42)。
このように、再編成前のデータベース520を構成する基本領域521に、新たに拡張領域522を追加することにより、基本領域521を含む新たな拡張データベース520aを作成して再編成を行うことによって、再編成時に必要なデータベースの容量の追加を最小限にすることができる。これにより、従来必要としていた、再編成前のデータベース以上の容量を有するデータベースを別個に用意する必要が無く、データベースの省容量化を図ることができる。
また、オンライントランザクション処理部130がレコードの更新の処理要求を受け取ると、オンライントランザクション処理部130が、ページ状態管理テーブル120の内容に従って、未処理、再編成処理中、編成済を判断してインデックス510および拡張インデックス550を参照することにより、処理対象のページを一意に定め、この該当ページに対してレコードの更新を行う。これにより、1トランザクション内での更新回数を削減することができ、この結果トランザクション性能が向上する。
そして、再編成単位を最小単位のページ単位にしたことで、オンラインサービスを停止することなくデータベース再編成が可能となる。しかも、再編成時には、オンライントランザクション処理部130により、書き込まれたレコードの内容を含むログが更新後ログ540に記録される。更新後ログ540にレコードが記録されることで、ホストコンピュータ100が異常終了等によりデータベース520および拡張データベース520aの内容が不完全なものとなっても、データベース520および拡張データベース520aの内容を容易に復旧することができる。
さらに、ページ状態管理データ格納部140を設けたことにより、ホストコンピュータ100が異常終了等によりページ状態管理テーブル120の内容が不完全なものとなっても、異常終了前のページ状態管理テーブル120の登録内容が、共有メモリ106に格納されているため、ページ状態管理テーブル120の内容を容易に復旧することができ、引き続き再編成処理を行うことができる。
なお、本実施の形態では、拡張インデックス550に基づいて、拡張領域522を作成したが、これに限らず、拡張領域522を作成した後に、拡張インデックス550を作成してもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ホストコンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
(付記1) コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラム。
(付記2) さらに、前記コンピュータを、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記拡張データベース内の書き込み対象ページが未編成の状態であれば前記インデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記拡張インデックスを参照して、前記拡張データベース内の該当ページに対して前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とする付記1記載のデータベース再編成プログラム。
(付記3) 前記データベースの基本領域は、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記拡張データベース作成手段として機能させる際、前記拡張データベースには、前記データベースのプライムページとオーバフローページとに格納されている全てのレコードを格納し得るプライムページが作成されることを特徴とする付記1記載のデータベース再編成プログラム。
(付記4) 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域に格納すべきレコードを前記基本領域から前記拡張領域に移動し、前記拡張領域の移動の終了後、前記基本領域に格納すべきレコードを移動することを特徴とする付記1記載のデータベース再編成プログラム。
(付記5) 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域の再編成の終了後、前記基本領域の、すでに移動されたレコードが格納されていたページに、前記基本領域に格納すべきレコードを移動することを特徴とする付記4記載のデータベース再編成プログラム。
(付記6) 前記コンピュータを前記レコード再編成手段として機能させる際、前記ページ状態管理テーブルの内容を逐次不揮発性メモリに格納することを特徴とする付記1記載のデータベース再編成プログラム。
(付記7) 前記拡張データベース作成手段は、前記拡張インデックスに基づいて、前記拡張領域を作成する付記1記載のデータベース再編成プログラム。
(付記8) 基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、
拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、
拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、
レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定する、
ことを特徴とするデータベース再編成方法。
(付記9) 基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成装置において、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段と、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段と、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段と、
を有することを特徴とするデータベース再編成装置。
(付記10) コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体。
実施の形態に適用される発明の概念図である。 本発明の実施の形態のシステム構成例を示す図である。 データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。 本実施の形態を実現するための機能を示すブロック図である。 インデックスとデータベースとのデータ構造を示す図である。 ページ状態管理テーブルのデータ構造例を示す図である。 データベース再編成処理の手順を示すフローチャートである。 データベース再編成中のレコード更新処理の手順を示すフローチャートである。 再編成処理前のストレージデバイスを示す概念図である。 再編成要求が出されたときのストレージデバイスを示す概念図である。 再編成処理中のストレージデバイスを示す概念図である。 再編成済のストレージデバイスを示す概念図である。 データベース再編成処理とオンライントランザクションとが同時に実行された場合の処理を示す概念図である。 従来の一般的なデータベース再構築方法を示す図である。
符号の説明
1 記憶手段
2 拡張データベース
3a インデックス
3b 拡張インデックス
4 拡張データベース作成手段
5 拡張インデックス作成手段
6 レコード再編成手段
7 ページ状態管理テーブル
8 レコード書き込み手段
21 基本領域
22 拡張領域
106 共有メモリ

Claims (9)

  1. 複数のレコードをN分割して得られる各レコード群をそれぞれ記憶しているN個の記憶領域に加え、他の記憶領域を備えた記憶装置の記憶制御を行うコンピュータに、
    前記N個の記憶領域と前記他の記憶領域とを併せたM個の記憶領域に前記複数のレコードを再配置させる場合に、前記他の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記他の記憶領域に移動させ、さらに、前記他の記憶領域に移動させた前記レコードの移動元の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記移動元の記憶領域に移動させる、
    ことを実行させることを特徴とする記憶制御プログラム。
  2. N個の記憶領域と他の記憶領域とを備える記憶装置に記憶制御を行うコンピュータに、
    順序情報を有する複数のレコードを、N個に分割された前記順序情報についての範囲のそれぞれについて、それぞれの範囲内の前記順序情報を有する前記レコードによるレコード群を、前記N個の記憶領域のそれぞれに記憶し、
    前記N個の記憶領域のそれぞれに記憶した前記レコード群を前記N個の記憶領域と前記他の記憶領域とを併せたM個の記憶領域に再配置させる場合に、前記M個に分割された前記順序情報についての範囲のそれぞれについて、それぞれの範囲内に含まれる前記順序情報を有する前記レコードによる前記レコード群を、前記M個の記憶領域の再配置対象とする設定を、前記M個の記憶領域のうちの前記N個の記憶領域については、前記N個の記憶領域に再配置される前記レコード群の前記順序情報同士の順序関係と、前記N個の記憶領域のそれぞれに記憶された前記レコード群の前記順序情報同士の順序関係と、を一致させて行い、
    前記他の記憶領域に再配置させる前記レコード群に含まれる前記レコードを、前記他の記憶領域に再配置させる前記レコード群と前記順序情報についての範囲が隣接する前記レコード群を再配置対象とする記憶領域から移動させる、
    ことを実行させることを特徴とする記憶制御プログラム。
  3. 複数の記憶領域および追加記憶領域を備える記憶装置の記憶制御を行うコンピュータに、
    前記複数の記憶領域のそれぞれと、前記記憶装置に記憶されるレコードが有する順序情報についての範囲と、を対応付ける第1のインデックスに基づいて、複数の前記レコードを前記記憶装置に記憶させる制御を行い、
    前記記憶装置に記憶された前記複数の前記レコードを前記複数の記憶領域および前記追加記憶領域に再配置させる場合に、前記複数の記憶領域および前記追加記憶領域のそれぞれと、前記レコードが有する前記順序情報についての範囲とを対応付ける第2のインデックスを、前記複数の記憶領域のそれぞれに各範囲内に含まれる前記順序情報同士の順序関係を前記第1のインデックスの順序関係と一致させて、各範囲を対応付けて生成し、
    前記複数の記憶領域のそれぞれについて、それぞれの記憶領域に前記第2のインデックスで定められた範囲が、前記追加記憶領域に定められた範囲と近い順に、それぞれの記憶領域に前記第1のインデックスに基づいて記憶された前記レコードを前記第2のインデックスに基づいて再配置させる、
    ことを実行させることを特徴とする記憶制御プログラム。
  4. 前記コンピュータに
    前記複数の記憶領域のそれぞれについて、それぞれの記憶領域に前記第1のインデックスに基づいて記憶した前記レコードを第2のインデックスに基づいて再配置させる処理を実行した場合に、さらに、再配置させる処理が実行された旨を示す情報を記憶手段に記憶し、
    前記複数のレコードのうちのいずれかのレコードを対象とする更新依頼得に応じて、さらに、前記記憶手段に記憶した、前記更新依頼の対象である前記レコードが有する順序情報を含む範囲と前記第1のインデックスで対応付けられた記憶領域に前記再配置させる処理を実行された旨を示す情報が記憶されているか否かに基づいて、前記再配置させる処理が実行された旨を示す情報が記憶されていない場合は前記第1のインデックスに基づいた記憶領域に更新処理を行い、前記再配置させる処理が実行された旨を示す情報が記憶されていた場合は前記第2のインデックスに基づいた記憶領域に更新処理を行う、
    ことを実行させることを特徴とする請求項3に記載の記憶制御プログラム。
  5. 複数のレコードをN分割して得られる各レコード群をそれぞれ記憶しているN個の記憶領域に加え、他の記憶領域を備えた記憶装置の記憶制御を行う記憶制御方法において、
    前記N個の記憶領域と前記他の記憶領域とを併せたM個の記憶領域に前記複数のレコードを再配置させる場合に、前記他の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記他の記憶領域に移動させ、さらに、前記他の記憶領域に移動させた前記レコードの移動元の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記移動元の記憶領域に移動させる、
    ことを実行させることを特徴とする記憶制御方法。
  6. 複数のレコードをN分割して得られる各レコード群をそれぞれ記憶しているN個の記憶領域に加え、他の記憶領域を備えた記憶装置の記憶制御を行う記憶制御装置において、
    前記N個の記憶領域と前記他の記憶領域とを併せたM個の記憶領域に前記複数のレコードを再配置させる場合に、前記他の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記他の記憶領域に移動させ、さらに、前記他の記憶領域に移動させた前記レコードの移動元の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記移動元の記憶領域に移動させる移動部、
    を有することを特徴とする記憶制御装置。
  7. 複数のレコードをN分割して得られる各レコード群をそれぞれ記憶しているN個の記憶領域に加え、他の記憶領域を備えた記憶装置の記憶制御を行う記憶制御システムにおいて、
    前記N個の記憶領域と前記他の記憶領域とを併せたM個の記憶領域に前記複数のレコードを再配置させる場合に、前記他の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記他の記憶領域に移動させ、さらに、前記他の記憶領域に移動させた前記レコードの移動元の記憶領域に再配置させるレコード群に含まれる前記レコードを記憶している記憶領域から前記移動元の記憶領域に移動させる移動部と、前記複数の記憶領域のそれぞれについて、前記複数の記憶領域のそれぞれと、前記記憶装置に記憶されるレコードが有する順序情報についての範囲と、を対応付ける第1のインデックスに基づいて記憶した前記レコードを再配置させる処理を実行したか否かを示す情報を記憶手段に記憶する記憶部と、を有する第1のコンピュータと、
    前記複数のレコードのうちのいずれかのレコードを対象とする更新依頼を取得した場合に、前記記憶手段に記憶した、前記更新依頼の対象である前記レコードが有する順序情報を含む範囲と前記第1のインデックスで対応付けられた記憶領域に前記再配置させる処理を実行したか否かを示す情報に基づいて、前記再配置させる処理が実行されていない場合は前記第1のインデックスに基づいた記憶領域に更新処理を行い、前記再配置させる処理が実行されていた場合は前記複数の記憶領域及び前記追加記憶領域のそれぞれと、前記レコードが有する前記順序情報についての範囲とを対応付ける第2のインデックスに基づいた記憶領域に更新処理を行う更新処理部を有する第2のコンピュータと、
    を有することを特徴とする記憶制御システム。
  8. さらに、前記コンピュータ
    更新レコードの書き込み要求に応じて前記他の記憶領域内のページ毎の移動の進捗状況を設定したページ状態管理テーブルを参照し、前記他の記憶領域内の書き込み対象ページが未編成の状態であれば格納すべき前記レコードが定義されたインデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記N個の記憶領域と前記他の記憶領域の各ページに格納すべき前記レコードが定義された拡張インデックスを参照して、前記他の記憶領域の該当ページに対して前記更新レコードを書き込むことを実行させることを特徴とする請求項1に記載の記憶制御プログラム。
  9. 前記レコードを移動させる際、前記他の記憶領域に格納すべき前記レコードを前記N個の記憶領域から前記他の記憶領域に移動し、前記他の記憶領域の移動の終了後、前記N個の記憶領域に格納すべき前記レコードを移動することを特徴とする請求項1に記載の記憶制御プログラム。
JP2005065347A 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム Expired - Fee Related JP4854973B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005065347A JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
US11/174,766 US7797290B2 (en) 2005-03-09 2005-07-05 Database reorganization program and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005065347A JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム

Publications (2)

Publication Number Publication Date
JP2006251990A JP2006251990A (ja) 2006-09-21
JP4854973B2 true JP4854973B2 (ja) 2012-01-18

Family

ID=36972299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005065347A Expired - Fee Related JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム

Country Status (2)

Country Link
US (1) US7797290B2 (ja)
JP (1) JP4854973B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487171B2 (en) * 2005-12-30 2009-02-03 International Business Machines Corporation System and method for managing a hierarchy of databases
KR100834574B1 (ko) * 2006-09-29 2008-06-02 한국전자통신연구원 파일 저장 시스템 및 그 시스템에서의 파일 저장 및 검색방법
US8239389B2 (en) * 2008-09-29 2012-08-07 International Business Machines Corporation Persisting external index data in a database
DE112011106041T5 (de) * 2011-12-27 2014-10-02 Mitsubishi Electric Corp. Suchvorrichtung
US9898495B2 (en) 2015-02-23 2018-02-20 Sap Se Zero downtime upgrade for database applications with altering sequences
DE112019005976T5 (de) 2018-11-30 2021-08-19 Semiconductor Energy Laboratory Co., Ltd. Verfahren zur Dokumentensuche, System zur Dokumentensuche, Programm und nicht-transitorisches, von einem Computer lesbares Speichermedium
US20220092049A1 (en) * 2020-09-24 2022-03-24 International Business Machines Corporation Workload-driven database reorganization

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US5247665A (en) * 1988-09-30 1993-09-21 Kabushiki Kaisha Toshiba Data base processing apparatus using relational operation processing
JPH0324643A (ja) * 1989-06-20 1991-02-01 Hitachi Ltd データベースのページ割当て方式
JPH05151037A (ja) 1991-06-24 1993-06-18 Nec Corp 業務処理中データベース再編成処理方式
JPH0520143A (ja) * 1991-07-17 1993-01-29 Nec Corp 情報処理装置
JP2616686B2 (ja) 1993-12-06 1997-06-04 日本電気株式会社 業務処理中データベース再編成方式
JPH0877050A (ja) * 1994-09-02 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> データベース再構成装置及びデータベース再構成方法
US5721915A (en) * 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US5687361A (en) * 1995-02-13 1997-11-11 Unisys Corporation System for managing and accessing a dynamically expanding computer database
US5778392A (en) * 1996-04-01 1998-07-07 Symantec Corporation Opportunistic tile-pulling, vacancy-filling method and apparatus for file-structure reorganization
JP3667953B2 (ja) * 1997-09-26 2005-07-06 富士通株式会社 データベース再編成装置及びコンピュータ読み取り可能な記録媒体
US6105038A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Hysteresis system and method for achieving a mean constant cost per action in a computer system
US6105039A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Generation and validation of reference handles
US6122640A (en) * 1998-09-22 2000-09-19 Platinum Technology Ip, Inc. Method and apparatus for reorganizing an active DBMS table
JP2000222258A (ja) * 1999-02-04 2000-08-11 Internatl Business Mach Corp <Ibm> データベースの構造を変更する方法、データベース・アクセス要求の制御方法、オンラインシステム、データベース運用支援ミドルウエアを格納する記憶媒体、及び、移行ユーティリティを格納する記憶媒体
JP4046893B2 (ja) 1999-05-28 2008-02-13 富士通株式会社 データベース複写装置及びデータベース複写方法並びにデータベース複写プログラムを記録したコンピュータ読み取り可能な記録媒体
US6343296B1 (en) * 1999-09-03 2002-01-29 Lucent Technologies Inc. On-line reorganization in object-oriented databases
CA2302981C (en) * 2000-03-29 2004-06-01 Ibm Canada Limited-Ibm Canada Limitee Online database table reorganization
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
WO2002098048A2 (en) * 2001-05-31 2002-12-05 Computer Associates Think, Inc. A method and system for online reorganization of databases
JP4183400B2 (ja) 2001-06-27 2008-11-19 株式会社日立製作所 データベースシステムとデータベース管理方法およびプログラム
US7228309B1 (en) * 2001-10-19 2007-06-05 Neon Enterprise Software, Inc. Facilitating maintenance of indexes during a reorganization of data in a database
FR2838214B1 (fr) * 2002-04-08 2004-05-28 Infotel Methode de gestion des reorganisations dans un ensemble de bases de donnees d'un systeme informatique d'information
JPWO2004025475A1 (ja) * 2002-09-10 2006-01-12 玉津 雅晴 データベースの再編成システム、並びに、データベース
JP4318940B2 (ja) 2002-10-08 2009-08-26 本田技研工業株式会社 圧縮機翼型
JP2004178035A (ja) * 2002-11-25 2004-06-24 Hitachi Ltd データベース運用管理方法
JP2004199152A (ja) * 2002-12-16 2004-07-15 Casio Comput Co Ltd 組織図編集装置およびプログラム
US7496572B2 (en) * 2003-07-11 2009-02-24 Bmc Software, Inc. Reorganizing database objects using variable length keys
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
JPWO2005086003A1 (ja) * 2004-03-08 2008-01-24 アネックスシステムズ株式会社 データベース・システム
JP4390618B2 (ja) 2004-04-28 2009-12-24 富士通株式会社 データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
US7519637B2 (en) * 2004-08-13 2009-04-14 Computer Associates Think, Inc. System and method for reorganizing a database
US7447717B2 (en) * 2004-10-07 2008-11-04 International Business Machines Corporation Method of changing the page size of a DB2 table space while keeping the object available
WO2006052897A2 (en) * 2004-11-08 2006-05-18 Innopath Software, Inc. Reorganizing images in static file system differencing and updating

Also Published As

Publication number Publication date
US7797290B2 (en) 2010-09-14
US20060206543A1 (en) 2006-09-14
JP2006251990A (ja) 2006-09-21

Similar Documents

Publication Publication Date Title
US10430286B2 (en) Storage control device and storage system
US6014730A (en) Dynamic adding system for memory files shared among hosts, dynamic adding method for memory files shared among hosts, and computer-readable medium recording dynamic adding program for memory files shared among hosts
US7401174B2 (en) File system defragmentation and data processing method and apparatus for an information recording medium
JP5792594B2 (ja) 仮想パーティションを用いたデータベース再分配
US7962712B2 (en) Method for controlling storage device controller, storage device controller, and program
US20060047926A1 (en) Managing multiple snapshot copies of data
US20080098086A1 (en) File Distribution System in Which Partial Files Are Arranged According to Various Allocation Rules Associated with a Plurality of File Types
KR100449485B1 (ko) 스트라이핑 시스템 및 이의 매핑 및 처리방법
CN102591982A (zh) 执行增量sql服务器数据库备份的方法和系统
JP2005529410A (ja) 複数の同時にアクティブなファイルシステム
US6256644B1 (en) Control system for storing data in accordance with predefined characteristics thereof
US8151079B2 (en) Computer system, storage area allocation method, and management computer
JP4854973B2 (ja) 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
JP4390618B2 (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
JP2005215940A (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
WO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置
US20040078519A1 (en) Data reorganization method in a RAID striping system
JP2006040065A (ja) データ記憶装置およびデータ記憶方法
CN110955759A (zh) 基于解释系统的文件服务器目录选择优化方法及系统
US8417664B2 (en) Method and apparatus for database unloading
JPH11175376A (ja) データベースの更新方法、更新装置及び更新方法が書き込まれた記録媒体
CN121412179A (zh) 面向微内核操作系统的快速目录解析文件系统
JP2002132555A (ja) データベースアクセス方式,方法,および記録媒体
JP2001147851A (ja) 分散ファイル・システム、方法および記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111026

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees