JP2721034B2 - クラスタリング制御システム - Google Patents

クラスタリング制御システム

Info

Publication number
JP2721034B2
JP2721034B2 JP2280911A JP28091190A JP2721034B2 JP 2721034 B2 JP2721034 B2 JP 2721034B2 JP 2280911 A JP2280911 A JP 2280911A JP 28091190 A JP28091190 A JP 28091190A JP 2721034 B2 JP2721034 B2 JP 2721034B2
Authority
JP
Japan
Prior art keywords
page
split
group
page group
pages
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
JP2280911A
Other languages
English (en)
Other versions
JPH04155547A (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 JP2280911A priority Critical patent/JP2721034B2/ja
Publication of JPH04155547A publication Critical patent/JPH04155547A/ja
Application granted granted Critical
Publication of JP2721034B2 publication Critical patent/JP2721034B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔概要〕 Btreeのキーによるページグループ単位のクラスタリ
ングを行うBtree格納構造を採用するデータ処理システ
ムにおけるページグループ拡張処理方式に関し, ページグループのスプリットを効率的に行い,トラン
ザクション処理への影響を少なくすることを目的とし, ページグループが一杯になったときに,空きの新規ペ
ージグループを獲得し,レコード挿入対象のページがそ
のページグループを指すインデックス部の前半に存在す
るか後半に存在するかによって,現ページグループを使
用するか新規ページグループを使用するかを決め,現ペ
ージグループを使用する場合には,前半または後半のい
ずれか他方のページを新規ページグループに追い出し
て,ページをスプリットさせ,新規ページグループを使
用する場合には,対象ページのみを新規ページグループ
に複写してスプリットさせるページスプリット処理部を
備えるように構成する 〔産業上の利用分野〕 本発明は,例えばBtreeのキーによるページグループ
単位のクラスタリングを行うBtree格納構造を採用する
データ処理システムにおけるクラスタリング制御システ
ムに関する。
データベースの格納構造の1つとして,Btree格納構造
が用いられている。データベース管理システムでは,ト
ランザクション処理によって頻繁にレコードの挿入や検
索などが行われるが,その際に,格納構造の状況によっ
て,トランザクションのレスポンスに悪影響を与えない
ようにすることが必要になる。
〔従来の技術〕
第6図は本発明に関連するBtree格納構造の説明図,
第7図はBtreeにおけるページスプリット説明図,第8
図は従来技術におけるページグループのスプリット説明
図である。
データベースの格納構造の1つとして用いられている
Btree格納構造では,例えば第6図に示すように,各ペ
ージP1,P2,…ごとに,そのページに収容されるレコード
の検索のためのキーの最大値を,インデックス部15によ
り管理しておき,キーによる乱アクセスを可能とすると
ともに,キー順アクセスも可能としている。
あるページが一杯になり,そのページに対してさらに
レコードの挿入要求が出されると,ページをスプリット
(分割)させる必要がある。
そこで,スプリットさせる場合には,第7図に示すよ
うに,一杯になったページP1のレコードを,キーの小さ
いものと大きいものとに分け,キーの大きいものを新た
に確保した空きページPnに移し,小さいものを元のペー
ジP1に残して,ページ内にレコードを格納する空き領域
を作る。
ところで,第6図に示すようなBtree格納構造におい
て,キー順アクセスを行う場合には,キーの近いページ
が,記憶媒体における物理的位置が近くなるように,ペ
ージを配置したほうがアクセス効率がよくなる。例えば
磁気ディスク等において,ぺージが格納されているシリ
ンダが離れていると,アームの移動によりシーク時間が
長くかかるからである。
そこで,Btreeでは,キー順によるページのクラスタリ
ングを図り,キーの近いページが物理的格納位置が近く
なるように,一般にページをグループ化することを行っ
ている。
第8図(イ)は,そのページグループ化の例を示して
いる。例えば,キー値が0から999までのレコードが格
納されるページPは,同一シリンダまたは連続するシリ
ンダに属するページグループPG1から確保される。ま
た,キー値が1000から1999までのレコードが格納される
ぺージは,次のページグループPG2から確保される。
各ページグループには,ページスプリット時にページ
を獲得するためのいくつかの空きページが用意される。
1つのページグループにおいて,ページスプリットが
繰り返されると、そのページグループに空きぺージがな
くなることがある。その場合には,クラスタリングの効
果を維持するために,例えば,第8図(ロ)に示すよう
に,ページグループのスプリット処理を行う。
第8図(ロ)に示すページグループPG1が一杯になっ
て,さらにページスプリットのために空きページが必要
になったとする。
この場合,新しい空きのページグループPGnを獲得
し,例えばキー値が0から499までのレコードが属する
ページ群を,スプリット元のページグループPG1に残
し,キー値が500から999までのレコードが属するページ
群を,新たなページグループPGnに移動させる。
〔発明が解決しようとする課題〕
第8図(ロ)に示すように,ページグループが一杯に
なると,そのページグループを2つのページグループに
スプリットすることによって,クラスタリングの効果の
維持を図るが,ページグループは多くのページを持つた
め,このスプリット処理は,莫大な処理コストを必要と
する。
特に,オンライン・トランザクション処理の延長で行
った場合には,レスポンス性能が極端に悪くなる。しか
しながら,ページグループのスプリット処理を行わず
に,単に新規のページグループから,必要な空きページ
を確保していくようにすると,キー順のクラスタリング
が維持されなくなり,クラスタリングの効果が解消され
るという問題がある。
本発明は上記問題点の解決を図り,キー順のクラスタ
リングの効果を維持した状態で,ページグループのスプ
リットを効率的に行い,トランザクション処理への影響
を少なくすることを目的としている。
〔課題を解決するための手段〕 第1図は本発明の原理説明図である。
第1図において,10はCPUおよびメモリなどを備えデー
タベースを管理するデータ処理装置,11はBtree格納構造
に対するアクセス機能を持つBtree処理部,12はページが
一杯になったときにページスプリットの処理を行うペー
ジスプリット処理部,13はページグループについてトラ
ンザクションとは非同期にスプリット処理を行うページ
グループ非同期スプリット処理部,14は磁気ディスク装
置などの大容量の外部記憶装置,15はBtreeのキーを管理
するインデックス部,16はキーに対応してページの格納
位置情報を持つインデックスリーフページ,17a〜17cは
キーの近いページをグループ化したページグループであ
って,特に17aはページグループスプリットの対象とな
っている現ページグループ,17cはスプリット先の新規ペ
ージグループを表す。また,P1〜P6は入出力の単位とな
るページを表す。
Btree処理部11は,レコードの挿入などによりページ
が一杯になると,ページスプリット処理部12にページス
プリットの処理を依頼する。
ページスプリット処理部12は,ページスプリットを行
う現ページグループ17aが一杯になって,スプリットす
る空きページを現ページグループ17a内に確保できなく
なると,新規ページグループ17cを獲得する(第1図
)。
次に,一杯になってスプリットするページが,現ペー
ジグループ17aが一杯になった時点のインデックスリー
フページ16の前半エントリに対応するページか,後半エ
ントリに対応するページかによって,次のようにスプリ
ット対象ページグループを切り分ける。
スプリット対象のページP1が,インデックスリーフペ
ージ16の前半エントリに属するとき,後半のページに空
きがあれば,そこにスプリットするが,空きが存在しな
い場合には,第1図に示すように,任意の後半のペー
ジP2を,新規ページグループ17cにページP3として追い
出す。そして,追い出しによって空きになったページP2
の領域を使用し,ページP1のスプリットを実施する
()。
スプリット対象のページP4が,インデックスリーフペ
ージ16の後半のエントリに属する場合には,そのページ
P4を空きにし,新規ページグループ17cに2つのページP
5,P6を獲得して,そこにスプリットする()。
レコードの挿入要求などにより,スプリットを引き起
こしたトランザクションは,ここで処理を終了するが,B
tree処理部11は,上記のページスプリットの後,一杯に
なった現ページグループ17aを実際にスプリットするペ
ージグループ非同期スプリット処理部13を起動する。
ページグループ非同期スプリット処理部13による非同
期の処理では,対象の現ページグループ17a内の各ペー
ジを,インデックスリーフページ16の前半に対応するペ
ージか後半に対応するページかによって,前半なら現ペ
ージグループ17aに残し,後半なら新規ページグループ1
7cに複写して,ページグループスプリットの処理を行う
(第1図)。
〔作用〕
本発明では,一杯になったページグループ内でページ
スプリットを行うときに,ページグループ全体のスプリ
ットを保留し,ページスプリットに最小限必要な処理だ
けで済ませるので,処理コストを小さくすることができ
る。すなわち,多くても2ページ分の大きさきのデータ
の複写だけで,ページスプリットを完了することができ
る。
また、必須ではないが,ページグループ非同期スプリ
ット処理部13を設けることにより,トランザクションの
レスポンスに影響を与えることなく,従来と同様なペー
ジグループのスプリットを完了させることができる。
〔実施例〕
第2図は本発明の一実施例によるページグループ拡張
の説明図,第3図は本発明の一実施例によるレコード挿
入時の処理フロー,第4図は本発明の一実施例によるペ
ージグループ非同期スプリット処理部の処理フロー,第
5図は本発明の一実施例による具体的な処理の例を示
す。
第2図において,▲はまだレコードの追加が可能なペ
ージ,■は一杯になってレコードの追加ができないペー
ジ,□は空きページ,▼はスプリット直後のページを表
している。インデックスリーフページ16は,各ページグ
ループ17a,17b,…に対応している。
第2図(イ)に示すページグループ17aのページP1に
レコードの追加要求があったとする。このページは一杯
であるので,ページスプリットが必要になる。しかし,
ページグループ17aには空きページがないので,ページP
1がインデックス部15(特に,ページグループ17aに対応
するインデックスリーフページ16)の前半に対応するか
後半に対応するかを調べる。
ここではページP1は前半に対応するので,後半のペー
ジを新規に獲得したページグループ17cに追い出し,ペ
ージP1をスプリットさせる。これにより,第2図(ロ)
に示す状態になる。
第2図(ロ)に示す状態において,インデックスリー
フページ16の後半に属するページP2に対するスプリット
要求が生じると,ぺージP2をページグループ17cに複写
してスプリットさせる。ページグループ17aにおける元
のページP2の領域は空きにする。これによって,第2図
(ハ)に示すような状態に遷移する。
第1図に示すページグループ非同期スプリット処理部
13は,トランザクションの処理とは非同期に,ページグ
ループ17aから後半に属するページを抽出し,新規のペ
ージグループ17cへの移動を行う。これによって,第2
図(ニ)に示すように,ページグループのスプリットが
完了することになる。
第3図は,第1図に示すページスプリット処理部12の
処理を中心としたレコード挿入時の処理フローを示して
いる。以下,第3図に示す処理〜に従って説明す
る。
インデックス部から,挿入ページの検索を行い,レ
コードを挿入すべきページを決定する。
そのページ内にレコードを挿入する空き領域がある
かどうかを検査する。
空き領域がなく,レコードを格納できなければ,処
理へ移る。
空き領域があって,レコードの格納が可能であれ
ば,そのページ内にレコードを挿入し,処理を終了す
る。
ページ内に空き領域がない場合,そのページが属す
るページグループ内に空きページがあるかどうかを検査
する。
空きページがあれば,処理へ進み,空きページが
なければ,処理へ進む。
空きページがあれば,第7図で説明したような処理
により,ページのデータ部をスプリットさせる。
スプリットに対応させて,インデックス部のアップ
グレードを行う。
スプリットによって空きが生じたページにレコード
を挿入し,処理を終了する。
現ページグループ内に空きページがない場合,現ペ
ージグループが,スプリット中であるかどうかを判定す
る。スプリット中であれば,処理へ進む。
スプリット中でなければ,まずインデックス部のス
プリットを行う。
スプリットしたインデックスリーフにページグルー
プ間ポインタを設定する。
全ページが空きページである新規ページグループを
獲得する。
第1図に示すページグループ非同期スプリット処理
部13を起動し,ページグループのスプリットにトリガを
かける。
レコード挿入の対象ページは,インデックス部の前
半に存在するかどうかを調べる。前半のとき処理へ進
み,後半のとき処理へ進む。
新しく獲得したページグループから,空きページを
獲得する。
空きページを作るために,後半ページの1つのペー
ジを,新規ページグループに移動する。
空きページにデータ部をスプリットする。
インデックス部のアップグレードを行う。その後,
処理へ進む。
対象ページが後半の場合,新しいページグループか
ら2つの空きページを獲得する。
対象ページを,処理で獲得した2つの新ページに
分割して移動する。
インデックス部のアップグレードを行う。
スプリット元の対象ページを空きページとして登録
する。
ページ内にレコードを挿入し,処理を終了する。
第1図に示すページグループ非同期スプリット処理部
13は,第4図に示す処理により,ページグループのスプ
リットを行う。以下,第4図に示す処理〜に従って
説明する。
スプリット対象のページグループの情報を取り出
す。
スプリット先ページグループのインデックスリーフ
をアクセスする。
ページグループ内の全ページについて,処理が終了
したかどうかを判定し,終了したならば,処理へ移
る。
未終了の場合,そのページが旧ページグループに残
しておくページがどうかを判定する。残しておくページ
の場合,処理へ戻り,次のページの処理を行う。
ページの移動が必要な場合,スプリット先の新規ペ
ージグループから,空きページを獲得する。
スプリット元ページグループからスプリット先ペー
ジグループへ,ページを移動する。
対象ページを,スプリット元のページグループに空
きとして返却する。その後,処理へ戻り,次のページ
について同様に処理する。
全ページについて処理したならば,インデックスリ
ーフにおけるページグループ間ポインタを削除し,ペー
ジグループスプリットの処理を終了する。
次に,具体的なページグループスプリットの例を,第
5図に従って説明する。説明を簡単にするために,ペー
ジ内には6件のレコードが入り,ページグループを8ペ
ージとする。実際には,もっと多くのレコード件数やぺ
ージ数を扱うことは言うまでもない。「空き」として示
すインデックスリーフページ16のエントリは,対象空き
ページ以降,ページグループの終端まで,すべて空きペ
ージであることを示す。
i)第5図(イ)は,初期状態を示しており,レコード
の追加や削除によって,ある程度ページの順番とキー順
は前後している。ここで,キー値が“150"のレコードの
追加要求があったとする。
ii)第5図(ロ)に示すように,対象ページP1に空きが
あるため,キー値“150"のレコードを追加する。本図で
は,追加レコードを●で表している。
iii)次に,キー値“550"を持つレコードの追加要求が
あったとする。この場合,対象ページP6には,空きが存
在しない。しかし,対象ページグループ17内には,空き
ページP2が存在するため,第5図(ハ)に示すように,
その空きページP2を利用して,キー値“600"で管理して
いたページP6を,キー値“545"の中心点で2つにスプリ
ットする。そして,ページP2にキー値“550"のレコード
を追加する。
iv)第5図(ハ)に示す状態で,キー値“300"のレコー
ドの追加要求があったとする。この場合も対象ページP4
には空きが存在しないが,対象ページグループ17内に空
きページP7が存在するため,その空きページP7を利用
し,第5図(ニ)に示すように,キー値“400"で管理し
ていたページP4を,キー値“360"の中心点で2つにスプ
リットし,キー値“300"のレコードをページP4に追加す
る。
v)さらに,キー値“80"の追加要求があったとする。
この場合,対象ページP3には空きがなくこの対象ページ
グループ17にも空きページがない。このページグループ
17はスプリット中でないため,まず,第5図(ホ)に示
すように,インデックス部のインデックスリーフページ
16をスプリットさせる。キー値“100"で管理していた挿
入すべきページは,前半に存在するため,後半の1つの
ページP5(後半の先頭ページ)だけを,新規ページグル
ープ17′を獲得して,その空きページP1′に移動する。
後半の移動したページP5が空きとなるため,このページ
P5を利用して,キー値“100"で管理していたページP3
を,キー値“60"の中心点で2つにスプリットする。そ
して,キー値“80"のレコードをページP5に追加する。
また,ページグループ17を完全にスプリットするための
第1図に示すページグループ非同期スプリット処理部13
に,ページグループスプリットのトリガをかけ,自トラ
ンザクションを終了する。
vi)第5図(ホ)に示す状態で,キー値“750"のレコー
ドの追加要求があったとする。この場合も,対象ページ
P8にも,対象ページグループ17にも空きは存在しない。
そこでインデックスのページグループ間ポインタによ
り,ページグループ17がスプリット中であり,かつ対象
ページP8が後半であることを知り,第5図(ヘ)に示す
ように,新規ページグループ17′の空きページP2′,P
3′を獲得して,キー値“800"で管理していたページP8
を,キー値“750"の中心点(たまたま中心点と追加キー
が等しい)で2つにスプリットする。元のページグルー
プ17のキー値“800"で管理していたページP8は,空きペ
ージとして登録する。
vii)その後も,vi)のよう処理が,第1図に示すページ
グループ非同期スプリット処理部13による非同期処理の
実施完了までに続く可能性があるが,新規ページグルー
プ17′のページは,最初はすべて空きページであるた
め,十分な余裕をもってページのスプリット処理を進め
ることができる。ページグループのスプリットのための
非同期処理では,スプリット中のページグループ17の後
半のインデックスリーフページ16を参照し,新規ページ
グループ17′に所属していない(旧のページグループ17
に所属している)ページを,新規ページグループ17′か
ら獲得したページに移動する。この結果,第5図(ト)
に示すように,ページグループのスプリットが完了する
ことになる。
以上の実施例の説明では,ページグループ後半のペー
ジについて新規ページグループを利用する場合の例を説
明したが,もちろんページグループ後半ではなく,ペー
ジグループ前半のページについて新規ページグループを
利用するようにしても,まったく同様に本発明の課題を
解決することができることは言うまでもない。
〔発明の効果〕
以上説明したように,本発明によれば,ページグルー
プのスプリットが必要になった場合でも,対象ページを
2つのページにするだけで,その残りの整理を非同期処
理で実施することができるため,クラスタリングの効果
を維持しながら,かつトランザクションの処理負荷を,
対象ページのスプリットだけにとどめることが可能にな
る。
【図面の簡単な説明】
第1図は本発明の原理説明図, 第2図は本発明の一実施例によるページグループ拡張の
説明図, 第3図は本発明の一実施例によるレコード挿入時の処理
フロー, 第4図は本発明の一実施例によるページグループ非同期
スプリット処理部の処理フロー, 第5図は本発明の一実施例による具体的な処理の例, 第6図は本発明に関連するBtree格納構造の説明図, 第7図はBtreeにおけるページスプリット説明図, 第8図は従来技術によるページグループのスプリット説
明図を示す。 図中,10はデータ処理装置,11はBtree処理部,12はページ
スプリット処理部,13はページグループ非同期スプリッ
ト処理部,14は外部記憶装置,15はインデックス部,16は
インデックスリーフページ,17a〜17cはページグループ,
P1〜P6はページを表す。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】ページグループ内の各ページについて、当
    該ページ内のインデックスを用いてクラスタリングの制
    御を行うクラスタリング制御システムにおいて、 ページグループが一杯になった場合、新規ページグルー
    プを獲得する獲得手段と, レコード挿入対象のページの属する第一の集合とは別の
    第二の集合に属するページを前記新規ページグループ内
    のぺージに追い出し,レコード挿入対象のページを当該
    追い出した元のページ領域にスプリットさせると共に,
    インデックスを更新するページスプリット処理手段とを
    有する ことを特徴とするクラスタリング制御システム。
  2. 【請求項2】請求項1記載のクラスタリング制御システ
    ムにおいて, 前記ページスプリット処理手段は,レコード挿入対象ペ
    ージが当該ページグループのインデックス部において前
    半に位置する場合,当該インデックス部において後半に
    位置するページを前記新規ページグループ内のページに
    追い出し,当該レコード挿入対象ページを当該追い出し
    た元のページ領域にスプリットさせると共に,インデッ
    クスを更新するページスプリット処理手段である ことを特徴とするクラスタリング制御システム。
  3. 【請求項3】請求項1または請求項2記載のクラスタリ
    ング制御システムにおいて, 前記ページスプリット処理手段による処理とは非同期
    に,スプリット中の現ページグループの該当ページを,
    スプリット先の新規ページグループに移動させるページ
    グループ非同期スプリット処理手段を有する ことを特徴とするクラスタリング制御システム。
