JPH07200376A - データベース管理装置 - Google Patents

データベース管理装置

Info

Publication number
JPH07200376A
JPH07200376A JP5337588A JP33758893A JPH07200376A JP H07200376 A JPH07200376 A JP H07200376A JP 5337588 A JP5337588 A JP 5337588A JP 33758893 A JP33758893 A JP 33758893A JP H07200376 A JPH07200376 A JP H07200376A
Authority
JP
Japan
Prior art keywords
tree
access
lock
database
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.)
Pending
Application number
JP5337588A
Other languages
English (en)
Inventor
Naoto Sato
直人 佐藤
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP5337588A priority Critical patent/JPH07200376A/ja
Publication of JPH07200376A publication Critical patent/JPH07200376A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】データベースの状況に対応して常時各データの
ロックコンフリクト確率を一様に維持することができる
データベース管理装置を提供すること。 【構成】アクセス拒否部10cによりロックビットがオ
ンにされたBツリーにアクセス要求を行うごとに、イン
デックス記憶部10bに記憶されたロックコンフリクト
の回数を加算し、このアクセス拒否回数が所定の回数以
上となった際に、インデックス分割部10dを用いて該
Bツリーを分割する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベース管理装置
に関し、特に複数のツリーをデータベースをアクセスす
る際のインデックスとして用いるデータベース管理装置
に関する。
【0002】
【従来の技術】従来、各種データを記憶するデータベー
スを効率よくアクセスするために、データベース管理装
置が用いられている。
【0003】また、このデータベース管理装置では、デ
ータベースのデータを効率よく検索、更新及び追加する
ために、木構造からなるインデックスを用いることが多
い。
【0004】例えば、木構造の末端に位置するリーフノ
ードをデータベース内の各データに対応させ、データベ
ース内のデータ全体を1つの木構造として構築したイン
デックスを用いる場合には、この木のルートノードから
順次検索条件に対応する枝を辿り、リーフノードが有す
るデータへのポインタを用いて所望のデータを検索する
ことになる。
【0005】ところで、このデータベースは、多数の利
用者により利用されるため、あるクライアントがデータ
の書き換えを行っているにも係わらず、他のクライアン
トが該データの読み込みを行う場合がある。
【0006】かかる場合に、後者の読み込みを認める
と、データの整合性を保証することができなくなるた
め、後者の読み込みはデータベース管理装置により拒否
される(以下「ロックコンフリクト」という。)ことに
なる。
【0007】具体的には、あるクライアントが、あるデ
ータの書き換えを行っている場合には、該データをアク
セス拒否状態(以下「ロック状態」という。)に保持
し、他のクライアントからのアクセスを拒否することに
なる。
【0008】特に、データベース管理を木構造のツリー
を用いて行っている場合には、該ツリーのルートノード
がロック状態となるため、他のデータについてもアクセ
スできくなる。
【0009】このため、特開平4−96837号公報で
は、K個のツリー部から構成されるインデックスのう
ち、キー値を入力として関数値を出力する関数部によっ
て該当するツリーを選択することにより、ロックコンフ
リクトを回避するデータベース処理装置におけるインデ
ックス構成方法が開示されている。
【0010】この従来技術によれば、ルートノードがK
個できるため、ロックコンフリクトが生じる確率を低減
することができる。
【0011】
【発明が解決しようとする課題】しかしながら、この従
来技術によると、ロックコンフリクトの確率が一様とな
るようにK個のツリー部を構成する必要があるが、ロッ
クコンフリクトを一様とするには、登録されるデータの
アクセス頻度を予測するとともに、該アクセス頻度に応
じた関数を適切に設定する必要があるため、適宜データ
の追加等がなされるデータベースにおいては、上記予測
等は極めて難しい。
【0012】そこで、本発明では、上記問題点を解決
し、データベースの状況に対応して常時各データのロッ
クコンフリクト確率を一様に維持することができるデー
タベース管理装置を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数のクライアントから入力されたキー
値に対応するツリー構造を複数のツリー構造から選択
し、該選択されたツリー構造を辿って該当するデータを
データベースからアクセスするデータベース管理装置に
おいて、前記データベースが有するデータをアクセスす
る際に、前記ツリー構造をアクセス拒否状態に保持する
アクセス拒否手段(図1の10c)と、前記アクセス拒
否手段により前記複数のクライアントからのアクセス要
求が拒否された回数を前記ツリー構造ごとに記憶する記
憶手段(図1の10b)と、前記記憶手段に記憶された
アクセス拒否回数に基づいて、前記ツリー構造を分割す
る分割手段と(図1の10d)を具備することを特徴と
する。
【0014】
【作用】本発明によれば、アクセス拒否手段によりアク
セス拒否状態に保持されたツリー構造にアクセス要求を
行い、該アクセス要求が拒否された回数を記憶手段にツ
リー構造ごとに記憶しておき、該記憶手段に記憶された
アクセス拒否回数が所定の回数以上となった際に、分割
手段を用いて該ツリー構造を分割する。
【0015】これにより、データベースが記憶する各デ
ータのロックコンフリクト確率を一様に維持することが
できる。
【0016】
【実施例】以下、本発明の一実施例について図面を参照
して説明する。
【0017】図1は、データベースシステムを有するネ
ットワークの全体構成及びデータベース管理装置の構成
を示すブロック図である。
【0018】図1に示すように、このネットワークで
は、各種データを記憶したデータベース11の管理を行
うデータベース管理装置10と、該データベース管理装
置10に対してデータのアクセスを要求するクライアン
ト13及び14とが、LAN(ローカルエリアネットワ
ーク)12に接続される構成を用いている。
【0019】データベース管理装置10は、アクセス処
理部10aと、インデックス記憶部10bと、アクセス
拒否部10cと、インデックス分割部10dとから構成
される。
【0020】アクセス処理部10aは、LAN12から
アクセス要求を受け付けたならば、インデックスを構成
する複数のツリーから、アクセス要求されたデータに対
応するツリーを選択し、このツリーのルートノードかリ
ーフノードまで逐次辿ることにより、所望のデータに対
応するデータベース11内のアドレス情報を取得して、
該アドレスに位置するデータをアクセスする。
【0021】例えば、ハッシュ関数を用いる場合には、
各ツリーとキー値を予め対応づけておき、クライアント
からアクセス要求として入力されたキー値に対応するツ
リーを選択することになる。
【0022】なお、本実施例においては、インデックス
を構成する各ツリーは、バランス木(Balanced Tree:
以下「Bツリー」と言う。)を用いて構成するものとす
る。このBツリーとは、各リーフノードまでのパスがバ
ランス良くなるようにツリーを構築したものであり、こ
れにより各データへのアクセス時間の平均化を図ること
ができるものである。
【0023】インデックス記憶部10bは、複数のBツ
リーから構成されるインデックスを記憶する記憶部であ
り、各Bツリーごとにロックコンフリクト回数及びBツ
リーへのポインタを設けた分配表を内在する。
【0024】アクセス拒否部10cは、クライアントが
Bツリーを使用している間、他のクライアントからのア
クセス要求を拒否するために、該Bツリーをロック状態
に保持するとともに、ロックコンフリクトが発生した場
合には、ロックコンフリクトが発生したBツリーの回数
を加算する。
【0025】具体的には、アクセス処理部10aが、ア
クセス要求に対応するBツリーを選択した際に、該Bツ
リーがロック状態であるか否か確認し、該Bツリーがロ
ック状態であるか否かをアクセス拒否部10cに通知す
る。そして、この通知を受けたアクセス拒否部10c
は、当該Bツリーがロック状態でなければロック状態に
移行させ、当該Bツリーがロック状態であればロックコ
ンフリクト回数を加算することになる。
【0026】インデックス分割部10dは、インデック
ス記憶部10b内の分配表に示されるロックコンフリク
ト回数が所定の条件を満たす場合には、該ロックコンフ
リクト回数を有するBツリーを分割する。なお、Bツリ
ーを分割する際には、分割後のBツリーに対するアクセ
ス頻度が均等化するように分割する。また、分割した各
Bツリーのロックコンフリクト回数はクリアする。
【0027】このように、本発明に係るデータベース管
理装置10では、ロックコンフリクトの状況に応じて、
Bツリーを分割することにより、ロックコンフリクトの
一様化を図っている。
【0028】次に、インデックス記憶部10bの構成を
詳細に説明する。
【0029】図2は、インデックス記憶部10bの構成
を示すブロック図である。
【0030】図2に示すように、インデックス記憶部1
0bは、Bツリーb1〜b3と、各Bツリーごとのロッ
クコンフリクト回数t1、ロックビットt2及びポイン
タt3を有する分配表Tとから構成される。
【0031】ロックコンフリクト回数t1は、Bツリー
b1〜bnがロック状態である場合に他のクライアント
からのアクセス要求を受け、該アクセス要求を拒否した
回数がBツリーごとに記憶するものであり、このロック
コンフリクトが生じる都度、アクセス拒否部10cによ
り1加算される。
【0032】そして、このロックコンフリクト回数は、
インデックス分割部10dによりBツリーの分割尺度と
して用いられ、該ロックコンフリクト回数が所定の条件
を満たす場合には、該当するBツリーが分割される。
【0033】ロックビットt2は、Bツリーb1〜bn
がロック状態であるか否かを示すフラグであり、アクセ
ス処理部10aによるアクセスの通知を受けたアクセス
拒否部10cにより管理される。
【0034】すなわち、アクセス処理部10aがインデ
ックス記憶部10bに記憶されるインデックスに基づい
てアクセスを行う際に、このロックビットt2のフラグ
が”オフ”であれば、アクセス拒否部10cにフラグを
オンにするよう指示し、該フラグが”オン”であれば、
ロックコンフリクト回数を加算するよう指示するのであ
る。
【0035】ポインタt3には、対応するBツリーのル
ートノードのアドレスが設定されているため、アクセス
処理部10aは、この分配表Tから出発して所望のBツ
リーを辿ることが可能となる。
【0036】このように、ロックコンフリクト回数t1
と、ロックビットt2と、Bツリーへのポインタt3と
を有する分配表Tを用いることにより、ロックコンフリ
クトの状況をBツリーごとに把握することができる。
【0037】次に、データベース管理装置10が行うア
クセス処理手順について説明する。
【0038】図3は、データベース管理装置10が行う
アクセス処理手順を示すフローチャートである。
【0039】図3に示すように、アクセス処理部10a
が、クライアント13からのアクセス要求を受けたなら
ば(S301)、アクセス要求に対応するBツリーを探
す(S302)。具体的には、アクセス要求に含まれる
キー値に基づきハッシュ関数値を計算し、このハッシュ
関数値に対応するBツリーを選択することになる。
【0040】そして、該当するBツリーがロックされて
いるか否かを、分配表T内のロックビットt2を確認す
ることにより調べ(S303)、当該Bツリーがロック
状態でなければ、この選択したBツリーに対する他のク
ライアント14からのアクセス要求を拒否するために、
アクセス拒否部10cが分配表T内のロックビットt2
をオンにして、Bツリーをロックする(S304)。
【0041】その後、このBツリーをリーフノードまで
順次辿り(S305)、当該データが格納されているデ
ータベース内のアドレスを得る。
【0042】そして、S304で得たデータベース内の
アドレスに位置するデータをアクセスし(S306)、
該データをクライアント13に返信して処理を終了す
る。。
【0043】これに対して、S303において、当該B
ツリーがロック状態である場合には、アクセス拒否部1
0cにより、当該Bツリーのロックコンフリクト回数t
1が加算され(S307)、当該Bツリーがロック状態
である旨がクライアント13に通知される(S30
8)。
【0044】そして、インデックス分割部10dでは、
当該Bツリーのロックコンフリクト回数が条件設定され
た所定のしきい値を満たすか否かを確認し(S30
9)、該条件を満たす場合には、当該Bツリーの分割処
理を行い(S310)、処理を終了する。
【0045】このように、本実施例では、Bツリーがロ
ック状態にある場合には、当該Bツリーのロックコンフ
リクト回数を加算するとともに、この回数が所定のしき
い値以上となった場合には、該Bツリーを分割する処理
を行っている。
【0046】次に、S310において行う分割手順を、
具体例を用いて詳細に説明する。
【0047】なお、この具体例では、拡張可能なハッシ
ュ関数を用いる場合を示しており、クライアントからの
アクセス要求には、000〜111のいずれかのキー値
が含まれ、該キー値に対応するハッシュ関数値を各Bツ
リーに対応づけている。
【0048】図4は、インデックス記憶部10bに設け
られた分配表Tの分割処理前の一例を示す図であり、図
5は、分割処理後の一例を示す図である。
【0049】図4に示すように、この分配表Tでは、B
ツリーb1、b2、b3及びb4のそれぞれのロックコ
ンフリクト回数が4、3、3及び9であり、Bツリーb
1及びb2のロックビットがオフで、Bツリーb3及び
b4のロックビットがオンである場合を示している。
【0050】また、Bツリーb1〜b4を分割する条件
として、分割しきい値が0.5が設定されており、この
分割しきい値は、各Bツリーのロックコンフリクトの回
数が、各ロックコンフリクトの総計に占める割合を示し
ている。
【0051】このため、例えば、Bツリーb1〜b4の
ロックコンフリクトの総計が20回である場合に、Bツ
リーb4のロックコンフリクト回数が10回となった時
には10/20=0.5となり、Bツリーの分割条件を
満たすことになる。
【0052】そして、この分配表Tでは、Bツリーb4
のロックコンフリクト回数が「9」であり、ロックコン
フリクトの総計が「19」であるため、9/19<0.
5となり分割条件を満たしていない。
【0053】そこで、Bツリーb4にアクセスが生じた
場合を考えると、Bツリーb4はロック状態であるた
め、Bツリーb4のロックコンフリクト回数が加算され
「10」となるため、Bツリーb4のロックコンフリク
トは10/20=0.5となり、分割しきい値0.5の
条件を満たす。
【0054】そこで、図5に示すように、Bツリーb4
を2つのBツリーb4’及びb5に均等に分割するとと
もに、分割処理を行ったBツリーb4’及びb5のロッ
クコンフリクト回数を「0」にする。
【0055】すなわち、キー値「100」、「10
1」、「110」及び「111」に対応していたBツリ
ーb4を、キー値「100」及び「101」に対応する
Bツリーb4’と、キー値「110」及び「111」に
対応するBツリーb5に分割しているのである。
【0056】なお、上記分割処理は、クライアントがB
ツリーb4に対して行うアクセスが終了した時点から実
施されるとともに、この分割処理が終了した時点でBツ
リーb4のロックビットが解除される。この実施例で
は、Bツリーb4をBツリーb4’及びBツリーb5に
分割されるよう構成しているため、Bツリーb4の解消
とともにBツリーb4のロックビットについても解除さ
れる。
【0057】このようにして、ロックコンフリクトの多
いBツリーを分割することにより、ロックコンフリクト
の発生を一様化できることになる。
【0058】なお、上記具体例においては、Bツリーb
4を均等に分割することとしたが、各キー値のアクセス
頻度を考慮して、ロックコンフリクトが均等化するよう
に、分割処理を行うことも可能である。
【0059】上述してきたように、本実施例では、アク
セス拒否部10cによりロックビットがオンにされたB
ツリーにアクセス要求を行うごとに、インデックス記憶
部10bに記憶されたロックコンフリクトの回数を加算
し、このアクセス拒否回数が所定の回数以上となった際
に、インデックス分割部10dを用いて該ツリーを分割
するよう構成したので、データベースの記憶した各デー
タのロックコンフリクト確率を一様にすることができ
る。
【0060】また、分配表Tにおいて、各Bツリーごと
のロックコンフリクト回数を記憶するよう構成したの
で、各Bツリーの使用頻度を把握することができる。
【0061】なお、本実施例においては、データの検索
に用いるインデックスをBツリーにより構成することと
したが、本発明はこれに限定されるものではなく、他の
ツリーを用いることもできる。
【0062】
【発明の効果】本発明によれば、アクセス拒否手段によ
りアクセス拒否状態の保持されたツリー構造にアクセス
要求がなされるごとに、記憶手段に記憶されたアクセス
要求が拒否された回数を加算し、この回数に基づいて、
分割手段を用いて該ツリー構造を分割するよう構成した
ので、データベースの記憶した各データのロックコンフ
リクト確率を一様にすることができる。
【0063】また、記憶手段において、各Bツリー構造
ごとのアクセス拒否回数を記憶するよう構成したので、
各ツリー構造の使用頻度を把握することができる。
【図面の簡単な説明】
【図1】本実施例で用いるネットワークの全体構成及び
データベース管理装置の構成を示すブロック図。
【図2】図1に示すインデックス記憶部の構成を示すブ
ロック図。
【図3】図1に示すデータベース管理装置が行うアクセ
ス処理手順を示すフローチャート。
【図4】図1に示すインデックス記憶部に設けられた分
配表の分割処理前の一例を示す図。
【図5】図1に示すインデックス記憶部に設けられた分
配表の分割処理後の一例を示す図。
【符号の説明】
10 データベース管理装置、 10a アクセス処理
部、10b インデックス記憶部、 10c アクセス
拒否部、10d インデックス分割部、 11 データ
ベース、12 LAN、 13,14 クライアント、
T 分配表、b1,b2,b3,b4,b4’,b5
Bツリー

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のクライアントから入力されたキー
    値に対応するツリー構造を複数のツリー構造から選択
    し、該選択されたツリー構造を辿って該当するデータを
    データベースからアクセスするデータベース管理装置に
    おいて、 前記データベースが有するデータをアクセスする際に、
    前記ツリー構造をアクセス拒否状態に保持するアクセス
    拒否手段と、 前記アクセス拒否手段により前記複数のクライアントか
    らのアクセス要求が拒否された回数を前記ツリー構造ご
    とに記憶する記憶手段と、 前記記憶手段に記憶されたアクセス拒否回数に基づい
    て、前記ツリー構造を分割する分割手段とを具備するこ
    とを特徴とするデータベース管理装置。
JP5337588A 1993-12-28 1993-12-28 データベース管理装置 Pending JPH07200376A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5337588A JPH07200376A (ja) 1993-12-28 1993-12-28 データベース管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5337588A JPH07200376A (ja) 1993-12-28 1993-12-28 データベース管理装置

Publications (1)

Publication Number Publication Date
JPH07200376A true JPH07200376A (ja) 1995-08-04

Family

ID=18310065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5337588A Pending JPH07200376A (ja) 1993-12-28 1993-12-28 データベース管理装置

Country Status (1)

Country Link
JP (1) JPH07200376A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100328129B1 (ko) * 1999-12-27 2002-03-12 오길록 메모리 계층 구조를 고려한 압축, 탐색 및 새로운 항목삽입 방법
US9275091B2 (en) 2011-02-22 2016-03-01 Nec Corporation Database management device and database management method
WO2016157492A1 (ja) * 2015-04-02 2016-10-06 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
US9594785B2 (en) 2010-12-16 2017-03-14 Nec Corporation Database management device and database management method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100328129B1 (ko) * 1999-12-27 2002-03-12 오길록 메모리 계층 구조를 고려한 압축, 탐색 및 새로운 항목삽입 방법
US9594785B2 (en) 2010-12-16 2017-03-14 Nec Corporation Database management device and database management method
US9275091B2 (en) 2011-02-22 2016-03-01 Nec Corporation Database management device and database management method
WO2016157492A1 (ja) * 2015-04-02 2016-10-06 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
JPWO2016157492A1 (ja) * 2015-04-02 2017-11-24 株式会社日立製作所 共有リソース更新装置及び共有リソース更新方法
US10838949B2 (en) 2015-04-02 2020-11-17 Hitachi, Ltd. Shared resource update apparatus and shared resource update method

