JP3884049B1 - システム、判断方法およびプログラム - Google Patents

システム、判断方法およびプログラム Download PDF

Info

Publication number
JP3884049B1
JP3884049B1 JP2005236552A JP2005236552A JP3884049B1 JP 3884049 B1 JP3884049 B1 JP 3884049B1 JP 2005236552 A JP2005236552 A JP 2005236552A JP 2005236552 A JP2005236552 A JP 2005236552A JP 3884049 B1 JP3884049 B1 JP 3884049B1
Authority
JP
Japan
Prior art keywords
pointer
segment data
address
recording unit
recorded
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
JP2005236552A
Other languages
English (en)
Other versions
JP2007052583A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005236552A priority Critical patent/JP3884049B1/ja
Priority to US11/462,646 priority patent/US7299249B2/en
Application granted granted Critical
Publication of JP3884049B1 publication Critical patent/JP3884049B1/ja
Publication of JP2007052583A publication Critical patent/JP2007052583A/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/23Updating
    • G06F16/2308Concurrency control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)

Abstract

【課題】データベースの整合性をこれまでよりも効率的に判断する。
【解決手段】データベースの整合性を判断するシステムを提供する。このシステムは、データベースに含まれる各々のセグメントデータから順次、他のセグメントデータに対するポインタを読み出す読出部と、読出部がポインタを読み出したセグメントデータの保存先アドレスを記録するアドレス記録部と、読出部が読み出したポインタを記録するポインタ記録部とを備える。そして、既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、アドレス記録部に記録された保存先アドレスを変更し、ポインタ記録部に記録されたポインタを変更する。そして、アドレス記録部に記録された各々の保存先アドレスが、ポインタ記録部に記録された各々のポインタと一致することを条件に、データベースが整合していると判断する。
【選択図】図3

Description

本発明は、システム、判断方法およびプログラムに関する。特に、本発明は、データベースの整合性を判断するシステム、判断方法およびプログラムに関する。
従来、データベースの整合性を判断するには、データベースに含まれる各セグメントデータの保存先アドレスと、データベースに含まれる各ポインタとを比較し、これらが一致するか否かを判断する必要がある。このような整合性判断は、例えば、本願出願人によって開発されたデータベース管理システムに実装されて用いられている(非特許文献1を参照。)。
ここで、何れかのポインタの読み出しを開始してから全てのポインタの読み出しを完了するまでの間にデータベースが更新されると、更新前後のポインタが混ざった状態でアドレスと比較されてしまう場合がある。このため、従来、整合性の判断の処理中には、データベースの更新を停止するか、または、データベースの少なくとも一部に対するアクセスの排他制御を行うことが一般的である(例えば特許文献1を参照。)。
しかしながら、データベースのデータサイズが大きい場合には、更新が停止される時間が膨大となり、または、更新が大幅に遅延し、利用者の利便性を低下させてしまう場合があった。これに対して、更新を停止させることなく整合性を判断する技術が提案されている(特許文献2を参照。)。
特開平8−249222号公報 特開2001−142765号公報 IMS High Performance Pointer Checker User's Guide http://publibfi.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/fabp1b10/CCONTENTS
特許文献2の技術において、整合性検証装置は、データベースファイルから整合性検証のためのデータを排他制御を行なわずに取り出す。そして、この取り出したデータを用いて整合性検証を行なう処理を所定回数繰り返し、この所定回数の検証結果と予め設定した整合性の判定条件とに基づいて、データベースファイルの整合がとれているかいないかを判断する。したがって、この技術によっては、整合性が取れている可能性を評価できるが、整合性を確実に判断することはできないと考えられる。或いは、整合性を確実に判断するには、整合性検証を行う回数を大きくしなければならず、その処理に時間がかかることが予想される。
そこで本発明は、上記の課題を解決することのできるシステム、判断方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明においては、データベースの整合性を判断するシステムであって、データベースに含まれる複数のセグメントデータの各々から順次、他のセグメントデータに対するポインタを読み出す読出部と、読出部がポインタを読み出したセグメントデータの保存先アドレスを記録するアドレス記録部と、読出部が読み出したポインタを記録するポインタ記録部と、既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、アドレス記録部に記録された保存先アドレスを変更するアドレス変更部と、既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、ポインタ記録部に記録されたポインタを変更するポインタ変更部と、アドレス記録部に記録された各々の保存先アドレスが、ポインタ記録部に記録された各々のポインタと一致することを条件に、データベースが整合していると判断する判断部とを備えるシステム、当該システムとして情報処理装置を機能させるプログラム、および、当該システムによってデータベースの整合性を判断する判断方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、データベースの整合性をこれまでよりも効率的に判断することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、データベースシステム10の概略を示す。データベースシステム10は、階層型データベース20と、データベース管理システム30とを備える。階層型データベース20は、複数のセグメントデータを含む。そして、各セグメントデータは、他のセグメントデータに対するポインタを有する。本実施例におけるデータベース管理システム30は、各々のポインタと、セグメントデータの保存先アドレスとを比較することにより階層型データベース20の整合性を判断する。
図2は、階層型データベース20のデータ構造の一例を示す。階層型データベース20は、セグメントデータ200−1〜4に代表される複数のセグメントデータを記録している。セグメントデータ200−1は、セグメントデータのルート部分(根部分)を示すRAPから指されている。セグメントデータ200−1は、接頭部210−1と、データ部220−1とを含む。また、セグメントデータ200−1の保存先アドレスは1000である。ここで、保存先アドレスとは、例えば、階層型データベース20の所定の基準アドレスと比較したセグメントデータ200−1の先頭アドレスの位置(RBA:Relative Byte Address)をいう。
接頭部210−1は、セグメントデータ200−2の保存先アドレスである1100を指示するポインタ230−1と、その他のセグメントデータの保存先アドレスを指示するポインタ240−1とを含む。セグメントデータ200−2は、接頭部210−2と、データ部220−2とを含む。接頭部210−2は、セグメントデータ200−4の保存先アドレスである2000を指示するポインタ230−2と、更に他のセグメントデータの保存先アドレスを指示するポインタ240−2とを含む。
セグメントデータ200−4は、接頭部210−4と、データ部220−4とを含む。セグメントデータ200−4は、セグメントデータ200−1から始まる一連の階層構造の終端部分に位置する。このため、接頭部210−4は、何れのセグメントデータに対するポインタも有していない。実際には、接頭部210−4は、何れのアドレスをも示さない所定のデータ(例えば、Null)を、ポインタ230−4およびポインタ240−4として含んでもよい。
このように、階層型データベース20は、各セグメントデータの接頭部(Prefix)に記録されたポインタを辿る事により順次他のセグメントデータをアクセスできる階層構造を有している。従って、整合性の維持された状態において、ポインタの値は、そのポインタによって示されるセグメントデータの保存先アドレスと一致している。本実施例におけるデータベース管理システム30は、これらのポインタ及び保存先アドレスの一致を判断することにより、階層型データベース20の整合性を判断することができる。
また、階層型データベース20内のセグメントデータは、利用者からの指示等に応じて随時更新されてもよい。本図の例では、セグメントデータ200−3がセグメントデータ200−2とセグメントデータ200−4との間に追加される場合におけるポインタの接続関係を点線で示している。即ち、この追加処理によって、セグメントデータ200−2はセグメントデータ200−3を示すポインタを記録し、セグメントデータ200−3はセグメントデータ200−4を示すポインタを記録することとなる。
従来、このような更新処理がデータベースの整合性判断処理中に発生した場合においては、整合性の判断結果が誤ってしまう場合があった。例えば、データベースを更新する過渡状態においては、セグメントデータ200−3が階層型データベース20に既に記録されている一方でポインタ230−2が未だにセグメントデータ200−4を指している状態が発生する場合がある。このような状態で整合性を判断すると、ポインタと保存先アドレスが一致せず、ゆえに、整合性が無いと判断してしまう場合があった。これに対して、本実施例におけるデータベース管理システム30は、整合性の判断処理中に階層型データベース20が更新された場合であっても適切に整合性を判断することを目的とする。
図3は、データベース管理システム30の機能を機能ブロック毎に示す。データベース管理システム30は、読出部300と、スキャンポインタ記録部305と、アドレス記録部310と、ポインタ記録部320と、アドレス変更部330と、ポインタ変更部340と、セグメントデータ更新部350と、履歴記録部360と、判断部370とを有する。読出部300は、階層型データベース20に含まれる複数のセグメントデータの各々から順次、他のセグメントデータに対するポインタを読み出す。具体的には、まず、読出部300は、セグメントデータ200−1から、セグメントデータ200−2に対するポインタ1100を読み出す。次に、読出部300は、セグメントデータ200−2から、セグメントデータ200−4に対するポインタ2000を読み出す。同様の処理を階層型データベース20の先頭から末尾に向かう方向に繰り返し行う。
スキャンポインタ記録部305は、本発明の読出済アドレス記録部の一例であり、読出部300が既に読み出したアドレスを記録する。そして、スキャンポインタ記録部305は、読出部300による読み出し処理に伴って、読み出しを開始すべき先頭アドレスから予め定められた昇順および降順の何れかの順序によりアドレス値を順次更新する。このアドレス値をスキャンポインタと呼ぶ。アドレス記録部310は、読出部300がポインタを読み出したセグメントデータの保存先アドレスを、読出部300による読み出し処理の進行に伴って順次記録する。ポインタ記録部320は、読出部300が読み出したポインタを、読出部300による読み出し処理の進行に伴って順次記録する。
アドレス変更部330は、既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、アドレス記録部310に記録された保存先アドレスを変更する。既にポインタを読み出した領域が更新されたか否かは、履歴記録部360に記録された履歴によって判断できる。同様に、ポインタ変更部340は、既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、ポインタ記録部320に記録されたポインタを変更する。
セグメントデータ更新部350は、外部から受けた利用者等の指示に応じ、階層型データベース20中のセグメントデータを更新する。これは、整合性判断の処理中でも構わない。履歴記録部360は、セグメントデータ更新部350がセグメントデータを更新したことに応じ、当該セグメントデータが、既にポインタを読み出した領域に位置するか否かを判断する。例えば、履歴記録部360は、当該セグメントデータの保存先アドレスがスキャンポインタ記録部305に記録されたアドレスよりも先頭側であることを条件に、当該セグメントデータが既にポインタを読み出した領域に位置すると判断してもよい。当該セグメントデータが既にポインタを読み出した領域に位置することを条件に、履歴記録部360は、その更新履歴を記録する。
図4は、履歴記録部360のデータ構造の一例を示す。本図の第2行目および第3行目は、図2で説明したセグメントデータの追加処理についての更新履歴である。また、セグメントデータの削除処理について説明するために、アドレス3000番台の更新履歴を追加して示した。
履歴記録部360は、更新対象のセグメントデータの保存先アドレスを記録する保存先アドレス記録領域400を有する。また、履歴記録部360は、本発明に係る第1領域の一例である変更前ポインタ記録領域410と、本発明に係る第2領域の一例である変更後ポインタ記録領域420とを有する。履歴記録部360は、保存先アドレス記録領域400において、セグメントデータが更新される毎に、そのセグメントデータの保存先アドレスを記録する。履歴記録部360は、変更前ポインタ記録領域410において、セグメントデータが更新される毎に、そのセグメントデータに含まれるポインタの変更前の値を記録する。履歴記録部360は、変更後ポインタ記録領域420において、セグメントデータが更新される毎に、そのセグメントデータに含まれるポインタの変更後の値を記録する。
例えば、アドレス1100のセグメントデータにおいてポインタ2000がポインタ1200に変更されたことに応じ、履歴記録部360は、保存先アドレス記録領域400に1100を記録し、変更前ポインタ記録領域410に2000を記録し、変更後ポインタ記録領域420に1200を記録する。また、アドレス3000のセグメントデータにおいてポインタ3100がポインタ3200に変更されたことに応じ、履歴記録部360は、保存先アドレス記録領域400に3000を記録し、変更前ポインタ記録領域410に3100を記録し、変更後ポインタ記録領域420に3200を記録する。
また、履歴記録部360は、セグメントデータが追加されたことに応じ、追加されたそのセグメントデータの保存先アドレスに対応付けて、変更前ポインタ記録領域410に、ポインタを含まない旨を示すポインタ不保持情報を記録する。このポインタ不保持情報は、ゼロや−1などの所定の値に定められたNullデータであってもよい。また、履歴記録部360は、そのセグメントデータの保存先アドレスに対応付けて、変更後ポインタ記録領域420に、そのセグメントデータが有する他のセグメントデータへのポインタを記録する。
例えば、アドレス1200のセグメントデータが追加されたことに応じ、履歴記録部360は、保存先アドレス記録領域400に1200を記録し、変更前ポインタ記録領域410にNullを記録し、変更後ポインタ記録領域420にアドレス2000を記録する。
また、履歴記録部360は、セグメントデータが削除されたことに応じ、削除されたそのセグメントデータの保存先アドレスに対応付けて、変更前ポインタ記録領域410に、当該セグメントデータが削除前に有していた他のセグメントデータへのポインタを記録する。そして、履歴記録部360は、そのセグメントデータの保存先アドレスに対応付けて、変更後ポインタ記録領域420にポインタ不保持情報を記録する。
例えば、アドレス3100のセグメントデータが削除されたことに応じ、履歴記録部360は、保存先アドレス記録領域400に3100を記録し、変更前ポインタ記録領域410に3200を記録し、変更後ポインタ記録領域420にNullを記録する。
図5は、アドレス記録部310が記録する保存先アドレスの一例を示す。アドレス記録部310は、読出部300がポインタを読み出したセグメントデータの保存先アドレスを、読出部300による読み出し処理の進行に伴って順次記録する。即ちアドレス記録部310は1000、1100および2000をこの順で記録する。その後、セグメントデータ200−3が階層型データベース20に追加されたことを条件に、アドレス変更部330は、アドレス1200をアドレス記録部310に追加して記録する。
具体的には、まず、アドレス変更部330は、履歴記録部360内の変更前ポインタ記録領域410からポインタ不保持情報を検索する。変更前ポインタ記録領域410にポインタ不保持情報が記録されていることに応じ、アドレス変更部330は、その領域に対応する保存先アドレスをアドレス記録部310に追加する。アドレス変更部330は、その保存先アドレスを、そのアドレスのセグメントデータが追加されたことを示す追加フラグ(例えば数字の0)に対応付けて記録してもよい。
また、アドレス3100のセグメントデータが階層型データベース20から削除されたことを条件に、アドレス変更部330は、アドレス3100をアドレス記録部310から除外する。具体的には、アドレス変更部330は、履歴記録部360内の変更後ポインタ記録領域420からポインタ不保持情報を検索する。変更後ポインタ記録領域420にポインタ不保持情報が記録されていることに応じ、アドレス記録部310は、その領域に対応する保存先アドレスをアドレス記録部310から除外する。詳細には、アドレス変更部330は、その保存先アドレスを、その保存先アドレスが削除されたことを示す削除フラグ(例えば数字の1)に対応付けてアドレス記録部310に記録することにより、その保存先アドレスをアドレス記録部310から除外してもよい。
図6は、ポインタ記録部320が記録するポインタの一例を示す。ポインタ記録部320は、各々のセグメントデータから読み出したポインタを、そのセグメントデータの保存先アドレスに対応付けて順次記録する。例えば、ポインタ記録部320は、アドレス1000のセグメントデータからポインタ1100が読み出されたので、「1100 1000」を記録する。その後、セグメントデータ200−2内のポインタが変更されたことを条件に、ポインタ変更部340は、変更前のポインタをポインタ記録部320から除外し、変更後のポインタをポインタ記録部320に追加する。
具体的には、まず、ポインタ変更部340は、履歴記録部360内の変更前ポインタ記録領域410からポインタを読み出す。次に、ポインタ変更部340は、読み出された各々のポインタを、そのポインタが削除されたことを示す削除フラグ(例えば数字の1)に対応付けてポインタ記録部320に追加することで、そのポインタをポインタ記録部320から除外する。また、ポインタ変更部340は、履歴記録部360内の変更後ポインタ記録領域420からポインタを読み出す。そして、ポインタ変更部340は、読み出された各々のポインタを、そのポインタが追加されたことを示す追加フラグ(例えば数字の0)に対応付けてポインタ記録部320に追加する。
より詳細には、アドレス1100のセグメントデータにおいてポインタ2000がポインタ1200に変更されたのであるから、ポインタ2000が削除フラグに対応付けて記録され、ポインタ1200が追加フラグに対応付けて記録される。また、アドレス1200のセグメントデータにおいて、新たにアドレス2000へのポインタが追加されたのであるから、ポインタ2000が追加フラグに対応付けて記録される。
図7は、保存先アドレスおよびポインタを変更して整合性を判断する処理の処理フローを示す。読出部300は、スキャンポインタ記録部305に記録されているアドレスの次のアドレスのセグメントデータを、排他的に読み書き可能なロック状態に設定する(S700)。次に、読出部300は、ロック状態においてそのアドレスのセグメントデータからポインタを読み出す(S710)。また、読出部300は、ロック状態において、読み出し対象となっているそのアドレスをスキャンポインタ記録部305に記録する(S715)。そして、読出部300は、ロック状態を解除する(S720)。
次に、アドレス記録部310は、読出部300がポインタを読み出したセグメントデータの保存先アドレスを記録する(S730)。また、ポインタ記録部320は、読出部300が読み出したポインタを記録する(S740)。以上の処理を、全てのセグメントデータからポインタを読み出すまで繰り返す(S750)。
全てのセグメントデータが読み出された場合に(S750:YES)、アドレス変更部330は、既にポインタを読み出した領域においてセグメントデータが更新されたことを条件に、アドレス記録部310に記録された保存先アドレスを変更する(S760)。例えば、アドレス変更部330は、削除されたセグメントデータの保存先アドレスを、削除された旨を示す削除フラグに対応付けてアドレス記録部310に記録してもよい。
また、ポインタ変更部340は、既にポインタを読み出した領域においてセグメントデータが更新されたことを条件に、ポインタ記録部320に記録されたポインタを変更する(S770)。例えば、ポインタ変更部340は、削除されたポインタを、削除された旨を示す削除フラグに対応付けてポインタ記録部320に記録してもよい。
次に、アドレス変更部330は、アドレス記録部310に保存先アドレスを追加したことを条件に、アドレス記録部310に記録された複数の保存先アドレスをアドレス値により昇順または降順に並べ替える(S780)。これにより、後のS790において保存先アドレスをポインタと比較し易くすることができる。
なお、スキャンポインタをアドレスの昇順または降順に更新させる場合において、アドレス記録部310は、保存先アドレスをアドレス値の昇順または降順に記録させることとなる。このため、好ましくは、アドレス変更部330は、保存先アドレスが追加されていないことを条件に、保存先アドレスを並べ替えない。この結果、意味の無い並べ替え処理を省略して処理を効率化することができる。
図8は、並べ替え後の保存先アドレスの一例を示す。アドレス1200は、並べ替えによってアドレス1100の次に配列される。
図7に戻る。
同様に、好ましくは、ポインタ変更部340は、ポインタ記録部320に記録された複数のポインタを、追加または除外されたポインタを含めてポインタ値により昇順または降順に並べ替える。なお、アドレス変更部330による並べ替え順序とポインタ変更部340による並べ替え順序は一致させる。即ち、アドレス変更部330が昇順に並べ替える場合にはポインタ変更部340も昇順に並べ替え、アドレス変更部330が降順に並べ替える場合にはポインタ変更部340も降順に並べ替える。
図9は、並べ替え後のポインタの一例を示す。ポインタ1200は、ポインタ1100の次に配列されている。また、既に読み出されたポインタ2000と、削除フラグに対応付けられたポインタ2000と、新たに追加されたポインタ2000とが、連続して配列されている。
図7に戻る。
判断部370は、アドレス記録部310に記録された保存先アドレスが、ポインタ記録部320に記録されたポインタと一致することを条件に、階層型データベース20が整合していると判断する(S790)。具体的には、判断部370は、ポインタ記録部320に記録された複数のポインタから、削除フラグに対応するポインタ、および、当該ポインタと同一の値を採る他のポインタを除外する。図9の例では、ポインタ「2000 1100」が、削除フラグに対応して記録されているので、ポインタ「2000 1100」は、比較の対象から除外される。これに代えて、追加フラグに対応する「2000 1200」が比較の対象とされる。
同様に、判断部370は、アドレス記録部310に記録されている複数の保存先アドレスから、削除フラグに対応するアドレス、および、当該アドレスと同一の値を採る他のアドレスを除外する。アドレス1000から2000の間においてセグメントデータは削除されていないので、図8の例においては何れのアドレスも除外されない。そして、判断部370は、追加されたセグメントデータの保存先アドレスを比較の対象とする。図8では、アドレス1200が比較の対象に追加される。
判断部370は、アドレス記録部310に記録された保存先アドレス、および、ポインタ記録部320に記録されたポインタを、先頭から順次1つずつ読み出して比較する。即ち例えば、判断部370は、アドレス記録部310からアドレス1000を読み出し、ポインタ記録部320からポインタ「1000 RAP」を読み出して比較する。この場合、何れも1000で一致するので、整合性が維持されていると判断する。また、判断部370は、アドレス記録部310からアドレス1100を読み出し、ポインタ記録部320からポインタ「1100 1000」を読み出して比較する。この場合にも、何れも1100で一致するので、整合性が維持されていると判断する。
判断部370は、このように順次アドレスおよびポインタを読み出して比較し、何れもが一致した場合には階層型データベース20が整合していると判断する。一方、何れかのポインタが、保存先アドレスと一致しない場合には、判断部370は、階層型データベース20が整合していないと判断する。この場合、好ましくは、判断部370は、そのポインタを、そのポインタを記録しているセグメントデータのアドレスに対応付けて出力してもよい。即ち例えば、判断部370は、ポインタ1100がアドレスと一致しない場合には、ポインタ「1100 1200」を出力する。これにより、アクセス障害が発生した原因箇所を特定し易くすることができる。
次に、図10から図14を用いて、履歴記録部360が更新履歴を記録する処理の詳細を説明する。
図10は、更新履歴を記録する処理の処理フローを示す。データベース管理システム30は、階層型データベース20が更新される毎に、階層型データベース20に対する一連の更新処理が完了して次の更新処理が可能な状態にあることを条件として以下の処理を行う。まず、履歴記録部360は、スキャンポインタ記録部305からスキャンポインタを取得する(S800)。次に、履歴記録部360は、スキャンポインタに有効な値が設定されているか否かを判断することによって、整合性判断の処理中か否かを判断する(S810)。
スキャンポインタに有効な値が設定されていない場合には(S810:NO)、履歴記録部360は、処理を終了する。一方、有効な値が設定されている場合には(S810:YES)、履歴記録部360は、当該更新により接頭部の変更されたセグメントデータが存在するか否かを判断する(S820)。接頭部の変更されたセグメントデータが存在しない場合には(S820:NO)、履歴記録部360は、処理を終了する。
一方、接頭部の変更されたセグメントデータが存在する場合には(S820:YES)、更新されたセグメントデータが、スキャンポインタと同一または先頭側に記録されているか否かを判断する(S830)。更新されたセグメントデータが、スキャンポインタよりも先頭側の領域にある場合には(S830:YES)、履歴記録部360は、更新履歴を記録し(S840)、S820に処理を戻す。
図11は、図10のS840における処理の詳細を示す。履歴記録部360は、階層型データベース20を更新する処理の種類を示す更新タイプを判断する(S900)。更新タイプが、セグメントデータの追加である場合に(S900:セグメントデータの追加)、履歴記録部360は、セグメントデータを追加した履歴を記録する(S920)。即ち履歴記録部360は、そのセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、ポインタ不保持情報を変更前ポインタ記録領域410に記録し、そのセグメントデータ内に新たに生成したポインタの値を変更後ポインタ記録領域420に記録する。
一方、更新タイプが、既存のセグメントデータの内容の変更である場合に(S900:セグメントデータの変更)、履歴記録部360は、更新タイプが、あるセグメントデータの一部を他のセグメントデータに分割する分割更新であるか否かを判断する(S960)。分割更新でない場合に(S960:NO)、履歴記録部360は、接頭部の更新履歴を記録する。即ち例えば、履歴記録部360は、更新対象のセグメントデータの保存先アドレスを保存先アドレス記録領域400に記録し、そのセグメントデータ内の変更前のポインタの値を変更前ポインタ記録領域410に記録し、そのポインタの変更後の値を変更後ポインタ記録領域420に記録する。
一方、分割更新の場合に(S960:YES)、履歴記録部360は、分割更新における接頭部の変更か否かを判断する(S980)。接頭部の変更である場合に、履歴記録部360は、分割更新における接頭部の更新履歴を記録する(S990)。一方、接頭部の変更ではない場合に(S980:NO)、履歴記録部360は、分割更新におけるデータ部の更新履歴を記録する。分割更新における更新履歴の記録方法についての詳細は図14において説明する。
図12は、セグメントデータが追加される処理の一例を示す。(a)は、セグメントデータの追加前における階層型データベース20を示す。階層型データベース20は、保存先アドレスを1000とするセグメントデータ200−5と、保存先アドレスを1200とするセグメントデータ200−6とを有する。セグメントデータ200−5は、セグメントデータ200−6に対するポインタを、接頭部に含む。
(b)は、セグメントデータの追加後の階層型データベース20及び履歴記録部360を示す。セグメントデータ更新部350は、セグメントデータ200−5とセグメントデータ200−6の間にセグメントデータ200−7を追加する場合に、セグメントデータ200−5が有するセグメントデータ200−6に対するポインタを、セグメントデータ200−7の保存先アドレスに変更する。そして、セグメントデータ更新部350は、セグメントデータ200−7内に、セグメントデータ200−6に対するポインタを生成する。
この結果、階層型データベース20は、新たに追加されたセグメントデータ200−7を、保存先アドレスを1100とする領域に記録することとなる。そして、セグメントデータ200−5は、セグメントデータ200−6に対するポインタ(即ち1200)に代えて、セグメントデータ200−7に対するポインタ(即ち1100)を含む。そして、セグメントデータ200−7は、セグメントデータ200−6に対するポインタ(即ち1200)を含む。
また、セグメントデータ200−5内のポインタが1200から1100に変更されたので、履歴記録部360は、セグメントデータ200−5の保存先アドレスである1000を保存先アドレス記録領域400に記録する。そして、履歴記録部360は、対応する変更前ポインタ記録領域410に、セグメントデータ200−6の保存先アドレスである1200を記録し、対応する変更後ポインタ記録領域420に、セグメントデータ200−7の保存先アドレスである1100を記録する(S970の処理に対応)。
また、セグメントデータ200−7が新たに追加されたので、履歴記録部360は、セグメントデータ200−7の保存先アドレスである1100を、保存先アドレス記録領域400に記録し、対応する変更前ポインタ記録領域410に、ポインタ不保持情報(例えばNULL)を記録し、対応する変更後ポインタ記録領域420に、セグメントデータ200−6の保存先アドレスである1200を記録する(S920の処理に対応)。
図13は、セグメントデータが削除される処理の一例を示す。(a)は、セグメントデータの削除前における階層型データベース20を示す。階層型データベース20は、保存先アドレスを1000とするセグメントデータ200−5と、保存先アドレスを1200とするセグメントデータ200−6と、保存先アドレスを1100とするセグメントデータ200−7とを有する。セグメントデータ200−5は、セグメントデータ200−7に対するポインタを接頭部に含み、セグメントデータ200−7は、セグメントデータ200−6に対するポインタを接頭部に含む。
(b)は、セグメントデータの削除後の階層型データベース20及び履歴記録部360を示す。セグメントデータ更新部350は、セグメントデータ200−5とセグメントデータ200−6の間のセグメントデータ200−7を削除する場合に、セグメントデータ200−5が有するセグメントデータ200−7に対するポインタを、セグメントデータ200−6の保存先アドレスに変更する。
この結果、階層型データベース20は、削除されたセグメントデータ200−7を含まない状態となる。また、セグメントデータ200−5は、セグメントデータ200−7に対するポインタ(即ち1100)に代えて、セグメントデータ200−6に対するポインタ(即ち1200)を含む。
また、セグメントデータ200−5内のポインタが1100から1200に変更されたので、履歴記録部360は、セグメントデータ200−5の保存先アドレスを保存先アドレス記録領域400に記録し、対応する変更前ポインタ記録領域410にセグメントデータ200−7の保存先アドレスを記録する。また、履歴記録部360は、対応する変更後ポインタ記録領域420に、セグメントデータ200−6の保存先アドレスを記録する(S970の処理に対応)。
また、セグメントデータ200−7が削除されたので、履歴記録部360は、セグメントデータ200−7の保存先アドレスを保存先アドレス記録領域400に記録し、対応する変更前ポインタ記録領域410にセグメントデータ200−6の保存先アドレスを記録する。また、履歴記録部360は、対応する変更後ポインタ記録領域420にポインタ不保持情報を記録する(S940の処理に対応)。
図14は、セグメントデータが分割される処理の一例を示す。(a)は、セグメントデータが分割される前における階層型データベース20を示す。分割前の状態は、図13(a)と略同一であるから説明を省略する。(b)は、セグメントデータの分割後の階層型データベース20及び履歴記録部360を示す。本図を用いて、セグメントデータ更新部350が一のセグメントデータを一または二以上の他のセグメントデータに分割する場合の処理を説明する。
セグメントデータ更新部350は、セグメントデータ200−6へのポインタを有するセグメントデータ200−7の一部をセグメントデータ200−8に分割する。このとき、セグメントデータ更新部350は、セグメントデータ200−7内に、セグメントデータ200−8へのポインタを追加し、セグメントデータ200−7の一部が分割された旨を示す分割フラグを追加する。
履歴記録部360は、セグメントデータ200−7が分割されたことに応じ、セグメントデータ200−7の保存先アドレスである1100を保存先アドレス記録領域400に記録する。そして、履歴記録部360は、セグメントデータ200−7の保存先アドレスに対応付けて、変更前ポインタ記録領域410に、セグメントデータ200−7が分割前に有していたポインタを記録する。即ち、履歴記録部360は、セグメントデータ200−6へのポインタである1200を、変更前ポインタ記録領域410に記録する。
更に、履歴記録部360は、セグメントデータ200−6へのポインタ、セグメントデータ200−7が分割された旨を示す分割フラグ、および、分割先のセグメントデータ200−8へのポインタを、変更後ポインタ記録領域420に記録する(S990の処理に対応)。なお、分割先のセグメントデータ200−8へのポインタは、変更後ポインタ記録領域420内の予め定められた記録位置に記録され、他のポインタとは区別可能となっていることが望ましい。即ち本図の例では、アドレス1400は、変更後ポインタ記録領域420内のあらかじめ定められた末尾部分の領域に記録される。
また、セグメントデータ200−8が階層型データベース20に追加されたので、履歴記録部360は、その旨を記録する。具体的には、履歴記録部360は、セグメントデータ200−8の保存先アドレスである1400を保存先アドレス記録領域400に記録し、対応する変更前ポインタ記録領域410にポインタ不保持情報を記録する。そして、履歴記録部360は、対応する変更後ポインタ記録領域420に、当該セグメントデータが分割先のデータである旨を示す分割先フラグを記録する(S995の処理に対応)。
セグメントデータが分割された場合に、ポインタ変更部340は、例えば以下のようにポインタ記録部320を操作する。具体的には、まず、ポインタ変更部340は、変更後ポインタ記録領域420に分割フラグが記録されていることを条件に、分割先のセグメントデータの保存先アドレスを変更後ポインタ記録領域420から読み出す。ここで、分割先のセグメントデータの保存先アドレスは、変更後ポインタ記録領域420内の予め定められた記録位置から読み出すことができる。そして、ポインタ変更部340は、読み出した保存先アドレスを、追加されたポインタとして、所定の追加フラグに対応付けてポインタ記録部320に記録する。これにより、分割によって新たに追加されたセグメントデータについても、整合性判断の対象に含めることができる。
以上、図10から図14において説明したように、データベース管理システム30は、更新対象となったセグメントデータが既に読み出されたアドレスに位置するか否かを、スキャンポインタとアドレス値との比較によって瞬時に判断することができる。また、既に読み出されたアドレスに位置するセグメントデータが更新された場合には、その更新の履歴を履歴記録部360に記録する。これらの処理の処理量は少ないので、これらの処理によってはデータベース管理システム30の負荷はほとんど上昇しない。このため、データベース管理システム30は、階層型データベース20に対する通常のトランザクションに計算能力の多くを割り当てることができる。
なお、他の例として、データベース管理システム30の計算能力が、通常のトランザクションに必要な計算能力を大きく上回っている場合においては、データベース管理システム30は、保存先アドレスおよびポインタを変更する処理(S760およびS770)を、セグメントデータが更新される毎に行ってもよい。この場合には、履歴記録部360は、セグメントデータの変更履歴を蓄積する必要がない。このため、データベース管理システム内の記憶領域の必要量を削減することができる。更に、保存先アドレスおよびポインタの変更(S760およびS770)を、全てのセグメントデータを読み出した後(S750:YES)に行う必要がないので、セグメントデータを読み出した後に必要な後処理の時間を削減することができる。
以上、図1から図14において説明したように、データベース管理システム30は、整合性の判断処理中に更新したポインタの更新履歴を、その更新内容を特定できる形式で記録する。そして、既にポインタを読み出した領域が更新された場合には、その更新内容に基づいてそのポインタ値やアドレス値を変更する。これにより、整合性の判断処理中に階層型データベース20が更新された場合であっても整合性を適切に判断することができる。
また、更新されたポインタ値やアドレス値は、整合性判断に先立って既に読み出されたポインタやアドレスと共にソートされる。この結果、記録されたポインタやアドレスを先頭から順次読み出して比較することによって整合性を判断できる。これにより、整合性判断の処理をこれまでと同等の効率で実現することができる。
図15は、整合性判断後に更新されたセグメントデータの整合性を判断する処理の一例を示す。本図においては、階層型データベース20が整合している状態から更に何れかのセグメントデータが更新された場合に、整合性が維持されているか否かを判断する処理を説明する。この処理によれば、その更新された部分についてのみ整合性を判断することによって、整合性の維持を判断でき、整合性判断の処理を一層効率化できる。
データベース管理システム30は、判断部370によって階層型データベース20が整合していると判断されたことを条件に、以下の処理を例えば定期的に行う。履歴記録部360は、整合している状態から何れかのセグメントデータにおける接頭部が更新されたか否かを判断する(S1500)。接頭部が更新されたことに応じ(S1500:YES)、アドレス記録部310は、当該更新によって追加または削除されたセグメントデータの保存先アドレスを、整合性判断のために既に記録された保存先アドレスに追加して更に記録する(S1510)。この保存先アドレスは、履歴記録部360に記録される更新履歴に基づいてアドレス変更部330によって記録されてもよい。
次に、ポインタ記録部320は、当該更新によって変更されたポインタを更に記録する(S1520)。具体的には、このポインタは、履歴記録部360に記録される更新履歴に基づいてポインタ変更部340によって記録されてもよい。
判断部370は、整合していると判断された後にポインタ記録部320に記録された変更後のポインタの各々と、整合していると判断された後にアドレス記録部310に記録された追加されたセグメントデータの保存先アドレスの各々とを比較する(S1530)。また、判断部370は、整合していると判断された後にポインタ記録部320に記録された変更後のポインタの各々を、整合性の判断のために当該判断前にアドレス記録部310が順次記録したアドレスの各々とも比較する(S1540)。但し、削除フラグに対応付けて記録された保存先アドレスは比較の対象から除外される。
各々のポインタが、整合性判断前後何れかの保存先アドレスと一致すれば(S1550:YES)、判断部370は、階層型データベース20の整合性が維持されていると判断する(S1560)。一方で、何れの保存先アドレスとも一致しなければ(S1550:NO)、判断部370は、階層型データベース20の整合性が破綻したと判断する(S1570)。
以上、本図の処理によれば、一旦整合性が判断された後には、その後の更新の差分のみについて整合性を判断することで、階層型データベース20の整合性が維持されていることを確かめることができる。この結果、整合性判断の処理を一層効率化できる。
図16は、データベース管理システム30として機能する情報処理装置500のハードウェア構成の一例を示す。本図においては、情報処理装置500が、メインフレームと呼ばれる大型汎用計算機である場合を例に、そのハードウェア構成を説明する。情報処理装置500は、主記憶装置502と、少なくとも1つの中央処理装置504と、記憶制御部506と、チャネル・サブシステム508と、少なくとも1つの制御装置510と、少なくとも1つの入出力デバイス512a〜dとを備える。
主記憶装置502は、入出力デバイス512a〜dから入力したデータ及びプログラムを格納する。そして、主記憶装置502は、中央処理装置504及びチャネル・サブシステム508からアドレスの指定を受けると、そのアドレスに格納しているデータを中央処理装置504及びチャネル・サブシステム508に送る。主記憶装置502は、格納しているデータを高速に読み書き可能であり、この高速な読み書きにより、中央処理装置504による高速演算処理が可能となる。
中央処理装置504は、情報処理装置500の全体を制御する中心的な役割を果たし、例えば、少なくとも1つのオペレーティングシステム505を実行する。オペレーティングシステム505は、情報処理装置500におけるプログラムの実行及び入出力処理を制御する。例えば、オペレーティングシステム505は、中央処理装置504上で動作する他のプログラムの実行を制御してもよいし、入出力デバイス512a〜dまでの各々におけるデータ転送を制御してもよい。
記憶制御部506は、双方向又は片方向に通信可能なバス514を経由して中央処理装置504に接続される。記憶制御部506は、更に、バス516を経由して主記憶装置502に接続され、バス518を経由してチャネル・サブシステム508に接続される。記憶制御部506は、例えば、中央処理装置504又はチャネル・サブシステム508から受けたアクセスリクエストを一時的に格納し(キューイング処理)、所定のタイミングでそのアクセスリクエストを主記憶装置502に送信してもよい。
チャネル・サブシステム508は、各々の制御装置510に対して、データ転送路520を経由して接続される。そして、チャネル・サブシステム508は、入出力デバイス512a〜d及び主記憶装置502間でのデータ転送を制御する。これにより、中央処理装置504が入出力デバイス512a〜dとの間で通信する処理負荷が軽減されるので、中央処理装置504による演算処理と、入出力デバイス512a〜dによる入出力処理とを並列に実行させることができ、結果として情報処理装置500を効率的に動作させることができる。
また、チャネル・サブシステム508は、少なくとも1つのチャネルパス522により、入出力デバイス512a〜dとデータ転送する。各々のチャネルパス522は、チャネル・サブシステム508内に設けられたチャネル524を有する。また、各々のチャネルパス522は、少なくとも1つの制御装置510と、データ転送路520を有する。ここで、データ転送路520は、例えば、(ESCON: Enterprise Systems Connection Architecture)に基づくシリアルリンクであってもよい。これに代えて、データ転送路520は、パラレルOEMIであってもよいし、ファイバチャネルであってもよい。
制御装置510は、入出力デバイス512a〜dの少なくとも1つを制御する。例えば、制御装置510は、入出力デバイス512a〜dの各々におけるデータ転送のタイミングを制御してもよい。制御装置510は、バス526を経由して、入出力デバイス512a〜dの少なくとも1つに接続する。一例として、制御装置510は、最大256個の入出力デバイスに接続可能である。
入出力デバイス512a〜dの各々は、制御装置510、チャネル・サブシステム508、及び記憶制御部506を順次経由して主記憶装置502との間でデータ転送を行う。ここで、入出力デバイス512aは、具体的には、磁気テープドライブであり、入出力デバイス512dは、ハードディスクドライブである。これに代えて、又はこれに加えて、入出力デバイス512a〜dの各々は、パンチカードリーダ、ディスプレイ、キーボード、プリンタ、通信デバイス、各種センサー、又はその他の記憶装置であってもよい。一例として、入出力デバイス512a〜dの少なくとも何れか1つは、階層型データベース20と接続され、階層型データベース20に対するアクセスを行ってもよい。
情報処理装置500に提供されるプログラムは、テープ記録媒体535等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力デバイス512aによって読み出され、チャネル・サブシステム508を経由して主記憶装置502に格納される。そして、主記憶装置502に格納されたプログラムは、再度チャネル・サブシステム508を経由して入出力デバイス512d(ハードディスクドライブ)にインストールされる。プログラムが情報処理装置500等に働きかけて行わせる動作は、図1から図13において説明したデータベース管理システム30における動作と同一であるから、説明を省略する。
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク、CD−ROMの他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置500に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
図1は、データベースシステム10の概略を示す。 図2は、階層型データベース20のデータ構造の一例を示す。 図3は、データベース管理システム30の機能を機能ブロック毎に示す。 図4は、履歴記録部360のデータ構造の一例を示す。 図5は、アドレス記録部310が記録する保存先アドレスの一例を示す。 図6は、ポインタ記録部320が記録するポインタの一例を示す。 図7は、保存先アドレスおよびポインタを変更して整合性を判断する処理の処理フローを示す。 図8は、並べ替え後の保存先アドレスの一例を示す。 図9は、並べ替え後のポインタの一例を示す。 図10は、更新履歴を記録する処理の処理フローを示す。 図11は、図10のS840における処理の詳細を示す。 図12は、セグメントデータが追加される処理の一例を示す。 図13は、セグメントデータが削除される処理の一例を示す。 図14は、セグメントデータが分割される処理の一例を示す。 図15は、整合性判断後に更新されたセグメントデータの整合性を判断する処理の一例を示す。 図16は、データベース管理システム30として機能する情報処理装置500のハードウェア構成の一例を示す。
符号の説明
10 データベースシステム
20 階層型データベース
30 データベース管理システム
200 セグメントデータ
210 接頭部
220 データ部
230 ポインタ
240 ポインタ
300 読出部
305 スキャンポインタ記録部
310 アドレス記録部
320 ポインタ記録部
330 アドレス変更部
340 ポインタ変更部
350 セグメントデータ更新部
360 履歴記録部
370 判断部
400 保存先アドレス記録領域
410 変更前ポインタ記録領域
420 変更後ポインタ記録領域
500 情報処理装置

Claims (13)

  1. データベースの整合性を判断するシステムであって、
    前記データベースに含まれる複数のセグメントデータの各々から順次、他のセグメントデータに対するポインタを読み出す読出部と、
    前記読出部がポインタを読み出したセグメントデータの保存先アドレスを記録するアドレス記録部と、
    前記読出部が読み出したポインタを記録するポインタ記録部と、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記アドレス記録部に記録された前記保存先アドレスを変更するアドレス変更部と、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記ポインタ記録部に記録されたポインタを変更するポインタ変更部と、
    前記アドレス記録部に記録された各々の保存先アドレスが、前記ポインタ記録部に記録された各々のポインタと一致することを条件に、前記データベースが整合していると判断する判断部と
    を備えるシステム。
  2. 既にポインタを読み出した領域においてセグメントデータが更新される毎に、当該セグメントデータに含まれるポインタの変更前の値を記録する第1領域と、当該セグメントデータに含まれるポインタの変更後の値を記録する第2領域とを有する履歴記録部を更に備え、
    前記ポインタ変更部は、前記履歴記録部の第1領域に記録されたポインタを前記ポインタ記録部から除外し、前記履歴記録部の第2領域に記録されたポインタを前記ポインタ記録部に追加する
    請求項1に記載のシステム。
  3. 前記読出部が既に読み出したアドレスを記録し、読み出しを開始すべき先頭アドレスから予め定められた昇順および降順の何れかの順序によりアドレス値を順次更新する読出済アドレス記録部を更に備え、
    前記履歴記録部は、セグメントデータが更新されたことに応じ、当該セグメントデータの保存先アドレスが読出し済みの前記アドレスよりも先頭側であることを条件に、当該セグメントデータが既にポインタを読み出した領域に位置すると判断する
    請求項2に記載のシステム。
  4. 前記ポインタ変更部は、前記履歴記録部の第1領域に記録されたポインタを、当該ポインタが削除されたことを示す削除フラグに対応付けて前記ポインタ記録部に追加することで、当該ポインタを前記ポインタ記録部から除外し、
    前記判断部は、前記ポインタ記録部に記録された複数のポインタから、前記削除フラグに対応するポインタ、および、当該ポインタと同一の値を採る他のポインタを除外したポインタの各々を、前記アドレス記録部に記録されたアドレスの各々と比較する
    請求項2に記載のシステム。
  5. 前記ポインタ変更部は、前記ポインタ記録部に記録された複数のポインタを、追加または除外されたポインタを含めてポインタ値により昇順または降順に並べ替え、
    前記判断部は、並べ替えた前記複数のポインタを、前記アドレス記録部に記録されたアドレスの各々と比較する
    請求項4に記載のシステム。
  6. 前記履歴記録部は、セグメントデータが追加されたことに応じ、
    追加された当該セグメントデータの保存先アドレスに対応付けて、
    前記第1領域に、ポインタを含まない旨を示すポインタ不保持情報を記録し、
    前記第2領域に、当該セグメントデータが有する他のセグメントデータへのポインタを記録し、
    セグメントデータが削除されたことに応じ、
    削除された当該セグメントデータの保存先アドレスに対応付けて、
    前記第1領域に、当該セグメントデータが削除前に有していた他のセグメントデータへのポインタを記録し、
    前記第2領域に、前記ポインタ不保持情報を記録し、
    前記アドレス変更部は、前記第1領域に前記ポインタ不保持情報が記録されていることに応じ、当該第1領域に対応する保存先アドレスを前記アドレス記録部に追加し、前記第2領域に前記ポインタ不保持情報が記録されていることに応じ、当該第2領域に対応する保存先アドレスを前記アドレス記録部から除外する
    請求項2に記載のシステム。
  7. 前記アドレス変更部は、前記第2領域に前記ポインタ不保持情報が記録されていることに応じ、当該第2領域に対応する保存先アドレスを、当該保存先アドレスが削除されたことを示す削除フラグに対応付けて前記アドレス記録部に記録することにより、当該保存先アドレスを前記アドレス記録部から除外し、
    前記判断部は、前記アドレス記録部に記録された複数の保存先アドレスから、前記削除フラグに対応する保存先アドレス、および、当該保存先アドレスと同一の値を採る他の保存先アドレスを除外した保存先アドレスの各々を、前記ポインタ記録部に記録されたポインタの各々と比較する
    請求項6に記載のシステム。
  8. 前記アドレス変更部は、前記アドレス記録部に保存先アドレスを追加したことを条件に、前記アドレス記録部に記録された複数の保存先アドレスをアドレス値により昇順または降順に並べ替え、
    前記判断部は、並べ替えた前記複数のアドレス値を、前記ポインタ記録部に記録されたポインタの各々と比較する
    請求項7に記載のシステム。
  9. 前記履歴記録部は、一のセグメントデータが1または2以上の他のセグメントデータに分割されたことに応じ、
    分割された当該一のセグメントデータの保存先アドレスに対応付けて、
    前記第1領域に、当該一のセグメントデータが分割前に有していたポインタを記録し、
    前記第2領域に、当該ポインタ、当該一のセグメントデータが分割された旨を示す分割フラグ、および、前記他のセグメントデータの各々へのポインタを記録し、
    前記ポインタ変更部は、前記第2領域に前記分割フラグが記録されていることを条件に、当該第2領域に記録されている前記他のセグメントデータへのポインタを前記ポインタ記録部に追加する
    請求項2に記載のシステム。
  10. 前記判断部によって前記データベースが整合していると判断されたことを条件に、
    前記ポインタ記録部は、整合している状態から何れかの前記セグメントデータが更新されたことに応じ、当該更新によって変更されたポインタを更に記録し、
    前記アドレス記録部は、整合している状態から何れかの前記セグメントデータが更新されたことに応じ、当該更新によって追加または削除されたセグメントデータの保存先アドレスを更に記録し、
    前記判断部は、整合していると判断された後に前記ポインタ記録部に記録された変更後のポインタの各々と、整合していると判断された後に前記アドレス記録部に記録された追加されたセグメントデータの保存先アドレスの各々とが一致することを条件に、前記データベースの整合性が維持されていると判断する
    請求項1に記載のシステム。
  11. 前記判断部は、整合していると判断された後に前記ポインタ記録部に記録された変更後のポインタの各々が、整合性の判断のために前記アドレス記録部が順次記録したアドレス、または、整合性の判断後に前記アドレス記録部に記録されたアドレスに一致することを条件に、前記データベースの整合性が維持されていると判断する
    請求項10に記載のシステム。
  12. データベースの整合性を判断するシステムを用いて前記データベースの整合性を判断する判断方法であって、
    前記システムは、
    前記データベースに含まれる複数のセグメントデータの各々から順次、他のセグメントデータに対するポインタを読み出す読出部と、
    前記読出部がポインタを読み出したセグメントデータの保存先アドレスを記録するアドレス記録部と、
    前記読出部が読み出したポインタを記録するポインタ記録部と
    を備え、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記アドレス記録部に記録された前記保存先アドレスを変更する段階と、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記ポインタ記録部に記録されたポインタを変更する段階と、
    前記アドレス記録部に記録された各々の保存先アドレスが、前記ポインタ記録部に記録された各々のポインタと一致することを条件に、前記データベースが整合していると判断する段階と
    を備える判断方法。
  13. データベースの整合性を判断するシステムとして、情報処理装置を機能させるプログラムであって、
    前記情報処理装置を、
    前記データベースに含まれる複数のセグメントデータの各々から順次、他のセグメントデータに対するポインタを読み出す読出部と、
    前記読出部がポインタを読み出したセグメントデータの保存先アドレスを記録するアドレス記録部と、
    前記読出部が読み出したポインタを記録するポインタ記録部と、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記アドレス記録部に記録された前記保存先アドレスを変更するアドレス変更部と、
    既にポインタを読み出した領域においてセグメントデータが更新されたことに応じ、前記ポインタ記録部に記録されたポインタを変更するポインタ変更部と、
    前記アドレス記録部に記録された各々の保存先アドレスが、前記ポインタ記録部に記録された各々のポインタと一致することを条件に、前記データベースが整合していると判断する判断部と
    して機能させるプログラム。
JP2005236552A 2005-08-17 2005-08-17 システム、判断方法およびプログラム Expired - Fee Related JP3884049B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005236552A JP3884049B1 (ja) 2005-08-17 2005-08-17 システム、判断方法およびプログラム
US11/462,646 US7299249B2 (en) 2005-08-17 2006-08-04 Apparatus, system, and program for determining consistency of a database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005236552A JP3884049B1 (ja) 2005-08-17 2005-08-17 システム、判断方法およびプログラム

Publications (2)

Publication Number Publication Date
JP3884049B1 true JP3884049B1 (ja) 2007-02-21
JP2007052583A JP2007052583A (ja) 2007-03-01

Family

ID=37768416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005236552A Expired - Fee Related JP3884049B1 (ja) 2005-08-17 2005-08-17 システム、判断方法およびプログラム

Country Status (2)

Country Link
US (1) US7299249B2 (ja)
JP (1) JP3884049B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326808B2 (en) 2009-04-24 2012-12-04 International Business Machines Corporation Information processing apparatus, and information processing method, program, and recording medium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4082614B2 (ja) * 2004-11-12 2008-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース管理システム、データベース管理方法、及びプログラム
JP4148529B2 (ja) * 2006-12-28 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
JP4457240B2 (ja) * 2007-05-09 2010-04-28 フェリカネットワークス株式会社 データ管理システム、管理サーバ、データ管理方法、およびプログラム
JP5224928B2 (ja) * 2008-06-23 2013-07-03 日本電信電話株式会社 データベース整合性チェック装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
JP5270271B2 (ja) * 2008-09-08 2013-08-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理方法、プログラムおよび記録媒体
US8140565B2 (en) * 2009-01-20 2012-03-20 International Business Machines Corporation Autonomic information management system (IMS) mainframe database pointer error diagnostic data extraction
US20110154221A1 (en) * 2009-12-22 2011-06-23 International Business Machines Corporation Subject suggestion based on e-mail recipients
DE112010004565B4 (de) * 2009-12-25 2021-07-01 International Business Machines Corporation System, Verfahren und Programm zur Prüfung der Konsistenz von Zeigern in einer Hierarchischen Datenbank

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249222A (ja) 1995-03-14 1996-09-27 Nippon Telegr & Teleph Corp <Ntt> データベース整合性チェック方法および装置
JP2001142765A (ja) 1999-11-17 2001-05-25 Nec Corp データベースファイル整合性検証方法およびその装置ならびに記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326808B2 (en) 2009-04-24 2012-12-04 International Business Machines Corporation Information processing apparatus, and information processing method, program, and recording medium

Also Published As

Publication number Publication date
US7299249B2 (en) 2007-11-20
JP2007052583A (ja) 2007-03-01
US20070043775A1 (en) 2007-02-22

Similar Documents

Publication Publication Date Title
JP3884049B1 (ja) システム、判断方法およびプログラム
JP6605078B2 (ja) 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体
JP4148529B2 (ja) データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
US7139927B2 (en) Journaling and recovery method of shared disk file system
US7483920B2 (en) Database management system, database management method, and program
US20080077752A1 (en) Storage system and audit log management method
WO2018153251A1 (zh) 一种快照的处理方法及分布式块存储系统
WO2023165196A1 (zh) 一种日志存储加速方法、装置、电子设备及非易失性可读存储介质
JP2008217209A (ja) 差分スナップショット管理方法、計算機システム及びnas計算機
JP3894335B1 (ja) データベースの整合性を判断する装置、およびその方法
CN108475201A (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
US8880478B2 (en) Scan-free archiving
CN111737203A (zh) 数据库历史日志回溯方法、装置、系统、设备及存储介质
JP2002007182A (ja) 外部記憶装置の共有ファイル管理方式
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
JP2013105293A (ja) 情報処理装置
US20120324182A1 (en) Storage device
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
WO2016117007A1 (ja) データベースシステム及びデータベース管理方法
JP4160817B2 (ja) ディスクサブシステム、計算機システム、それを管理するためのストレージ管理方法、および、管理プログラム
CN113590380A (zh) 一种数据库恢复方法及系统
CN112835967A (zh) 基于分布式存储系统的数据处理方法、装置、设备和介质
US20240086362A1 (en) Key-value store and file system
JP5270271B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP2007242061A (ja) データ処理方法および装置

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20061108

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20061114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091124

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131124

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees