JP2708657B2 - スプリット制御方法 - Google Patents

スプリット制御方法

Info

Publication number
JP2708657B2
JP2708657B2 JP4030818A JP3081892A JP2708657B2 JP 2708657 B2 JP2708657 B2 JP 2708657B2 JP 4030818 A JP4030818 A JP 4030818A JP 3081892 A JP3081892 A JP 3081892A JP 2708657 B2 JP2708657 B2 JP 2708657B2
Authority
JP
Japan
Prior art keywords
page
split
processing
page group
data
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
JP4030818A
Other languages
English (en)
Other versions
JPH05233407A (ja
Inventor
克己 林
政昭 三谷
信治 北尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4030818A priority Critical patent/JP2708657B2/ja
Priority to US08/019,566 priority patent/US5568638A/en
Publication of JPH05233407A publication Critical patent/JPH05233407A/ja
Application granted granted Critical
Publication of JP2708657B2 publication Critical patent/JP2708657B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/99931Database or file accessing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,ノンデンスBtree
クラスタ構造を用いた格納構造によりデータを管理する
データ処理システムにおいて,スプリット処理のオーバ
ヘッドをシステム全体でバランスよくし,トランザクシ
ョン処理におけるレスポンスやスループットを保証でき
るようにしたスプリット制御方法に関する。
【0002】データベースにおけるデータの格納構造の
一つとして,ノンデンスBtreeクラスタ構造があ
る。この格納構造では,データの挿入時にページにデー
タが入り切れなくなった場合には,ページスプリット処
理,すなわちページ内のデータを分割して複数ページに
分ける処理が必要となる。さらに,複数ページをグルー
プ化して管理している場合に,そのページグループに空
きページがなくなると,ページグループのスプリットも
必要になる。このようなページスプリットやページグル
ープスプリットは,処理時間が長くかかるので,オンラ
インのトランザクション処理中に起きると,レスポンス
に悪影響を及ぼす。したがって,それを改善する技術が
必要とされる。
【0003】
【従来の技術】従来の格納構造のうちで,その構造とし
てインデックスを使用し,順検索を目的とするものの代
表的なものとしては,同じページに多くのレコードが挿
入され,ページにレコードが挿入できなくなると,スプ
リットを起こしてその構造を維持するBtree構造が
ある。このBtree構造については,以下の文献に詳
しい説明がある。
【0004】(参考文献)James Martin "Computer Data-Base Organization, 2nd edition" 1977,1975 by Prentice-Hall,Inc. Englewood Cliffs,N.J Part II Physical Organization 20 Indexed Sequential Organization 図10に,従来のノンデンスBtree構造におけるス
プリット処理の例を示す。
【0005】ノンデンスBtree構造は,ユーザが格
納したデータに行き着くための情報を格納してあるイン
デックス部14と,実際にユーザが格納したデータが格
納されているデータ部15とに分かれている。データ
は,キー値により,順に格納されており,キーによる順
検索に適した構造といえる。インデックス部14は,デ
ータ部15の各ページ内の代表のレコードのキー値とペ
ージへのポインタを保有し,キー値またはキー値の範囲
の検索を可能としている。
【0006】ノンデンスBtree構造については,以
下の参考文献がある。 (参考文献)C.J.Pate "An Introduction to Database Systems" Volume I Fou
rth Edition,Part 1, Chapter 3 ノンデンスBtree構造では,ページにデータが入り
切れなくなると,ページのデータを分割するスプリット
処理が必要になる。図10の(イ)は,キー値が8のデ
ータ挿入要求時におけるスプリット前の状態,(ロ)は
スプリット後の状態を示している。
【0007】図10の(イ)に示す状態において,キー
値が8のデータを挿入する要求があったとする。このデ
ータをどのページに挿入すべきかを調べるために,ペー
ジp1のインデックスを調べ,次に,ページp2を調べ
て,そこで初めて挿入ページがページp5であることが
判る。しかし,ページp5を調べると新たにデータを入
れることができないので,ページp5は,ページスプリ
ットを起こす。
【0008】その結果,ページp5は,図10の(ロ)
に示すようにページp5とページp51に分裂し,ペー
ジが増えたので,インデックス部14のページ(p2)
にも,新たにページp51へのインデックスポインタ
を追加する。その後,ページp5にのデータを挿入
し,処理を終了する。
【0009】従来方式では,このようにページp5がス
プリットを起こして,インデックスを更新し終わるまで
の間,の挿入を依頼したユーザは,処理を終えるのを
待たなければならない。すなわち,スプリットしなけれ
ばならない状態になった時に,常にスプリットを起こす
ようにすると,レスポンスが非常に悪くなってしまうこ
とがある。
【0010】ところで,オンラインシステムでは,レス
ポンスの平均化という要件を実現することが必要とされ
ている。しかし,ノンデンスBtreeは,その構造を
維持するためにスプリットを起こすことによって,その
時のレスポンスが他の時に比べて著しく遅くなる。すな
わち,ノンデンスBtree構造を維持するために不可
欠なページのスプリットは,レスポンスの平均化という
要件を阻害する大きな要因となっている。
【0011】そこで,ページのスプリットをデーモン処
理で行う方法が考えられた。デーモン処理とは,オンラ
イン等のメインの処理とは別に,バックグラウンドで非
同期に行う処理である。この方法は,ページが一杯にな
る前(例えば,ページの使用率が80%ぐらい)に,ペ
ージのスプリットを行うためのデーモン処理を起動し,
トランザクション処理外でページのスプリットを行う方
法である。
【0012】しかし,この方法では,ページの使用率が
どのくらいになったときにデーモン処理を起動すればよ
いかの判断が難しく,例えば,ページの使用率の99%
でスプリットするデーモン処理を起動することにする
と,デーモン処理がスプリット処理を行う前に,他のト
ランザクション処理によって,ページの使用率が100
%を超えてしまう可能性が高くなる。この状態では,処
理をエラーで復帰するか,その場でスプリットを起こす
かの何れかしかできないので,処理のエラーが頻発する
か,スプリットを起こして,その時のレスポンスだけ異
常に遅くなってしまう。
【0013】これに対し,ページの使用率が低い状態
(例えば60%)でスプリットを行うデーモン処理を起
動することにすると,スペース効率が悪くなり,またス
プリットする確率が高くなるので,スプリット処理を行
うデーモン処理が多く走り,トランザクション処理のC
PU割り当て待ち時間がその分長くなることにより,結
果的にトランザクション処理を遅くさせてしまう。
【0014】他に,同じような構造で,スプリットの代
わりに,オーバフロー領域を使用することで対処してい
る索引順アクセス法(以下,ISAMという)による構
造がある。このISAM構造については,以下の文献に
詳しい説明がある。
【0015】(参考文献) James Martin "Computer Data-Base Organization, 2nd edition" 1977,1975 by Prentice-Hall,Inc. Englewood Cliffs,N.J Part II Physical Organization 20 Indexed Sequential Organization 図11に,従来のISAM構造の例を示す。
【0016】図11において,100はマスターインデ
ックス,101はキー値に応じたシリンダ情報を持つシ
リンダインデックス,102は各シリンダにおけるトラ
ックインデックス,103は実際のデータが格納される
データ領域,104はデータ領域が不足したときに用い
られるオーバフロー領域を表す。また,cy1〜cy5
はディスク記憶媒体等のシリンダであって,特にcy5
はオーバフロー用シリンダを表す。
【0017】ISAMは,ノンデンスBtreeのよう
なスプリットによるオーバヘッドがないかわりに,近似
したキーのレコードの挿入が多いと,オーバフロー領域
104またはオーバフロー用シリンダcy5が多用され
るので,その領域へのアクセスの時には,著しくレスポ
ンスが遅くなる上に,スペース効率も悪化するという欠
点がある。
【0018】ところで,オーバフロー領域の使用という
概念とスプリット処理をバッチで行う概念をBtree
構造に取り入れた方法も考えられている。この方法は,
ページに入り切れなくなったデータに対しては,オーバ
フロー領域を使用し,ある時期毎にスプリット処理を行
うバッチ処理を行い,Btree構造を維持するもので
ある。
【0019】この方法では,バッチ処理の間は通常のサ
ービス(検索等)は受けられないために,その間の業務
ができなくなるという欠点がある。
【0020】
【発明が解決しようとする課題】従来のISAMやBt
ree方式は,近似したキーのレコード挿入が多い場合
には,ページのスプリットやオーバフロー領域の多使用
によって,データベースシステムが実現すべき「レスポ
ンスの平均化」という課題について,合格点を取ってい
ない。
【0021】また,レスポンスの平均化のために,スプ
リット時期を早めてデーモンで処理する方法やBtre
e方式にオーバフロー領域とバッチ処理を加えた方法で
は,スペース効率が悪くなったり,システム自体を止め
る必要があったりして,データベース管理システムが実
現すべき機能として,一長一短がある。
【0022】本発明は,ページのスプリットはスペース
効率を良くする上で不可避であると考え,また,システ
ムを止めなければ,その構造を維持できないようなもの
は取り入れず,ページがスプリットしても,著しいレス
ポンスの劣化が起こらないようにすることを目的として
いる。
【0023】
【課題を解決するための手段】図1は本発明の原理説明
図である。図1において,10はCPUおよびメモリな
どからなるデータ処理装置,11はトランザクション処
理等においてレコードの挿入を行うレコード挿入処理
部,12はトランザクション処理とは非同期にバックグ
ラウンドで動作するデーモン処理部,13はデータベー
ス,14はBtreeのキーを管理するインデックス
部,15はユーザが必要とするデータが格納されている
データ部,16−1,16−2,…はキー値の近似によ
りグループ化したページの集まりであるページグルー
プ,17はオーバフロー領域,P1〜P3はデータの入
出力単位となるページを表す。
【0024】データ処理装置10は,ノンデンスBtr
eeクラスタ法を用いた格納構造によりデータが管理さ
れるデータベース13に対するアクセス機能を持つ。本
発明によるデータベース13におけるBtree構造で
は,オーバフロー用の空き領域として,オーバフロー領
域17が設けられる。このオーバフロー領域17は,一
時的に使用されるが,デーモン処理部12が空き状態に
戻すため,オーバフローの発生は,通常主記憶上でだけ
発生する。
【0025】レコード挿入処理部11は,トランザクシ
ョン処理におけるデータ(レコード)の挿入時に,挿入
対象ページ内に挿入スペースがない場合,オーバフロー
領域17を使用してページスプリットまたはページのリ
ンクによるデータの挿入を行う。
【0026】デーモン処理部12は,オーバフロー領域
17を使用している場合に,オーバフロー領域17のデ
ータをBtree構造として本来あるべき場所に戻す処
,すなわち,スプリットによって空き領域を確保し,
確保した空き領域にオーバフロー領域(17)のデータを移
す処理を行い,オーバフロー領域17を空き状態に戻
す。
【0027】このように本来の格納構造のスプリットの
タイミングを,一時的にオーバフロー領域17を使用す
ることにより遅らせ,トランザクション処理に対するレ
スポンスの平均化を図る。
【0028】
【作用】説明を簡単にするために,例えば1つのページ
が3レコードで一杯になるとする。今,図1の(ロ)に
示すように,ページP1が2,3,5のキー値を持つレ
コードで一杯になっているときに,4のキー値を持つレ
コードの挿入要求があったとする。
【0029】レコード挿入処理部11は,図1の(ハ)
に示すように,新たに挿入するキー値が4のレコード
を,オーバフロー領域17から確保したページP2に一
時的にオーバフローさせ,ページP1とページP2とを
リンクする。こうして,トランザクション処理における
レコード挿入を終了させる。または,オーバフロー領域
17から空きページP2を取り出し,そこに仮のページ
スプリットを行い,ページP1には,キー値が2と3の
レコード,ページP2にはキー値が4と5のレコードを
格納する。
【0030】後に,デーモン処理部12は,トランザク
ション処理とは別に,図1の(ニ)に示すように,本来
のページスプリットまたは必要に応じてページグループ
スプリットを行い,Btree構造を維持する。
【0031】
【実施例】図2は,本発明の実施例の格納構造(ノンデ
ンスBtreeクラスタ)説明図である。図中,20は
上位ページグループインデックス,21−iはページグ
ループインデックス,22−iはページインデックス,
23はオーバフロー領域として使用されるオーバフロー
用ページグループを表す。
【0032】構造の基本は,クラスタリング単位(デー
タのキーの昇順を物理的な近傍に配置するための機構)
となっていることと,オーバフロー用の空き領域を設け
ていることである。
【0033】クラスタリングの単位は,ページグループ
16−11,16−12,…と対応している。ページグ
ループ間の近傍性を持たせるために,ページグループの
上に,シリンダレベルのクラスタリング階層を設ける。
各ページグループ16−11,16−12には,空きペ
ージを残し,ページグループ内のページスプリットに備
える。
【0034】上位ページグループ内には,全てのページ
が空きのページグループを保有可能とし,その空きペー
ジグループは,上位ページグループ内でのページグルー
プのスプリット時に利用する。
【0035】ページインデックス22−1,22−2,
…は,各々1つのページグループに対応しており,ペー
ジグループ内のページを管理している。このページの管
理では,使用中だけでなく,予約された空きページおよ
び途中で空きとなったページについての管理が行われ
る。
【0036】ページグループインデックス21−1,2
1−2,…は,各々1つの上位ページグループに対応し
ており,上位ページグループ内のページグループを管理
している。このページグループの管理では,使用中だけ
でなく,予約された空きページグループおよび途中で空
きとなったページグループについての管理が行われる。
ページグループインデックスの空き管理部に,上位ペー
ジグループへのポインタを持つ。
【0037】図3は,本発明の実施例構成図である。図
中,30はノンデンスBtreeクラスタ構造に対する
アクセス機能を持つノンデンスBtreeクラスタ処理
部である。この中に図1に示すレコード挿入処理部11
がある。31はページが一杯になったときにページスプ
リットを行うページスプリット処理部,32はページグ
ループが一杯になったときにページグループのスプリッ
トを行うページグループスプリット処理部,33は上位
ページグループが一杯になったときに上位ページグルー
プのスプリット処理を行う上位ページグループスプリッ
ト処理部,34はインデックス部のページの処理を行う
インデックス処理部,35はスプリット時期を判断する
スプリット時期判定処理部,36は磁気ディスク装置な
どの大容量の記憶装置を表す。
【0038】データの挿入や参照等は,ノンデンスBt
reeクラスタ処理部30が行う。しかし,近似したキ
ーのデータ挿入が多いと,同じページへの挿入が多くな
り,ついにはページにデータが入らなくなり,ページス
プリット処理部31によって,そのページは,スプリッ
トを起こすことになる()。ページスプリットが起こ
ると,ページインデックスへの更新処理をインデックス
処理部34が行う。
【0039】ところが,スプリット時期判定処理部35
がページスプリットができない状況と判断したときに
は,ページグループスプリット処理部32により,新ペ
ージグループ16−12またはオーバフロー用上位ペー
ジグループ23を使用したページグループスプリットを
起こした(,)後,ページスプリットを起こす
か,ページスプリットを起こさずに,オーバフロー領域
を使用する()。
【0040】オーバフロー領域は,本来のスプリット処
理をトランザクション内で行なわず,その後にデーモン
処理部12にスプリットを行わせるための一時的な領域
のことである。この領域は,トランザクション内でオー
バフローが切り出されたとき使用されるが,デーモン処
理を行った後には未使用状態となるため,原理的には二
次記憶上に配置する必要はない。しかし,クラッシュ時
のリカバリ処理を容易にするためなどの理由により,本
実施例では二次記憶上にも配置している。
【0041】図4に本発明の実施例によるレコード挿入
時の処理フローを示す。以下,図4に示す処理(a) 〜
(k) に従って説明する。 (a) レコード挿入処理部11は,レコード挿入要求に対
し,キー値をもとに挿入対象ページを検索する。
【0042】(b) 検索した挿入対象ページに挿入スペー
スがあるかどうかを調べ,挿入スペースがなければ,処
理(d) へ移る。 (c) 挿入スペースがあれば,そこにレコードを挿入し,
処理を終了する。
【0043】(d) 挿入スペースがなければ,ユーザ指定
に応じたスプリット時期の選択を行う。本実施例では,
即時にスプリットを行うか,デーモン処理部12により
スプリットを行うかの選択が可能であり,さらにデーモ
ン処理部12によりスプリットを行う場合に,一次記憶
のオーバフロー領域を使用したスプリットを行うか,一
次記憶のオーバフロー領域に単にデータをオーバフロー
させるかの選択ができるようになっている。
【0044】(e) 即時にスプリットを行う場合の処理
は,従来と同様である。まず,対象ページグループ内に
空きページがあるかどうかを調べる。ない場合,処理
(g) へ移る。
【0045】(f) 空きページがある場合,そのページグ
ループ内でページスプリットをする。その後,処理(a)
へ戻る。 (g) 対象ページグループ内に空きページがない場合,対
象上位ページグループ内に空きページグループがあるか
どうかを調べる。ある場合,処理(i) へ移る。
【0046】(h) 空きページがない場合,上位ページグ
ループスプリットをする。その後,処理(a) へ戻る。 (i) 空きページがあれば,その空きページグループ領域
を使用し,スプリットをする。その後,処理(a) へ戻
る。
【0047】(j) 後にデーモン処理で本来のスプリット
を行う場合,一次記憶のオーバフロー領域を使用し,仮
のスプリットを行う。その後,処理(a) へ戻る。 (k) トランザクション処理では,単なるオーバフロー処
理だけを行う場合,一次記憶のオーバフロー領域にオー
バフローさせて,データを挿入する。
【0048】なお,オンライン処理等では一般に発生し
ないが,バッチ処理等で大量の挿入を実施した結果,処
理(j) ,(k) においてオーバフロー領域に空きがないと
きには,トランザクション処理内でスプリット処理を行
う。
【0049】デーモン処理部12は,新たにオーバフロ
ーを切り出したレコード挿入処理部11からのトリガに
より処理を始める。処理内容は,そのときのオーバフロ
ーの内容もしくは,空きページ,空きページグループの
状態によって異なる。 図5に本発明の実施例によるデ
ーモン処理の処理フローを示す。以下,図5に示す処理
(a) 〜(i) に従って説明する。
【0050】(a) 現在,一次記憶のオーバフロー領域を
使用したデータのオーバフロー状態であるかどうかを判
定する。オーバフロー状態のとき,処理(e) へ移る。 (b) オーバフロー状態でなければ,一次記憶のオーバフ
ロー領域を用いた仮のスプリット状態であるかどうかを
判定する。仮のスプリット状態でない場合,処理(a) へ
戻る。
【0051】(c) 仮のスプリット状態の場合,対象ペー
ジグループ内に空きページがあるかどうかを調べる。空
きページがない場合,処理(g) へ移る。 (d) 空きページがある場合,その対象ページグループに
一次記憶にあるオーバフロー領域上のページ内容を移動
する。
【0052】(e) オーバフロー状態の場合,対象ページ
グループ内に空きページがあるかどうかを調べる。空き
ページがなければ,処理(g) へ移る。 (f) 空きページがあれば,ページスプリット処理を行
う。
【0053】(g) 空きページがなければ,対象上位ペー
ジグループ内に空きページグループがあるかどうかを調
べる。ない場合,処理(i) へ移る。 (h) 対象上位ページグループ内に空きページグループが
あれば,ページグループスプリット処理を行う。
【0054】(i) 空きページグループがなければ,上位
ページグループスプリットをする。また,図3に示すノ
ンデンスBtreeクラスタ処理部30は,対象領域が
空きになったときに,ページ,ページグループ,上位ペ
ージグループを管理する空き管理部(図示省略)に,領
域の返却を依頼する。全て返却すると,初めから空きを
用意していたのと同じになるので,返却しても,インデ
ックスは縮退しない。
【0055】次に,図6ないし図9を参照し,データの
挿入時や削除時に起きるスプリット処理や縮退処理の説
明を行う。図6は,ページグループ内でのページスプリ
ット処理の説明図である。
【0056】図6の(イ)は全体の状態を示し,(ロ)
はスプリット前のページグループの状態,(ハ)はスプ
リット後のページグループの状態を示している。図中の
丸付き数字はレコードを表し,その丸の中の数字はキー
値を表している。
【0057】ページaにキー値が3のレコードの挿入要
求があったとする。ページaは,現在,キー値が2,
4,6,8のレコードで一杯である。この挿入要求に対
し,ページa内には空き領域がなく,かつページグルー
プPG1内には,空きページ(ページd)があるため,
すなわちページグループPG1内で,ページスプリット
が可能であるため,ページaはスプリットを起こし,ペ
ージaとページdに分裂する。また,ページが増えたた
め,ページインデックス22−1のページには,ページ
dへの最大キー値が代入される。この挿入の結果,ペー
ジの状態は図6の(ハ)に示すようになる。
【0058】図7は,ページグループのスプリット処理
の説明図である。図7の(イ)は全体の状態を示し,
(ロ)はページグループスプリット前の上位ページグル
ープの状態,(ハ)はページグループスプリット後の上
位ページグループの状態を示している。70は上位ペー
ジグループを表す。
【0059】ページグループPG1のページaがページ
スプリットを起こすと,ページグループPG1内には,
空きのページがないため,ページグループスプリットを
起こそうとする。ページグループPG1の存在する上位
ページグループ70内には,空きのページグループ(ペ
ージグループPG3)があるので,ここを使用したペー
ジグループスプリットを起こす。ページグループPG1
のページc,dは,スプリットの結果,ページグループ
PG3へ移動する。そうすると,ページグループPG1
内には,空きのページ(今まで,ページc,dがあった
場所)ができるため,ページaは,ページグループPG
1内でのページスプリットを起こす。また,ページグル
ープが増えたため,ページインデックスのページにペー
ジcおよびdのキー値が代入され,ページグループイン
デックス21には,ページグループインデックス22−
3の代表キー値が代入される。この結果,ページの状態
は図7の(ハ)に示すようになる。
【0060】図8はオーバフロー領域を使ったページス
プリット処理の説明図である。図8の(イ)は全体の状
態を示し,(ロ)はページスプリット前の上位ページグ
ループの状態,(ハ)はページスプリット後の上位ペー
ジグループの状態を示している。
【0061】ページグループPG1のページaがページ
スプリットを起こすと,ページグループPG1内には,
空きのページがないため,ページグループスプリットを
起こそうとする。しかし,ページグループPG1の存在
する上位ページグループ70内には,空きのページグル
ープがないので,オーバフロー用上位ページグループ2
3のページを使ったスプリットを起こすことになる。ペ
ージグループPG1のページaは,スプリットの結果,
ページグループPG1に半分残り,後半分をオーバフロ
ー用の空きページの場所へ移動する。また,オーバフロ
ー用のページを管理するページインデックス22−4の
対象ページをオーバフロー使用中状態として,処理を終
了する。このスプリット後の状態は,図8の(ハ)に示
すようになる。
【0062】図9はページグループの縮退に伴うデーモ
ン処理でのページグループスプリット処理の説明図であ
る。図9の(イ)は全体の状態を示し,(ロ)はデーモ
ン処理前の上位ページグループの状態,(ハ)はデーモ
ン処理後の上位ページグループの状態を示している。
【0063】今,ページグループPG3のページgのレ
コードを削除することにより,ページgが空きページに
なり,ページグループPG3も空きページグループにな
ったとする。ところで,オーバフロー領域には,ページ
グループPG1から溢れたページa2が設定されている
ため,デーモン処理部12は,ページグループPG1の
ページグループスプリットを行う。その結果,ページ
c,dは,ページグループPG3に移動し,オーバフロ
ー領域にあるページa2は,ページグループPG1に移
動する。ページインデックスページ内にあるオーバフロ
ー領域のページaへのインデックスを削除し,処理を終
了する。オーバフロー領域として用いられたオーバフロ
ー用ページグループ23は,図9の(ハ)に示すように
空きページの状態になる。
【0064】本発明の実施例による効果を具体的な装置
(DASD)を例にあげて説明する。シリンダの単位を
上位ページグループとし,トラックの単位をページグル
ープとする。また,このDASDに対するシーク時間を
20ms,回転待ちを8ms,トラック切り換え時間を
3ms,I/O時間を,1ページ当たり3msとする。
それに,純粋に検索処理だけにかかる時間を,10μs
とする。
【0065】まず,2ページ分のデータを順検索で取り
出す時のデータを取り出す部分(インデックス処理部分
の時間)のレスポンス時間を計算すると,本実施例で
は, 回転待ち時間+I/O時間+検索処理時間 =8ms*2p+3ms*2p+10μs≒22ms となる。
【0066】また,スプリットが起こったとしても,ト
ランザクション処理内で,スプリット処理は行わなく,
その代わりに一次オーバフローへの挿入処理が入るが,
これは主記憶内で処理されるため,処理時間はスプリッ
トのない時と余り変わらない。
【0067】それに比べて通常のBtree構造は, 回転待ち時間+I/O時間+検索処理時間+トラック切
り換え時間+シーク時間 =8ms*2p+3ms*2p+10μs+3ms+2
0ms≒45ms となる。
【0068】また,スプリットの時間を計算すると,I
/O回数は1ページ取ってきて2ページ入れるので3回
とすると, 回転待ち時間+I/O時間+ページスプリット時間+ト
ラック切り換え時間+シーク時間 =8ms*3+3ms*3+10μs+3ms+20m
s≒24+9+3+20=56msとなる。
【0069】ところで,本発明では,トランザクション
処理後にスプリット処理を行うためのデーモン処理とい
うプロセスを新たに発生させるので,トランザクション
処理のCPU割り当て待ち時間が若干増えることが予想
される。しかし,一般にオンライン処理等では,CPU
の時間的な使用率は小さいため,残りの時間にデーモン
処理を行えば,トランザクション処理にほとんど影響し
ないことになる。
【0070】上記の結果から,本発明は,通常のBtr
eeに比べて,検索時のレスポンスはクラスタリングの
効果により,通常時で約2倍速く,スプリットの遅延の
効果により,スプリット時で約5倍速いことがわかる。
【0071】また,通常時とスプリット時とのレスポン
スの差がほとんどないので,レスポンスの平均化も実現
される。その上,オーバフロー領域は,非同期処理によ
りすぐに開放されるので,ほとんどの場合,主記憶上の
メモリで十分であり,外部記憶装置に対してアクセスし
ないことにより,非同期処理も速くなる。
【0072】
【発明の効果】以上説明したように,本発明によれば,
クラスタリングを行うことによる検索処理の高速化が可
能になり,ページのスプリットをトランザクション処理
後に行い,その間のページに入りきれなくなったデータ
は,オーバフローページに入れることにより,スプリッ
ト時のオーバヘッドやレスポンスの低下を防ぐことが可
能になる。また,ページのスプリットをデーモンで行う
ことにより,無停止型システムの実現が可能になり,オ
ーバフロー領域のアクセス時のI/O回数の減少も可能
になる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施例の格納構造(ノンデンスBtr
eeクラスタ)説明図である。
【図3】本発明の実施例構成図である。
【図4】本発明の実施例によるレコード挿入時の処理フ
ローを示す図である。
【図5】本発明の実施例によるデーモン処理の処理フロ
ーを示す図である。
【図6】本発明の実施例におけるページグループ内での
ページスプリット処理の説明図である。
【図7】本発明の実施例におけるページグループのスプ
リット処理の説明図である。
【図8】本発明の実施例におけるオーバフロー領域を使
ったページスプリット処理の説明図である。
【図9】本発明の実施例におけるページグループの縮退
に伴うデーモン処理でのページグループスプリット処理
の説明図である。
【図10】従来のノンデンスBtree構造におけるス
プリット処理の例を示す図である。
【図11】従来のISAM構造の例を示す図である。
【符号の説明】
10 データ処理装置 11 レコード挿入処理部 12 デーモン処理部 13 データベース 14 インデックス部 15 データ部 16 ページグループ 17 オーバフロー領域 P1〜P3 ページ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−155547(JP,A) 特開 昭63−276639(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 ノンデンスBtreeクラスタ構造を用
    いた格納構造によりデータを管理するデータ処理システ
    ムにおけるスプリット制御方法において, トランザクション処理におけるデータの挿入時に,挿入
    対象ページ内に挿入スペースがない場合に,基本的に主
    記憶上に用意されるオーバフロー領域(17)を使用した仮
    のスプリットまたはデータの挿入を行う処理過程と, トランザクション処理とは別にバックグラウンドで動作
    する非同期処理(12)により,スプリットによって空き領
    域を確保し,確保した空き領域にオーバフロー領域(17)
    のデータを移す処理過程とを有し, 本来の格納構造のスプリットのタイミングを,一時的に
    オーバフロー領域(17)を使用することにより遅らせるこ
    とを特徴とするスプリット制御方法。
JP4030818A 1992-02-18 1992-02-18 スプリット制御方法 Expired - Fee Related JP2708657B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4030818A JP2708657B2 (ja) 1992-02-18 1992-02-18 スプリット制御方法
US08/019,566 US5568638A (en) 1992-02-18 1993-02-18 Split control system for a page/page group in a data processing system a pre-split process using a temporary overflow area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4030818A JP2708657B2 (ja) 1992-02-18 1992-02-18 スプリット制御方法

Publications (2)

Publication Number Publication Date
JPH05233407A JPH05233407A (ja) 1993-09-10
JP2708657B2 true JP2708657B2 (ja) 1998-02-04

Family

ID=12314287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4030818A Expired - Fee Related JP2708657B2 (ja) 1992-02-18 1992-02-18 スプリット制御方法

Country Status (2)

Country Link
US (1) US5568638A (ja)
JP (1) JP2708657B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275091B2 (en) 2011-02-22 2016-03-01 Nec Corporation Database management device and database management method

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3441807B2 (ja) * 1994-09-19 2003-09-02 株式会社日立製作所 B木インデクスの管理方法およびシステム
US5893924A (en) * 1995-07-28 1999-04-13 International Business Machines Corporation System and method for overflow queue processing
US6792432B1 (en) * 1998-03-31 2004-09-14 Sybase, Inc. Database system with methods providing high-concurrency access in B-Tree structures
US6671733B1 (en) * 2000-03-24 2003-12-30 International Business Machines Corporation Internal parallel system channel
US9760652B2 (en) * 2004-06-21 2017-09-12 International Business Machines Corporation Hierarchical storage architecture using node ID ranges
US20060124641A1 (en) * 2004-11-09 2006-06-15 Karow Mark P Collapsible construction barrier
JP4933222B2 (ja) * 2006-11-15 2012-05-16 株式会社日立製作所 インデックス処理方法及び計算機システム
US9495398B2 (en) * 2011-02-18 2016-11-15 International Business Machines Corporation Index for hybrid database
US10114908B2 (en) 2012-11-13 2018-10-30 International Business Machines Corporation Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
WO2014168913A1 (en) 2013-04-08 2014-10-16 Nuodb, Inc. Database management system with database hibernation and bursting
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US11080253B1 (en) * 2015-12-21 2021-08-03 Amazon Technologies, Inc. Dynamic splitting of contentious index data pages
CN111213138A (zh) 2017-08-15 2020-05-29 诺宝公司 分布式数据库中的索引拆分
CN109542631A (zh) * 2018-11-22 2019-03-29 上海达梦数据库有限公司 一种备机的重演方法、装置、服务器及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677550A (en) * 1983-09-30 1987-06-30 Amalgamated Software Of North America, Inc. Method of compacting and searching a data index
JPH01237854A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd データベース処理システムにおけるクラスタリング制御方式
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
JPH02130647A (ja) * 1988-11-11 1990-05-18 Toshiba Corp 索引木構造の更新方式
US5208899A (en) * 1990-07-31 1993-05-04 Carnegie Group Method and apparatus for storing information about and associating slot behaviors of a slot in a frame-based semantic network
JP2721034B2 (ja) * 1990-10-19 1998-03-04 富士通株式会社 クラスタリング制御システム
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275091B2 (en) 2011-02-22 2016-03-01 Nec Corporation Database management device and database management method

Also Published As

Publication number Publication date
US5568638A (en) 1996-10-22
JPH05233407A (ja) 1993-09-10

Similar Documents

Publication Publication Date Title
JP2708657B2 (ja) スプリット制御方法
US5983324A (en) Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
US4912629A (en) Real-time garbage collection for list processing using restructured cells for increased reference counter size
US5553303A (en) Data processing system for dynamically switching access control process and for performing recovery process
US5317727A (en) Method apparatus for determining prefetch operating for a data base
US6675176B1 (en) File management system
KR940005775B1 (ko) 디스크 파일 개방 방법
CN1026631C (zh) 利用索引树对数据库记录进行并发存取的方法
US5745915A (en) System for parallel reading and processing of a file
JPH0778098A (ja) ファイル管理システム
JP2781092B2 (ja) システム間排他制御方式
JP3485598B2 (ja) ファイルの配置方法、データ多重化方法及びデータ処理システム
US20110099347A1 (en) Managing allocation and deallocation of storage for data objects
US6571250B1 (en) Method and system for processing queries in a data processing system using index
WO1989012277A1 (en) High speed relational data base processor
CN113138859A (zh) 一种基于共享内存池的通用数据存储方法
EP0522728B1 (en) Method for efficient access of data stored in a nexus table
JP3806609B2 (ja) 並列データベースシステムおよび分散ファイルシステム
JP2675958B2 (ja) 情報検索用計算機システム及びその記憶装置の動作方法
JP2615046B2 (ja) レコード追加処理方法
JP2787107B2 (ja) バッファ制御方式及び装置
JP3030030B2 (ja) 領域管理処理方式
JP3838248B2 (ja) データ格納方法およびデータ管理システム
JP3005466B2 (ja) 並列ソート装置
JPH0962696A (ja) データベース管理システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970930

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

Free format text: PAYMENT UNTIL: 20071017

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081017

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20081017

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091017

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees