JP7095800B2 - 情報処理プログラム、情報処理方法及び情報処理装置 - Google Patents

情報処理プログラム、情報処理方法及び情報処理装置 Download PDF

Info

Publication number
JP7095800B2
JP7095800B2 JP2021508385A JP2021508385A JP7095800B2 JP 7095800 B2 JP7095800 B2 JP 7095800B2 JP 2021508385 A JP2021508385 A JP 2021508385A JP 2021508385 A JP2021508385 A JP 2021508385A JP 7095800 B2 JP7095800 B2 JP 7095800B2
Authority
JP
Japan
Prior art keywords
data
rowid
update
information
partition
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.)
Active
Application number
JP2021508385A
Other languages
English (en)
Other versions
JPWO2020194403A1 (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
Publication of JPWO2020194403A1 publication Critical patent/JPWO2020194403A1/ja
Application granted granted Critical
Publication of JP7095800B2 publication Critical patent/JP7095800B2/ja
Active 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/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/2365Ensuring data consistency and integrity
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Description

本発明は、情報処理プログラム、情報処理方法及び情報処理装置に関する。
XML(Extensible Markup Language)データなどのデータをレコードとして記憶するデータベースは、レコードに対する操作を記録するRowIDファイルを保持する。図14は、RowIDファイルを説明するための図である。図14に示すように、レコードに対する追加、更新又は削除の操作が行われると、操作情報がRowIDファイル9に追記される。操作情報には、命令区分、RowID、レコードの物理位置などが含まれる。命令区分は、「追加(ADD)」、「更新(UPD)」又は「削除(DEL)」である。RowIDは、操作を識別する識別子である。レコードの物理位置は、レコードがHDD(Hard Disk Drive)やSSD(Solid State Drive)に格納される物理的な格納位置情報である。
RowIDファイル9は、データベースの再起動時に、各レコードの最新状態をメモリ51上に保持するRowIDヒドラ36を復元するために用いられる。RowIDヒドラ36は、RowIDに関する木構造のデータであり、木の葉の部分はRowIDヒドラ葉と呼ばれ、レコードの物理位置を含むレコード情報を記憶する。RowIDヒドラ36は、RowIDからレコードの物理位置を取得する際に用いられる。
例えば、RowIDを000~999までの数とし、RowIDヒドラ36をルート(root)を除いて3階層とすると、第1階層はRowIDの百の桁の数の0~9それぞれに対応する10個のノードで構成される。第2階層は、第1階層の各ノードに対してRowIDの十の桁の数の0~9それぞれに対応する合計100個のノードで構成される。第3階層すなわち葉の階層は、第2階層の各ノードに対してRowIDの一の桁の数の0~9それぞれに対応する合計1000個のノードで構成される。なお、RowIDヒドラ36の詳細については、特開2003-44267に記載されている。
図14に示すRowIDファイル9の例では、RowIDが「#1」であるレコードとRowIDが「#2」であるレコードがデータベースに追加され、RowIDが「#2」であるレコードが更新され、RowIDが「#1」であるレコードが削除される。このRowIDファイル9が再起動時に読み込まれると、RowIDが「#1」であるレコードの情報とRowIDが「#2」であるレコードの情報を記憶するRowIDヒドラ葉がRowIDヒドラ36に作成される。そして、RowIDが「#2」であるレコードの情報を記憶するRowIDヒドラ葉が更新され、RowIDが「#1」であるレコードの情報を記憶するRowIDヒドラ葉が削除される。
なお、過去から現在まで同一の起源を持つデータを更新する毎に更新済のデータを時系列にしたがって格納するデータベースファイルから不要な時系列データを削除する際、自動的に必要時点の時系列データを同一データベースファイルに保持する従来技術がある。この従来技術のシステムは、データベースファイルとデータベース管理システムとデータベース管理情報入出力装置を備える。データベース管理システムは、データ検索とデータ更新とデータ削除とを含めデータベースファイルに対する一連の動作を管理する。データベース管理情報入出力装置は、データベース管理システムに対し任意の最新データの更新及び時系列にしたがって格納した更新済のデータの中の任意のデータの削除を指定し命令する。
また、従来技術として、セーフログ域と、バッファ域と、データベース格納域と、データベースアクセス部と、コミットレコード収集部と、バッファ制御部とを備え、ヒストリカルなデータ蓄積処理に適したデータベース管理処理方式がある。セーフログ域には、追加レコードのログが格納される。バッファ域には、コミットされたレコードが格納される。データベース格納域は、二次記憶上に設けられる。データベースアクセス部は、レコードの追加時に、セーフログ域に当該レコードのログデータを採取する。コミットレコード収集部は、コミット済みのログデータをセーフログ域から取り出し、バッファ域に格納する。バッファ制御部は、バッファ域の内容をトランザクションの処理とは非同期にデータベース格納域に書き出す。そして、このデータベース管理処理方式は、追加レコードのディスクロージャをバッファ域への転送で行う。
特開平7-73086号公報 特開平4-24750号公報 特開2003-44267号公報
記憶するデータの数が増大すると、全データを検索する手法では、検索性能が劣化し、リソース使用量が増大する。そこで、データを分類してデータベースに格納し、検索時には分類を用いて検索対象を絞り込むパーティショニング機能が求められる。
図15は、パーティショニング機能を説明するための図である。図15では、XMLデータをデータベースに記憶する場合を示す。利用者は、パーティション定義を用いてパーティションを定義する。図15では、/root/月度タグを用いてXMLデータが分割管理される。すなわち、XMLデータは、<月度>が「1」であるデータ、<月度>が「2」であるデータ、・・・、<月度>が「12」であるデータに分割されて管理される。
検索では、パーティションが指定される。図15では、<月度>が「4」であることが検索式4で指定される。データベース管理システムは、検索式4からパーティションを特定し、特定したパーティションの範囲で検索を実行することができる。
しかしながら、パーティショニング機能を備えても、データの数が増えると、再起動時のRowIDヒドラ36の復元に時間がかかり、再起動に時間がかかるという問題がある。図16は、RowIDヒドラ36の復元を示す図である。図16に示すように、データベース管理システムは、RowIDファイル9をシーケンシャルに読み込み、RowIDヒドラ36を復元する。このため、追加によりデータベースに大量のレコードを格納した場合には、RowIDヒドラ36の復元に時間がかかる。特に、パーティショニング機能を備えた場合、パーティション単位の削除や移動により一度に大量のレコードを操作する運用が増え、RowIDファイル9の操作情報の数が増大する。
本発明は、1つの側面では、RowIDヒドラ36の復元時間を短縮して再起動性能を向上することを目的とする。
1つの態様では、情報処理プログラムは、データを複数のデータ領域に分割してデータベースに記憶する処理をコンピュータに実行させる。また、前記情報処理プログラムは、前記データ領域の少なくとも一つに対する追加、更新、削除のいずれかの操作を受け付けた際に、前記受け付けた操作が、前記追加の操作である場合に、追加操作処理を前記コンピュータに実行させる。前記追加操作処理では、前記追加の操作に関する情報を前記追加の対象となるデータ領域に対応付けて記憶する。また、前記情報処理プログラムは、前記受け付けた操作が前記更新又は前記削除のいずれかの操作である場合に、前記更新又は削除の操作に関する情報を前記データに対応付けて記憶する処理を前記コンピュータに実行させる。そして、前記情報処理プログラムは、全データの格納位置を示す全格納位置情報を復元する際に、前記追加に関する復元処理を前記複数のデータ領域に関して並列で実行する処理を前記コンピュータに実行させる。前記追加に関する復元処理は、前記複数のデータ領域それぞれに対応付けられた操作に関する情報に基づいて実行される。そして、前記情報処理プログラムは、前記追加に関する復元処理の実行後に前記更新又は削除の操作に関する情報に基づいて、前記更新又は前記削除に関する復元処理を実行する処理を前記コンピュータに実行させる。
本発明は、1つの側面では、RowIDヒドラ36の復元時間を短縮して再起動性能を向上することができる。
図1は、実施例に係るデータベース管理システムが管理するのRowIDファイルを説明するための図である。 図2は、実施例に係るデータベース管理システムによるRowIDヒドラの復元を説明するための図である。 図3は、実施例に係るデータベース管理システムの構成を示す図である。 図4は、操作部による処理のフローを示すフローチャートである。 図5は、復元部による処理のフローを示すフローチャートである。 図6は、レコード追加の処理例を示す図である。 図7は、レコード更新の処理例を示す図である。 図8は、レコード削除の処理例を示す図である。 図9は、パーティション削除の処理例を示す図である。 図10Aは、追加命令の操作情報を用いたRowIDヒドラの復元を示す図である。 図10Bは、更新命令の操作情報のRowIDヒドラへの反映を示す図である。 図10Cは、削除命令の操作情報のRowIDヒドラへの反映を示す図である。 図11Aは、登録データの例を示す図である。 図11Bは、レコード#1の更新を示す図である。 図11Cは、レコード#2の更新を示す図である。 図11Dは、東京パーティションの削除を示す図である。 図12Aは、追加命令の操作情報を用いた復元処理を示す図である。 図12Bは、レコード#1の更新命令の操作情報を用いた復元処理を示す第1の図である。 図12Cは、レコード#1の更新命令の操作情報を用いた復元処理を示す第2の図である。 図12Dは、レコード#2の更新命令の操作情報を用いた復元処理を示す第1の図である。 図12Eは、レコード#2の更新命令の操作情報を用いた復元処理を示す第2の図である。 図13は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。 図14は、RowIDファイルを説明するための図である。 図15は、パーティショニング機能を説明するための図である。 図16は、RowIDヒドラの復元を示す図である。
以下に、本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るデータベース管理システムが管理するRowIDファイルについて説明する。図1は、実施例に係るデータベース管理システムが管理するのRowIDファイルを説明するための図である。図1に示すように、実施例に係るデータベース管理システムは、蓄積データ32をパーティションに分割して管理し、各パーティションに対応付けてパーティション毎RowIDファイル33を有する。
実施例に係るデータベース管理システムは、追加命令については操作情報をパーティション毎RowIDファイル33に格納する。例えば、パーティションAに含まれるレコードの追加命令の操作情報はパーティションAのパーティション毎RowIDファイル33に格納される。パーティションBに含まれるレコードの追加命令の操作情報はパーティションBのパーティション毎RowIDファイル33に格納される。
また、実施例に係るデータベース管理システムは、共通RowIDファイル34を有し、更新命令及び削除命令については共通RowIDファイル34に操作情報を格納する。また、実施例に係るデータベース管理システムは、更新命令については、更新後のパーティションの情報を所属パーティションとして操作情報に含める。なお、所属パーティションを用いてRowIDヒドラ36の更新を制御する処理については後述する。
再起動時は、実施例に係るデータベース管理システムは、パーティション毎RowIDファイル33に基づいて並列にRowIDヒドラ36を復元した後、共通RowIDファイル34に基づいてRowIDヒドラ36を更新する。
図2は、実施例に係るデータベース管理システムによるRowIDヒドラ36の復元を説明するための図である。図2に示すように、実施例に係るデータベース管理システムは、パーティション毎RowIDファイル33を並列に読み込み(t1)、追加命令をもとに、RowIDヒドラ36を並列に復元する(t2)。例えば、パーティション毎RowIDファイル33を読み込んでRowIDヒドラ36を復元する処理を行うスレッドをパーティション毎に生成してマルチコアのCPUにおいて実行することにより、並列にRowIDヒドラ36を復元することが実現される。そして、実施例に係るデータベース管理システムは、共通RowIDファイル34を読み込んで(t3)、RowIDヒドラ36に更新及び削除を反映する(t4)。
このように、パーティション毎RowIDファイル33に順序性のない追加命令の操作情報のみを格納することで、実施例に係るデータベース管理システムは、複数のパーティション毎RowIDファイル33に基づくRowIDヒドラ36の復元を並列に行う。このため、実施例に係るデータベース管理システムは、RowIDヒドラ36の復元時間を短縮することができる。
また、パーティション単位でレコードが削除された場合に、実施例に係るデータベース管理システムは、パーティションに対応するパーティション毎RowIDファイル33を削除することで、追加命令と削除命令の操作情報をなくすことができる。このため、実施例に係るデータベース管理システムは、操作情報の数を減らすことができ、RowIDヒドラ36の復元時間を短縮することができる。
次に、実施例に係るデータベース管理システムの構成について説明する。図3は、実施例に係るデータベース管理システムの構成を示す図である。図3に示すように、実施例に係るデータベース管理システム1は、管理装置2と3台の検索装置3とを有する。なお、データベース管理システム1は、1台以上であれば、3台以外の台数の検索装置3を有してよい。
管理装置2は、利用者から操作要求、検索要求などを受け付けて対応する処理を行い、処理結果を利用者に通知する情報処理装置である。検索装置3は、管理装置2の指示に基づいて、検索要求に含まれる検索条件を満たすRowIDの一覧を作成し、管理装置2に応答する。3台の検索装置3は並列に処理を行う。管理装置2は、検索装置3から受け取ったRowID一覧を用いて蓄積データ32を検索し、利用者に応答する。
管理装置2は、制御部21とデータ管理部22とを有する。制御部21は、利用者から操作要求、検索要求などを受け付け、受け付けた要求に対する処理を制御し、処理結果を利用者に通知する。
データ管理部22は、制御部21が受け付けた操作要求、検索要求などの処理を行う。データ管理部22は、第1記憶部30aと、第2記憶部30bと、操作部43と、復元部44とを有する。
第1記憶部30aは、パーティション定義31と、蓄積データ32と、パーティションの数のパーティション毎RowIDファイル33と、共通RowIDファイル34とを記憶する。蓄積データ32は、パーティションに分割されて管理される。第1記憶部30aは、HDD、SSDなどの不揮発性記憶装置に設けられる。
第2記憶部30bは、RowIDヒドラ36とパーティション一覧37を記憶する。パーティション一覧37は、パーティションに関する情報である。第2記憶部30bは、メモリ51上に設けられる。
操作部43は、操作要求を処理する。操作部43は、追加部43aと、更新部43bと、削除部43cと、パーティション削除部43dとを有する。
追加部43aは、追加されるレコードのパーティションを判定し、RowIDを割り当て、レコードを第1記憶部30aに格納する。第1記憶部30aに格納されたレコードは、蓄積データ32として管理される。また、追加部43aは、判定したパーティションのパーティション毎RowIDファイル33に操作情報を書き込む。また、追加部43aは、第1記憶部30aに格納したレコードの情報をRowIDヒドラ36に追加する。
更新部43bは、更新されるレコードが属するパーティションを判定し、更新レコードを第1記憶部30aに格納する。なお、更新前のレコードは別のタイミングで第1記憶部30aから削除される。また、更新部43bは、共通RowIDファイル34に操作情報を書き込む。その際、更新部43bは、操作情報に所属パーティションの情報を含める。また、更新部43bは、第1記憶部30aに格納した更新レコードの情報でRowIDヒドラ36を更新する。
削除部43cは、共通RowIDファイル34に操作情報を書き込む。また、削除部43cは、削除レコードの情報をRowIDヒドラ36から削除する。なお、削除レコードは別のタイミングで第1記憶部30aから削除される。
パーティション削除部43dは、パーティション削除要求で指定されたパーティションを蓄積データ32から削除し、対応するパーティション毎RowIDファイル33を削除する。また、パーティション削除部43dは、RowIDヒドラ36において対応する部分を削除する。
復元部44は、データベースの再起動時にRowIDヒドラ36を復元する。まず、復元部44は、パーティション毎RowIDファイル33を読み込んでRowIDヒドラ36を作成する処理をパーティション毎に並列に実行する。
そして、復元部44は、共通RowIDファイル34を読み込み、更新命令の場合には、更新対象レコードのRowIDヒドラ葉の有無と更新対象レコードが所属するパーティションの有無に基づいて、RowIDヒドラ36に対する処理を行う。
具体的には、復元部44は、更新対象レコードのRowIDヒドラ葉があり、更新対象レコードが所属するパーティションがある場合には、RowIDヒドラ葉を更新する。復元部44は、更新対象レコードのRowIDヒドラ葉があり、更新対象レコードが所属するパーティションがない場合には、RowIDヒドラ36からRowIDヒドラ葉を削除する。復元部44は、更新対象レコードのRowIDヒドラ葉がなく、更新対象レコードが所属するパーティションがある場合には、RowIDヒドラ36へRowIDヒドラ葉を追加する。復元部44は、更新対象レコードのRowIDヒドラ葉がなく、更新対象レコードが所属するパーティションがない場合には、RowIDヒドラ36に対する処理は行わない。
なお、復元部44は、更新対象レコードが所属するパーティションの有無を操作情報に含まれる所属パーティションを用いて判定する。
復元部44は、削除命令の場合には、RowIDヒドラ36から削除対象レコードのRowIDヒドラ葉を削除する。
次に、操作部43による処理のフローについて説明する。図4は、操作部43による処理のフローを示すフローチャートである。図4に示すように、操作部43は、操作要求の命令区分を判定する(ステップS1)。
そして、命令区分が「追加」である場合には、操作部43は、追加対象レコードが属するパーティションを判定し(ステップS2)、追加対象レコードにRowIDを割り当てる(ステップS3)。そして、操作部43は、判定したパーティションに基づいて追加対象レコードを格納し(ステップS4)、操作情報を該当パーティションのパーティション毎RowIDファイル33へ書き込む(ステップS5)。そして、操作部43は、追加対象レコードのRowIDヒドラ葉をRowIDヒドラ36へ追加する(ステップS6)。
また、命令区分が「更新」である場合には、操作部43は、更新対象レコードが属するパーティションを判定し(ステップS7)、判定したパーティションに基づいて更新対象レコードを格納する(ステップS8)。そして、操作部43は、操作情報を共通RowIDファイル34へ書き込み(ステップS9)、更新対象レコードの情報でRowIDヒドラ葉を更新する(ステップS10)。
また、命令区分が「削除」である場合には、操作部43は、操作情報を共通RowIDファイル34へ書き込み(ステップS11)、削除対象レコードのRowIDヒドラ葉をRowIDヒドラ36から削除する(ステップS12)。
このように、操作部43が、命令区分が「追加」である場合に、操作情報を追加対象レコードが属するパーティションのパーティション毎RowIDファイル33へ書き込む。したがって、復元部44は、追加命令に関するRowIDヒドラ36の復元をパーティション毎に並列に行うことができる。
次に、復元部44による処理のフローについて説明する。図5は、復元部44による処理のフローを示すフローチャートである。図5に示すように、復元部44は、パーティション毎RowIDファイル33を読み込み(ステップS21)、RowIDヒドラ36を作成する(ステップS22)。復元部44は、ステップS21とステップS22の処理をパーティション毎に並列に行うことで、RowIDヒドラ36を作成する。
そして、復元部44は、共通RowIDファイル34を読み込み(ステップS23)、各操作情報について、以下のステップS24~ステップS31の処理を行う。復元部44は、操作情報に含まれる命令区分を判定し(ステップS24)、命令区分が「更新」である場合には、更新対象レコードのRowIDヒドラ葉の有無を判定する(ステップS25)。
そして、更新対象レコードのRowIDヒドラ葉がある場合には、復元部44は、更新対象レコードの所属パーティションの有無を判定する(ステップS26)。そして、復元部44は、更新対象レコードの所属パーティションがある場合には、RowIDヒドラ葉を更新し(ステップS27)、ない場合には、RowIDヒドラ葉をRowIDヒドラ36から削除する(ステップS28)。
一方、更新対象レコードのRowIDヒドラ葉がない場合には、復元部44は、更新対象レコードの所属パーティションの有無を判定する(ステップS29)。そして、復元部44は、更新対象レコードの所属パーティションがある場合には、RowIDヒドラ葉をRowIDヒドラ36へ追加し(ステップS30)、ない場合には、RowIDヒドラ36に対する処理は行わない。
また、ステップS24において、命令区分が「削除」である場合には、復元部44は、削除対象レコードのRowIDヒドラ葉をRowIDヒドラ36から削除する(ステップS31)。
このように、復元部44は、パーティション毎RowIDファイル33を読み込んでRowIDヒドラ36を作成する処理をパーティション毎に並列に行うことで、RowIDヒドラ36の復元時間を短縮することができる。
次に、データ管理部22による処理の例を図6~図12Eを用いて説明する。なお、図6~図8、図10A~図10C、図12A~図12Eにおいて、S2、S3などは、図4及び図5に示したフローチャートのステップを示す。
図6は、レコード追加の処理例を示す図である。図6に示すように、データ管理部22は、利用者が予め指定したパーティション定義31と、追加しようとしているレコードをもとに、格納先のパーティションを判定する(ステップS2)。ここでは、追加レコードの/root/月度タグの値は「4」であるため、格納先のパーティションは、4月パーティションに決定される。
そして、データ管理部22は、追加レコードに対し、RowIDを割り当てる(ステップS3)。ここでは、「41」と「42」が割り当てられる。そして、データ管理部22は、追加レコードを読み込み、蓄積データ32の4月パーティションに格納する(ステップS4)。
そして、データ管理部22は、4月パーティションのパーティション毎RowIDファイル33に命令区分として「ADD」、RowIDとして「41」、物理位置として格納先の格納位置情報を書き込む。また、データ管理部22は、4月パーティションのパーティション毎RowIDファイル33に命令区分として「ADD」、RowIDとして「42」、物理位置として格納先の格納位置情報を書き込む(ステップS5)。そして、データ管理部22は、第2記憶部30b上のRowIDヒドラ36に、RowIDヒドラ葉(追加レコードの情報)を追加する(ステップS6)。
図7は、レコード更新の処理例を示す図である。図7に示すように、データ管理部22は、利用者が予め指定したパーティション定義31と、更新レコードをもとに、格納先のパーティションを判定する(ステップS7)。ここでは、/root/月度タグの値は「4」であるため、格納先のパーティションは、4月パーティションに決定される。そして、データ管理部22は、更新レコードを読み込み、蓄積データ32の4月パーティションに格納する(ステップS8)。
そして、データ管理部22は、共通RowIDファイル34に命令区分として「UPD」、RowIDとして「41」、物理位置として格納先の格納位置情報、更新後の所属パーティションとして「4月」を書き込む(ステップS9)。そして、データ管理部22は、第2記憶部30bのRowIDヒドラ36の更新レコードに対応するRowIDヒドラ葉を更新レコードの情報で更新する(ステップS10)。ここでは、/root/IDタグの値が「AAA」であるレコードのRowIDは「41」であるので、RowIDが「41」であるRowIDヒドラ葉が更新される。
図8は、レコード削除の処理例を示す図である。図8に示すように、データ管理部22は、共通RowIDファイル34に命令区分として「DEL」、RowIDとして「41」を書き込む(ステップS11)。そして、データ管理部22は、第2記憶部30bのRowIDヒドラ36から削除レコードに対応するRowIDヒドラ葉を削除する(ステップS12)。
図9は、パーティション削除の処理例を示す図である。図9に示すように、データ管理部22は、1月パーティションの削除を指示されると、1月パーティションの蓄積データ32を削除し(u1)、1月パーティションのパーティション毎RowIDファイル33を削除する(u2)。そして、データ管理部22は、1月パーティションのRowIDヒドラ葉を削除する(u3)。
図10A~図10Cは、再起動時にRowIDヒドラ36を復元する処理の例を示す図である。図10Aは、追加命令の操作情報を用いたRowIDヒドラ36の復元を示す。図10Aに示すように、データ管理部22は、2月、3月、4月のパーティション毎RowIDファイル33を読み込み(ステップS21)、RowIDヒドラ36を作成する(ステップS22)。このとき、データ管理部22は、パーティション毎に並列にRowIDヒドラ36を復元する。また、図9に示したように、1月パーティションは削除されたため、1月のパーティション毎RowIDファイル33はなく、RowIDヒドラ36において、1月のレコード情報は復元されない。
図10Bは、更新命令の操作情報のRowIDヒドラ36への反映を示す。図10Bに示すように、データ管理部22は、共通RowIDファイル34を読み込み(ステップS23)、最初の操作情報の命令区分が「UPD」であるので更新処理を行う。すなわち、データ管理部22は、RowIDが「41」のレコードについては、RowIDヒドラ葉があり、所属パーティションの「4月」があるので、RowIDヒドラ葉を更新する(ステップS27)。
図10Cは、削除命令の操作情報のRowIDヒドラ36への反映を示す。図10Cに示すように、データ管理部22は、共通RowIDファイル34を読み込み(ステップS23)、次の操作情報の命令区分が「DEL」であるので削除処理を行う。すなわち、データ管理部22は、RowIDが「41」のRowIDヒドラ葉をRowIDヒドラ36から削除する(ステップS31)。
図11A~図11Dは、パーティション移動をともなう更新例を示す図である。図11Aは、登録データの例を示す。図11Aに示すように、勤務地でパーティショニングされた従業員データにおいて、レコード#1とレコード#2が追加されると、蓄積データ32の東京パーティションにレコード#1とレコード#2が格納される。また、東京パーティションのパーティション毎RowIDファイル33に、命令区分が「ADD」でRowIDが「01」と「02」の2つの操作情報が格納される。
図11Bは、レコード#1の更新を示す。図11Bに示すように、レコード#1の勤務地が「東京」から「大阪」に変更されると、レコード#1は、蓄積データ32の東京パーティションから大阪パーティションに移動される。また、共通RowIDファイル34に命令区分が「UPD」でRowIDが「01」で所属パーティションが「大阪」の操作情報が格納される。
図11Cは、レコード#2の更新を示す。図11Cに示すように、レコード#2の勤務地が「東京」から「大阪」に変更され、その後、「大阪」から「東京」に変更される。すると、レコード#2は、蓄積データ32の東京パーティションから大阪パーティションに移動され、その後、大阪パーティションから東京パーティションに移動される。また、共通RowIDファイル34に、命令区分が「UPD」でRowIDが「02」で所属パーティションが「大阪」の操作情報と、命令区分が「UPD」でRowIDが「02」で所属パーティションが「東京」の操作情報が格納される。
図11Dは、東京パーティションの削除を示す。図11Dに示すように、東京パーティションが削除されると、東京パーティションの蓄積データ32が削除され、東京パーティションのパーティション毎RowIDファイル33が削除される。
図12A~図12Eは、図11A~図11Dに示した更新が行われた場合のRowIDヒドラ36の復元処理を示す図である。図12Aは、追加命令の操作情報を用いた復元処理を示す。図12Aに示すように、データ管理部22は、パーティション毎RowIDファイル33を読み込む(ステップS21)。ただし、東京パーティションのパーティション毎RowIDファイル33は削除されたため、データ管理部22は、RowIDが「01」と「02」のレコードについては、RowIDヒドラ葉を復元しない。
図12B及び図12Cは、レコード#1の更新命令の操作情報を用いた復元処理を示す。図12Bに示すように、データ管理部22は、共通RowIDファイル34を読み込み(ステップS23)、最初の操作情報の命令区分が「UPD」であるので更新処理を行う。すなわち、データ管理部22は、RowIDが「01」のレコードについては、RowIDヒドラ葉がなく、所属パーティションの「大阪」があるので、図12Cに示すように、RowIDヒドラ葉を追加する(ステップS30)。
図12D及び図12Eは、レコード#2の更新命令の操作情報を用いた復元処理を示す。図12Dに示すように、データ管理部22は、共通RowIDファイル34を読み込み(ステップS23)、次の操作情報の命令区分が「UPD」であるので更新処理を行う。すなわち、データ管理部22は、RowIDが「02」のレコードについては、RowIDヒドラ葉がなく、所属パーティションの「大阪」があるので、RowIDヒドラ葉を追加する(ステップS30)。
そして、図12Eに示すように、データ管理部22は、共通RowIDファイル34を読み込み(ステップS23)、次の操作情報の命令区分が「UPD」であるので更新処理を行う。すなわち、データ管理部22は、RowIDが「02」のレコードについては、RowIDヒドラ葉があり、所属パーティションの「東京」はないので、RowIDヒドラ葉を削除する(ステップS30)。
上述してきたように、実施例では、追加部43aが、追加命令の操作情報をパーティション毎RowIDファイル33に書き込み、更新部43b及び削除部43cが、それぞれ更新命令及び削除命令の操作情報を共通RowIDファイル34に書き込む。そして、復元部44が、RowIDヒドラ36を復元する際に、パーティション毎RowIDファイル33を読み込んでRowIDヒドラ36を作成する処理をパーティション毎に並列に行う。そして、復元部44は、共通RowIDファイル34を読み込んで、更新命令及び削除命令をRowIDヒドラ36に反映する。したがって、データ管理部22は、RowIDヒドラ36の復元時間を短縮して再起動性能を向上することができる。
また、実施例では、パーティション削除部43dは、パーティション削除要求で指定されたパーティションに対応するパーティション毎RowIDファイル33を削除するので、操作情報の数を減らし、RowIDヒドラ36の復元時間を短縮することができる。
また、実施例では、更新命令の操作情報は所属パーティションを含み、復元部44は、所属パーティションを用いてRowIDヒドラ36を復元する。具体的には、復元部44は、更新対象レコードのRowIDヒドラ葉があり、更新対象レコードが所属するパーティションがある場合には、RowIDヒドラ葉を更新する。復元部44は、更新対象レコードのRowIDヒドラ葉があり、更新対象レコードが所属するパーティションがない場合には、RowIDヒドラ36からRowIDヒドラ葉を削除する。復元部44は、更新対象レコードのRowIDヒドラ葉がなく、更新対象レコードが所属するパーティションがある場合には、RowIDヒドラ36へRowIDヒドラ葉を追加する。復元部44は、更新対象レコードのRowIDヒドラ葉がなく、更新対象レコードが所属するパーティションがない場合には、RowIDヒドラ36に対する処理は行わない。したがって、復元部44は、パーティションの移動をともなう更新やパーティションの削除が行われた場合にも、更新命令の操作情報に基づいて、当該更新や削除と整合のとれたRowIDヒドラ36を復元することができる。
なお、実施例では、管理装置2について説明したが、管理装置2が有する構成をソフトウェアによって実現することで、同様の機能を有する管理プログラムを得ることができる。そこで、管理プログラムを実行するコンピュータについて説明する。
図13は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図13に示すように、コンピュータ50は、メモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行される管理プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、管理プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた管理プログラムは、HDD54に記憶され、メモリ51に読み出されてCPU52によって実行される。
また、実施例では、XMLデータを管理する場合について説明したが、管理装置2は、他のデータを管理してもよい。また、実施例では、RowIDヒドラ36を用いる場合について説明したが、管理装置2は、RowIDとレコードの物理位置を対応付ける情報であれば、他のデータ構造を用いてもよい。
1 データベース管理システム
2 管理装置
3 検索装置
4 検索式
9 RowIDファイル
21 制御部
22 データ管理部
30a 第1記憶部
30b 第2記憶部
31 パーティション定義
32 蓄積データ
33 パーティション毎RowIDファイル
34 共通RowIDファイル
36 RowIDヒドラ
37 パーティション一覧
43 操作部
43a 追加部
43b 更新部
43c 削除部
43d パーティション削除部
44 復元部
50 コンピュータ
51 メモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (6)

  1. データを複数のデータ領域に分割してデータベースに記憶し、
    前記データ領域の少なくとも一つに対する追加、更新、削除のいずれかの操作を受け付けた際に、前記受け付けた操作が、前記追加の操作である場合に、前記追加の操作に関する情報を前記追加の対象となるデータ領域に対応付けて記憶し、
    前記受け付けた操作が前記更新又は前記削除のいずれかの操作である場合に、前記更新又は削除の操作に関する情報を前記データに対応付けて記憶し、
    全データの格納位置を示す全格納位置情報を復元する際に、前記複数のデータ領域それぞれに対応付けられた操作に関する情報に基づいて、前記追加に関する復元処理を前記複数のデータ領域に関して並列で実行し、
    前記追加に関する復元処理の実行後に前記更新又は削除の操作に関する情報に基づいて、前記更新又は前記削除に関する復元処理を実行する、
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 前記複数のデータ領域に含まれるあるデータ領域の削除が行われた際に、前記データ領域に対応付けられた操作に関する情報を削除する処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記更新の操作に関する情報は、更新後のデータ領域を識別するデータ領域識別情報を含み、
    前記更新に関する復元処理は、前記データ領域識別情報を用いることを特徴とする請求項1又は2に記載の情報処理プログラム。
  4. 前記更新に関する復元処理は、前記全格納位置情報において、更新対象データに対応する格納位置情報が復元されている場合には、前記データ領域識別情報で識別されるデータ領域があれば前記格納位置情報を更新し、前記データ領域識別情報で識別されるデータ領域がなければ前記格納位置情報を削除し、更新対象データに対応するデータ情報が復元されていない場合には、前記データ領域識別情報で識別されるデータ領域があれば前記格納位置情報を追加することを特徴とする請求項3に記載の情報処理プログラム。
  5. データを複数のデータ領域に分割してデータベースに記憶し、
    前記データ領域の少なくとも一つに対する追加、更新、削除のいずれかの操作を受け付けた際に、前記受け付けた操作が、前記追加の操作である場合に、前記追加の操作に関する情報を前記追加の対象となるデータ領域に対応付けて記憶し、
    前記受け付けた操作が前記更新又は前記削除のいずれかの操作である場合に、前記更新又は削除の操作に関する情報を前記データに対応付けて記憶し、
    全データの格納位置を示す全格納位置情報を復元する際に、前記複数のデータ領域それぞれに対応付けられた操作に関する情報に基づいて、前記追加に関する復元処理を前記複数のデータ領域に関して並列で実行し、
    前記追加に関する復元処理の実行後に前記更新又は削除の操作に関する情報に基づいて、前記更新又は前記削除に関する復元処理を実行する、
    処理をコンピュータが実行することを特徴とする情報処理方法。
  6. データを複数のデータ領域に分割して記憶するデータベースと、
    前記データ領域の少なくとも一つに対する追加、更新、削除のいずれかの操作が受け付けられた際に、前記受け付けられた操作が、前記追加の操作である場合に、前記追加の操作に関する情報を前記追加の対象となるデータ領域に対応付けて格納する追加部と、
    前記受け付けられた操作が前記更新又は前記削除のいずれかの操作である場合に、前記更新又は削除の操作に関する情報を前記データに対応付けて格納する更新削除部と、
    全データの格納位置を示す全格納位置情報を復元する際に、前記複数のデータ領域それぞれに対応付けられた操作に関する情報に基づいて、前記追加に関する復元処理を前記複数のデータ領域に関して並列で実行し、前記追加に関する復元処理の実行後に前記更新又は削除の操作に関する情報に基づいて、前記更新又は前記削除に関する復元処理を実行する復元部と、
    を有することを特徴とする情報処理装置。
JP2021508385A 2019-03-22 2019-03-22 情報処理プログラム、情報処理方法及び情報処理装置 Active JP7095800B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/012218 WO2020194403A1 (ja) 2019-03-22 2019-03-22 情報処理プログラム、情報処理方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2020194403A1 JPWO2020194403A1 (ja) 2020-10-01
JP7095800B2 true JP7095800B2 (ja) 2022-07-05

Family

ID=72610400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021508385A Active JP7095800B2 (ja) 2019-03-22 2019-03-22 情報処理プログラム、情報処理方法及び情報処理装置

Country Status (4)

Country Link
US (1) US20210406243A1 (ja)
EP (1) EP3944101B1 (ja)
JP (1) JP7095800B2 (ja)
WO (1) WO2020194403A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089646A (ja) 2012-10-31 2014-05-15 Hitachi Solutions Ltd 電子データ処理装置、及び電子データ処理方法
JP2016515271A (ja) 2013-03-15 2016-05-26 アマゾン・テクノロジーズ・インコーポレーテッド 分散型データベースシステム用高速クラッシュ回復
JP2017194753A (ja) 2016-04-18 2017-10-26 富士通株式会社 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2503289B2 (ja) 1990-05-15 1996-06-05 富士通株式会社 デ―タベ―ス管理処理方式
JPH0773086A (ja) 1993-09-02 1995-03-17 Nec Corp 時系列データ保持方式
JP3772704B2 (ja) 2001-07-27 2006-05-10 富士通株式会社 データソート方法、データソート装置およびデータソートプログラム
KR101259557B1 (ko) * 2008-12-18 2013-04-30 한국전자통신연구원 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법
US9779104B2 (en) * 2014-11-25 2017-10-03 Sap Se Efficient database undo / redo logging

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089646A (ja) 2012-10-31 2014-05-15 Hitachi Solutions Ltd 電子データ処理装置、及び電子データ処理方法
JP2016515271A (ja) 2013-03-15 2016-05-26 アマゾン・テクノロジーズ・インコーポレーテッド 分散型データベースシステム用高速クラッシュ回復
JP2017194753A (ja) 2016-04-18 2017-10-26 富士通株式会社 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
植田 賢 外,IBMプロフェッショナル論文(2),PROVISION Fall 2008,日本,日本アイ・ビー・エム株式会社,2008年10月31日,No.59,pp. 79--85

Also Published As

Publication number Publication date
JPWO2020194403A1 (ja) 2020-10-01
US20210406243A1 (en) 2021-12-30
EP3944101A4 (en) 2022-03-23
EP3944101A1 (en) 2022-01-26
EP3944101B1 (en) 2024-01-10
WO2020194403A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
US11429641B2 (en) Copying data changes to a target database
EP2452261B1 (en) Apparatus and method for read optimized bulk data storage
US9275095B2 (en) Compressing a multi-version database
US9268804B2 (en) Managing a multi-version database
US8280858B2 (en) Storage pool scrubbing with concurrent snapshots
US8392423B2 (en) Data set index record preservation
CN104040481A (zh) 用于融合、存储和检索增量式备份数据的方法和系统
US10762037B2 (en) Data processing system
US11321302B2 (en) Computer system and database management method
US8595190B2 (en) Methods and apparatus related to completion of large objects within a DB2 database environment
US20150277966A1 (en) Transaction system
US20110153580A1 (en) Index Page Split Avoidance With Mass Insert Processing
US9411692B2 (en) Applying write elision
CN103377090B (zh) 多处理器系统中共享不同数据集的多个编目的方法和系统
JP2015079409A (ja) 階層管理下の論理ボリュームのスナップショットの作成及び管理
JP7095800B2 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
US20170090790A1 (en) Control program, control method and information processing device
JP2018085042A (ja) データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
JPWO2016001959A1 (ja) ストレージシステム
JP7024432B2 (ja) データベース管理システム、データ変換プログラム、データ変換方法及びデータ変換装置
WO2018070011A1 (ja) ジョブ特定プログラム、ジョブ特定方法及びジョブ特定装置
CN115220958A (zh) 用于提取和编目指定文件活动数据的系统和方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220606

R150 Certificate of patent or registration of utility model

Ref document number: 7095800

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150