JP2280911A 1990-10-19 1990-10-19 クラスタリング制御システム Expired - Fee Related JP2721034B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2280911A JP2721034B2 (ja) 1990-10-19 1990-10-19 クラスタリング制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2280911A JP2721034B2 (ja) 1990-10-19 1990-10-19 クラスタリング制御システム

Publications (2)

Publication Number Publication Date
JPH04155547A JPH04155547A (ja) 1992-05-28
JP2721034B2 true JP2721034B2 (ja) 1998-03-04

Family

ID=17631659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2280911A Expired - Fee Related JP2721034B2 (ja) 1990-10-19 1990-10-19 クラスタリング制御システム

Country Status (1)

Country Link
JP (1) JP2721034B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2708657B2 (ja) * 1992-02-18 1998-02-04 富士通株式会社 スプリット制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6325746A (ja) * 1986-07-18 1988-02-03 Nec Corp レコ−ドの近接配置制御方式

Also Published As

Publication number Publication date
JPH04155547A (ja) 1992-05-28

Similar Documents

Publication Publication Date Title
Banerjee et al. DBC—A database computer for very large databases
US5544357A (en) Database accelerator
CN103902623A (zh) 用于在存储系统上存取文件的方法和系统
EP0591520A1 (en) Disk storage system
WO2016192496A1 (zh) 数据迁移处理方法及装置
KR20030094328A (ko) 저장된 데이터를 재편성하는 시스템 및 방법
JPH07104810B2 (ja) 共用ファイルのアクセス制御方式
US6134562A (en) System for modifying a database using a transaction log
JP2721034B2 (ja) クラスタリング制御システム
JPS59220853A (ja) デイスクキヤツシユシステム
JPH09305622A (ja) 文書検索機能を有するデータベース管理方法およびシステム
JPH033046A (ja) ログ記録管理方式
JP4306023B2 (ja) トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
JP3169596B2 (ja) データベース管理装置
KR100912129B1 (ko) 객체 파일 시스템을 이용한 비정형 데이터 관리 방법 및장치
JP3105226B2 (ja) データ処理システム
JPH0198020A (ja) 索引管理方式
JP3016255B2 (ja) データベース管理システム
JPS63138442A (ja) 削除フアイル復元処理方式
JPH01282635A (ja) 索引保守方式
JP2912657B2 (ja) ファイルアクセス処理装置
JPH0283640A (ja) データベース更新方法
JP2641399B2 (ja) フアイル管理装置
JPH08328929A (ja) データベース分割管理システム
JPS61160133A (ja) デ−タの入力管理方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees