JP4683546B2 - データベースの再編成方法及びデータベース再編成システム - Google Patents

データベースの再編成方法及びデータベース再編成システム Download PDF

Info

Publication number
JP4683546B2
JP4683546B2 JP2005206999A JP2005206999A JP4683546B2 JP 4683546 B2 JP4683546 B2 JP 4683546B2 JP 2005206999 A JP2005206999 A JP 2005206999A JP 2005206999 A JP2005206999 A JP 2005206999A JP 4683546 B2 JP4683546 B2 JP 4683546B2
Authority
JP
Japan
Prior art keywords
database
volume
reorganization
log
area
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
JP2005206999A
Other languages
English (en)
Other versions
JP2007026062A (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.)
Hitachi Ltd
University of Tokyo NUC
Original Assignee
Hitachi Ltd
University of Tokyo NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, University of Tokyo NUC filed Critical Hitachi Ltd
Priority to JP2005206999A priority Critical patent/JP4683546B2/ja
Priority to US11/257,328 priority patent/US7657584B2/en
Publication of JP2007026062A publication Critical patent/JP2007026062A/ja
Application granted granted Critical
Publication of JP4683546B2 publication Critical patent/JP4683546B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

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

本発明は、データベースを運用するストレージシステムに関し、特にデータベースの再編成方法に関する。
従来、データベースを管理するDBMS(Data Base Management System)は、データベースの応答性を高めるように設計されている。ストレージ等の記憶空間は、データベースの格納領域を頻繁に変えないなど、できるだけ複雑な管理を避けるように設計されている。従って、データベースの記憶空間は、運用の時間経過に伴って、徐々に「乱れ」が発生する。「乱れ」とは、断片化空間や未回収領域、空間管理構造の不均衡化が発生していることである。記憶空間の乱れは、データベースの応答性(I/O性能や検索性能)を劣化させ、記憶空間の予想外の消費を発生させる。
記憶空間の乱れを解消するために、多くのDBMSには専用のソフトウェアが用意されている。このソフトウェアは、データベースの記憶空間上で断片化の解消、未回収領域の回収、空間管理構造の均衡化を行うことによって、記憶空間を乱れのない理想的な状態に変化させる。この処理を「再編成」と呼ぶ。
DBMSの管理者は、定期的に再編成用ソフトウェアを用いて再編成を行うことによって、データベースの応答性の劣化、記憶空間の予想外の消費を解消する必要がある。
例えば、このような再編成を行うものとしては、再編成元のデータを再編成先の記憶装置に転送し、再編成先でデータベースの再編成を行う。再編成先でデータの再編成が完了した後、再編成中に再編成元で発生した更新を再編成先に適用し、DBMSが使用するデータを再編成先に切り換えるものが知られている(例えば、非特許文献1)。
また、近年のデータベースではデータの量が増大しており、データ全体について再編成を行うと処理時間も長くなるため、管理者などが指定した記憶領域上のデータについてのみ再編成を行うものが知られている(例えば、非特許文献2)。これは、データを複数の記憶領域に分散して格納し、管理者などが指定した記憶領域上のデータについてのみ再編成を行うものである。
オンライン中データベース再編成機能、日立製作所発行、「平成17年4月10日検索」、インターネット<URL:http://www.hitachi.co.jp/Prod/comp/soft1/4vsp/products/dbr.html> IMS Parallel Reorganization、IBM 発行、「平成17年4月10日検索」、インターネット<URL:http://www-6.ibm.com/jp/domino02/NewAIS/aisextr.nsf/ByLetterNo/DBA04099?OpenDocument&ExpandSection=1>
上記後者の従来例では、データベースの全体を再編成する場合に比して処理時間を短縮することができるものの、複数の記憶領域にあるデータベースのうち、いずれの記憶領域に再編成を必要とする乱れが実際に生じているかを管理者が判定することは極めて困難である。このため、管理者が指定した記憶領域で再編成を行っても、データベースの応答性や記憶空間の消費削減を効果的に行うことができないという問題がある。
そこで本発明は、上記問題点に鑑みてなされたもので、短時間で効率よくデータベースの再編成を行うことを目的とする。
本発明は、計算機に制御されるディスクドライブに格納されたデータベースの再編成方法であって、前記ディスクドライブは、データベースを格納する第一のボリュームと、前記第一のボリュームとペアを構成して前記データベースの複製を格納する第二のボリュームとを含み、前記計算機がデータベースのトランザクションを静止化し、前記第一のボリュームと前記第二のボリュームのペアを分割して、前記第一のボリュームに対してのみ、前記データベースのアクセスを行うように設定し、前記トランザクションの静止化を解除して、前記第二のボリュームのデータベースから疎の空間を特定し、前記第二のボリュームのうち、前記特定した疎の空間についてのみ部分的に再編成を行い、前記部分的な再編成を行った第二のボリュームの内容を前記第一のボリュームに複写して、前記第一のボリュームと前記第二のボリュームとのペアを再同期し、前記第二のボリュームのデータベースからの疎の空間の特定は、前記データベースのデータ領域について、再編成の単位領域毎に、実際のデータ量を全データ量で除した比率を演算し、前記比率が所定の第1の比率以下の場合には、当該単位領域を部分的な再編成の対象領域として特定する
したがって、本発明は、全再編成に比して極めて短時間に、データベースの最適化を行って、データベースの応答性の向上と、記憶空間の消費削減を効果的に行うことが可能となる。特に、近年の大規模なデータベースに適用することで、無停止でデータベースを運用しながら部分再編成を実施することで、短時間で効率よくデータベースの再編成を行うことができ、データベースの性能の劣化を確実に防止することが可能となる。また、管理者は、再編成を行う領域(または範囲)を検討する必要がないので、データベースの運用に係る労力を大幅に低減することが可能となる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の第1の実施形態を示すデータベースシステムのブロック図である。
ホストコンピュータ100が、SAN(Storage Area Network)300を介してストレージ装置200に接続している。
ホストコンピュータ100は、SAN300を介してストレージ装置200のデータの操作を要求する。ストレージ装置200は、操作要求の結果をホストコンピュータ100に返す。なお、ホストコンピュータ100とストレージ装置200の接続は、SAN300に限定されるものではなく、ホストコンピュータ100とストレージ装置200とのネットワーク機能を実現するものであればよい。
ホストコンピュータ100は、CPU110、メモリ120等によって構成される。CPU110は、各種プログラムを実行してホストコンピュータ100を制御する。メモリ120は、データベース管理システム(以下、DB管理システムとする)130を格納する。このDB管理システム130は、プログラムによって構成される。このプログラムがCPU110によって実行されることで、ホストコンピュータ100がDB管理システム130として機能する。
なお、DB管理システム130はソフトウェアで構成されなくてもよい。例えば、オブジェクトによって実現されるものであっても、ハードウェア構成によって実現されるものであってもよい。また、ホストコンピュータ100は、仮想計算機であってもよい。
DB管理システム130は、DBアクセス制御部140、DB運用操作制御部150、ログバッファ160及びDBバッファ170によって構成される。
DBアクセス制御部140は、DBバッファ160に格納されたデータベースの内容をストレージ装置200内のディスクドライブ220のデータとして反映させる。このとき、後述するログ出力処理部143は、DBバッファ160の内容が更新されたときには更新内容をログ情報としてログバッファ160に格納する。格納されたログ情報は、ストレージ装置200内のディスクドライブのログ領域221に反映される。
DBアクセス制御部140は、DB問合せ制御部141、DBアクセス処理部142及びログ出力処理部143によって構成される。DB問合せ制御部141は、データベースの表空間(インデックス)を参照して、データベースの格納位置を取得する。DBアクセス処理部142は、データベースにデータを書き込み、又はデータを読み出す。ログ出力処理部143は、データベース処理の更新内容を示すログをストレージ装置200に格納させる。
DB運用操作制御部150は、ストレージ装置200にデータベースの運用に関する処理を指示する。具体的には、DB運用操作制御部150は、データベースのバックアップや再編成処理を指示する。
DB運用操作制御部150は、DB再編成処理部151、DBバックアップ制御部152、DB回復制御部153及びDB状態解析制御部154によって構成される。
DB再編成処理部151は、データベースの空間の乱れや不均衡化を解決するための再編成処理をストレージ装置200に指示する。
DBバックアップ制御部152は、データベースのバックアップ作成処理をストレージ装置200に指示する。
DB回復制御部153は、データベースの回復を制御する。
DB状態解析制御部154は、ストレージ装置200にデータベースの状態を問い合わせ、データベースの状態を解析する。たとえば、データベースの空間の乱れや不均衡化の状態を解析する。
ストレージ装置200は、ディスク制御部210及びディスクドライブ220によって構成される。
ディスク制御部210は、ディスクドライブ220へのデータの読み書きを制御する。
ディスク制御部210は、キャッシュメモリ211、ホストインタフェース処理部212、DB再編成処理部213、ボリュームコピー処理部214及びディスクアクセス制御部215によって構成される。
キャッシュメモリ211は、ディスクドライブ220に読み書きされるデータを一時的に格納する。
ホストインタフェース処理部212は、ホストコンピュータ100から送られた要求を解析し、当該要求をディスク制御部210の他の処理部に送る。また、ディスク制御部210の他の処理部から受け取った結果をホストコンピュータ100に返す。
DB再編成処理部213は、ディスクドライブ220に生じたデータベースの空間の乱れや不均衡化を解決する再編成処理を実行する。
ボリュームコピー処理部214は、ディスクドライブ220のボリューム間のコピー、ボリューム間の同期及びボリューム間の同期の解除等を制御する。
ディスクアクセス制御部215は、ディスクドライブ220に、SCSIやFibreChannel等のプロトコルに基づいてアクセスする。
ディスクドライブ220は、一つ以上の磁気ディスクドライブによって構成される。
これら複数の磁気ディスクドライブは、RAID構成等によって論理的な領域が構成される。この領域は複数の領域(LU:論理ユニットまたは論理ボリューム)に論理的に分割される。そして、データを格納する領域である論理ボリュームが、一つ以上の論理ユニットによって構成される。
なお、本実施形態の各処理部や制御部は、オブジェクトやプログラム、プロセス、スレッド等によって実現されるものであってもよい。また、ハードウェア構成によって実現されるものであってもよい。
ディスクドライブ220には、ログ221、正DB222、副DB223、DB定義情報224、DB−ディスクブロック変換テーブル225及びアドレス変換表226等の複数のデータ格納領域が構成される。なお、本発明のディスクドライブ220はハードディスクに限定されるものではなく、データを記憶できる機能を有するものであればよい。
ログ221は、データベース処理における差分ログ(ログ情報)を格納する。
正DB222は、ホストコンピュータ100によってアクセスされるデータベースを格納する。
副DB223は、正DB222の複製を格納する。業務運用時は、正DB222及び副DB223は同期状態である。すなわち、ホストコンピュータ100から正DB222への書き込みデータは、副DB223にも書き込まれる。正DB222及び副DB223が同期状態であれば、正DB222及び副DB223の内容は同一となる。
DB定義情報224は、ディスクドライブ220に格納されるデータベースの構成情報を格納する。データベースの構成情報は、例えば、データベース名、各データベースのデータ及び索引(インデックス)のスキーマ、統計情報等である。
DB−ディスクブロック変換テーブル225は、データベースの各データと当該データが格納されている物理的な位置との対応が格納される。
アドレス変換表226は、データベースの再編成処理及びその後の追い付き処理に用いられる。アドレス変換表226には、再編成処理の前後でデータのディスクドライブ220上の物理的な格納位置が変更された場合に、その前後の物理的な位置が格納される。
なお、アドレス変換表226は、ディスクドライブ220ではなく、メモリ216上の所定の領域の格納されるものであってもよい。
次に、ディスクドライブ220に格納されるデータベースの構成を説明する。
ディスクドライブ220に格納されるデータは、主にデータベースの本体である「表データ」及びその検索や一覧のために用いられる「索引データ」によって構成される。
図2は、正DB222のデータ領域1の一例を示す説明図である。
正DB222のデータ領域1には、複数のエクステント(セグメント)20からなり、一つまたは複数のエクステント20から表データ(テーブル)や索引データ(インデックス)が格納される。
表データは、ディレクトリ部10を先頭にして複数のエクステント20内の複数の表データブロック(ページ)30から構成される。これらの複数の表データブロック30によってファイルが構成される。各表データブロック30には表データの最小構成単位である行データが含まれている。なお、このファイルの構成は後述のDB−ディスクブロック変換テーブル225(図4参照)に格納されている。
図2の例では、データ領域1には、エクステント20の管理情報等を保持するディレクトリ部10を先頭にして、複数のエクステント20が連続して配置される。そして、一つのエクステント20は、複数の表データブロック30から構成されており、図2の例では、18個の表データブロック30が一つのエクステント20を構成する。例えば、一つの表データは、ディレクトリ部10をヘッダーとして、複数のエクステント20から構成される。なお、エクステント20及び表データブロック30は、正DB222上で論理的に連続して配置されればよい。また、表データブロック30にはインデックスなども格納される。
表データのヘッダーに配置されるディレクトリ部10は、このディレクトリ部10に続く複数のエクステント20に格納されたオブジェクトを管理するオブジェクト管理領域11と、各エクステント20の使用状況を管理するエクステント管理領域12と、エクステント20内のデータブロック30の使用状況を管理するデータブロック空き管理領域13から構成されている。
オブジェクト管理領域11は、エクステント20に格納されるオブジェクトの識別子を格納するオブジェクトID11aと、オブジェクトの種別を示す種別11bと、オブジェクトが格納される複数のエクステント20の先頭のエクステントIDを格納する先頭エクステントID11cと、このオブジェクトが格納される複数のエクステント20の最後のエクステントIDを格納する先頭エクステントID11dを有し、各エントリ毎に設定される。オブジェクトの種別11bは、例えば、「T」が表データ(テーブル)を示し、「I」がインデックスを示す。
図2の例では、ディレクトリ部10が一つの表データ(オブジェクトID=0001)と、2つのインデックス(オブジェクトID=0002、0003)が、エクステントID=0001〜2c4の領域で管理される例を示している。なお、オブジェクトIDと種別及びエクステントIDは、それぞれDB管理システム140が付与するものである。
次に、エクステント管理領域12は、オブジェクト管理領域11で管理する先頭(エクステントIDが最小)のエクステント20から最後(エクステントIDが最大)のエクステント20まで、各エクステント20が使用中であるか否かを示すビットマップで構成される。図中「1」で示されるエクステント20は使用中を示し、「0」のエクステント20は未使用であることを示している。そして、図示の例では、先頭から5つめまでのエクステント20が使用中であり、6つ目と七つ目のエクステント20が未使用であることを示している。このビットマップの設定は、DB運用操作制御部150のDB状態解析部154が所定の周期などで設定するものである。
次に、データブロック空き管理領域13は、各エクステント20内の表データブロック30のそれぞれについて、使用状況と満杯情報をビットマップにより示すものである。各エントリには、自エクステント20に続く次のエクステントIDを格納する次エクステントID13aと、エクステント20内の各表データブロック30の領域が使用中であるか否かをビットマップで示す空き管理13bと、各表データブロック30のデータ量の状態をビットマップで示す満杯管理13cが設けられる。
空き管理13bは、「1」が使用中を示し、「0」が未使用を示しており、この例では、一つのエクステント20が18個の表データブロック30から構成されるので、一つのエクステント20の空き管理12bは18bitで示される。満杯管理13cは、「1」であれば、該当するビットに対応する表データブロック30がデータで満杯となっている状態を示し、「0」であればデータを追加可能な空き領域があることを示しており、一つのエクステント20の満杯管理13cは18bitで示される。したがって、一つの表データブロック30は、2ビットのビットマップにより使用中/未使用と、データ追加可能/不可能が示される。
以上のように、ディレクトリ部10は、オブジェクト管理領域11、エクステント管理領域12、データブロック空き管理領域13により、データ領域1の空きの有無を管理し、後述するように、DB再編成処理部213はディレクトリ部10を読み込むことで、データ領域1の空間について疎密を判定することができる。
次に、再編成の際の単位領域となるエクステント20を構成する表データブロック30は、各表データブロック30の先頭に管理情報1(31)が設定され、最後に管理情報2(32)が設定されており、管理情報1、2の間に複数の行データ33が配置される。
管理情報1、2にはそれぞれデータが更新された日時を保持する領域を有し、管理情報1の日時と、管理情報2の日時を比較することでデータの整合性を確認することができる。
そして、管理情報2には、この表データブロック30の正DB222上の位置を示す位置情報(例えば、論理アドレスi)が格納される。
図3は、エクステント20に格納される索引データの一例を示す説明図である。
索引データは、ブロックの集合から構成され、これらのブロックは木構造(ツリー構造)となっている。
木構造は、根ブロック40、枝ブロック41及び葉ブロック42から構成される。根ブロック40には参照先の枝ブロック41のアドレスが格納される。枝ブロック41には参照先の葉ブロック42のアドレスが格納される。葉ブロック42には索引エントリ420が格納される。葉ブロック42の索引エントリ420は、キー値420、重複数421、行アドレス421によって構成される。キー値421は、データベースのデータを検索するための検索キーが格納され、各ブロック内で所定の順序(例えば、昇順)となるように配置される。重複数422は、参照先の重複の数を示す情報が格納される。行アドレス4233は、表データを構成する行データの格納先を示すアドレスが格納される。行アドレス423は、LU上の論理的なアドレスを示すページ番号4231と、ページ番号4231からのオフセット量を示すスロット番号4232から構成されている。なお、各キー値421に対応する行アドレス423は、連続的に配置されている。一方、各キー値421間は、データの挿入や削除によりLU上の配置が不連続になる場合がある。
ここで、ページ番号4231の論理アドレスiは、アドレス変換表226を参照することで、LU(正DB222または副DB223)上の物理的な位置を示すLBN(Logical Block Number)を参照することができる。このLBNにLUのブロックサイズ(例えば、16KB)を乗じたものがLU上のデータブロックの物理的な格納位置を示すLBA(Logical Block Address)となる。そして、スロット番号4232は、ページ番号4231のアドレスが指し示す示すLBAからのオフセット量を示すことで、実際の行データの位置を指定する。
DB管理システム130は、検索キーを用いてこの索引データを検索することによって、表データの行アドレスを得る。そして、この行アドレスを用いて表データにアクセスする。
図4は、DB−ディスクブロック変換テーブル225の一例の表である。
DB−ディスクブロック変換テーブル225は、データベース領域ID2251、種別2252、ファイルID2253、ブロック長2254、論理ボリュームID2255、物理デバイスID2256及び相対位置2257によって構成される。
データベース領域ID2251は、データベースが格納されるデータベース領域毎に付けられる固有の識別子である。
種別2252は、データベース領域に格納されるデータベースの種別である。種別には、DB(データベースを示す)、ログ等の情報が格納される。
ファイルID2253は、データベース領域ID2251に格納されるデータベース領域が複数のファイルで構成されている場合に、ファイル毎に付けられる固有の識別子である。
ブロック長2254は、そのデータベース領域を構成する表データブロックの長さ(サイズ)が示される。
論理ボリュームID2255は、データベース領域ID2251の構成ファイルが格納されている論理ボリュームを識別するための識別子である。
物理デバイスID2256は、論理ボリュームIDによって識別される論理ボリューム(LU)がマッピングされている物理デバイスを識別するための識別子である。具体的には、LU毎に個別に付けられる番号であるLUN(Logical Unit Number)である。
相対位置2257は、ファイルが格納される領域がLUの中のどの場所であるか、LUの相対位置によって示される。具体的にはLBA(Logical Block Address)が格納される。
本実施形態のデータベースを構成するファイルは、ホストコンピュータ100で稼働しているオペレーティングシステム(OS)が認識するファイルシステムとして論理ボリュームにマッピングされる。また、論理ボリュームは、ストレージ装置200の物理デバイスであるディスクドライブ220に対応したデバイスファイルとしてマッピングされる。
ストレージ装置200内では、デバイスファイルは、LUに対応している。従って、データベース領域を構成するファイルは、最終的に物理デバイスであるディスクドライブの磁気ディスクドライブにマッピングされる。対応する物理情報は、ストレージ装置200内の磁気ディスクドライブを識別するための物理デバイスIDと、物理デバイス内の相対位置であるLBAである。
図5は、マッピングの関係を示す説明図である。
図5は、ホストコンピュータ100によって認識されるデータベース領域、ホストコンピュータ100で稼働するオペレーティングシステムによって認識される論理ボリューム、デバイスファイル、及び、ストレージ装置200のLUのマッピング関連の例を示す。
データベース管理システム130は、データを格納するデータベース領域は、複数のファイルから構成されるものとして認識する。構成される各ファイルは、ホストコンピュータ100で稼働するオペレーティングシステムのファイルに対応している。なお、図5では、オペレーティングシステムにおいてRAWデバイスとして認識されるケースを想定している。
また、オペレーティングシステムのファイルは、物理的なディスクドライブに対応するデバイスファイルとして管理されている。デバイスファイルは、ストレージ装置200のLUにマッピングされている。
次に、本実施形態のデータベースシステムの処理を説明する。
図6は、ストレージ装置200の受け付けコマンド解析処理のフローチャートである。
ストレージ装置200は、ホストコンピュータ100からの要求に基づいて、この処理を行う。
ホストインタフェース処理部212は、ホストコンピュータ100からの要求を受信し、その内容を解析する。
ホストコンピュータ100からの要求が読み出し要求(Readコマンド)又は書き込み要求(Writeコマンド)であった場合は(ステップ1001)、ステップ1002に移行する。ステップ1002では、ホストコンピュータ100からの要求がReadコマンドであるかWriteコマンドであるかが判定される。
ホストコンピュータ100からの要求がReadコマンドであった場合は、Read処理(図7参照)が実行される(ステップ1011)。ホストコンピュータ100からの要求がWriteコマンドであった場合は、Write処理(図8参照)が実行される(ステップ1012)。
ホストコンピュータ100からの要求がボリュームコピーコマンドであった場合は(ステップ1003)、ボリュームコピー処理(図9参照)が実行される(ステップ1004)。
ホストコンピュータ100からの要求がDB再編成コマンド(全再編成コマンドまたは部分再編成コマンド)であった場合は(ステップ1005)、図11に示すDB再編成処理が実行される(ステップ1006)。なお、本実施形態ではDB管理システム140から、管理者などが再編成を行うデータベース領域(あるいはデータ領域1や表データあるいは索引データ)を指定し、当該データベースの全体の再編成を行う全再編成コマンドと、当該データベースを部分的に再編成する部分再編成コマンドの何れかをディスク制御部210に対して発行するものとする。
何れのコマンドでもない場合は、処理が終了される。
図7は、Read処理のフローチャートである。
この処理は、ホストインタフェース処理部212によって実行される。
まず、受信したコマンドが解析され、当該コマンドの内容及びアクセス先のアドレスを取得する(ステップ1101)。
次に、取得されたアクセス先のアドレスのデータが、キャッシュメモリ211に格納されているか否かを判定する(ステップ1102)。
データがキャッシュメモリ211に格納されていると判定した場合は、ステップ1105に移行する。
データがキャッシュメモリ211に格納されていないと判定した場合は、要求データを読み出してキャッシュメモリ211に転送させる旨の転送依頼を、ディスクアクセス制御部215に送る(ステップ1103)。このとき、転送先のキャッシュメモリ211の転送先アドレスのデータが更新されたことを示す情報が、キャッシュメモリ211に設けられたキャッシュ管理テーブルに登録される。
この転送要求によって、ディスクドライブ220からキャッシュメモリ211にデータが転送される。そして、このデータの転送が終了したか否かを判定する(ステップ1104)。
データの転送がまだ終了していないと判定した場合は、データの転送が終了するまで待機する。データの転送が完了したと判定した場合は、ステップ1105に移行する。
ステップ1105では、キャッシュメモリ211に格納されている要求データを、ホストコンピュータ100に送信する。その後、処理を終了する。
このRead処理によって、要求データがホストコンピュータ100に送信される。
図8は、Write処理のフローチャートである。
この処理は、ホストインタフェース処理部212によって実行される。
まず、受信したWriteコマンドが解析され、当該コマンドの内容、アクセス先のアドレス及び書き込みデータを取得する(ステップ1201)。
次に、取得したアクセス先のアドレスに既に存在するデータは、キャッシュメモリ211に格納されているか否かを判定する(ステップ1202)。
データがキャッシュメモリ211に格納されていると判定した場合は、ステップ1205に移行する。
データがキャッシュメモリ211に格納されていないと判定した場合は、当該アドレスに存在するデータを読み出してキャッシュメモリ211に転送させる旨の転送要求を、ディスクアクセス制御部215に送る(ステップ1203)。このとき、転送先のキャッシュメモリ211の転送先アドレスのデータが更新されたことを示す情報が、キャッシュメモリ211に設けられたキャッシュ管理テーブルに登録される。
この転送要求によって、ディスクドライブ220からキャッシュメモリ211にデータが転送される。そして、このデータの転送が終了したか否かを判定する(ステップ1204)。
データの転送がまだ終了していないと判定した場合は、データの転送が終了するまで待機する。データの転送が完了したと判定した場合は、ステップ1205に移行する。
ステップ1205では、キャッシュメモリ211に格納されているデータを、Writeコマンドによって指示された書き込みデータに更新する。
このデータの更新が完了すると、ステップ1206に移行し、Write処理が完了した旨を、ホストコンピュータ100に送信する。その後、処理を終了する。
図9は、ボリュームコピー処理のフローチャートである。
この処理は、ホストインタフェース処理部212及びボリュームコピー処理部214によって実行される。
ホストインタフェース処理部212は、ホストコンピュータ100からの要求を受信し、その内容を解析する。ボリュームコピーコマンドであれば当該コマンドをボリュームコピー処理部214に送り、ボリュームコピーコマンドには、コピー処理及びペア切り離し処理があり、いずれかの処理が選択される。
ホストコンピュータ100からの要求がペア生成コマンドであった場合は(ステップ1301)、ボリュームコピー処理部214がコピー処理を実行する(ステップ1302)。具体的には、コピー元の論理ボリュームの内容をコピー先の論理ボリュームに全て複写(コピー)する。また。この処理によってコピー元論理ボリューム及びコピー先論理ボリュームが同期状態となる。
ホストコンピュータ100からの要求がペア分割コマンドであった場合は(ステップ1303)、ボリュームコピー処理部214がペア切り離し処理を実行する(ステップ1304)。具体的には、同期されている二つの論理ボリュームの同期が解除される。
ホストコンピュータ100からの要求がペア再同期コマンドであった場合は(ステップ1305)、ボリュームコピー処理部214がボリュームコピー処理を実行する(ステップ1306)。この処理はステップ1302と同様である。
何れのコマンドでもない場合は、処理を終了する。
図10は、DB再編成制御処理のフローチャートである。
この処理は、ホストコンピュータ100のDB再編成制御部151で実行される。
DB再編成制御部151は、DB再編成制御処理を開始すると、まず、管理者等の指令によって再編成を指示されたデータベースを静止化する(ステップ1401、図11のS1)。具体的には、DB再編成制御部151は、DBアクセス制御部140に対して、データベースに対するトランザクションの受け付けを停止させ、実行中のトランザクションを全て完了させる要求を送る。
次に、ボリュームペアを分割する(ステップ1402、図11のS2)。具体的には、DB再編成制御部151は、ストレージ装置200に対してペア分割コマンドを送る。これによって、同期されているボリュームペアである主DB222及び副DB223の同期を解除し、ボリュームペアが分割される。
次に、データベースの処理を受け付けるボリューム(カレントデータベース)を主DB222のみに変更する。その後、データベースの静止化を解除する(ステップ1403、図11のS3)。具体的には、DB再編成制御部151は、DBアクセス制御部140に、カレントデータベース主DB222のみにする要求を送る。また、DB再編成処理部151は、DBアクセス制御部140に、データベースに対するトランザクションの受付を開始する要求を送る。この処理によって、主DB222のみがホストコンピュータ100のアクセス対象となる。
次に、後述する図11、図12に示すDB再編成処理を実行する(ステップ1404、図11のS4)。具体的には、DB再編成制御部151が、ストレージ装置200に対して、DB再編成コマンドを送信する。ストレージ装置200のディスク制御部210のDB再編成処理部213が、ホストコンピュータ100からのDB再編成コマンド(全再編成コマンドまたは部分再編成コマンド)を受信して、再編成を実行する。
DB再編成処理が完了すると、再編成期間中に生じた主DB222に対するデータベースの更新履歴をログ(LU#1)から読み込んで、副DB223に適用する追いつき処理(図11のS5)を行い、ボリュームペアを再同期させる(ステップ1405、図11のS6)。具体的には、DB再編成制御部151は、ストレージ装置200に対してボリュームペア再同期コマンドを送る。これによって、主DB222及び副DB223がボリュームペアとして再同期される。
この再同期において、副DB223の内容はDB再編理完了後のデータベースの空間の乱れや不均衡化が解決された状態である。この副DB223の内容を主DB222にコピーすることで、主DB222及び副DB223の内容が、共に再編成処理完了後の内容となる。
以上の処理によって、データベースが再編成される。
図11は、ディスクドライブの再編成処理の説明図である。
この処理は、ストレージ装置200のDB再編成処理部213によって実行される。
図11では、3つのLU(LI#1、LU#2及びLU#3)が示されている。これらはそれぞれ主DB222、副DB223及びログ221の領域として設定されている。
業務運用時は、LU#1及びLU#2は同期している。LU#1、すなわち主DB222に対するアクセスは、LU#2、すなわち副DB223に対しても実行され、LU#1とLU#2との内容は常に同一となる。また、このアクセス結果のログがLU#3に格納される。
再編成処理では、まず、データベースの静止化が実行され(S1)、トランザクションの受け付けを停止する。データベースの静止化が完了すると、LU#1とLU#2との同期を解除し、LU#1とLU#2とでのボリュームペアが分割される(S2)。
ボリュームペアが分割されると、データベースの静止化が解除され(S3)、トランザクションの受け付けが再開される。このとき、データベースのアクセスはLU#1に対してのみ行われるよう設定を変更する。
この状態でLU#2の再編成処理が実行される(S4)。LU#1とLU#2とは分割され非同期状態にあるので、システムの運用は再編成処理の影響を受けない。また、再編成処理中の正DB222(LU#1)に対するアクセスのログはLU#3に格納される。
LU#2の再編成が完了すると、LU#3に格納されたログを用いて追い付き処理が実行される(S5)。
この追い付き処理が完了すると、アクセスを受け付けているLU#1とLU#2とのデータは論理的に等価となる。
次に、LU#2の内容をLU#1にコピーすることで、LU#2とLU#1とを同期させる(S6)。
同期が完了すると、再編成処理が完了する。
図12は、上記DB再編成処理のフローチャートである。
この処理は、ストレージ装置200のDB再編成処理部213によって実行される。
DB再編成処理部213は、まず、指定されたデータベースのデータベース領域IDを取得する。なお、データベース領域IDは、管理者等がホストコンピュータ100から指定するファイルに対応するもので、DB定義情報224及びDB−ディスクブロック変換テーブル225を参照し、当該データベースが格納されている領域(論理ボリューム)を示す識別子を取得する(ステップ1501)。
次に、ホストコンピュータ100から受信した再編成コマンドが全再編成コマンドと部分再編成コマンドのいずれであるかを判定する(ステップ1502)。ここで、再編成コマンドの一例を図14に示す。再編成コマンド2131は、コマンドの種類を示すコマンド種別2132と、再編成対象のデータベース名を示す対象データベース2133と、再編成の対象が対象データベース2133の全体であるか部分的であるかを示す再編成種別2134と、再編成種別が部分的な場合には再編成を行う対象を指定する部分再編成対象範囲2135とから構成される。コマンド種別2132には、再編成を示す値が設定され、再編成種別2134には、全再編成または部分再編成の何れかを示す値が設定される。そして、再編成種別2134が部分再編成の場合には、部分再編成対象範囲2135に、後述する充填率またはI/Oコスト等、再編成の対象を特定する要素が設定される。
そして、DB再編成処理部213は受信した再編成コマンドが部分再編成コマンドであれば、ステップ1503に進んで再編成を行うデータ領域1の部分の同定を行う。一方、受信した再編成コマンドが全再編成コマンドであれば、ステップ1507に進む。
部分再編成コマンドを受信したステップ1503では、データベース領域IDに対応するデータ領域1のデータの充填率またはI/Oコストを後述するように検出し、充填率がしきい値Th1以下の空間またはI/Oコストがしきい値Th以上の空間を、部分再編成を行うデータ空間として同定(決定)する。
ここで、データの充填率は、図2で示したエクステント20を構成する表データブロック30のうち、データで満たされた表データブロック30の比率を示し、例えば、
充填率=満データブロック数/エクステント20のデータブロック数 ………(1)
で示される。充填率が高ければ、データで満たされた表データブロック30の比率が高いエクステント20であり、充填率が低ければ、空きデータブロックの多いエクステント20となる。また、I/Oコストは、後述のように、隣り合う索引データが指し示すLBAの不連続性を示す値である。
すなわち、ステップ1503では、指定されたデータベースのデータ領域1が部分再編成の対象範囲とすると、図2で示したエクステント20のうち、空きデータブロックの多いエクステント20、換言すれば上記充填率がしきい値Th1以下のエクステント20を指定する。あるいは、図3で示した葉ブロックにおいて、隣り合う行アドレスが指し示すLU上のLBAが、しきい値Th2以上に離れている場合、当該葉ブロックを部分再編成の対象とする。なお、しきい値Th2は、ディスクドライブ220の性能や容量に応じて適宜設定される値である。
次に、ステップ1503で決定した再編成対象領域と同じ(又はそれ以上)の容量を持つ論理ボリューム(以降、「アンロード用ボリューム」と呼ぶ)をディスクドライブ220上に新たに作成する。そして、作成したアンロード用ボリュームに、再編成を行うデータベースの再編成対象領域を論理的に複写(コピー)して初期化する(ステップ1504)。このとき、データベースの再編成対象領域の空間の乱れや不均衡化を解決するように、各データのディスクドライブ上の配置を考慮して、論理ボリュームの内容をアンロード用ボリュームにコピーする。
アンロード用ボリュームへのコピーは、例えば、同一の表データブロック30又は同一の索引ブロックは、物理的に連続した領域に格納される。また、予め指定された充填率目標値に基づいて、アンロード用ボリュームにデータを格納する。なお、このステップ1504の処理を、以降は「アンロード処理」と呼ぶ。
このように、アンロード処理によってデータベースのデータを部分的にコピーしたアンロード用ボリュームとデータベースが格納されていた論理ボリューム(副DB223)とは、論理的には等価であるが、各データの物理配置は必ずしも等価ではない。
次に、アンロード処理が完了したデータのコピー元である論理ボリューム(副DB223)を初期化する(ステップ1505)。
次に、アンロード用ボリュームの内容を、初期化した論理ボリュームにコピーする(ステップ1506)。この場合は、ステップ1504のアンロード処理のコピーとは異なり、図9において前述したコピー処理として、アンロード用ボリュームの内容がそのままコピーされる。この処理をリロード処理という。
ステップ1503〜1506の処理によって、指定されたデータベースの部分再編成が完了する。
一方、上記ステップ1502の判定で、再編成コマンドが全再編成コマンドの場合には、ステップ1507に進み、指定されたデータベースの全てのデータについて再編成を行う。
ステップ1507では、指定されたデータベースと同じ(又はそれ以上)の容量を持つアンロード用ボリュームを新たに作成する。そして、作成したアンロード用ボリュームに、再編成を行うデータベースの全てのデータを副DB223から論理的に複写(コピー)するアンロード処理を行う。このとき、上記ステップ1504と同様に、データベースの空間の乱れや不均衡化を解決するように、各データのディスクドライブ上の配置を考慮して、論理ボリュームの内容をアンロード用ボリュームにコピーする。
例えば、同一の表データブロック又は同一の索引ブロックは、物理的に連続した領域に格納される。また、予め設定された充填率目標値に基づいて、アンロード用ボリュームにデータを格納する。
次に、アンロード処理が完了したデータのコピー元である論理ボリュームを初期化する(ステップ1508)。
次に、アンロード用ボリュームの内容を、初期化した論理ボリュームにコピーする(ステップ1509)。この処理は、ステップ1507のアンロード処理のコピーとは異なり、図9において前述したコピー処理として、論理ボリュームの内容がそのままコピーされる。
ステップ1507〜1509の処理によって、指定されたデータベース全体の再編成が完了する。
上記ステップ1503〜1506の部分再編成またはステップ1507〜1509の全再編成が完了すると、ステップ1510で、データベースの再編成の処理の間に記録された正DB222のログを、データベースの再編成が完了したアンロードボリュームに適用し、反映させる追い付き処理を実行する(ステップ1505)。この追い付き処理は図18で後述する。
追い付き処理が完了すると、DB再編成処理部213は、ホストコンピュータ100に、DB再編成処理が完了した旨を送信し、図10のフローチャートに復帰する。
図13は、上記ステップ1503で行われる再編成対象範囲同定処理のサブルーチンの一例を示すフローチャートである。
まず、ステップ1511では、DB再編成処理部213が受信した再編成コマンドから部分再編成対象範囲2135を読み込んで、再編成対象を特定する要素が充填率であるか否かを判定する。再編成対象範囲を充填率によって決定する場合は、ステップ1512へ進み、I/Oコストによって再編成対象範囲を決定する場合は、ステップ1518へ進む。
ステップ1512では、指定されたデータベースのデータ領域1からディレクトリ部10(図2参照)を読み込んで、オブジェクト管理領域11から種別10bが「T」(テーブル)を示すオブジェクトIDについて先頭エクステントID10cと最終エクステントID10dを取得する。
次に、ステップ1513以降では、先頭エクステントID10cから最終エクステントID10dに向けて各エクステント20の充填率を順次算出する。
まず、ステップ1513では、データブロック空き管理領域13の満杯管理13cから、当該エクステント20を構成する表データブロック30のうち満杯(=「1」)となって、データの空きがない表データブロック30の数(満データブロック数)を取得し、 上記(1)式より充填率を算出する。
そして、ステップ1514で、求めた充填率が予め設定したしきい値Th1以下であるか否かを判定する。このしきい値Th1は、例えば、50%などの比率に設定されて、充填率がしきい値Th1以下の場合は、当該エクステント20内に疎の空間が増大したと判定して、ステップ1515に進んで部分再編成の設定を行う。一方、充填率がしきい値Th1を超える場合は、当該エクステント20がデータで満たされており、部分再編成を行う必要がないと判定してステップ1516に進む。
充填率がしきい値Th1以下の場合のステップ1515では、充填率がしきい値Th1以下となった当該エクステント20のエクステントIDを、図15に示す対象エクステントリスト50に追加する。なお、対象エクステントリスト50は、ディスク制御部210のメモリ216等に予め設定された領域である。また、対象エクステントリスト50は、部分再編成が完了するとクリアされるものである。
次に、現在のエクステントIDを、図2のデータブロック空き管理領域13に示す次エクステントID13aに設定し、このエクステントIDが最終エクステントID10dを超えていなければ、ステップ1513に戻って次のエクステント20について充填率の判定を行い、次エクステントID13aが最終エクステントID10cを超えていれば、サブルーチンを終了する。
上記ステップ1512〜1517の処理により、図15で示すように、各エクステント20を構成する表データブロック30の満杯管理13cの情報から、データで満たされたデータブロックの比率がしきい値Th1以下の疎の空間は、部分再編成の対象としてエクステントIDが対象エクステントリスト50に順次蓄積されていく。
そして、再編成対象を特定する要素が充填率である場合には、上記図12のステップ1504〜1506では、対象エクステントリスト50に格納されたエクステント20について再編成を部分的に行うのである。これにより、部分再編成では、図15の上部に示した再編成前のエクステント20のうち、疎の空間が対象エクステントリスト50に追加され、図中下部のように部分再編成によって充填率を高めた密の空間のエクステント20として、副DB223にリロードされるのである。この結果、充填率の高いエクステント20が論理的に連続させることで、データベースの応答性の向上や記憶空間の消費削減を効果的に行うことが可能となる。
一方、上記ステップ1511の判定で、再編成対象を特定する要素がI/Oコストの場合は、ステップ1518〜1525の処理を行う。
ここで、I/Oコストについて説明する。ストレージ装置200内のディスクドライブ220では、複数のシリンダ上で分割されたセクタを最小記憶領域として、ヘッドが目的のセクタにシークしてから読み書きが行われている。
ランダムアクセスによりデータの読み書きに要する時間(I/Oレスポンスタイム)は、ヘッドのシークタイムと、ディスクが1回転するローテンションタイムと、ヘッドがデータを読み出す時間であるトランスファータイムの和で表される。ここで、最も影響が大きい値がシークタイムであり、ローテンションタイムやトランスファータイムに比して極めて大きな値となる。
そして、ディスクドライブ220の管理は複数のセクタをまとめたブロックをアクセスの単位としている。上記図3のツリー構造において、葉ブロック42内の隣り合うキー値421の先頭行アドレス423は、ページ番号4231の論理アドレスiが指し示すLBNが近いほど、I/Oレスポンスタイムは小さくなり、データベースの応答性は向上する。つまり、図3の葉ブロック42の索引エントリにおいて、先頭(図中上方)のキー値421に対応する行アドレスのページ番号(論理アドレスi)が、図中下方のキー値421へ向けてi=0〜nまで昇順に設定されているとき、各論理アドレスiが指し示すLBNが図16のような場合、論理アドレスiを0から順次読み込んでいくと、LBNは6、3、5…となりヘッドのシークが頻繁に行われ、I/Oレスポンスタイムが大きくなりデータベースの応答性が低下する。
そこで、本実施形態では、隣り合うキー値421の先頭の行アドレス423に対応する論理アドレスi(Page)、i−1(Page)が、それぞれ指し示す物理的なディスク上の位置をLBNi(Page)、LBNi−1(Page)とし、このキー値421が隣り合うアドレスiが指すLBNの差分ΔLBNiを、
ΔLBNi=LBNi(Page)−(LBNi−1(Page) ………(2)
と表して、I/Oコストとして用いることとする。
このI/Oコストを示すΔLBNiは、値が大きくなるにつれてヘッドのシークタイムが増大し、I/Oレスポンスタイムが増大し、値が小さくなるにつれてヘッドのシークタイムが減少して、I/Oレスポンスタイムを短縮できることを示す。つまり、I/OコストΔLBNiは、隣り合うキー値421のLU上の距離を示す値となる。
以下にI/Oコストを用いて、部分再編成の対象範囲を同定するステップ1518〜1825の処理を説明する。
ステップ1518では、指定されたデータベースのデータ領域1からディレクトリ部10(図2参照)を読み込んで、オブジェクト管理領域11から種別10bが「i」(索引データ=インデックス)を示すオブジェクトIDを取得し、当該索引データの根(ルート)ブロック40のページ番号を取得する。
そして、図3に示したツリー構造から、葉ブロック42の先頭のアドレスを取得する(1519)。次に、取得した葉ブロック42の索引エントリについて、各キー値421に対応付けられた先頭の行アドレス423の論理アドレスiをLBNに変換する。ここで、LBNへの変換は、例えば、先頭のキー値421の先頭行アドレス423が指し示す論理アドレスi−1に対応するLBNを、アドレス変換表226からLBNi−1(Page)として求め、次のキー値421の先頭行アドレス423が指し示す論理アドレスiに対応するLBNをアドレス変換表226からLBNi(Page)として求める(1520)。そして、上記(2)式よりI/OコストであるΔLBNiを算出する(1521)。
次に、上記算出したI/OコストΔLBNiがしきい値Th2以上であるか否かを判定する。I/OコストΔLBNiがしきい値Th2以上であれば、I/Oコストが大(不連続性が高い)であり部分再編成の対象領域としてステップ1523に進む、I/OコストΔLBNiがしきい値Th2未満であればI/OコストΔLBNiが小さいので、部分再編成は不要と判定してステップ1524に進む。
ステップ1523では、当該葉ブロック42のI/Oコストが大きいので、予め設定した対象リーフページリスト(図17の51)に当該葉ブロック42を追加する。なお、リーフページリスト51への追加は、例えば、キー値421と先頭の行アドレス423等で設定する。
ステップ1524では、I/Oコストを算出する行アドレスi、i−1を次のキー値421に移動する。つまり、LBNi−1=LBNi(Page)、LBNi=LBNi+1(Page)とする。
葉ブロック42内でキー値421の終端に達していない場合には、ステップ1520に戻って、次に隣り合うキー値421の先頭の行アドレス423に基づいてI/Oコストを判定する(1525)。
そして、ステップ1526では、葉ブロック42内でキー値421の終端に達した場合には、次の葉ブロック42を設定してステップ1519に戻って次の葉ブロック42内のI/Oコストの比較を行い、全葉ブロック42についてI/Oコストの比較が終了した場合には、サブルーチンを終了する。
上記ステップ1518〜1525の処理により、図17で示すように、各葉ブロック42のI/OコストΔLBNiから、キー値421間のΔLBNiがしきい値Th2以上の不連続な空間(疎の空間)は、部分再編成の対象としてキー値421及び行アドレス423が対象リーフページリスト51に順次蓄積されていく。
そして、再編成対象を特定する要素がI/Oコストとした場合には、上記図12のステップ1504〜1506では、対象リーフページリスト51に格納された葉ブロック42を単位領域として再編成を部分的に行うのである。これにより、部分再編成では、図17の上部に示した再編成前の葉ブロック42のうち、I/Oコストが大となる不連続な空間が多い葉ブロック42が対象リーフページリスト51に追加され、図中下部のように部分再編成によってキー値421間の連続性を高めた密の空間の葉ブロック42として、副DB223にリロードされるのである。この結果、I/Oコストの低い葉ブロック42に再編成することで、データベースの応答性の向上を効果的に行うことが可能となる。
図18は、追い付き処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、DB再編成処理が実行されていた間に記録されたログを、ログ領域221から一つずつ読み出す(ステップ1601)。
次に、読み出されたログが、表のデータであるか、索引のデータであるかを判定する(ステップ1602)。
読み出されたログが表のデータであると判定された場合は、表追い付き処理が実行される(ステップ1603)。この処理は図20で後述する。
読み出されたログが索引のデータであると判定された場合は、索引追い付き処理が実行される(ステップ1604)。この処理は図29で後述する。
実際には、表追い付き処理の完了後に、表追い付き処理によってアドレスが追加されたアドレス変換表225を用いて、索引追い付き処理が実行される。
そして、表追い付き処理及び索引追い付き処理が実行された場合は、図10のフローチャートに復帰する。
次に、追い付き処理について説明する。
本実施の形態では、DB再編成処理部213が、再編成処理期間中のログのうち必要なものを抽出し、そのログをデータベースの行アドレス毎に集約する。そして、集約したログによってデータベースの追い付き処理を行う。
図19A、図19Bは、再編成期間中のログから抽出されるログの説明図である。
表データブロック30の行データ33に対するログは、行の挿入、行の削除及び行の更新が抽出される。索引ブロック(葉ブロック42等)の索引エントリに対するログ(索引ログ)は、索引エントリの挿入及び索引エントリの削除が抽出される。抽出されたログは、後に説明するようにディスク装置210のメモリ216に設けられたバッファに格納される。
その他のログ、例えば、表データブロック30の新規割り当て、表データブロック30の解放又はブロックの分割などデータベースの構造の変更を示すログは、再編成後のデータベースに対しては考慮する必要がないので抽出されない。
表データブロック30の行に対するログ(行更新ログ4001)は、ログシーケンス番号(LSN)、ログの種別、行アドレス及び行データによって構成される(図19A)。
LSNはログ毎に、ログが記録された順に付けられる番号である。ログの種別は、当該ログの操作の種別が格納される。「INS」は挿入を示す。「DEL」は削除を示す。「UPD」は更新を示す。行アドレスは、対象となる行が格納されているアドレス(論理アドレス)を示す。
図19Aにおいて、行データには、挿入であれば、挿入される新たな行データが格納される。削除であれば行データは空欄となる。更新であれば、更新前の行データと更新後の行データとが格納される。
索引エントリに対するログ(索引ログ4002)は、ログシーケンス番号(LSN)、ログの種別、索引アドレス、キーデータ及び行アドレスによって構成される(図19B)。
ログの種別は、索引エントリに対する操作の種別が格納される。図19Bにおいて、「IS1」は索引エントリの挿入を示す。「DL1」は索引エントリの削除を示す。
キーデータには、挿入であれば、挿入される新たなキーデータが格納される。削除であればキーデータは空欄となる。
行アドレスには、当該索引エントリに対応する行のアドレスが格納される。
図20は、表追い付き処理の概要のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、時系列に格納されているログ領域221から、再編成処理中に記録されたログが切り出され、取得される。
なお、再編成処理中のみでなく、再編成処理後に、この表追い付き処理の実行中に記録されるログについても考慮する必要がある。これに対しては、再編成処理中のログの追い付き処理を完了した後に、追い付き処理中に記録されたログを、さらに追い付き処理する方法や、再編成処理中のログの追い付き処理中に記録されたログについても、並行して追い付き処理する方法等が考えられる。
次に、切り出されたログ系列から、挿入(INS)、削除(DEL)及び更新(UPD)のログが抽出される。
次に、抽出されたログ系列が、行アドレス毎に集約される。具体的には、抽出されたログ系列が行アドレス毎にまとめられ、行アドレス毎に時系列順に並べられる。そして、行アドレス毎に一つのログに変換される。このログの変換は図21A、図21Bで後述する。
そして、この行アドレス毎に、行データへのログが適用される。このとき、ログの対象となっている行アドレスが、アドレス変換表226に記録されているか否かが判定される。
アドレス変換表に記録されている場合は、アドレス変換表226を参照することで、再編成処理後の行アドレスを参照できる。
一方、アドレス変換表226に記録されていない場合は、再編成処理前に存在しなかった行のアドレスに、再編成処理中に挿入がされている。アドレス変換表226に記録されているか否かは、当該ログの行アドレスを参照することで判定される。
アドレス変換表226に記録されている行アドレスについては、アドレス変換後のアドレスに並び替えを行い、一つのログに集約された処理が実行される。例えば集約された当該ログが「削除」であった場合は、当該行アドレスの行が削除される。
一方、アドレス変換表226に記録されていない行アドレスについては、新たな行アドレスの領域を挿入し、当該挿入された行アドレスにデータを書き込む。この新たな行アドレスは、アドレス変換表226に記録される。
図21A、図21Bは、ログの集約の説明図である。
図21Aにおいて、既に主DB222に存在する行アドレスの行に対してされた操作が「DEL」(削除)又は「UPD」(更新)のみであった場合は、そのまま、「DEL」又は「UPD」ログとする。
行アドレスで特定される行に、複数のログが記録されている場合は、複数のログのうち、最古のログ(最初に記録されたログ)及び最新のログ(最後に記録されたログ)のみを取り出して変換処理を行う。
最古のログが「DEL」であり、最新のログが「INS」(挿入)である場合は、当該行アドレスに対する操作は、一つの「UPD」に変換される。
最古のログが「DEL」であり、最新のログが「DEL」である場合は、当該行アドレスに対する操作は、一つの「DEL」に変換される。
最古のログが「DEL」であり、最新のログが「UPD」である場合は、当該行アドレスに対する操作は、一つの「UPD」に変換される。
最古のログが「UPD」であり、最新のログが「INS」である場合は、当該行アドレスに対する操作は、一つの「UPD」に変換される。
最古のログが「UPD」であり、最新のログが「DEL」である場合は、当該行アドレスに対する操作は、一つの「DEL」に変換される。
最古のログが「UPD」であり、最新のログが「UPD」である場合は、当該行アドレスに対する操作は、一つの「UPD」に変換される。
一方、図21Bにおいて、再編成処理前に存在しなかった行アドレスに対してなされた操作、すなわち、最古のログが「INS」である場合は、アドレス変換表に記録されていないログとしてログが変更される。
この場合、当該行アドレスに対してなされた操作が「INS」のみであった場合は、そのまま「INS」ログとする。
行アドレスで特定される行に、複数のログが記録されている場合は、複数のログのうち、最古のログ(最初に記録されたログ)及び最新のログ(最後に記録されたログ)のみを取り出して変換処理を行う。
最古のログが「INS」であり、最新のログが「INS」である場合は、当該行アドレスに対する操作は、一つの「INS」に変換される。
最古のログが「INS」であり、最新のログが「DEL」である場合は、当該行アドレスに対する操作は、「NOP」(No Operation)に変換される。実際には、当該行アドレスには操作は行われない。
最古のログが「INS」であり、最新のログが「UPD」である場合は、当該行アドレスに対する操作は、一つの「INS」に変換される。
図22は、表追い付き処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、ログの終端までを読み出したか否かを判定する(ステップ2001)。
ログの終端まで読み出されたと判定した場合は、処理を終了する。
まだログの終端まで読み出されていないと判定した場合は、ログ系列の読み出し処理が実行される(ステップ2002)。この処理によって、ログ221から必要なログがログ系列として抽出される。抽出されたログ系列は、メモリ216上に設定されたバッファAに格納される。
次に、バッファAに格納されたログ系列の集約処理が実行される(ステップ2003)。この処理によって、行アドレス毎に一つのログに変換され、バッファBに格納される。
次に、集約されたログの、アドレス変換処理が実行される(ステップ2004)。この処理によって、アドレス変換表226に記録されているログとアドレス変換表226に記録されていないログとが判別され、アドレス変換表226に基づいて再編成処理前後の行アドレスが変換され、それぞれ別のバッファ(バッファC、バッファD)に格納される。なお、これらのバッファC,D及び後述のバッファBも、メモリ216上に予め設定されたものである。
次に、バッファCに格納されたログをデータベースの表に適用するログ適用処理1が実行される(ステップ2005)。
次に、バッファDに格納されたログをデータベースの表に適用するログ適用処理2が実行される(ステップ2006)。
以上の処理が、全てのログの読み込みが完了するまで実行される。
なお、ステップ2005及びステップ2006は、必ずこのフローチャートの処理順序で実行される必要はない。バッファC及びバッファDにログが格納された時点で、各々の処理が開始されるようにしてもよい。
なお、これらのバッファA、B、C及びDは、ディスク制御装置210のメモリ216に設けられる。
図23は、図22のステップ2002のログ系列の読み出し処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、ログの終端まで読み出されたか否か、又は、バッファAに設定された容量の上限までログが格納され、バッファAが満杯となったか否かを判定する(ステップ2101)。
ログの終端まで読み出されたと判定した場合、又は、バッファAが満杯となったと判定した場合は、図22のフローチャートに復帰する。
一方、またログの終端ではなく、かつ、まだバッファAは満杯でないと判定した場合は、ログ221に記録された再編成処理中のログが読み出される(ステップ2102)。
次に、読み出されたログの種類が判別される(ステップ2103)。読み出されたログの種類が、INS(挿入)、UPD(更新)、DEL(削除)であった場合は、ステップ2140に移行し、当該ログがバッファAに格納される。
一方、読み出されたログの種類が、INS(挿入)、UPD(更新)、DEL(削除)の何れでもない場合は、ログを適用する必要がないため、ステップ2101に戻る。
このログ系列の読み出し処理によって、追い付き処理に必要なログ、すなわちINS(挿入)、UPD(更新)、DEL(削除)のログが抽出され、バッファAに格納される。
図24は、図22のステップ2003のログ系列の集約処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
前述したように、抽出したログ系列が行アドレス毎に集約され、ログの変換が行われる。
まず、バッファAに格納されたログを、行アドレスの順で並べ替える(ステップ2201)。
次に、バッファAから並べ替えられたログの終端まで読み出されたか否かを判定する(ステップ2101)。並び替えられたログの終端まで読み出されたと判定した場合は、図22のフローチャートに復帰する。
並び替えられたログが、まだ終端まで読み出されていないと判定した場合は、バッファAから、同一の行アドレスのログが読み出される(ステップ2203)。
次に、読み出された同一の行アドレスのログが変換される(ステップ2204)。なお、この処理は図25で後述する。この処理によって、同一の行アドレスに対する操作が一つのログに変換される。
次に、変換されたログが、行アドレス毎にバッファBに格納される(ステップ2205)。そして、ステップ2202に戻り、次の行アドレスについて処理する。
図25は、図24のステップ2203のログの変換のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、同一の行アドレスのログのうち、最古のログの種別を判定する(ステップ2301)。最古のログの種別が更新(UPD)又は削除(DEL)であると判定した場合は、ステップ2302に移行する。最古のログの種類が挿入(INS)であると判定した場合は、ステップ2305に移行する。
ステップ2302では、同一の行アドレスのログのうち、最新のログの種別が判別される。最新のログの種類がINS又はUPDであると判定した場合は、ステップ2303において、当該行アドレスのログはUPDに変換される。
一方、最新のログの種類がDELであると判定した場合は、ステップ2304において、当該行アドレスへのログはDELに変換される。
同様に、ステップ2305では、同一の行アドレスのログのうち、最新のログの種別を判別する。最新のログの種類がINS又はUPDであると判定した場合は、ステップ2306において、当該行アドレスへのログはINSに変換される。
一方、最新のログの種類がDELであると判定した場合は、ステップ2307において、当該行アドレスへのログは出力されない。
ログの変換が完了すると、図24の処理に復帰する。
図26は、図22のステップ2004のアドレス変換処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファBに格納されたログが、終端まで読み出されたか否かを判定する(ステップ2401)。ログの終端まで読み出されたと判定した場合は、図22のフローチャートに復帰する。
ログがまだ終端まで読み出されていないと判定した場合は、バッファBから、同一の行アドレスのログが読み出される(ステップ2402)。
次に、読み出されたログの行アドレスが、アドレス変換表に記録されているか否かを判定する(ステップ2403)。当該行アドレスがアドレス変換表に記録されていないと判定した場合は、ステップ2404に移行し、当該ログがバッファDに格納される。
当該行アドレスがアドレス変換表に記録されていると判定した場合は、ステップ2405に移行し、アドレス変換表に基づいて、当該ログの行アドレスを再編成処理後の行アドレスに変換する。
次に、行アドレスが変換されたログを、バッファBに格納する(ステップ2406)。
図27は、図22のステップ2205のログ適用処理1のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファCに格納されたログを、行アドレスの順で並べ替えられる(ステップ2501)。
次に、並び替えられたログが読み出され、ディスクドライブ220のデータベースに適用される(ステップ2502)。具体的には、読み出されたログが、データベース上のログが示す行アドレスに適用される。
なお、適用されたログのうち、DEL(削除)のログは、当該ログの示す行アドレスがアドレス変換表から削除される(ステップ2503)。
このログの適用処理1が完了すると、図22の処理に復帰する。
なお、このログの適用の際に、ディスクドライブ220の磁気ディスクドライブ毎にログを分離し、磁気ディスクドライブ毎に並列処理を行うことによって、ログの適用の処理を高速化してもよい。
図28は、図22のステップ2006のログ適用処理2のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファDに格納されているログを読み出し、ディスクドライブ220のデータベースに適用する(ステップ2601)。この場合のログは、全てINSであるので(図21B参照)具体的には、当該ログに基づいて、データベースへの挿入が処理される(ステップ2601)。
次に、適用したログの行アドレスが、アドレス変換表に登録される(ステップ2602)。
このログの適用処理2が完了すると、図22の処理に復帰する。
このように、表追い付き処理(図22)によって、再編成処理中の記録された行ブロックに対するログが、再編成処理後のデータベースに適用される。
次に、索引追い付き処理について説明する。
図29は、索引追い付き処理の概要のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、時系列に格納されているログから、再編成処理中に記録された索引ログが切り出され、取得される。
なお、再編成処理中のみでなく、再編成処理後に、この索引追い付き処理の実行中に記録されるログについても考慮する必要がある。これに対しては、再編成処理中のログの追い付き処理を完了した後に、追い付き処理中に記録されたログを、さらに追い付き処理する方法や、再編成処理中のログの追い付き処理中に記録されたログについても、並行して追い付き処理する方法等が考えられる。
次に、切り出された索引ログから、IS1(挿入)及びDL1(削除)の索引ログが抽出される。
次に、抽出された索引ログが、行アドレス毎に集約される。具体的には、抽出された索引ログに示される行アドレス毎にまとめられ、時系列順に並べられる。そして、行アドレス毎の索引ログに変換される。この索引ログの変換は図32で後述する。
そして、この行アドレスが、アドレス変換表に記録されているか否かが判定される。
アドレス変換表に記録されている場合は、アドレス変換表226を参照することで、当該索引ログに含まれている行アドレスから、再編成処理後の行アドレスを参照できる。一方、アドレス変換表226に記録されていない場合は、再編成処理前に存在しなかった行のアドレスに、再編成処理中に挿入されている。
アドレス変換表226に記録されているか否かは、当該索引ログの行アドレスを参照することで判定される。アドレス変換表226に記録されている行アドレスについては、最古の索引ログが「DL1」である行アドレスが抽出される。
次に、アドレス変換表に基づいて、索引アドレスが変換される。
この場合、索引アドレスが変換されない場合、すなわち、再編成処理中に、索引エントリが削除された索引アドレスは、索引アドレスが変換できないので、当該索引ログに従って索引エントリが削除される。
アドレス変換表226に基づいて、索引アドレスが変換される場合は、まず、索引アドレス順にログが並び替えられる。そして、並び替えられた索引ログをデータベースに適用する。
一方、アドレス変換表226に記録されていない行アドレスについては、最古の索引ログがIS1である行アドレスが抽出される。なお、アドレス変換表226に記録されていない行アドレスの最古の索引ログがIS1であり、最新の索引ログがDL1である場合は、アドレス変換表226に記録されているログとして扱う。この索引ログについては、新たな行アドレスの領域を挿入する。この新たな行アドレスは、アドレス変換表226に記録される。
図30A、図30Bは、索引ログのアドレス変換の説明図である。
再編成処理前に存在しなかった索引アドレスの索引ログは、図30Aのように当該索引アドレスに対応する行アドレスを、アドレス変換表に基づいて変換する。
この場合、当該行アドレスに対してなされた操作が「DL1」のみであった場合は、そのまま「DL1」ログとする。
一方、同一の索引アドレスに対して、複数の索引ログが記録されている場合は、複数の索引ログのうち、最古の索引ログ(最初に記録された索引ログ)及び最新の索引ログ(最後に記録された索引ログ)のみを取り出して変換処理を行う。
最古のログが「IS1」であり、最新のログが「DL1」である場合は、当該索引アドレスに対する操作は、「NOP」(No Operation)に変換される。実際には、当該索引アドレスには操作は行われない。
最古のログが「DL1」(削除)であり、最新のログが「DL1」である場合は、当該行アドレスに対する操作は、一つの「DL1」に変換される。
既にデータベースに存在する索引アドレスの索引エントリに対してなされた操作が「IS1」(挿入)のみであった場合は、図30Bのように、そのまま「IS1」ログに変換される。
一方、同一の索引アドレスに対して、複数の索引ログが記録されている場合は、複数の索引ログのうち、最古の索引ログ(最初に記録された索引ログ)及び最新の索引ログ(最後に記録された索引ログ)のみを取り出して変換処理を行う。
最古のログが「IS1」であり、最新のログが「IS1」である場合は、当該行アドレスに対する操作は、一つの「IS1」に変換される。
最古のログが「DL1」(削除)であり、最新のログが「IS1」である場合は、当該行アドレスに対する操作は、「DL1」、「IS1」という二つのログに変換される。
図31は、索引追い付き処理を示すフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、索引ログを終端まで読み出したか否かを判定する(ステップ3001)。
索引ログの終端まで読み出されたと判定した場合は、処理を終了する。
まだ索引ログの終端まで読み出されていないと判定した場合は、索引ログの読み込み処理が実行される(ステップ3002)。この処理によって、ログ221から必要な索引ログがログ系列として抽出され、バッファEに格納される。
次に、バッファEに格納された索引ログ系列の集約処理が実行される(ステップ3003)。この処理によって、行アドレス毎の索引ログに変換され、バッファFに格納される。
次に、アドレス変換処理が実行される(ステップ3004)。この処理によって、アドレス変換表に記録されている索引ログとアドレス変換表に記録されていない索引ログとが判別され、それぞれ別のバッファG、バッファHに格納される。なお、バッファE〜Hは、メモリ216上に予め設定されたものである。
次に、バッファGに格納された索引ログをデータベースの表に適用する索引ログ適用処理1が実行される(ステップ3005)。
次に、バッファHに格納された索引ログをデータベースの表に適用する索引ログ適用処理2が実行される(ステップ3006)。
以上の処理が、全ての索引ログの読み込みが完了するまで実行される。
なお、ステップ3005及びステップ3006は、必ずこのフローチャートの処理順序で実行される必要はない。バッファG及びバッファHにログが格納された時点で、順次処理を開始するようにしてもよい。
なお、これらのバッファE、F、G及びHは、ディスク制御装置210のメモリ216に設けられる。
図32は、図31のステップ3002の索引ログ系列読み込み処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、索引ログの終端まで読み出されたか否か、又は、バッファEに設定された容量の上限まで索引ログが格納され、バッファEが満杯となったか否かを判定する(ステップ3101)。
索引ログの終端まで読み出されたと判定した場合、又は、バッファEが満杯となったと判定した場合は、図31のフローチャートに復帰する。
一方、またログの終端ではなく、かつ、まだバッファEは満杯でないと判定した場合は、ログ221に記録された再編成処理中の索引ログが読み出される(ステップ3102)。
次に、読み出されたログの種類が判別される(ステップ3103)。読み出されたログの種類が、IN1(挿入)又はDL1(削除)であった場合は、ステップ3140に移行し、当該ログがバッファEに格納される。
一方、読み出されたログの種類が、IN1(挿入)及びDL1(削除)の何れでもない場合は、ログを適用する必要がないため、ステップ3101に戻る。
このログ読み込み処理によって、追い付き処理に必要なログ、すなわちIS1(挿入)及びDL1(削除)の索引ログが抽出され、バッファEに格納される。
図33は、図31のステップ3003の索引ログ系列の集約処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
前述したように、抽出されたログ系列が行アドレス毎に集約され、索引ログが変換される。
まず、バッファEに格納された索引ログ系列が、行アドレスの順で並べ替えられる(ステップ3201)。
次に、バッファEに格納された並べ替えられた索引ログの終端まで読み出されたか否かを判定する(ステップ3101)。並び替えられた索引ログの終端まで読み出されたと判定した場合は、図31のフローチャートに復帰する。
並び替えられた索引ログが、まだ終端まで読み出されていないと判定した場合は、バッファEから、同一の行アドレスの索引ログが読み出される(ステップ3203)。
次に、読み出された同一の行アドレスのログが変換される(ステップ3204)なお、この処理は図34で後述する。この処理によって、同一の行アドレス毎の索引ログに変換される。
次に、変換された索引ログが、バッファFに格納される(ステップ3205)。そして、ステップ3202に戻り、次の行アドレスについて処理される。
図34は、図33の索引ログ変換のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、同一の行アドレスに対する索引ログのうち、最古の索引ログの種別を判定する(ステップ3301)。最古の索引ログの種別がDL1であると判定した場合は、ステップ3302に移行する。最古の索引ログの種類がIS1であると判定した場合は、ステップ3305に移行する。
ステップ3302では、同一の行アドレスの索引ログのうち、最新の索引ログの種別が判別される。最新の索引ログの種類がIS1であると判定した場合は、ステップ3303において、当該行アドレスの索引ログは、DL1及びIS1に変換される。
一方、最新の索引ログの種類がDL1であると判定した場合は、ステップ3304において、当該行アドレスへの索引ログはDL1に変換される。
同様にステップ3305では、同一の行アドレスに対する索引ログのうち、最新の索引ログの種別を判別する。最新の索引ログの種類がIS1あると判定した場合は、ステップ3306において、当該行アドレスの索引ログはIS1に変換される。
一方、最新の索引ログの種類がDL1であると判定した場合は、ステップ3307において、当該行アドレスの索引ログは出力されない。
索引ログの変換が完了すると、図33の処理に復帰する。
図35は、図31のステップ3004のアドレス変換処理のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファFに格納された索引ログが、終端まで読み出されたか否かを判定する(ステップ3401)。索引ログの終端まで読み出されたと判定した場合は、図31のフローチャートに復帰する。
索引ログがまだ終端まで読み出されていないと判定した場合は、バッファFから、同一の行アドレスの索引ログが読み出される(ステップ3402)。
次に、読み込んだ索引ログの行アドレスが、アドレス変換表に記録されていており、アドレス変換表から当該行アドレスが参照可能か否かを判定する(ステップ3403)。当該行アドレスがアドレス変換表に記録されていない場合と判定した場合は、ステップ3404に移行する。
ステップ3404では、当該索引ログが、アドレス変換表226に基づいて、変換後の行アドレスに変換される。そして、行アドレスの変換された索引ログが、バッファHに格納される(ステップ3405)。
一方、当該行アドレスがアドレス変換表に記録されていると判定された場合は、ステップ3406に移行し、当該行索引ログの索引アドレスが、アドレス変換表226に基づいて変換後の索引アドレスに変換される。
そして、行アドレスの変換されたログが、バッファGに格納される(ステップ3407)。
図36は、図31のステップ2005の索引ログ適用処理1のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファGに格納された索引ログを、索引アドレスの順で並べ替えられる(ステップ3501)。
次に、並び替えられた索引ログが読み出され、ディスクドライブ220のデータベースに適用される(ステップ3502)。具体的には、読み出された索引ログに示される索引アドレスの索引エントリに、当該索引ログの内容が適用される。
また、DL1(削除)を指示する索引ログに関しては、当該索引アドレスがアドレス変換表から削除される(ステップ3503)。
この索引ログ適用処理1が完了すると、図31の処理に復帰する。
なお、このログの適用の際に、ディスクドライブ220の磁気ディスクドライブ毎にログを分離し、磁気ディスクドライブ毎に並列処理を行うことによって、ログの適用の処理を高速化してもよい。
図37は、図31のステップ3006の索引ログ適用処理2のフローチャートである。
この処理は、DB再編成処理部213によって実行される。
まず、バッファHに格納されている索引ログが読み出され、ディスクドライブ220のデータベースに適用される(ステップ3602)。具体的には、読み出された索引ログに示される索引アドレスに対して、当該索引ログの内容に基づいて索引エントリの領域が挿入され、索引ログに基づいてその内容が適用される。
次に、索引エントリを挿入した索引アドレスが、アドレス変換表に登録される(ステップ3602)。
この索引ログ適用処理2が完了すると、図31の処理に復帰する。
このように、索引追い付き処理(図31)によって、再編成処理中のデータベースの索引ログが、再編成が処理されたLUに適用される。
以上のように、本発明の実施形態のデータベースシステムでは、ストレージ装置200に再編成処理部213を設け、ホストコンピュータ100からの指示によってストレージ装置200がデータベースの部分再編成と全再編成を選択的に行うことができる。
部分再編成では、充填率(疎密の度合い)がしきい値Th1以下のエクステント20を対象として部分再編成を実施することで、再編成が必要な領域を的確に検出して、再編成が必要な領域のみについて再編成処理を実施することができる。また、再編成対象を特定する要素がI/Oコストである場合には、葉ブロック42のうち、I/Oコストが大となる不連続な空間が多い葉ブロック42についてのみ部分再編成を実施することで、データベースの応答性を確保できる。
これにより、全再編成に比して極めて短時間に、データベースの最適化を行って、データベースの応答性の向上と、記憶空間の消費削減を効果的に行うことが可能となる。特に、近年の大規模なデータベースに適用することで、正DB222を無停止で運用しながら本発明の部分再編成を実施することで、短時間で効率よくデータベースの再編成を行うことができ、データベースの性能の劣化を確実に防止することが可能となる。また、管理者は、再編成を行う領域(または範囲)を検討する必要がないので、データベースの運用に係る労力を大幅に低減することが可能となる。
なお、上記第1の実施形態において、充填率による部分再編成では、エクステント20を再編成の単位領域として部分再編成を行ったが、表データブロック30を再編成の単位領域として部分再編成を実施しても良い。
また、上記第1実施形態に充填率として、充填率=満データブロック数/エクステント20のデータブロック数として、エクステント20の実際のデータ量と全データ量の比率である満杯ブロック比率を用いたが、この他、充填率=表データブロック30内の空き領域の比率(データブロック内空き領域比率)や、充填率=空きデータブロック数/エクステント20のデータブロック数の比率(空きブロック比率)などを用いることができる。
そして、上記データブロック内空き領域比率または空きブロック比率を用いる場合では、これらの比率がしきい値Th1を超えたら部分再編成を行うように、しきい値Th1及び判定条件を変更すればよい。
ここで、上記空きブロック比率、データブロック内空き領域比率、満杯ブロック比率の順で、データ領域のスペース効率は良くなる。空きブロック比率を用いた場合は、表データブロック30の集合体であるエクステント20内で再編成を実施すると、データが1行も入らない空きブロックができる可能性がある。データブロック内空き領域比率を用いた場合では、データブロック内のガベージコレクションにより空き領域比率を求めることになるので、エクステント20内の空きスペースをサーチする際のオーバーヘッドが高くなる場合がある。このため、上記の順でデータ領域1のスペース効率は良くなる。
<第2実施形態>
図38は、第2の実施形態を示し、ストレージ装置200のディスク制御部210にデータベースの再編成の要否を診断するDB診断処理部217を設けたもので、その他の構成は前記第1実施形態と同様である。
前記第1実施形態では、ホストコンピュータ100からの指示に応じてDB再編成処理部213が再編成処理を実施したが、本第2実施形態では、ストレージ装置200に設けたDB診断処理部217がデータベース(正DB222または副DB223)の状態を監視し、所定の条件となったときにDB再編成処理部213に部分再編成の指示を行い、ストレージ装置200が自立的に部分再編成を行うようにしたものである。
DB診断処理部217は、所定の周期でデータベースを監視し、更新された行データが所定の比率(例えば、20%)を超えたとき、あるいは削除された行データが索引エントリの所定の比率(例えば、20%)を超えたときなど、データベースに局所的な乱れが生じていると推測できる状態になると、DB再編成処理部213に対して部分再編成を指令する。
DB再編成処理部213は、上記図13のステップ1512〜1517の充填率に基づく部分再編成またはステップ1518〜1526のI/Oコストに基づく部分再編成の少なくとも一方を実施する。なお、何れか一方の部分再編成のみを実施する場合では、疎の空間を縮小する充填率に基づく部分再編成が好ましい。
これにより、管理者などが再編成の指示を行うこと無しに、自動的に部分再編成を実施することで、データベースの空間の乱れを常時最小にして、データベースの応答性の確保と記憶空間の消費削減を自動的に行うことができ、データベースの管理に要する労力またはコストを大幅に低減できる。
なお、図1の構成において、DB状態解析制御部154が、上記DB診断処理部217と同様に、所定の周期でデータベースを監視し、データベースが上述のようにデータベースに局所的な乱れが生じていると推測できる状態になると、DB再編成制御部151に部分再編成の指令を行っても良い。この場合も、管理者が介在することなく、自立的にデータベースの部分再編成を実施することができる。
本発明の第1の実施形態の、データベースシステムのブロック図である。 本発明の第1実施形態の、表データの説明図である。 本発明の第1実施形態の、索引データの説明図である。 本発明の第1実施形態の、DB−ディスクブロック変換テーブルの一例を示す説明図である。 本発明の第1実施形態の、LUのマッピングの関係を示す説明図である。 本発明の第1実施形態の、ストレージ装置のディスク制御部で行われる処理の一例を示すフローチャートである。 本発明の第1実施形態の、Read処理のフローチャートである。 本発明の第1実施形態の、Write処理のフローチャートである。 本発明の第1実施形態の、ボリュームコピー処理のフローチャートである。 本発明の第1実施形態の、DB再編成制御処理のフローチャートである。 本発明の第1実施形態の、ディスクドライブの再編成処理の説明図である。 本発明の第1実施形態の、DB再編成処理のフローチャートである。 本発明の第1実施形態の、DB再編成処理の再編成対象同定処理の一例を示すフローチャートである。 本発明の第1実施形態の、再編成コマンドの説明図である。 本発明の第1実施形態の、充填率に基づく部分再編成の様子を示す説明図である。 本発明の第1実施形態の、論理アドレスiとLBNの関係を示す説明図である。 本発明の第1実施形態の、I/Oコストに基づく部分再編成の様子を示す説明図である。 本発明の第1実施形態の、追い付き処理のフローチャートである。 本発明の第1実施形態の、再編成期間中のログから抽出されるログの説明図である。 本発明の第1実施形態の、再編成期間中のログから抽出されるログの説明図である。 本発明の第1実施形態の、表追い付き処理の概要のフローチャートである。 本発明の第1実施形態の、ログの集約の説明図である。 本発明の第1実施形態の、ログの集約の説明図である。 本発明の第1実施形態の、表追い付き処理を示すフローチャートである。 本発明の第1実施形態の、ログ読み出し処理のフローチャートである。 本発明の第1実施形態の、ログの集約処理のフローチャートである。 本発明の第1実施形態の、ログの変換のフローチャートである。 本発明の第1実施形態の、アドレス変換処理のフローチャートである。 本発明の第1実施形態の、ログ適用処理1のフローチャートである。 本発明の第1実施形態の、ログ適用処理2のフローチャートである。 本発明の第1実施形態の、索引追い付き処理の概要のフローチャートである。 本発明の第1実施形態の、索引ログのアドレス変換の説明図である。 本発明の第1実施形態の、索引ログのアドレス変換の説明図である。 本発明の第1実施形態の、索引追い付き処理を示すフローチャートである。 本発明の第1実施形態の、索引ログ読み込み処理のフローチャートである。 本発明の第1実施形態の、索引ログの集約処理のフローチャートである。 本発明の第1実施形態の、索引ログの変換のフローチャートである。 本発明の第1実施形態の、アドレス変換処理のフローチャートである。 本発明の第1実施形態の、索引ログ適用処理1のフローチャートである。 本発明の第1実施形態の、索引ログ適用処理2のフローチャートである。 本発明の第2の実施形態の、データベースシステムのブロック図である。
符号の説明
100 ホストコンピュータ
120 メモリ
130 DB管理システム
140 DBアクセス制御部
141 DB問合せ制御部
142 DBアクセス処理部
143 ログ出力処理部
150 DB運用操作制御部
151 DB再編成処理部
152 DBバックアップ制御部
153 DB回復制御部
154 DB状態回復制御部
160 ログバッファ
170 DBバッファ
210 ディスク制御部
211 キャッシュメモリ
213 DB再編成処理部
215 ディスクアクセス制御部
217 DB診断処理部
221 ログ
222 主DB
223 副DB
224 DB定義情報
225 DB−ディスクブロック変換テーブル
226 アドレス変換表

Claims (14)

  1. 計算機に制御されるディスクドライブに格納されたデータベースの再編成方法であって、
    前記ディスクドライブは、データベースを格納する第一のボリュームと、前記第一のボリュームとペアを構成して前記データベースの複製を格納する第二のボリュームとを含み、
    前記計算機がデータベースのトランザクションを静止化する処理と、
    前記第一のボリュームと前記第二のボリュームのペアを分割して、前記第一のボリュームに対してのみ、前記データベースのアクセスを行うように設定する処理と、
    前記トランザクションの静止化を解除する処理と、
    前記第二のボリュームのデータベースから疎の空間を特定する処理と、
    前記第二のボリュームのうち、前記特定した疎の空間についてのみ部分的に再編成を行う処理と、
    前記部分的な再編成を行った第二のボリュームの内容を前記第一のボリュームに複写して、前記第一のボリュームと前記第二のボリュームとのペアを再同期する処理と、を含み、
    前記第二のボリュームのデータベースから疎の空間を特定する処理は、
    前記データベースのデータ領域について、再編成の単位領域毎に、実際のデータ量を全データ量で除した比率を演算する処理と、
    前記比率が所定の第1の比率以下の場合には、当該単位領域を部分的な再編成の対象領域として特定する処理と、
    を含むことを特徴とするデータベースの再編成方法。
  2. 前記データベースのデータ領域について、再編成の単位領域毎に、実際のデータ量を全データ量で除した比率を演算する処理は、
    前記単位領域を構成するブロックのうち、データを満たしたブロックの数を、前記単位領域を構成するブロックの数で除した比率を充填率として演算し、
    当該単位領域を部分的な再編成の対象領域として特定する処理は、
    前記充填率が所定の第1の比率以下の場合には、当該単位領域を部分的な再編成の対象領域として特定することを特徴とする請求項1に記載のデータベースの再編成方法。
  3. 前記疎の空間を特定する処理は、
    前記データベースの索引領域について、再編成の単位領域毎に不連続性を示す値をI/Oコストとして算出する処理と、
    前記I/Oコストが所定の第2の値を超えた場合には、当該単位領域を部分的な再編成の対象領域として特定する処理と、を含んで、前記充填率と前記I/Oコストの少なくとも一方から前記疎の空間を特定し、
    前記不連続性を示す値をI/Oコストとして算出する処理は、
    前記索引領域の再編成単位領域は、前記データベースを検索する検索キーを格納するキー値を含んで構成され、前記キー値のうち、隣り合うキー値の第二ボリューム上の物理的な位置の距離を示す値を前記I/Oコストとして算出することを特徴とする請求項1に記載のデータベースの再編成方法。
  4. 前記第一または第二のボリュームのデータベースを所定の周期で監視する処理を含み、
    前記データベースのうち更新されたデータの比率が所定の比率を超えたとき、または削除されたデータの比率が所定の比率を超えたときに、前記トランザクションを静止化する処理を開始し、部分的なデータベースの再編成を行うことを特徴とする請求項1に記載のデータベースの再編成方法。
  5. 前記ディスクドライブは、前記データベースへのアクセスによって生成されるログを格納する第三のボリュームと、前記第二のボリュームに格納されたデータベースの内容の複製を格納可能なアンロード用ボリュームとを含み、
    前記第二のボリュームを部分的に再編成する処理は、
    前記第二のボリュームに格納されたデータベースのうち前記特定した疎の空間を前記アンロード用ボリュームに論理的に複写する処理と、
    前記複写が完了した第二のボリュームのうち前記特定した疎の空間を初期化する処理と、
    前記アンロード用ボリュームに格納されたデータベースの内容を前記第二のボリュームに物理的に複写する処理と、
    前記トランザクションの静止化以後のログを前記第三のボリュームから取得し、前記第二のボリュームに格納されたデータベースに当該ログを適用することを特徴とする請求項1に記載のデータベースの再編成方法。
  6. ホストコンピュータによってアクセスされるデータベースと、
    前記データベースを格納する第一のボリュームと、前記第一のボリュームとペアを構成し、前記データベースの複製を格納する第二のボリュームとを含むディスクドライブを有するストレージ装置と、を備えるデータベースシステムにおいて、
    前記ホストコンピュータは、
    前記データベースの再編成を制御するデータベース再編成制御部と、を備え、
    前記ストレージ装置は、
    前記ホストコンピュータからの制御信号を受け付けるホストインタフェースと、
    前記データベース再編成制御部からの指令に応じてディスクドライブに格納されたデータベースを再編成するデータベース再編成処理部と、を有し、
    前記データベース再編成処理部は、
    前記第二のボリュームのデータベースから疎の空間を特定する部分再編成対象特定部と、
    前記第二ボリュームのうち前記特定した疎の空間についてのみ部分的に再編成を行う部分再編成実行部と、
    前記部分的な再編成を行った第二のボリュームの内容を前記第一のボリュームに複写して、前記第一のボリュームと前記第二のボリュームとのペアを再同期する再同期部と、
    を備え、
    前記部分再編成対象特定部は、
    前記データベースのデータ領域について、再編成の単位領域毎に、実際のデータ量を全データ量で除した比率を算出する満杯ブロック比率算出部を有し、
    前記比率が所定の第1の比率以下の場合には、当該単位領域を部分的な再編成の対象領域として特定することを特徴とするデータベースシステム。
  7. 前記部分再編成対象特定部は、
    前記データベースのデータ領域について、再編成の単位領域毎に、前記単位領域を構成するブロックのうち、データを満たしたブロックの数と、前記単位領域を構成するブロックの数との比率を充填率として算出する満杯ブロック比率算出部を有し、
    前記充填率が所定の第1の比率以下の場合には、当該単位領域を部分的な再編成の対象領域として特定することを特徴とする請求項6に記載のデータベースシステム。
  8. 前記部分再編成対象特定部は、
    前記データベースの索引領域について、再編成の単位領域毎に不連続性を示す値をI/Oコストとして算出するI/Oコスト算出部を有し、
    前記I/Oコストが所定の第2の値を超えた場合には、当該単位領域を部分的な再編成の対象領域として特定し、前記充填率と前記I/Oコストの少なくとも一方から前記疎の空間を特定し、
    前記I/Oコスト算出部は、
    前記索引領域の再編成単位領域は、前記データベースを検索する検索キーを格納するキー値を含んで構成され、前記キー値のうち、隣り合うキー値の第二ボリューム上の物理的な位置の距離を示す値を前記I/Oコストとして算出することを特徴とする請求項6に記載のデータベースシステム。
  9. 前記ストレージ装置は、
    前記第一または第二のボリュームのデータベースを所定の周期で監視する診断処理部を備え、
    前記診断処理部は、前記データベースのうち更新されたデータの比率が所定の比率を超えたとき、または削除されたデータの比率が所定の比率を超えたときに、前記データベース再編成処理部に、部分的なデータベースの再編成を開始させることを特徴とする請求項6に記載のデータベースシステム。
  10. 前記ホストコンピュータは、
    前記第一または第二のボリュームのデータベースを所定の周期で監視する状態解析制御部を備え、
    前記状態解析制御部は、前記データベースのうち更新されたデータの比率が所定の比率を超えたとき、または削除されたデータの比率が所定の比率を超えたときに、データベース再編成制御部に、部分的なデータベースの再編成を開始させることを特徴とする請求項6に記載のデータベースシステム。
  11. 前記ディスクドライブは、前記データベースへのアクセスによって生成されるログを格納する第三のボリュームと、前記第二のボリュームに格納されたデータベースの内容の複製を格納可能なアンロード用ボリュームとを含み、
    前記データベース再編成処理部は、
    前記第二のボリュームに格納されたデータベースのうち前記特定した疎の空間を前記アンロード用ボリュームに論理的に複写し、
    前記複写が完了した第二のボリュームのうち前記特定した疎の空間を初期化し、
    前記アンロード用ボリュームに格納されたデータベースの内容を前記第二のボリュームに物理的に複写し、
    前記再編成中のトランザクションのログを前記第三のボリュームから取得し、前記第二のボリュームに格納されたデータベースに当該ログを適用することを特徴とする請求項6に記載のデータベースシステム。
  12. 前記ホストコンピュータは、
    前記データベースの運用操作を制御する運用操作制御部を有し、
    前記運用操作制御部は、
    前記ホストコンピュータのトランザクションを静止化し、
    前記ボリュームペアを分割させ、
    前記データベースへのアクセスを前記第一のボリュームに対してのみ行うように設定し、
    前記トランザクションの静止化を解除し、
    前記データベース再編成制御部に再編成の開始を指示することを特徴とする請求項6に記載のデータベースシステム。
  13. ホストコンピュータによってアクセスされるデータベースと、
    前記データベースを格納する第一のボリュームと、前記第一のボリュームとペアを構成し、前記データベースの複製を格納する第二のボリュームとを含むディスクドライブを有するストレージ装置と、を備えるデータベースシステムにおいて、
    前記ホストコンピュータは、
    前記データベースの再編成に先だって、前記ホストコンピュータのトランザクションを静止化し、前記ボリュームペアを分割させ、前記データベースへのアクセスを前記第一のボリュームに対してのみ行うように設定し、前記トランザクションの静止化を解除する運用操作制御部と、
    前記データベースの再編成を制御するデータベース再編成制御部と、を備え、
    前記ストレージ装置は、
    前記ホストコンピュータからの制御信号を受け付けるホストインタフェースと、
    前記データベース再編成制御部からの指令に応じてディスクドライブに格納されたデータベースを再編成するデータベース再編成処理部と、
    前記ディスクドライブは、前記データベースへのアクセスによって生成されるログを格納する第三のボリュームと、前記第二のボリュームに格納されたデータベースの内容の複製を格納可能なアンロード用ボリュームとを含み、
    前記データベース再編成処理部は、
    前記第二のボリュームのデータベースのデータ領域について、再編成の単位領域毎に、前記単位領域を構成するブロックのうち、データが空のブロックの数を、前記単位領域を構成するブロックの数で除した比率を充填率として演算する満杯ブロック比率算出部と、
    前記充填率が所定の第1の比率を超えた場合には、当該単位領域を部分的な再編成の対象領域として特定する対象領域抽出部と、
    前記第二ボリュームのうち前記特定した対象領域についてのみ部分的に再編成を行う部分再編成実行部と、
    前記部分的な再編成を行った第二のボリュームの内容を前記第一のボリュームに複写して、前記第一のボリュームと前記第二のボリュームとのペアを再同期する再同期部と、
    を備えたことを特徴とするデータベースシステム。
  14. 計算機に制御されるディスクドライブに格納されたデータベースの再編成方法であって、
    前記ディスクドライブは、データベースを格納する第一のボリュームと、前記第一のボリュームとペアを構成して前記データベースの複製を格納する第二のボリュームとを含み、
    前記計算機がデータベースのトランザクションを静止化する処理と、
    前記第一のボリュームと前記第二のボリュームのペアを分割して、前記第一のボリュームに対してのみ、前記データベースのアクセスを行うように設定する処理と、
    前記トランザクションの静止化を解除する処理と、
    前記第二のボリュームのデータベースから疎の空間を特定する処理と、
    前記第二のボリュームのうち、前記特定した疎の空間についてのみ部分的に再編成を行う処理と、
    前記部分的な再編成を行った第二のボリュームの内容を前記第一のボリュームに複写して、前記第一のボリュームと前記第二のボリュームとのペアを再同期する処理と、を含み、
    前記第二のボリュームのデータベースから疎の空間を特定する処理は、
    前記データベースの索引領域について、再編成の単位領域毎に不連続性を示す値をI/Oコストとして算出する処理と、
    前記I/Oコストが所定の第2の値を超えた場合には、当該単位領域を部分的な再編成の対象領域として特定する処理と、を含み、
    前記不連続性を示す値をI/Oコストとして算出する処理は、
    前記索引領域の再編成単位領域は、前記データベースを検索する検索キーを格納するキー値を含んで構成され、前記キー値のうち、隣り合うキー値の第二ボリューム上の物理的な位置の距離を示す値を前記I/Oコストとして算出することを特徴とするデータベースの再編成方法。
JP2005206999A 2005-07-15 2005-07-15 データベースの再編成方法及びデータベース再編成システム Expired - Fee Related JP4683546B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005206999A JP4683546B2 (ja) 2005-07-15 2005-07-15 データベースの再編成方法及びデータベース再編成システム
US11/257,328 US7657584B2 (en) 2005-07-15 2005-10-25 Reorganization method of database and a database reorganization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005206999A JP4683546B2 (ja) 2005-07-15 2005-07-15 データベースの再編成方法及びデータベース再編成システム

Publications (2)

Publication Number Publication Date
JP2007026062A JP2007026062A (ja) 2007-02-01
JP4683546B2 true JP4683546B2 (ja) 2011-05-18

Family

ID=37662853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005206999A Expired - Fee Related JP4683546B2 (ja) 2005-07-15 2005-07-15 データベースの再編成方法及びデータベース再編成システム

Country Status (2)

Country Link
US (1) US7657584B2 (ja)
JP (1) JP4683546B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118574A1 (en) * 2005-11-22 2007-05-24 Franklin William J Reorganizing data with update activity
WO2008110534A1 (en) * 2007-03-13 2008-09-18 Sandoz Ag Pharmaceutical compositions of poorly soluble drugs
US8176021B2 (en) * 2008-06-02 2012-05-08 Microsoft Corporation Optimized reverse key indexes
US8234316B2 (en) * 2008-09-30 2012-07-31 Microsoft Corporation Nested file system support
US8200627B2 (en) * 2008-10-30 2012-06-12 International Business Machines Corporation Journaling database changes using a bit map for zones defined in each page
US8180728B2 (en) * 2009-09-21 2012-05-15 Bmc Software, Inc. Area-specific reload of database
JP5585062B2 (ja) * 2009-12-04 2014-09-10 ソニー株式会社 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム
JP5503737B2 (ja) * 2010-05-14 2014-05-28 株式会社日立製作所 時系列データ管理装置、システム、方法、およびプログラム
WO2012114402A1 (ja) * 2011-02-22 2012-08-30 日本電気株式会社 データベース管理装置及びデータベース管理方法
JP5815975B2 (ja) * 2011-04-15 2015-11-17 株式会社東芝 データベース装置およびデータベース再編成方法
JP5740196B2 (ja) * 2011-04-18 2015-06-24 株式会社東芝 データベース装置およびデータベース再編成方法
US9052831B1 (en) * 2011-06-30 2015-06-09 Amazon Technologies, Inc. System and method for performing live partitioning in a data store
US9239871B2 (en) 2011-07-06 2016-01-19 Ca, Inc. System and method for analyzing sequential data access efficiency
US9230008B2 (en) 2012-04-12 2016-01-05 Ca, Inc. System and method for automated online reorganization of sequential access databases
US9367439B2 (en) * 2012-04-30 2016-06-14 Oracle International Corporation Physical memory usage prediction
US9244980B1 (en) 2012-05-05 2016-01-26 Paraccel Llc Strategies for pushing out database blocks from cache
JP6032467B2 (ja) * 2012-06-18 2016-11-30 株式会社日立製作所 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
US9582521B2 (en) * 2013-02-11 2017-02-28 International Business Machines Corporation Management of database allocation during reorganization
KR20150071500A (ko) * 2013-12-18 2015-06-26 삼성전자주식회사 데이터 관리 방법 및 장치
KR102330391B1 (ko) 2014-09-11 2021-11-24 삼성전자주식회사 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
JP6690829B2 (ja) * 2015-08-28 2020-04-28 国立大学法人 東京大学 計算機システム、省電力化方法及び計算機
US10235198B2 (en) * 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US10248693B2 (en) * 2016-04-27 2019-04-02 Sap Se Multi-layered row mapping data structure in a database system
US11061876B2 (en) * 2016-11-15 2021-07-13 Sap Se Fast aggregation on compressed data
CN109189770B (zh) * 2018-08-14 2021-03-30 四川虹美智能科技有限公司 一种存储介质的空间释放方法及系统
US20220092049A1 (en) * 2020-09-24 2022-03-24 International Business Machines Corporation Workload-driven database reorganization

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07101393B2 (ja) * 1988-10-26 1995-11-01 日本電気株式会社 再編成方式
JPH04255040A (ja) * 1991-02-06 1992-09-10 Nec Corp データベース処理装置
JPH05313961A (ja) * 1992-05-11 1993-11-26 Nippon Telegr & Teleph Corp <Ntt> データベースファイル再編成処理方式
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume
US6108653A (en) * 1998-08-31 2000-08-22 Platinum Technology Ip, Inc. Method and apparatus for fast and comprehensive DBMS analysis
US6411964B1 (en) * 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US6535893B1 (en) * 2000-02-24 2003-03-18 International Business Machines Corporation Method for estimating the elapsed time required for a log apply process
US6606631B1 (en) * 2000-07-13 2003-08-12 Bmc Software, Inc. IMS on-line reorganization utility
US6748379B2 (en) * 2001-01-22 2004-06-08 Bmc Software, Inc. Graphical representation of disorganized database records in an IMS database
US6633884B2 (en) * 2001-04-03 2003-10-14 Bmc Software, Inc. System and method for analyzing a database for on-line reorganization
US7225206B2 (en) * 2001-04-09 2007-05-29 Computer Associates Think, Inc. System and method for reorganizing stored data
US6934725B1 (en) * 2001-12-28 2005-08-23 Emc Corporation Management of file extent mapping to hasten mirror breaking in file level mirrored backups
KR100502106B1 (ko) * 2002-10-17 2005-07-20 한국전자통신연구원 스트라이핑 기법을 이용한 레이드 시스템에서의 데이터재구성 방법

Also Published As

Publication number Publication date
US7657584B2 (en) 2010-02-02
JP2007026062A (ja) 2007-02-01
US20070016582A1 (en) 2007-01-18

Similar Documents

Publication Publication Date Title
JP4683546B2 (ja) データベースの再編成方法及びデータベース再編成システム
US9619160B2 (en) NVRAM data organization using self-describing entities for predictable recovery after power-loss
US9584312B2 (en) Methods and systems for storing and retrieving data
US9665304B2 (en) Storage system with fast snapshot tree search
US7441096B2 (en) Hierarchical storage management system
US9268653B2 (en) Extent metadata update logging and checkpointing
US8656123B2 (en) Snapshot preserved data cloning
JP5685676B2 (ja) 計算機システム及びデータ管理方法
KR100317691B1 (ko) 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치
US20160077746A1 (en) Optimized segment cleaning technique
JP2007226347A (ja) 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
US20210216569A1 (en) Techniques for performing offload copy operations
JP4398464B2 (ja) 1つのターゲット・ボリュームと1つのソース・ボリュームとの間のポイント・イン・タイム・コピー関連性を管理するためのシステム、方法、及びプログラム
JP2010092176A (ja) 情報処理装置、及び情報処理装置の運用方法
US9558111B1 (en) Storage space reclaiming for virtual provisioning
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
US7421456B2 (en) Method and system for data processing with database reorganization for the same
US8151053B2 (en) Hierarchical storage control apparatus, hierarchical storage control system, hierarchical storage control method, and program for controlling storage apparatus having hierarchical structure
WO2016013075A1 (ja) ストレージ、計算機およびその制御方法
US10235053B1 (en) Method and system for using host driver for flexible allocation fast-sideways data movements
JP6419662B2 (ja) ストレージシステム及びデータ重複検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101213

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: 20110111

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: 20110204

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4683546

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees