JPS63191226A - B↑+tree上における同時実行制御方式 - Google Patents
B↑+tree上における同時実行制御方式Info
- Publication number
- JPS63191226A JPS63191226A JP62024298A JP2429887A JPS63191226A JP S63191226 A JPS63191226 A JP S63191226A JP 62024298 A JP62024298 A JP 62024298A JP 2429887 A JP2429887 A JP 2429887A JP S63191226 A JPS63191226 A JP S63191226A
- Authority
- JP
- Japan
- Prior art keywords
- 1eaf
- 1ock
- tree
- node
- key
- 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
Links
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 11
- 230000037430 deletion Effects 0.000 abstract description 5
- 238000012217 deletion Methods 0.000 abstract description 5
- 230000037431 insertion Effects 0.000 abstract 1
- 238000003780 insertion Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 2
- 101100136092 Drosophila melanogaster peng gene Proteins 0.000 description 1
- 241000237858 Gastropoda Species 0.000 description 1
- 241000219492 Quercus Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明は、コンピュータ内におけるB ”tree上の
同時実行制御方式に関する。
同時実行制御方式に関する。
従来技術
]ンピュータ上でのデータの記憶方法として、ハツシュ
、B木等の各種方法が考えられている。
、B木等の各種方法が考えられている。
B +tree上の同時実行制御としては、LHIIA
MN、P、L。
MN、P、L。
and YAO,S、B、1Efficiant
locking for concurrento
peration on [5−Traes、轟C
M TODS 6.4 (Dec 1981)
650−670.に全てのノードに横方向のリンクをは
ったB ”tree上での制御が述べられているが、こ
れは双方向のリンクには拡張できない、また、MOND
。
locking for concurrento
peration on [5−Traes、轟C
M TODS 6.4 (Dec 1981)
650−670.に全てのノードに横方向のリンクをは
ったB ”tree上での制御が述べられているが、こ
れは双方向のリンクには拡張できない、また、MOND
。
Y and RAZ Y、 Coneurreney
control in B”−treesdatOba
se using preparatory oper
ations、Proc。
control in B”−treesdatOba
se using preparatory oper
ations、Proc。
of VLDll 85.(1985)、331−33
4.にB ”treeの変形の際の制御が述べられてい
るが、これは葉部とその他を2つの独立した制御で行な
っている。また。
4.にB ”treeの変形の際の制御が述べられてい
るが、これは葉部とその他を2つの独立した制御で行な
っている。また。
類似のアルゴリズムを使用した商品としてはVSAM(
IBM)があるが、これは片方向のリンクである上に削
除を行なっても木全体の容量が減少しないところが欠点
!ある。
IBM)があるが、これは片方向のリンクである上に削
除を行なっても木全体の容量が減少しないところが欠点
!ある。
上述のように、従来は、Imが片方向のリンクした持っ
ていないかあるいは葉上の制御とその他の部分の制御を
分けて行なっていた。
ていないかあるいは葉上の制御とその他の部分の制御を
分けて行なっていた。
目 的
本発明は、上述のごとき実情に鑑みてなされたもので、
特に、葉に双方向の横リンクをもつB +tree上で
の統合された同時実行制御を行なうことを目的としてな
されたものである。
特に、葉に双方向の横リンクをもつB +tree上で
の統合された同時実行制御を行なうことを目的としてな
されたものである。
構 成
本発明は、上記目的を達成するために、葉上に横方向に
双方向のリンクをもつB千木上での同時実行制御を行な
う方式において、変更の対象となる部分木の両脇の葉を
変更しなければいけない場合に、部分木に対するロック
のみならず、部分木の必要な側を根から葉へおりる形で
のロックを行い、このロックが最終的に該当葉の両脇の
葉をロックするために用いられることを特徴としたもの
である。以下、本発明の実施例に基づい−て説明する。
双方向のリンクをもつB千木上での同時実行制御を行な
う方式において、変更の対象となる部分木の両脇の葉を
変更しなければいけない場合に、部分木に対するロック
のみならず、部分木の必要な側を根から葉へおりる形で
のロックを行い、このロックが最終的に該当葉の両脇の
葉をロックするために用いられることを特徴としたもの
である。以下、本発明の実施例に基づい−て説明する。
以下の説明において、葉部に双方向の横リンクを持つ変
形B土木を考え、これをDL−B木と呼ぶ。本発明は、
この木の上での挿入、削除、検索。
形B土木を考え、これをDL−B木と呼ぶ。本発明は、
この木の上での挿入、削除、検索。
順次読み出し、の4つの操作のアルゴリズムによって構
成される。
成される。
第2図は、B ”treeを示す図で、Aは更新にいく
道筋、Bは更新する部分木の根の両脇のノードに常にロ
ックがかけられている状態を示し1図示のように、葉に
まで到達している。
道筋、Bは更新する部分木の根の両脇のノードに常にロ
ックがかけられている状態を示し1図示のように、葉に
まで到達している。
第1図は、本発明を説明するためのB +tree図で
、本発明は、図示のB +treeの1eaf上に順次
検索のためのポインタをもったtree上における同時
実行制御を行うものである。 5equential
readにはカーソルと呼ばれる1eaf上のkeyを
さすポインタを用いる。このカーソルを移動させること
により、keyを順次読んでいく。また、この方法によ
る5earchはあるkeyの値より大きいもので最小
のkeyという検索が可能となっている。1nsert
ionは1−safeでない(1個挿入するとあふれが
おこる)口odeは先に分割する方法により上から下へ
nodeを順次、変更する形をとっている。
、本発明は、図示のB +treeの1eaf上に順次
検索のためのポインタをもったtree上における同時
実行制御を行うものである。 5equential
readにはカーソルと呼ばれる1eaf上のkeyを
さすポインタを用いる。このカーソルを移動させること
により、keyを順次読んでいく。また、この方法によ
る5earchはあるkeyの値より大きいもので最小
のkeyという検索が可能となっている。1nsert
ionは1−safeでない(1個挿入するとあふれが
おこる)口odeは先に分割する方法により上から下へ
nodeを順次、変更する形をとっている。
本発明において対象となるB +treeの構造は、以
下の通りである。
下の通りである。
1 、1eafからrootまでの距離(h)は一定で
ある。
ある。
2 、 rootと1eaf以外のnodeは最低でも
keyを(k−1)個、son % k個もつ。
keyを(k−1)個、son % k個もつ。
3.1eaf以外のnodeは最高でもkeyを(2に
+1)個、sonを(2に+2)個もつ。
+1)個、sonを(2に+2)個もつ。
4 、 rootは1eafであるか、又は最低1個の
key 。
key 。
2個のsonをもつ。
5 、1eafには最低1個、最大(2に+1)個のデ
ータをもつ、また1eaf以外にデータはもっていない
。
ータをもつ、また1eaf以外にデータはもっていない
。
6 、1eafは隣接する両方の1eafへのポインタ
をもっている。
をもっている。
7、全てのnon 1eaf nodeは第2図に示し
た形をしており。
た形をしており。
Pnk、P、−KnPn
で表わされる。ただし、Piはsonをさしている。ま
た、Piのさす5ubtrsa T内のkeyはこのn
ode上のkeyと以下の関係にある。
た、Piのさす5ubtrsa T内のkeyはこのn
ode上のkeyと以下の関係にある。
Ki<min key of T<max k
ey of T≦K1118 、1eaf内にある
keyの値に重複はない。
ey of T≦K1118 、1eaf内にある
keyの値に重複はない。
B +treeへのアクセスの種類は次の通りである。
1 、5earch
・与えられたkeyと等しいkeyを5earch・与
えられたkeyより大きいkeyの中で最小のkey
tt 5earch ・与えられたkeyより小きいkeyの中で最小のke
y t&5earch 2、read ・カーソルのさしている1つ先のkey、dataをr
eadする。
えられたkeyより大きいkeyの中で最小のkey
tt 5earch ・与えられたkeyより小きいkeyの中で最小のke
y t&5earch 2、read ・カーソルのさしている1つ先のkey、dataをr
eadする。
・カーソルのさしている1つ手前の1(6y、data
をraadする。
をraadする。
3.1nSart
・1(6y、dataを与えてB ”treeに1ns
ertする。
ertする。
4、delete
・keyを与えてそのkeyと等しい1(ey、dat
aの組をdeleteする。
aの組をdeleteする。
ロックモードの種類はρ、σ、α、ξの4種類があり、
第3図に示したグラフのcompatibilityを
もち、線で結合されているのがcompatibleで
ある。
第3図に示したグラフのcompatibilityを
もち、線で結合されているのがcompatibleで
ある。
表に書くと表1のようになる。
表ま
ただし、0はcompatibilityあり、×はc
ompatibilityなしである。
ompatibilityなしである。
上記ロックモードρ、σ、α、ξの意味は次の通りであ
る。
る。
p : readerが用いる
1eaf node、 non 1eaf nodeと
もこのmodeで1ockする。 cursorがのっ
ている1eafはこのmodeでLockされる。各n
ode内のkey、data、子へのpointerを
読むことができる。このLockmodeで横へのpo
interを扱うことはできない。
もこのmodeで1ockする。 cursorがのっ
ている1eafはこのmodeでLockされる。各n
ode内のkey、data、子へのpointerを
読むことができる。このLockmodeで横へのpo
interを扱うことはできない。
a : readerが5equential rea
dをする際に用いる1eaf node内の横へのポイ
ンタを読みとる前にこのmodeで1eaf node
をLock シ、カーソルを先の1eatに進めた後、
このLockをはずす。
dをする際に用いる1eaf node内の横へのポイ
ンタを読みとる前にこのmodeで1eaf node
をLock シ、カーソルを先の1eatに進めた後、
このLockをはずす。
a : writerが1eaf nodeの横へのポ
インタを書き直す際に用いる。ポインタを書き直す1e
afnodeをこのll1odeで1ock L7、a
1ockを排他することにより変更個所へのread
erの侵入をblockする。これはポインタを書き直
すだけなので、1eaf内の要素を読むLock即ちρ
Lockとは共存できる。通常は、1eafのみにかが
るLock modeであるが、deletionの場
合はnonleafにもかかる。
インタを書き直す際に用いる。ポインタを書き直す1e
afnodeをこのll1odeで1ock L7、a
1ockを排他することにより変更個所へのread
erの侵入をblockする。これはポインタを書き直
すだけなので、1eaf内の要素を読むLock即ちρ
Lockとは共存できる。通常は、1eafのみにかが
るLock modeであるが、deletionの場
合はnonleafにもかかる。
ξ: nodeのkey、data、pointer等
を変更する時に用いられる。 writarが1eaf
mode、 non leafmode両方にかける
。
を変更する時に用いられる。 writarが1eaf
mode、 non leafmode両方にかける
。
5earchのLockについては、与えられたkey
と等しいものを検索にいく場合と、与えられたkeyよ
りも大きいkeyを検索に行く場合とがあり、以下、そ
れぞれについて説明する。
と等しいものを検索にいく場合と、与えられたkeyよ
りも大きいkeyを検索に行く場合とがあり、以下、そ
れぞれについて説明する。
与えられたkeと等しいものを検索にいく場合1、 r
oot nodeをp 1ockする。
oot nodeをp 1ockする。
current nodeをrootする。
t、oop:
2、a、 current nodeが1eafの場合
2、a、1 このnodeでkeyを探す。
2、a、1 このnodeでkeyを探す。
found : OKとデータを返す。
NOT found : current nodeの
Lockをはずしerrorを返す。
Lockをはずしerrorを返す。
2、b、 current nodeがnon 1ea
fの場合2、b、1 ki<given key<k
i+1となるiを探す。
fの場合2、b、1 ki<given key<k
i+1となるiを探す。
2、b、2 Piのさすsonをp 1ockする。
2、b、3 current nodeの1ockを
はずす。
はずす。
2、b、4 current nodeを2.b、2
で用いたsonにする。
で用いたsonにする。
2、b、5 goto LOOP。
5earchが成功した後は見つかったkeyを含む1
eafにρ1ockがかかっている。見つかったkey
の上にcursorが設定される。このcursorは
g6qu6ntialreadに使用される。これはk
eyより大きいものを5earchにいく時等も同様で
ある。
eafにρ1ockがかかっている。見つかったkey
の上にcursorが設定される。このcursorは
g6qu6ntialreadに使用される。これはk
eyより大きいものを5earchにいく時等も同様で
ある。
与えられたkeyより大きいkeyを検索しにいく場合
1 、root nodeをp 1ockする。
1 、root nodeをp 1ockする。
current nodeをrootとする。
LOOP:
2、a、 current nodeがnon Lea
fの場合2、a、1. ki<given key≦k
i+ 1となるiを探す。
fの場合2、a、1. ki<given key≦k
i+ 1となるiを探す。
2、a、2. Piのさすsonをp 1ockする
。
。
2、a、3. current nodeの1ockを
はずす。
はずす。
2、a、4. current nodeを2.a、2
で用いたsonにする。
で用いたsonにする。
2、b、5. goto LOOP。
2、b current nodeがA+1eafの場
合2、b、1. このnodeでkeyを探す。
合2、b、1. このnodeでkeyを探す。
foundの場合はOKとデータを返す。
そうでない場合は2.b、2以降を行う。
2、b、2. current nodeをa 1oc
kする。
kする。
2、b、3.次のnodeへのpointerを読む。
pointerがNULLの時は。
今かけているρ、σLockをはずし、errorを返
す。
す。
pointerがNULLでない時は、以下の2.b、
4.以降を行う。
4.以降を行う。
2、b、4.2.b、3で得たpointerのさす1
eaf nodeをρ1ockする。
eaf nodeをρ1ockする。
2.b、5. curr@nt nodsのp 、 a
1ockをはずす。
1ockをはずす。
2、b、6. current nodsを2.b、4
で1ock L/たnodeとする。
で1ock L/たnodeとする。
2、b、7. current node内で最小のk
eyとdataを返す。
eyとdataを返す。
与えら −に・ 魯 いに・ に−場合は2、b
、3.の“凍の”を“手前”に読みかえる。すなわち、
手前のnod・へのpointerを読む。
、3.の“凍の”を“手前”に読みかえる。すなわち、
手前のnod・へのpointerを読む。
2、b、フ、の“最小”を“最大”に読みかえる。すな
わち、 current nod@内の最小のに@yと
dataを返す。
わち、 current nod@内の最小のに@yと
dataを返す。
5equential readの1ockseque
ntial readは5earch及び−5qu@n
tial readによってcursor#設定されて
いる場合に実行することができる* s@quanti
al r@adは以下の3通りの方法がある。
ntial readは5earch及び−5qu@n
tial readによってcursor#設定されて
いる場合に実行することができる* s@quanti
al r@adは以下の3通りの方法がある。
1 、cursorのさしている一ay、data&r
eadする。
eadする。
cursorのさしているkeyを含む1eafには既
にp 1ockがかかうでいるので、 1ockの変更
をせずにそのl@afを読めばよい。
にp 1ockがかかうでいるので、 1ockの変更
をせずにそのl@afを読めばよい。
2 、cursorのさしている次のkey、data
を読む。
を読む。
80次のkeyが同一1eaf内にある場合curso
rのさしているkeyを含む1eafには既にρ1oc
kがかかっているでカーソルを1つ進めてLockの変
更をせずに1eafを読む。
rのさしているkeyを含む1eafには既にρ1oc
kがかかっているでカーソルを1つ進めてLockの変
更をせずに1eafを読む。
51次のkeyが同一1eaf内にない場合1、cur
sorのさしているkeyを含む1eafにσ1ock
をかける。
sorのさしているkeyを含む1eafにσ1ock
をかける。
2、これを用いて次の1eaf nodeへのpoin
terを読む。
terを読む。
a、 pointerがNULLの場合かかっているσ
、ρ両Lockをはずし、end of fileを返
す。
、ρ両Lockをはずし、end of fileを返
す。
b、 pointerがNULLでない場合1、そのp
ointerのさす1eafにp 1ockをかける。
ointerのさす1eafにp 1ockをかける。
2、現在の1eafのσ、ρ両Lockをはずす。
3、cursorを次の1eafの先頭に移し、そこの
key、dataを返す。
key、dataを返す。
3 、 cursorのさしている手前のkey、da
taを読む。
taを読む。
2.0“次”を“手tlI”に読みかえることによって
同機に行う、すなわち、 eur@(IFのさしている
手前の−・y、dataを読む。
同機に行う、すなわち、 eur@(IFのさしている
手前の−・y、dataを読む。
1nsertの1Oek
1 、 rootl i 1ockする。
curr@nt nod−をrootとする・LOOP
: La、curr@nt nodsがnon 1eafで
かつsonがwon l・・fの場合 La、1. ki(giv@n key≦ki11とな
るiを探す。
: La、curr@nt nodsがnon 1eafで
かつsonがwon l・・fの場合 La、1. ki(giv@n key≦ki11とな
るiを探す。
2、aJe Plのさすsonを電1ockする。
La*LΦsonが1−safe即ち。
nod・内の翫・Vの数く2■の場合
a、curr@et 5odsの1ockをはずす。
b、curr@et nodeをPiが示すsonにす
る。
る。
C0梶oto LOOP*
■1−saf・でない場合
―、第4■に示すように、となり(図中にAにて示す)
のnodeにξLockをかける。
のnodeにξLockをかける。
b、となりとsonとがbalancingできるなら
ば、となり、son、currentを書き直してba
lanceする。そうでなければ、sonを2つのno
de Lニー 5plit Ll、currentを書
き直す。
ば、となり、son、currentを書き直してba
lanceする。そうでなければ、sonを2つのno
de Lニー 5plit Ll、currentを書
き直す。
c、5plitないし、 balancaしたnode
に対し、1nsertするkeyが含まれるnodeの
方を改めてsonとする。
に対し、1nsertするkeyが含まれるnodeの
方を改めてsonとする。
1、 sonが、father nodeの右端に位置
する場合(第5図) ・uncle nodeが存在して5ide 1ock
がかかっていればその左端の5onttside 1o
ckする。
する場合(第5図) ・uncle nodeが存在して5ide 1ock
がかかっていればその左端の5onttside 1o
ckする。
・uncle nodeの1ockをはずす。
afather nodeのLockをはずし、cur
rentをsonにする。
rentをsonにする。
2、 sonがfather nodaの右端でない場
合(第6図)・uncla nodeに5ide 1o
ckがかかっていればそれをはずす。
合(第6図)・uncla nodeに5ide 1o
ckがかかっていればそれをはずす。
” sonの右側のnodeに5ide 1ockをか
ける。
ける。
・fatherのLockをはずし、currentを
sonにする・これによって、sonがtreeの最右
端でない限り、 current nodeのとなりの
nodsに5ide 1ockがかかっている状態でr
ootから1eafに1ockをかけていく。
sonにする・これによって、sonがtreeの最右
端でない限り、 current nodeのとなりの
nodsに5ide 1ockがかかっている状態でr
ootから1eafに1ockをかけていく。
sonが最右端をおりていく場合(第7図)は、 5i
deLockはかからない。
deLockはかからない。
d、son以外のnodeの1ockをはずす。
e、currentをsonにする・
f、goto LOOP
2、b、current nodeが、non 1ea
fでかつsonが1eafの場合 2、b、1. ki<given key≦ki+ 1
となるiを探す。
fでかつsonが1eafの場合 2、b、1. ki<given key≦ki+ 1
となるiを探す。
2、b、2. PLのさす1eafをp 1ockする
。
。
この1eafをcurrent 1eafとよぶ。
2、b、3. currant 1eafが1−saf
eの場合■、2.b、2のρをはずしcurrent
1eafにξLockをかける。
eの場合■、2.b、2のρをはずしcurrent
1eafにξLockをかける。
■、 1eafにkey、dataを代入する。
■、1ockを全てはずし、終了する。
Lb*4. current 1eafが1−safe
でない場合■current 1eafの次の1eaf
をcurrentlaaf上のpointerから探し
a 1ockする・■current 1eafのρを
はずし、ξをcurant 1eafにかける。
でない場合■current 1eafの次の1eaf
をcurrentlaaf上のpointerから探し
a 1ockする・■current 1eafのρを
はずし、ξをcurant 1eafにかける。
■第8図(a)に示すcurrent 1eaf■を5
plit L/、第8図(b)に示すように2つの1e
af■、■′にする。 currentnodeを書き
直し、新たな1eafをさす。
plit L/、第8図(b)に示すように2つの1e
af■、■′にする。 currentnodeを書き
直し、新たな1eafをさす。
◎の手前の1eafへのポインタを書き直す。
(ただし、この時、Nにはξ、Bにはξ、Cにはαの1
ockがかかっている。) ■non 1eaf node、上の全ての1ock、
次の1eaf、current 1eafにかかつてい
る1ockをはずし、終了する。
ockがかかっている。) ■non 1eaf node、上の全ての1ock、
次の1eaf、current 1eafにかかつてい
る1ockをはずし、終了する。
daletionの1ock
1、rootをξLockする。
current nodeをrootとする。
LOOP:
2、a、current nodeがnon 1aaf
でかつsonがnonleafの場合 2、a、1. ki<given key:ii;ki
+1となるiを探す。
でかつsonがnonleafの場合 2、a、1. ki<given key:ii;ki
+1となるiを探す。
2、a、2.Piのさす80nをξ1ockする。
2、a、3.■sonがd−safeでない即ちnod
e内のkeyの敷く−の場合 a、となりのnodeにξ1ockをかける。
e内のkeyの敷く−の場合 a、となりのnodeにξ1ockをかける。
b、となりとsonとがbalancingできるなら
ばbalance Ll、そうでなければとなりとso
nを併合する。
ばbalance Ll、そうでなければとなりとso
nを併合する。
C0併合ないし、balanca L/たnodeに対
し。
し。
deleteするkeyが含まれるnodsの方を改め
てsonとする。
てsonとする。
2、a、4.■sonがfather nodsの最も
右のsonの場合 第9図に示すように、右側に5ide Lockが既にあるならば、そのsonのうちの最も左
のsonを5ide 1ockする。
右のsonの場合 第9図に示すように、右側に5ide Lockが既にあるならば、そのsonのうちの最も左
のsonを5ide 1ockする。
2、a、4.■■でない場合
第10図に示すように、5ida 1ockが既にある
場合はそれをはずす。
場合はそれをはずす。
sonの右となりのnodeに5ide 1ockをか
ける。
ける。
2、a、5.左側の5ide 1ockについて2.a
、4と同じことをする。
、4と同じことをする。
2、a、6. fatherの1ockをはずす。
2、a、7. current nodeをsonにす
る。
る。
2、a、8. @oto LOOP:
2、b、 sonが1eafでのとき。
2、b、1. sonを探してp 1ockする。
2、b、2. non上にdeleteするkeyが存
在しない場はエラーで戻る。
在しない場はエラーで戻る。
2、b、3. sonの要素が1より多い場合■son
にξ1ockをかける。
にξ1ockをかける。
■deletel
■全ての1oakをはずして戻る。
2、b、4. sonの要素が1の場合■第11図に示
したように、 sonの左側の1eafをa 1ock
する。
したように、 sonの左側の1eafをa 1ock
する。
■sonの右側の1eafをa 1ockする。
(ただし、■、■の場合、 α1ockする1aaf
は5idelockのかかっているnodeのsonか
current nodeのsonとなっている。) ■sonをξ1ockする。
は5idelockのかかっているnodeのsonか
current nodeのsonとなっている。) ■sonをξ1ockする。
■delete L/て1inkをつなぎ直す。
■全ての1ockをはずして戻る。
夏−一米
以上の説明から明らかなように1本発明によると、アル
ゴリズムをデータベースに応用すると順へ読み出しと更
新の同時実行制御が統合して行うことができ、デッドロ
ックの可能性を下げることができる。
ゴリズムをデータベースに応用すると順へ読み出しと更
新の同時実行制御が統合して行うことができ、デッドロ
ックの可能性を下げることができる。
以下に、各補Wi (Lem+*a)又は定理(The
ore+*)に対する証明(Proof)の形で、本発
明の作用効果について更に詳細に説明する。
ore+*)に対する証明(Proof)の形で、本発
明の作用効果について更に詳細に説明する。
■、相互作用の正当性に関して。
(CorrectnesSof 1nteractio
n)Lea+ma 1゜ 1nsartar同士及び1nserterとdale
ter、 deleter同士が同時に動いた場合、結
果が保証される。
n)Lea+ma 1゜ 1nsartar同士及び1nserterとdale
ter、 deleter同士が同時に動いた場合、結
果が保証される。
Proof。
non 1eaf node、hでは変更部分は全てξ
Lockをしているので、複数のプロセスが同時に動い
ても正しく排他される。又、1eaf上のLockもプ
ロセス同士では全て排他されるので更新操作は正しく行
な才)れろ。
Lockをしているので、複数のプロセスが同時に動い
ても正しく排他される。又、1eaf上のLockもプ
ロセス同士では全て排他されるので更新操作は正しく行
な才)れろ。
Lamma 2゜
readerと1nsartarが同時に動いた場合、
結果が保障される。
結果が保障される。
Proof。
1nserterのみがtreeの変更を行なうので、
変更は正しく行なわれる。readerのカーソルの動
きが正しいことを確めればよい。
変更は正しく行なわれる。readerのカーソルの動
きが正しいことを確めればよい。
1 、1nsertorによって1eafの分割がおき
ない場合 1.1.カーソルが1nserterの変更する1ea
f上にある場合(第12図) insartarは、その1eafにξLockをかけ
るが、readarが5equential read
によって前又は後ろの1eafにカーソルをうっすまで
その1ockはwaitする。よってreaderは1
niierterが変更する前の1eafを読んでいく
ので正しく前後にカーソルを動かすことができ る。
ない場合 1.1.カーソルが1nserterの変更する1ea
f上にある場合(第12図) insartarは、その1eafにξLockをかけ
るが、readarが5equential read
によって前又は後ろの1eafにカーソルをうっすまで
その1ockはwaitする。よってreaderは1
niierterが変更する前の1eafを読んでいく
ので正しく前後にカーソルを動かすことができ る。
1.2.カーソルが1nsertorの変更する1ea
fのとなりの1eafにいる場合(第13[)問題とな
るのは1nsertarが1eafをかきかえようとξ
Lockをかけている間にreaderが当該1eaf
にρLockをかけにいってwait L+た場合、そ
の他の場合は互いに干渉しあわないか、1.1の場合に
帰着する。この場合も1nserterが変更した後の
1eafの中の最小(大)のkeyをreaderが読
むことになり、カーソルは正しく動いている。
fのとなりの1eafにいる場合(第13[)問題とな
るのは1nsertarが1eafをかきかえようとξ
Lockをかけている間にreaderが当該1eaf
にρLockをかけにいってwait L+た場合、そ
の他の場合は互いに干渉しあわないか、1.1の場合に
帰着する。この場合も1nserterが変更した後の
1eafの中の最小(大)のkeyをreaderが読
むことになり、カーソルは正しく動いている。
2 、 ingarterによって1eafの分割がお
きる場合(第14図) 2.1.カーソルが1nserterの変更する1ea
f上にある場合 1nserterがかける1ockはαとξ、 a 1
ockとp 1ockはcompatibleであり、
となりの1eafはpointer以外書き直さないの
で1.1の場合に帰着されるのでOK。
きる場合(第14図) 2.1.カーソルが1nserterの変更する1ea
f上にある場合 1nserterがかける1ockはαとξ、 a 1
ockとp 1ockはcompatibleであり、
となりの1eafはpointer以外書き直さないの
で1.1の場合に帰着されるのでOK。
2.2.カーソルが1nsertsrの変更する1ea
fの手前にあってカーソルが正方向に進む場合(第15
図) inssrterがξ1ockをかける前にreade
rが、変更する1eafにp 1ockをかけた場合は
2.1に帰着される。よって、1nserterがξ1
ockをかけた後、readerが当1eafにρ1o
ckをかけ、てwait している場合のみを考えれば
よい、この場合も、 1nsertion ruleに
よりkeyの順がB’B”Cとなっているので、B′の
中の最小のkeyを読むことにより、■の最大のkey
の′″次のu k e yを読むことができる。よって
、カーソルは正しく動く。
fの手前にあってカーソルが正方向に進む場合(第15
図) inssrterがξ1ockをかける前にreade
rが、変更する1eafにp 1ockをかけた場合は
2.1に帰着される。よって、1nserterがξ1
ockをかけた後、readerが当1eafにρ1o
ckをかけ、てwait している場合のみを考えれば
よい、この場合も、 1nsertion ruleに
よりkeyの順がB’B”Cとなっているので、B′の
中の最小のkeyを読むことにより、■の最大のkey
の′″次のu k e yを読むことができる。よって
、カーソルは正しく動く。
2.3.カーソルが1nserterの変更する1ea
fの後ろにあってカーソルが逆方向に進む場合 2.3,1.1nserterがξLockをかける前
にreaderがρ1ockを変更する1eafにかけ
る場合2.1の場合に帰着するので0に。
fの後ろにあってカーソルが逆方向に進む場合 2.3,1.1nserterがξLockをかける前
にreaderがρ1ockを変更する1eafにかけ
る場合2.1の場合に帰着するので0に。
2.3,2.ingerterがξ1ockをかけた後
にreaderがρ1ockを変更する1eafにかけ
る場合(第16図) 2.3.3.1nserterが右どなりの1eafに
a 1ockをかける前にreaderがσLockを
かけた場合1nsarterはa 1ockでwait
になり、readerのσLockがはずれた後は2.
1の場合に帰着するのでOK。
にreaderがρ1ockを変更する1eafにかけ
る場合(第16図) 2.3.3.1nserterが右どなりの1eafに
a 1ockをかける前にreaderがσLockを
かけた場合1nsarterはa 1ockでwait
になり、readerのσLockがはずれた後は2.
1の場合に帰着するのでOK。
Lemma 3゜
deleterとreaderが同時に動いた場合、結
果が保障される。
果が保障される。
Proof。
1eatがdeleteされない場合は明らか、 1e
atがdeleteされる場合はLemma 2の2.
1,2.3のケースと同様に正しいことがいえる。
atがdeleteされる場合はLemma 2の2.
1,2.3のケースと同様に正しいことがいえる。
Le+uia 4゜
1nserter 、 delaterと5aarch
arが同時に動いた場合、結果が保証される。
arが同時に動いた場合、結果が保証される。
Proof。
1nserter及びdeleterと5earcha
rが共にnonleaf nodeにアクセスしている
間はLemma 1の場合と同様である6問題は1ea
f node上にある場合であるが、この場合、1ea
f上においては、 5earcherはreaderと
同一の動きをするのでLamma2により結果が保証さ
れる。
rが共にnonleaf nodeにアクセスしている
間はLemma 1の場合と同様である6問題は1ea
f node上にある場合であるが、この場合、1ea
f上においては、 5earcherはreaderと
同一の動きをするのでLamma2により結果が保証さ
れる。
Theoram
D L −Btree上における1nsertion、
deletion。
deletion。
reading、searchingは同時実行によっ
ても結果が保証される。
ても結果が保証される。
Proof。
前述のLemmaより以下の部分の結果が保証されてい
る。
る。
A、B、C,はいずれも変更を伴わず、がっがける1o
ckが全てcompatiblaなので全く干渉しあわ
ない、よって同時に実行しても単独で実行したのと同一
結果が得られる。よって全ての組み合せにおいて結果が
保証されたことになる。
ckが全てcompatiblaなので全く干渉しあわ
ない、よって同時に実行しても単独で実行したのと同一
結果が得られる。よって全ての組み合せにおいて結果が
保証されたことになる。
■ デッドロックフリーであること
(Free from dead lock)Lemm
a 1゜ 5earch−search、 read−searc
h、 read−readは全てdaad 1ock
freeである。
a 1゜ 5earch−search、 read−searc
h、 read−readは全てdaad 1ock
freeである。
Proof。
5earch 、 raadによってかかる1ockは
、ρとσのみであり、全てcompatiblgである
。よってwaitが起こらないのでdead 1ock
freeである。
、ρとσのみであり、全てcompatiblgである
。よってwaitが起こらないのでdead 1ock
freeである。
La+mma 2゜
non 1eaf上の5earchと1nsertの1
ockはdeadlock freeである。
ockはdeadlock freeである。
Proof。
5earch、1nsertともfather nod
eを1ock L/た後にsonを1ock している
、また、rootに最初にLockをかけている。よっ
てdead 1ock freeとなる。
eを1ock L/た後にsonを1ock している
、また、rootに最初にLockをかけている。よっ
てdead 1ock freeとなる。
Lamma 3゜
5earchが1eafに最初にかけるLockがwa
itとなって生じるdead 1ockはない。
itとなって生じるdead 1ockはない。
Proof。
5earchが最初に1eafにかけるLockはp
1ockであり、これとcompatibleでないL
ockはξLockのみである(第17図)、よってp
1ockがwaitするためには、1nsertar
によって1eafにξLockがかが委必要がある。ま
たfather nodeは5earchorによりp
1ockがかかっている。よって1nsarterが
fatherにξ1ockをかけていることはない*
1nserterの1ockの定義からfatharに
ξ1ockがかからずsonにかかっているのはson
が1−safeである場合か、splittingが終
了してfather 1ockがはずされた瞬間の2通
りのみである。よってこの1n−sarterは以降何
の1ockも要求しないので、dead 1ockは生
じない。
1ockであり、これとcompatibleでないL
ockはξLockのみである(第17図)、よってp
1ockがwaitするためには、1nsertar
によって1eafにξLockがかが委必要がある。ま
たfather nodeは5earchorによりp
1ockがかかっている。よって1nsarterが
fatherにξ1ockをかけていることはない*
1nserterの1ockの定義からfatharに
ξ1ockがかからずsonにかかっているのはson
が1−safeである場合か、splittingが終
了してfather 1ockがはずされた瞬間の2通
りのみである。よってこの1n−sarterは以降何
の1ockも要求しないので、dead 1ockは生
じない。
Les+a+a 4゜
readarとnon 1eaf nodeのLock
が全てはずれた後の5earcherは同一のロックメ
カニズムをもつ。
が全てはずれた後の5earcherは同一のロックメ
カニズムをもつ。
Proof。
5earchとreadの定義より明らかである。
Le■鵬a 5゜
1nsert同士はdead 1ock freeであ
る。
る。
Proof。
non 1eaf上の1ockはLamma 2と同様
にdead 1ockfree、また、1eaf分割の
起きない場合も同様にdead 1ock freeで
ある0問題となるのは両方が共に1eaf分割をおこし
、かつ、となりあった1eafを分割した場合である(
第18図)。
にdead 1ockfree、また、1eaf分割の
起きない場合も同様にdead 1ock freeで
ある0問題となるのは両方が共に1eaf分割をおこし
、かつ、となりあった1eafを分割した場合である(
第18図)。
この場合、
1nserter aは■−ξ、D−a、E−a、D−
ξ1nsarter bは■−ξ、E−a、F−a、E
−ξというLockをこの順でかける。
ξ1nsarter bは■−ξ、E−a、F−a、E
−ξというLockをこの順でかける。
互いに干渉しあうのは、 1safE上のLockのみ
であり、表2の3つの場合が考えられる。
であり、表2の3つの場合が考えられる。
表2
1は、bがwaitするがdead 1ockは生じな
い。
い。
2は、bのσ→ξがaのα1ockより先に行われるの
でaがwait Llてうまく動き、 dead 1o
ckは生じない。
でaがwait Llてうまく動き、 dead 1o
ckは生じない。
3は、aがwaitするがdead 1ockは生じな
い。
い。
よって1niarter同士はdead 1ockを生
じない。
じない。
Lamma 6゜
1nserterとreaderは、dead 1oc
k freeである。
k freeである。
Proof。
問題となるのは1eaf上のLockのみである。
■1nsertarが1eaf分割を起こさない場合r
eaderが1nserterと干渉するのは次の通り
である。
eaderが1nserterと干渉するのは次の通り
である。
1、カーソルが1nsertする1eaf上にある場合
(第19図) これは、カーソルが前後に動くことによりLockがは
ずれるので、 dead 1ockを生じない。
(第19図) これは、カーソルが前後に動くことによりLockがは
ずれるので、 dead 1ockを生じない。
a 1ockはρ、σ共にcompatibleなので
1nserterはreaderの動きをさまたげない
。
1nserterはreaderの動きをさまたげない
。
2、カーソルが1nsertするLeafのとなりにい
て、1nsertする1eafに移ってこようとする場
合(第20図) readerのp 1ockが1nserterのξ1
ockが排他しあうだけである。ξLockがかかる前
にplockがかかればlの場合に帰着する。そうでな
ければ、1nsartionが終了するまでreade
rがwaitすることになりdaad 1ockは生じ
ない。
て、1nsertする1eafに移ってこようとする場
合(第20図) readerのp 1ockが1nserterのξ1
ockが排他しあうだけである。ξLockがかかる前
にplockがかかればlの場合に帰着する。そうでな
ければ、1nsartionが終了するまでreade
rがwaitすることになりdaad 1ockは生じ
ない。
■1nsatarが1eaf分割を起こす場合(第21
図)■の場合と異なるのは、以下の2つの場合でその他
は■の場合に帰着する。
図)■の場合と異なるのは、以下の2つの場合でその他
は■の場合に帰着する。
1、readerが前後の1eafから、1nsart
erがα1ockをかけた1eafにカーソルを移す場
合a 1ockとp 1ockはcompatible
なので、waitがおこらない、よってdaad 1o
ck frees2、raaderが1niarter
がa 1ockをかけた1eafからら1nsertす
る1eafにカーソルを移そうとした場合 Lockは以下の順でかかる。
erがα1ockをかけた1eafにカーソルを移す場
合a 1ockとp 1ockはcompatible
なので、waitがおこらない、よってdaad 1o
ck frees2、raaderが1niarter
がa 1ockをかけた1eafからら1nsertす
る1eafにカーソルを移そうとした場合 Lockは以下の順でかかる。
D−αとD−σ、◎−ξと◎−ρが共に排他するが、2
番目のLockを先にかけた方が3番目の1ockをか
けることができるのでdead 1ockになることは
ない。
番目のLockを先にかけた方が3番目の1ockをか
けることができるのでdead 1ockになることは
ない。
Lamma 7゜
1nserterとdeleterはdead 1oc
k freeである。
k freeである。
Proof 。
1eatがdeleteされない場合は明らかa 1e
atがdeleteされる場合も1nserterの場
合と同様に2番目の1ockを先にかけた方が3番目を
かけることができるのでdead 1ock frae
である。
atがdeleteされる場合も1nserterの場
合と同様に2番目の1ockを先にかけた方が3番目を
かけることができるのでdead 1ock frae
である。
Lemma 8゜
1nsarter 、 deleterと5earch
erはdead 1ock freeである。
erはdead 1ock freeである。
Proof。
Lemma 2とLesuea 3により5earch
erが1eafにLockをかけるまではdead 1
ock free、それから先は、Lsmma 4,6
によりdaad 1ock free。
erが1eafにLockをかけるまではdead 1
ock free、それから先は、Lsmma 4,6
によりdaad 1ock free。
Theoram。
read 、 5earch 、 1nsert 、
deleteはどの2つをとつても互いにdead 1
ock freeである。
deleteはどの2つをとつても互いにdead 1
ock freeである。
Proof。
free from dead 1ockのLesma
1,5,6.7より明らかである。
1,5,6.7より明らかである。
第1図は1本発明の詳細な説明するための図、第2図は
、B ”treeの概略図、第3図はロックモードのコ
ンパティビリティを示す図、第4図乃至第8図は、1n
sert 1ockを説明するための図。 第9図〜第11図は、delition 1ockの一
例を説明するための図、第12図乃至第21図は、それ
ぞれ本発明の作用効果を証明するための図である。 第 1r1!A 第 2 図第3図 第41N Ii 5 因 纂6図 !I7図 ME8rI!J 第9図 father 5Ide rocklg 70図 WIO(X 7JIOGK 第 14r1!J ! 75図 第16図 第17図 第18図
、B ”treeの概略図、第3図はロックモードのコ
ンパティビリティを示す図、第4図乃至第8図は、1n
sert 1ockを説明するための図。 第9図〜第11図は、delition 1ockの一
例を説明するための図、第12図乃至第21図は、それ
ぞれ本発明の作用効果を証明するための図である。 第 1r1!A 第 2 図第3図 第41N Ii 5 因 纂6図 !I7図 ME8rI!J 第9図 father 5Ide rocklg 70図 WIO(X 7JIOGK 第 14r1!J ! 75図 第16図 第17図 第18図
Claims (1)
- 葉上に横方向に双方向のリンクをもつB^+木上での同
時実行制御を行なう方式において、変更の対象となる部
分木の両脇の葉を変更しなければいけない場合に、部分
木に対するロックのみならず、部分木の必要な側を根か
ら葉へおりる形でのロックを行い、このロックが最終的
に該当葉の両脇の葉をロックするために用いられること
を特徴とするB^+tree上における同時実行制御方
式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62024298A JPS63191226A (ja) | 1987-02-03 | 1987-02-03 | B↑+tree上における同時実行制御方式 |
US07/778,749 US5119490A (en) | 1987-02-03 | 1991-10-18 | Concurrent processing controlling method and apparatus on B+ tree structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62024298A JPS63191226A (ja) | 1987-02-03 | 1987-02-03 | B↑+tree上における同時実行制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63191226A true JPS63191226A (ja) | 1988-08-08 |
Family
ID=12134261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62024298A Pending JPS63191226A (ja) | 1987-02-03 | 1987-02-03 | B↑+tree上における同時実行制御方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5119490A (ja) |
JP (1) | JPS63191226A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007323153A (ja) * | 2006-05-30 | 2007-12-13 | Nec Corp | インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体 |
WO2013098918A1 (ja) * | 2011-12-26 | 2013-07-04 | 株式会社日立製作所 | データベースシステム及びデータベース管理方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265207A (en) * | 1990-10-03 | 1993-11-23 | Thinking Machines Corporation | Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses |
US5430869A (en) * | 1991-05-29 | 1995-07-04 | Hewlett-Packard Company | System and method for restructuring a B-Tree |
US5307487A (en) * | 1991-10-03 | 1994-04-26 | The United States Of America As Represented By The Secretary Of The Navy | Method of database synchronization with consistency determined by entry and exit counters used on both update and retrieval |
US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
US5440732A (en) * | 1993-02-05 | 1995-08-08 | Digital Equipment Corp., Pat. Law Gr. | Key-range locking with index trees |
WO1995002222A1 (en) * | 1993-07-07 | 1995-01-19 | European Computer-Industry Research Centre Gmbh | Database structures |
US5918224A (en) * | 1995-07-26 | 1999-06-29 | Borland International, Inc. | Client/server database system with methods for providing clients with server-based bi-directional scrolling at the server |
FR2746526B1 (fr) * | 1996-03-25 | 1998-06-05 | Digital Equipment Corp | Procede pour conserver une base de donnees a organisation temporelle et spatiale |
US7487152B1 (en) * | 2000-05-31 | 2009-02-03 | International Business Machines Corporation | Method for efficiently locking resources of a global data repository |
US6944615B2 (en) | 2001-06-28 | 2005-09-13 | International Business Machines Corporation | System and method for avoiding deadlock situations due to pseudo-deleted entries |
US20040260709A1 (en) * | 2003-01-27 | 2004-12-23 | Yohichiroh Matsuno | Merge information provider |
US7562217B2 (en) * | 2003-06-06 | 2009-07-14 | Ricoh Company, Ltd. | Web service provider and authentication service provider |
JP2005100361A (ja) * | 2003-08-26 | 2005-04-14 | Ricoh Co Ltd | ワークフロー機能追加プログラム、電子メールプログラム、ワークフロー管理プログラム、記録媒体、ユーザ端末装置、ワークフロー管理装置、ワークフロー処理方法、ワークフロー管理方法 |
JP4738791B2 (ja) * | 2003-11-12 | 2011-08-03 | 株式会社リコー | サービス提供システム、サービス提供装置、サービス提供方法、サービス提供プログラム、及び記録媒体 |
EP1566744A1 (en) * | 2004-02-19 | 2005-08-24 | Sap Ag | Optimising lock granularity using range locking |
EP1684194A1 (en) * | 2005-01-25 | 2006-07-26 | Sap Ag | A central lock service for database applications |
US20090006402A1 (en) * | 2007-06-28 | 2009-01-01 | Holger Bohle | Methods and systems for the dynamic selection of a locking strategy |
US20100076940A1 (en) * | 2008-09-09 | 2010-03-25 | International Business Machines Corporation | Method for providing maximal concurrency in a tree structure |
US9262463B2 (en) * | 2013-08-05 | 2016-02-16 | International Business Machines Corporation | Managing multiple locks for data set members in a data set index |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2459476B2 (de) * | 1974-12-16 | 1977-01-20 | Gesellschaft für Mathematik und Datenverarbeitung mbH, 5300 Bonn | Schaltungsanordnung fuer nichtzyklische datenpermutationen |
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4606002A (en) * | 1983-05-02 | 1986-08-12 | Wang Laboratories, Inc. | B-tree structured data base using sparse array bit maps to store inverted lists |
-
1987
- 1987-02-03 JP JP62024298A patent/JPS63191226A/ja active Pending
-
1991
- 1991-10-18 US US07/778,749 patent/US5119490A/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007323153A (ja) * | 2006-05-30 | 2007-12-13 | Nec Corp | インデックスファイル検索装置、検索方法、検索プログラム及びこれを記録した記録媒体 |
WO2013098918A1 (ja) * | 2011-12-26 | 2013-07-04 | 株式会社日立製作所 | データベースシステム及びデータベース管理方法 |
JPWO2013098918A1 (ja) * | 2011-12-26 | 2015-04-30 | 株式会社日立製作所 | データベースシステム及びデータベース管理方法 |
US9703829B2 (en) | 2011-12-26 | 2017-07-11 | Hitachi, Ltd. | Database system and database management method |
Also Published As
Publication number | Publication date |
---|---|
US5119490A (en) | 1992-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS63191226A (ja) | B↑+tree上における同時実行制御方式 | |
Bayer | Symmetric binary B-trees: Data structure and maintenance algorithms | |
KR920000395B1 (ko) | 키 레코드 데이타 페칭 및 삽입, 삭제 방법 | |
US5557786A (en) | Threaded, height-balanced binary tree data structure | |
EP0457706A2 (en) | Method and system for processing bill of material and project network data | |
Tarjan | Updating a balanced search tree in O (1) rotations | |
US5832519A (en) | System and method for updating database values without the use of locking operations | |
CN110990404B (zh) | 一种索引数据的处理方法、装置及电子设备 | |
EP0369699A2 (en) | Updating pattern-matching networks | |
Ibarra et al. | Fast parallel language recognition by cellular automata | |
CN112434035B (zh) | 基于机器学习的并发哈希索引数据结构的索引方法及*** | |
Ghosh et al. | Optimal retrieval strategies for carousel conveyors | |
Wang et al. | The concurrent learned indexes for multicore data storage | |
US7185340B1 (en) | Multiphase system and method of performing operations on data structures | |
Krishna et al. | Using Cuckoo Filters to Improve Performance in Object Store-based Very Large Databases | |
US7315862B1 (en) | Concurrent lock-free access to a record by write and read processes | |
KR100709275B1 (ko) | 논 블록킹 검색연산을 위한 알-트리 기반의 동시성 제어방법 | |
Bădoiu et al. | A simplified and dynamic unified structure | |
CN114153863B (zh) | 数据库更新方法、装置、设备及介质 | |
Krishna et al. | Verifying Single-Copy Concurrent Search Structures | |
Chang et al. | Blast furnace system identification by maximum likelihood method | |
CN114461605A (zh) | 内存多维数据库的事务数据多版本实现方法、装置及设备 | |
Johnson | A highly concurrent priority queue | |
Kulkarni et al. | An Innovative Approach for Achieving Composability in Concurrent Systems using Multi-Version Object Based STMs | |
Chang et al. | A network approach to parallel discrete event simulation |