Similar Documents

Publication Publication Date Title
US7885967B2 (en) Management of large dynamic tables
Mullin A second look at Bloom filters
US7191195B2 (en) Distributed file sharing system and a file access control method of efficiently searching for access rights
US5333318A (en) Creating and searching a quad linked list in a trunked communication system
US11163749B2 (en) Managing multiple locks for data set members in a data set index
US7792860B2 (en) System for change notification and persistent caching of dynamically computed membership of rules-based lists in LDAP
JPH04130950A (ja) ネットワークシステム
US11375015B2 (en) Dynamic routing of file system objects
US20060004875A1 (en) CMDB schema
EP2176777B1 (en) Processing write requests with server having global knowledge
US7248691B1 (en) Hashing using multiple sub-hashes
US20130091112A1 (en) Managing a temporal key property in a database management system
GB2459551A (en) Federated Configuration Management Database for reconciling attribute information
JPH07200376A (ja) データベース管理装置
WO2008147653A1 (en) Identifying non-orthogonal roles in a role based access control system
Liu et al. Par-BF: A parallel partitioned Bloom filter for dynamic data sets
Dillinger et al. Optimal uncoordinated unique ids
US11086689B2 (en) Method for automatically and dynamically assigning the responsibility for tasks to the available computing components in a highly distributed data-processing system
CN115480710A (zh) 数据存储方法及装置
CN111782634B (zh) 数据分布式存储方法、装置、电子设备及存储介质
US7340463B1 (en) Caching permissions information
CN109542631A (zh) 一种备机的重演方法、装置、服务器及存储介质
JPH0687228B2 (ja) アクセス制御方法および記憶手段管理方法
US7191337B2 (en) Apparatus for wildcarded security policy and method therefor
US11928612B1 (en) Fixing a changing weave using a finalize node