JPH06103129A - データ転送方法及び装置 - Google Patents
データ転送方法及び装置Info
- Publication number
- JPH06103129A JPH06103129A JP5150702A JP15070293A JPH06103129A JP H06103129 A JPH06103129 A JP H06103129A JP 5150702 A JP5150702 A JP 5150702A JP 15070293 A JP15070293 A JP 15070293A JP H06103129 A JPH06103129 A JP H06103129A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- row
- reserved area
- lock
- dbm
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的は、更新及びスクロール可能な
カーソルに対する改良されたデータベースブロッキング
技法を提供する方法、システム及びプロセスを開示する
ことにある。 【構成】 本発明の目的はプロセッサのメモリ内のプロ
セスの動作によって達成される。プロセッサは、プロセ
スの制御下においてコンピュータのメモリ内に予約領域
を構築する。メモリ内の予約領域はデータベース内のデ
ィスク上に駐在する情報の一部分のイメージを含む。ア
プリケーションがデータベースへのカーソルをオープン
すると、このカーソルに対するブロッキングのタイプが
指定される。アプリケーションは取り出し要求を発行
し、そのロウがメモリ内の予約領域内に存在しない場合
は、ロウの要求される次のブロックを得るために遠隔手
続き呼(remote procedure call )が遂行され、これら
ロウを含むブロックがアプリケーションに送り戻され
る。この処理を管理及び制御するために様々なロックデ
ータ構造が採用できる。
カーソルに対する改良されたデータベースブロッキング
技法を提供する方法、システム及びプロセスを開示する
ことにある。 【構成】 本発明の目的はプロセッサのメモリ内のプロ
セスの動作によって達成される。プロセッサは、プロセ
スの制御下においてコンピュータのメモリ内に予約領域
を構築する。メモリ内の予約領域はデータベース内のデ
ィスク上に駐在する情報の一部分のイメージを含む。ア
プリケーションがデータベースへのカーソルをオープン
すると、このカーソルに対するブロッキングのタイプが
指定される。アプリケーションは取り出し要求を発行
し、そのロウがメモリ内の予約領域内に存在しない場合
は、ロウの要求される次のブロックを得るために遠隔手
続き呼(remote procedure call )が遂行され、これら
ロウを含むブロックがアプリケーションに送り戻され
る。この処理を管理及び制御するために様々なロックデ
ータ構造が採用できる。
Description
【0001】
【産業上の利用分野】本発明は、一般的には、データベ
ースアクセスの向上、より詳細には、更新及びスクロー
ル可能なカーソルを使用してアクセスされたロウ当りの
オーバヘッドを低減させることに関する。
ースアクセスの向上、より詳細には、更新及びスクロー
ル可能なカーソルを使用してアクセスされたロウ当りの
オーバヘッドを低減させることに関する。
【0002】
【従来の技術】データベースは、ますます多くの量のデ
ータがコンピュータ化されたデータベースによって格納
及び検索されるようになったばかりではなく、格納及び
検索の際に確立されるデータの関係(data relationshi
p )のために最近の関心の重要な対象となってきた。
ータがコンピュータ化されたデータベースによって格納
及び検索されるようになったばかりではなく、格納及び
検索の際に確立されるデータの関係(data relationshi
p )のために最近の関心の重要な対象となってきた。
【0003】構造化照会言語(Structured Query Langu
age 、SQL)、より具体的には、ANSI−SQLは
照会を関係データベース(relational databases)に伝
えるための好ましい言語媒体であり、このため、現在、
何千のも関係データベース及び何千ものこれらデータベ
ースに向けられる関連する照会が存在する。これらデー
タベース及び照会への投資として考えた場合、移転(mi
gration )は望ましい機能であるばかりか、新たな関係
データベースシステム及び方法に対して重要な機能であ
る。
age 、SQL)、より具体的には、ANSI−SQLは
照会を関係データベース(relational databases)に伝
えるための好ましい言語媒体であり、このため、現在、
何千のも関係データベース及び何千ものこれらデータベ
ースに向けられる関連する照会が存在する。これらデー
タベース及び照会への投資として考えた場合、移転(mi
gration )は望ましい機能であるばかりか、新たな関係
データベースシステム及び方法に対して重要な機能であ
る。
【0004】データベースマネジャ(Database Manager
DBM)アプリケーションプログラムにとっては、次の
ロウの各取り出し(fetch )は一つの個別のSQL要求
であり、次のロウの各ロウ取り出しがSQL−DBMへ
の直接呼として実現された場合、要求当り多量のオーバ
ヘッドが生じる。サーバマシーン上に駐在するローカル
アプリケーションにとっては、要求当りのオーバヘッド
(per request overhead)は二つのプロセススイッチ及
び一つのDBMエージェントプロセスのアタッチ(接
続)及びディアタッチ(分離)である。顧客マシーン上
で実行される遠隔アプリケーションに関しては、要求当
りのラウンドトリップメッセージ(round-trip message
per request)と関連する追加のオーバヘッドが存在す
る。
DBM)アプリケーションプログラムにとっては、次の
ロウの各取り出し(fetch )は一つの個別のSQL要求
であり、次のロウの各ロウ取り出しがSQL−DBMへ
の直接呼として実現された場合、要求当り多量のオーバ
ヘッドが生じる。サーバマシーン上に駐在するローカル
アプリケーションにとっては、要求当りのオーバヘッド
(per request overhead)は二つのプロセススイッチ及
び一つのDBMエージェントプロセスのアタッチ(接
続)及びディアタッチ(分離)である。顧客マシーン上
で実行される遠隔アプリケーションに関しては、要求当
りのラウンドトリップメッセージ(round-trip message
per request)と関連する追加のオーバヘッドが存在す
る。
【0005】ブロッキングは一度に複数のロウがアプリ
ケーションプロセスとDBMエージェントプロセスとの
間で移動されることを許すアプリケーションにトランス
パレントな技法であり、ブロッキングはオーバヘッドの
負担を複数のロウを通じて分散させる。
ケーションプロセスとDBMエージェントプロセスとの
間で移動されることを許すアプリケーションにトランス
パレントな技法であり、ブロッキングはオーバヘッドの
負担を複数のロウを通じて分散させる。
【0006】
【発明が解決しようとする課題】従って、本発明の主要
な目的は、更新及びスクロール可能なカーソルに対する
データベースブロッキング技法を提供することにある。
な目的は、更新及びスクロール可能なカーソルに対する
データベースブロッキング技法を提供することにある。
【0007】
【課題を解決するための手段及び作用】本発明のこれら
及びその他の目的がプロセッサのメモリ内のプロセスの
動作によって達成される。プロセッサは、プロセスの制
御下においてコンピュータのメモリ内に予約領域を構築
する。メモリ内の予約領域はデータベース内のディスク
上に駐在する情報の一部分のイメージを含む。アプリケ
ーションがデータベースへのカーソルをオープンする
と、このカーソルに対するブロッキングのタイプが指定
される。ライトスルー或はライトバックブロッキングが
要求されると、アプリケーションは取り出し要求を発行
し、そのロウがメモリ内の予約領域内に存在する場合
は、このロウが取り出され、データベースマネジャに行
くことなくローカル的にリターンされる。そのロウがメ
モリ内の予約領域内に存在しない場合は、ロウの要求さ
れる次のブロックを得るために遠隔手続き呼(remote p
rocedurecall )が遂行される。データベースマネジャ
は情報の前のブロック上のロックを修正し、ロウの次の
ブロックを得、これらをメモリ内に適当なロック構造と
共に置く。データマネジャは次にこれらロウを含むブロ
ックをアプリケーションに送り戻す。この処理を管理及
び制御するために様々なロックデータ構造が採用され、
ロウの更新はライトスルーブロッキングが選択されるか
或はライトバックブロッキングが選択されるかによって
異なる方法にて処理される。以上のことにより、更新及
びスクロール可能なカーソルを使用してアクセスされた
ロウ当りのオーバヘッドが低減され、データベースアク
セス能力が向上する。
及びその他の目的がプロセッサのメモリ内のプロセスの
動作によって達成される。プロセッサは、プロセスの制
御下においてコンピュータのメモリ内に予約領域を構築
する。メモリ内の予約領域はデータベース内のディスク
上に駐在する情報の一部分のイメージを含む。アプリケ
ーションがデータベースへのカーソルをオープンする
と、このカーソルに対するブロッキングのタイプが指定
される。ライトスルー或はライトバックブロッキングが
要求されると、アプリケーションは取り出し要求を発行
し、そのロウがメモリ内の予約領域内に存在する場合
は、このロウが取り出され、データベースマネジャに行
くことなくローカル的にリターンされる。そのロウがメ
モリ内の予約領域内に存在しない場合は、ロウの要求さ
れる次のブロックを得るために遠隔手続き呼(remote p
rocedurecall )が遂行される。データベースマネジャ
は情報の前のブロック上のロックを修正し、ロウの次の
ブロックを得、これらをメモリ内に適当なロック構造と
共に置く。データマネジャは次にこれらロウを含むブロ
ックをアプリケーションに送り戻す。この処理を管理及
び制御するために様々なロックデータ構造が採用され、
ロウの更新はライトスルーブロッキングが選択されるか
或はライトバックブロッキングが選択されるかによって
異なる方法にて処理される。以上のことにより、更新及
びスクロール可能なカーソルを使用してアクセスされた
ロウ当りのオーバヘッドが低減され、データベースアク
セス能力が向上する。
【0008】
【実施例】図1には代表的なハードウエア環境が示され
るが、この図面は、中央処理ユニット10、例えば、従
来のマイクロプロセッサ、及びシステムバス12を介し
て相互接続された複数の他のユニットを持つ本発明に従
うワークステーションの典型的なハードウエア構成を図
解する。図1に示されるワークステーションはランダム
アクセスメモリ(RAM)14、読み出し専用メモリ
(ROM)16、周辺デバイス、例えば、ディスクユニ
ット20をバスに接続するためのI/Oアダプタ18、
キーボード24、マウス26、スピーカ28、マイクロ
ホン32、及び/或は他のユーザインターフェースデバ
イス、例えば、タッチスクリーンデバイス(図示無し)
をバスに接続するためのユーザインターフェースアダプ
タ22、ワークステーションをデータ処理ネットワーク
に接続するための通信アダプタ34及びバスをディスプ
レイデバイス38に接続するためのディスプレイアダプ
タ36を含む。
るが、この図面は、中央処理ユニット10、例えば、従
来のマイクロプロセッサ、及びシステムバス12を介し
て相互接続された複数の他のユニットを持つ本発明に従
うワークステーションの典型的なハードウエア構成を図
解する。図1に示されるワークステーションはランダム
アクセスメモリ(RAM)14、読み出し専用メモリ
(ROM)16、周辺デバイス、例えば、ディスクユニ
ット20をバスに接続するためのI/Oアダプタ18、
キーボード24、マウス26、スピーカ28、マイクロ
ホン32、及び/或は他のユーザインターフェースデバ
イス、例えば、タッチスクリーンデバイス(図示無し)
をバスに接続するためのユーザインターフェースアダプ
タ22、ワークステーションをデータ処理ネットワーク
に接続するための通信アダプタ34及びバスをディスプ
レイデバイス38に接続するためのディスプレイアダプ
タ36を含む。
【0009】ソースアプリケーションプログラム(AP
PL)は埋込みSQL或は他のデータベース管理コマン
ドを使用してデータベースマネジャ(DBM)にアクセ
スすることができる。編集の後に、SQLステートメン
トはAPPLプロセス内で実行されるセットのライブラ
リルーチンを使用してDBMにアクセスする。DBMは
APPLからの別個の一連のプロセス内で実行される。
各要求はDBMエージェントと呼ばれるDBMプロセス
の一つに割り当てられる。ローカルAPPL、つまり、
DBMと同一のマシン内で実行されるAPPLにとって
は、DBM要求当りのオーバヘッドは二つのプロセスス
イッチ並びにSQLプロセスへのアタッチ(接続)及び
ディアタッチ(切断)である。遠隔APPL、つまり、
DBMとは異なる顧客マシーン内で実行されるAPPL
に関しては、DBM要求当りのオーバヘッドはラウンド
トリップメッセージも含む。APPLはDBMへのロウ
アットアタイム(row-at-a-time )インターフェースを
ローカル的に見る。ロウアットアタイム(row-at-a-tim
e )要求が個別の要求としてDBMに後ろ方向に反映さ
れた場合は、ロウ当り高いオーバヘッドが存在すること
となる。
PL)は埋込みSQL或は他のデータベース管理コマン
ドを使用してデータベースマネジャ(DBM)にアクセ
スすることができる。編集の後に、SQLステートメン
トはAPPLプロセス内で実行されるセットのライブラ
リルーチンを使用してDBMにアクセスする。DBMは
APPLからの別個の一連のプロセス内で実行される。
各要求はDBMエージェントと呼ばれるDBMプロセス
の一つに割り当てられる。ローカルAPPL、つまり、
DBMと同一のマシン内で実行されるAPPLにとって
は、DBM要求当りのオーバヘッドは二つのプロセスス
イッチ並びにSQLプロセスへのアタッチ(接続)及び
ディアタッチ(切断)である。遠隔APPL、つまり、
DBMとは異なる顧客マシーン内で実行されるAPPL
に関しては、DBM要求当りのオーバヘッドはラウンド
トリップメッセージも含む。APPLはDBMへのロウ
アットアタイム(row-at-a-time )インターフェースを
ローカル的に見る。ロウアットアタイム(row-at-a-tim
e )要求が個別の要求としてDBMに後ろ方向に反映さ
れた場合は、ロウ当り高いオーバヘッドが存在すること
となる。
【0010】ブロッキング(blocking)はオーバヘッド
を複数のロウ(row )を通じて分散させる技法である。
ブロッキングはAPPLに対してトランスパレントとな
るような方法にて達成されるが、但し、ライブラリルー
チン(library routine )がAPPLプロセス内のメモ
リ管理設備内に予約領域を提供する。つまり、APPL
はロウアットアタイムインターフェースを見、ライブラ
リルーチンはロウの全ブロックが尽きるまでDBMに戻
ることなくメモリロウ(memoryd row )内に予約領域を
提供する。ブロック、つまり、ロウの一つ或はそれ以上
のページが尽きると、ライブラリルーチンはロウのもう
一つのブロックを求めてDBMに単一の要求を送る。複
数ロウ(multi-row )インターフェースをAPPLに直
接に提供することもできるが、これらはAPPLプログ
ラマに一層の複雑さを要求する。ブロッキングはプログ
ラマに対してトランスパレントであり、現在のアプリケ
ーションは修正を必要としない。
を複数のロウ(row )を通じて分散させる技法である。
ブロッキングはAPPLに対してトランスパレントとな
るような方法にて達成されるが、但し、ライブラリルー
チン(library routine )がAPPLプロセス内のメモ
リ管理設備内に予約領域を提供する。つまり、APPL
はロウアットアタイムインターフェースを見、ライブラ
リルーチンはロウの全ブロックが尽きるまでDBMに戻
ることなくメモリロウ(memoryd row )内に予約領域を
提供する。ブロック、つまり、ロウの一つ或はそれ以上
のページが尽きると、ライブラリルーチンはロウのもう
一つのブロックを求めてDBMに単一の要求を送る。複
数ロウ(multi-row )インターフェースをAPPLに直
接に提供することもできるが、これらはAPPLプログ
ラマに一層の複雑さを要求する。ブロッキングはプログ
ラマに対してトランスパレントであり、現在のアプリケ
ーションは修正を必要としない。
【0011】更新或はスクロール可能なカーソルに対す
る現在のDBMは片方向の情報の流れのみを持つ読み出
し専用カーソルに対してブロッキングを提供する。デー
タがAPPLによって使用された後、これは破棄され
る。更新可能なカーソルはどのロウが更新されるべきか
の決定を、アプリケーションの編集時に行なうのではな
く、ランタイムにおいて行なうことを意味する。図2は
ブロッキングの3つのレベルを図解する。レベル0、2
00、つまり、ブロッキング無しは、現DMBによって
サポートされる唯一のオプションである。レベル1(ラ
イトスルー、writethrough)はAPPLプロセスからD
BMエージェントへの読み出し方向のみのブロッキング
を可能にし、各更新は書き込みロックを同期的に確保す
るためにDBMエージェントに戻される個別のメッセー
ジを要求する。レベル1は常にレベル0よりも効率的で
ある。レベル2のライトバック(writeback)は一時的な
オーバロッキングの犠牲の下に両方向のブロッキングを
可能にする。レベル2はロウ間保全性制約(interrow i
ntegrity constraint )のチェックの必要性がない場合
に採用することができる。
る現在のDBMは片方向の情報の流れのみを持つ読み出
し専用カーソルに対してブロッキングを提供する。デー
タがAPPLによって使用された後、これは破棄され
る。更新可能なカーソルはどのロウが更新されるべきか
の決定を、アプリケーションの編集時に行なうのではな
く、ランタイムにおいて行なうことを意味する。図2は
ブロッキングの3つのレベルを図解する。レベル0、2
00、つまり、ブロッキング無しは、現DMBによって
サポートされる唯一のオプションである。レベル1(ラ
イトスルー、writethrough)はAPPLプロセスからD
BMエージェントへの読み出し方向のみのブロッキング
を可能にし、各更新は書き込みロックを同期的に確保す
るためにDBMエージェントに戻される個別のメッセー
ジを要求する。レベル1は常にレベル0よりも効率的で
ある。レベル2のライトバック(writeback)は一時的な
オーバロッキングの犠牲の下に両方向のブロッキングを
可能にする。レベル2はロウ間保全性制約(interrow i
ntegrity constraint )のチェックの必要性がない場合
に採用することができる。
【0012】これらの新しいブロッキング技法の長所は
これらが以下の事項(feature )の間のバランスを提供
することである。つまり、 ・多重ロウアクセス動作間のオーバヘッドの分散;及び ・メモリ動作において全ての予約領域に対するデータを
ロッキングすることに基づくデータの一貫性の確保。
これらが以下の事項(feature )の間のバランスを提供
することである。つまり、 ・多重ロウアクセス動作間のオーバヘッドの分散;及び ・メモリ動作において全ての予約領域に対するデータを
ロッキングすることに基づくデータの一貫性の確保。
【0013】図3はこれら動作の長所を示す。ローカル
APPLは最少化されたDBMエージェントのアタッチ
ング(接続)、ディアタッチング(切断)及び最少化さ
れたプロセススイッチングから利益を受ける。遠隔AP
PLもまた最少化された管理から利益を受ける。
APPLは最少化されたDBMエージェントのアタッチ
ング(接続)、ディアタッチング(切断)及び最少化さ
れたプロセススイッチングから利益を受ける。遠隔AP
PLもまた最少化された管理から利益を受ける。
【0014】アプリケーション開発者に以下のオプショ
ンを提供することによって妥協点を見つけることができ
る。つまり、ブロッキングのレベル;及び異なるブロッ
クサイズの選択が与えられる。より小さなブロックサイ
ズの選択はブロッキングの長所及び短所の両方を低減さ
せる。
ンを提供することによって妥協点を見つけることができ
る。つまり、ブロッキングのレベル;及び異なるブロッ
クサイズの選択が与えられる。より小さなブロックサイ
ズの選択はブロッキングの長所及び短所の両方を低減さ
せる。
【0015】更新及び/或はスクロール可能なカーソル
によるブロッキングはマルチプロセッサキャッシングに
類似するが、但し、トランザクション間の分離の正しい
レベルの維持が一層複雑になる。トランザクション間の
分離を保持するために要求されるロッキング技法は本発
明の一つの重要な点である。このロッキング技法はまた
同一データの多重トランザクション更新を阻止すること
によってトランザクション間でのメモリ内の予約領域の
一貫性を確保する。本発明のもう一つの重要な点は、単
一トランザクション内で要求されるメモリ一貫性技法に
おいては、追加の予約領域が提供されることである。 ロッキング技法 ライトスルー(writethrough)及びライトバック(writ
eback )ブロッキングは読み出し専用ブロッキングにお
いては遭遇されない以下の複雑さを持つ。
によるブロッキングはマルチプロセッサキャッシングに
類似するが、但し、トランザクション間の分離の正しい
レベルの維持が一層複雑になる。トランザクション間の
分離を保持するために要求されるロッキング技法は本発
明の一つの重要な点である。このロッキング技法はまた
同一データの多重トランザクション更新を阻止すること
によってトランザクション間でのメモリ内の予約領域の
一貫性を確保する。本発明のもう一つの重要な点は、単
一トランザクション内で要求されるメモリ一貫性技法に
おいては、追加の予約領域が提供されることである。 ロッキング技法 ライトスルー(writethrough)及びライトバック(writ
eback )ブロッキングは読み出し専用ブロッキングにお
いては遭遇されない以下の複雑さを持つ。
【0016】・Which row :更新データはそれがデータ
ベース内に含む十分な情報と共にDBMに効率的にリタ
ーンされなければならない。この情報はwhich row 及び
その更新された値を含む。
ベース内に含む十分な情報と共にDBMに効率的にリタ
ーンされなければならない。この情報はwhich row 及び
その更新された値を含む。
【0017】・ロック:ロックが分離の指定されたレベ
ルを保持すると共に効率的に維持されなければならな
い。例えば、そのロックが反復可能な読み出しのためで
あるか、或はカーソルの安定性のためであるかにいつて
明確にされなければならない。
ルを保持すると共に効率的に維持されなければならな
い。例えば、そのロックが反復可能な読み出しのためで
あるか、或はカーソルの安定性のためであるかにいつて
明確にされなければならない。
【0018】DBMエージェントプロセスとAPPLと
の間で各ロウ毎にそのロウを一意に識別する何かを行き
来させることによって“which row ”の問題を解き、ま
たデータのオーバロッキングと言うロック問題をこれが
APPLプロセス内のメモリ内の予約領域内に格納され
ている最中に解くことが重要である。
の間で各ロウ毎にそのロウを一意に識別する何かを行き
来させることによって“which row ”の問題を解き、ま
たデータのオーバロッキングと言うロック問題をこれが
APPLプロセス内のメモリ内の予約領域内に格納され
ている最中に解くことが重要である。
【0019】以下の分離の3つのレベルがDBMによっ
てサポートされる。 ・Repeatable-read 反復可能な読み出し:直列性を保証
するための2位相ロッキング。 ・Cursor-stability カーソル安定性:カーソルによっ
て現在指されているロウの値が変化しないことを保証す
るために使用される。これはカーソルセット内のロウの
メンバーシップに対する基準が現在のデータベースと或
はAPPLによって既に見られたものと一貫性を保持す
ることを保証するものではない。 ・Uncommitted read 口約のない読み出し:これはロウ
がもう一つのトランザクションの更新の中央でアクセス
されないことのみを保証する。
てサポートされる。 ・Repeatable-read 反復可能な読み出し:直列性を保証
するための2位相ロッキング。 ・Cursor-stability カーソル安定性:カーソルによっ
て現在指されているロウの値が変化しないことを保証す
るために使用される。これはカーソルセット内のロウの
メンバーシップに対する基準が現在のデータベースと或
はAPPLによって既に見られたものと一貫性を保持す
ることを保証するものではない。 ・Uncommitted read 口約のない読み出し:これはロウ
がもう一つのトランザクションの更新の中央でアクセス
されないことのみを保証する。
【0020】以下の3つのタイプのロック、つまり、
S:共有ロック(shared lock )、X:降級不能排他的
ロック(nondemotable exclusive lock )、及びDX:
降級可能排他的ロック(demotable ceclusive lock)が
本発明を実現するために使用される。DMBは既にS及
びXロックをサポートする。DXロックはここではライ
トスルーブロッキング(writethrough blocking )をサ
ポートするために導入される。DXは、DXはロッキン
グのより低いレベルに降級できるがXはできないことを
除いて、Xと同一の特性の全てを持つ。ロック互換性マ
トリックス及びロック上限マトリックスが図4に示され
る。UPDATE/DELETE WHERE CURRENT OF、つまり、指定さ
れるカーソルによって現在ポイントされるロウを更新或
は削除するためのコマンドの意味は、状態OKを持つリ
ターンコードはUPDATE/DELETE WHERE CURRENT OFコマン
ドが完結したことを示すと言う意味であり、これはその
ロウ上にXロックを得ることを含む。ライトスルーブロ
ッキングの場合、更新或は削除処理はAPPLプロセス
のメモリ内の予約領域内においてカーソルがメモリ内の
予約領域から退出するまでDBMエージェントに行くこ
と無しに起こる。次に、全ての更新されたデータが一緒
にまとめて単一メッセージにて送り戻される。この処理
をサポートするために、一つのXロックが実際に要求さ
れるような場合にこれを得る能力を確保しておくため
に、APPLプロセス上のメモリ内の予約領域内に格納
された全てのロウに関してDXロックが得られる。DX
とXとの間のこの区別はロウが前の訪問、例えば、もう
一つのカーソルスキャンの際に実際に更新されたか、或
はスクローリングにて同一カーソルスキャンにおいて更
新されたかを告げるために必要となる。
S:共有ロック(shared lock )、X:降級不能排他的
ロック(nondemotable exclusive lock )、及びDX:
降級可能排他的ロック(demotable ceclusive lock)が
本発明を実現するために使用される。DMBは既にS及
びXロックをサポートする。DXロックはここではライ
トスルーブロッキング(writethrough blocking )をサ
ポートするために導入される。DXは、DXはロッキン
グのより低いレベルに降級できるがXはできないことを
除いて、Xと同一の特性の全てを持つ。ロック互換性マ
トリックス及びロック上限マトリックスが図4に示され
る。UPDATE/DELETE WHERE CURRENT OF、つまり、指定さ
れるカーソルによって現在ポイントされるロウを更新或
は削除するためのコマンドの意味は、状態OKを持つリ
ターンコードはUPDATE/DELETE WHERE CURRENT OFコマン
ドが完結したことを示すと言う意味であり、これはその
ロウ上にXロックを得ることを含む。ライトスルーブロ
ッキングの場合、更新或は削除処理はAPPLプロセス
のメモリ内の予約領域内においてカーソルがメモリ内の
予約領域から退出するまでDBMエージェントに行くこ
と無しに起こる。次に、全ての更新されたデータが一緒
にまとめて単一メッセージにて送り戻される。この処理
をサポートするために、一つのXロックが実際に要求さ
れるような場合にこれを得る能力を確保しておくため
に、APPLプロセス上のメモリ内の予約領域内に格納
された全てのロウに関してDXロックが得られる。DX
とXとの間のこの区別はロウが前の訪問、例えば、もう
一つのカーソルスキャンの際に実際に更新されたか、或
はスクローリングにて同一カーソルスキャンにおいて更
新されたかを告げるために必要となる。
【0021】図5はAPPLプロセスとDBMプロセス
との間のライトバックブロッキングを使用してのFETCH
(取り出し)動作に対する対話を示す流れ図である。A
PPLはAPPLプロセス内のライブラリルーチンを介
してFETCH (取り出し)要求を発行する。ライブラリル
ーチンはメモリ内にブロッキング動作するローカル的に
予約された領域を管理する。そのロウがメモリ内の予約
された領域内にある場合は、これが取り出され、DBM
エージェントに行くことなくローカル的にリターンされ
る。こうして、発生する唯一のオーバヘッドはライブラ
リルーチンへの手続き呼(procedure call)となる。そ
のロウがメモリ内の予約された領域内にない場合は、ラ
イブラリルーチンは、前のブロック内の任意の更新デー
タをリターンし、そのロウの要求される次のブロックを
得るためにDBMにRPCを送る。その要求に割り当て
られたDBMエージェントのプロセスがRCPを受信す
る。これは最初に、そのブロックの全てのロウ上のロッ
クを修正し、前のブロック内の更新データを送る。
との間のライトバックブロッキングを使用してのFETCH
(取り出し)動作に対する対話を示す流れ図である。A
PPLはAPPLプロセス内のライブラリルーチンを介
してFETCH (取り出し)要求を発行する。ライブラリル
ーチンはメモリ内にブロッキング動作するローカル的に
予約された領域を管理する。そのロウがメモリ内の予約
された領域内にある場合は、これが取り出され、DBM
エージェントに行くことなくローカル的にリターンされ
る。こうして、発生する唯一のオーバヘッドはライブラ
リルーチンへの手続き呼(procedure call)となる。そ
のロウがメモリ内の予約された領域内にない場合は、ラ
イブラリルーチンは、前のブロック内の任意の更新デー
タをリターンし、そのロウの要求される次のブロックを
得るためにDBMにRPCを送る。その要求に割り当て
られたDBMエージェントのプロセスがRCPを受信す
る。これは最初に、そのブロックの全てのロウ上のロッ
クを修正し、前のブロック内の更新データを送る。
【0022】反復可能読み出し分離(repeatable-read
isolation )下におけるロッキングに対する規則は次の
通りである。 ・そのロウがその上にDXロックを持ち、このロックが
更新されてない場合は、そのロックをSに降級する。 ・そのロウがその上にDXロックを持ち、これが更新さ
れている場合は、このロックをXに昇級する。DXロッ
クはこれが待つことなく可能であることを保証すること
に注意する。 ・そのロウがその上にXロックを持つ場合は、そのロッ
クを修正しない。
isolation )下におけるロッキングに対する規則は次の
通りである。 ・そのロウがその上にDXロックを持ち、このロックが
更新されてない場合は、そのロックをSに降級する。 ・そのロウがその上にDXロックを持ち、これが更新さ
れている場合は、このロックをXに昇級する。DXロッ
クはこれが待つことなく可能であることを保証すること
に注意する。 ・そのロウがその上にXロックを持つ場合は、そのロッ
クを修正しない。
【0023】カーソル安定性分離(cursor-stability i
solation)下におけるロッキングに対する規則は以下の
通りである。 ・そのロウがその上にDXロックを持ち、これが更新さ
れてない場合は、そのロックをロックなしに降級する。 ・そのロウがその上にDXロックを持ち、これが更新さ
れてない場合は、そのロックをXに昇級する。DXロッ
クはこれが待つことなしに可能であることを保証するこ
とに注意する。 ・そのロウがその上にXロックを持つ場合は、ロックの
変更は行なわない。
solation)下におけるロッキングに対する規則は以下の
通りである。 ・そのロウがその上にDXロックを持ち、これが更新さ
れてない場合は、そのロックをロックなしに降級する。 ・そのロウがその上にDXロックを持ち、これが更新さ
れてない場合は、そのロックをXに昇級する。DXロッ
クはこれが待つことなしに可能であることを保証するこ
とに注意する。 ・そのロウがその上にXロックを持つ場合は、ロックの
変更は行なわない。
【0024】次に、DBMエージェントはロウの次のブ
ロックを得るが、これは適当なロックを得ることを要求
する。ロッキングに対する規則は以下の通りである。 ・そのロウがXロックを持たない場合は、DXロックを
得る。 ・そのロウがXロックを持つ場合は、追加のロックは必
要とされない。
ロックを得るが、これは適当なロックを得ることを要求
する。ロッキングに対する規則は以下の通りである。 ・そのロウがXロックを持たない場合は、DXロックを
得る。 ・そのロウがXロックを持つ場合は、追加のロックは必
要とされない。
【0025】DBMプロセスは次にこれらロウを含むブ
ロックをそれらの一意の識別子と共にAPPLプロセス
内のライブラリルーチンに送り戻す。APPLプロセス
は次に次のロウをAPPLにリターンする。このプロセ
スがEOFに到達するまで継続される。EOFに到達す
ると、ライブラリルーチンはこのブロック内の全ての更
新データをリターンするためにDBMにRPC要求を送
る。
ロックをそれらの一意の識別子と共にAPPLプロセス
内のライブラリルーチンに送り戻す。APPLプロセス
は次に次のロウをAPPLにリターンする。このプロセ
スがEOFに到達するまで継続される。EOFに到達す
ると、ライブラリルーチンはこのブロック内の全ての更
新データをリターンするためにDBMにRPC要求を送
る。
【0026】図6はライトバックブロッキングに対する
UPDATE/DELETE WHERE CURRENT OF要求の流れ図を示す。
APPLはAPPLプロセス内のライブラリルーチンを
介してUPDATE/DELETE WHERE CURRENT OF要求を発行す
る。更新されたロウは常にメモリ内の予約領域内に存在
し、DBM内にDXロックを持つため、ライブラリルー
チンは単にこれをローカル的に更新することができる。
UPDATE/DELETE WHERE CURRENT OF要求の流れ図を示す。
APPLはAPPLプロセス内のライブラリルーチンを
介してUPDATE/DELETE WHERE CURRENT OF要求を発行す
る。更新されたロウは常にメモリ内の予約領域内に存在
し、DBM内にDXロックを持つため、ライブラリルー
チンは単にこれをローカル的に更新することができる。
【0027】図7はライトスルーブロッキングに対する
FETCH 要求に関してのAPPLプロセスとDBMプロセ
スとの間の流れ図を示す。APPLはFETCH 要求をAP
PLプロセス内のライブラリルーチンを介して発行す
る。ライブラリルーチンはブロッキングのためのメモリ
内のローカル的に予約された領域を管理する。そのロウ
がメモリ内の予約領域内に存在する場合は、これは単に
それを取り出し、DBMエージェントに行くことなしに
ローカル的にリターンされるために、唯一のオーバヘッ
ドはライブラリルーチンへの手続き呼である。そのロウ
がメモリ内の予約された領域内に存在しない場合は、ラ
イブラリルーチンはロウの要求された次のブロックを得
るためにDBMにRPC要求を送る。その要求に割り当
てられたDBMエージェントプロセスがRPCを受信す
る。これは最初に前のブロック上のロックを修正する。
FETCH 要求に関してのAPPLプロセスとDBMプロセ
スとの間の流れ図を示す。APPLはFETCH 要求をAP
PLプロセス内のライブラリルーチンを介して発行す
る。ライブラリルーチンはブロッキングのためのメモリ
内のローカル的に予約された領域を管理する。そのロウ
がメモリ内の予約領域内に存在する場合は、これは単に
それを取り出し、DBMエージェントに行くことなしに
ローカル的にリターンされるために、唯一のオーバヘッ
ドはライブラリルーチンへの手続き呼である。そのロウ
がメモリ内の予約された領域内に存在しない場合は、ラ
イブラリルーチンはロウの要求された次のブロックを得
るためにDBMにRPC要求を送る。その要求に割り当
てられたDBMエージェントプロセスがRPCを受信す
る。これは最初に前のブロック上のロックを修正する。
【0028】反復可能読み出し分離下でのロッキングに
対する規則は次の通りである。 ・ロックに対して何もしない。
対する規則は次の通りである。 ・ロックに対して何もしない。
【0029】カーソル安定性分離下でのロッキングに対
する規則は以下の通りである。 ・Sロックを解放する。
する規則は以下の通りである。 ・Sロックを解放する。
【0030】DBMエージェントはロウの次のブロック
を得るが、これはそのブロック内の各ロウ上に少なくと
も一つのSロックを得ることを要求する。Uロックは通
常の条件下においてはSロックに代用できることに注意
する。DBMプロセスは次にこれらロウを含むブロック
をそれらの一意の識別子と共にAPPLプロセス内のラ
イブラリルーチンに送り戻す。APPLプロセスは次に
次のロウをAPPLにリターンする。このプロセスがE
OFに到達するまで継続される。
を得るが、これはそのブロック内の各ロウ上に少なくと
も一つのSロックを得ることを要求する。Uロックは通
常の条件下においてはSロックに代用できることに注意
する。DBMプロセスは次にこれらロウを含むブロック
をそれらの一意の識別子と共にAPPLプロセス内のラ
イブラリルーチンに送り戻す。APPLプロセスは次に
次のロウをAPPLにリターンする。このプロセスがE
OFに到達するまで継続される。
【0031】図8はライトスルーブロッキングに対する
UPDATE/DELETE WHERE CURRENT OF要求の流れ図を示す。
APPLはAPPLプロセス内のライブラリルーチンを
介してUPDATE/DELETE WHERE CURRENT OF要求を発行す
る。更新されたロウは常にメモリ内の予約された領域内
に存在するが、但しこの更新データはAPPLにリター
ンされる前に処理するためにDBMに同期的に送信され
なければならない。ライブラリルーチンがDBMに更新
データを要求するRPCを送る。この要求に割り当てら
れたDBMエージェントプロセスがRPCを受信する。
エージェントプロセスは更新データを送るが、これはロ
ックのXへの昇級を要求する。次に、DBMプロセスは
確認をAPPLプロセス内のライブラリルーチンへ、そ
れからAPPLへと送る。 メモリ内の予約領域の一貫性 ロッキングが考慮されない場合は、ブロッキングは単に
メモリ管理(memory management )における予約領域の
もう一つの発生であると見なされる。但し、ロッキング
は複数のトランザクションが同一のデータを更新するこ
とを阻止することによりトランザクション間での予約領
域のデータの一貫性(consistency )を保証する。これ
は、メモリ一貫性問題においてはインタトランザクショ
ン予約領域(intertransaction reserved area)の問題
に整理される。
UPDATE/DELETE WHERE CURRENT OF要求の流れ図を示す。
APPLはAPPLプロセス内のライブラリルーチンを
介してUPDATE/DELETE WHERE CURRENT OF要求を発行す
る。更新されたロウは常にメモリ内の予約された領域内
に存在するが、但しこの更新データはAPPLにリター
ンされる前に処理するためにDBMに同期的に送信され
なければならない。ライブラリルーチンがDBMに更新
データを要求するRPCを送る。この要求に割り当てら
れたDBMエージェントプロセスがRPCを受信する。
エージェントプロセスは更新データを送るが、これはロ
ックのXへの昇級を要求する。次に、DBMプロセスは
確認をAPPLプロセス内のライブラリルーチンへ、そ
れからAPPLへと送る。 メモリ内の予約領域の一貫性 ロッキングが考慮されない場合は、ブロッキングは単に
メモリ管理(memory management )における予約領域の
もう一つの発生であると見なされる。但し、ロッキング
は複数のトランザクションが同一のデータを更新するこ
とを阻止することによりトランザクション間での予約領
域のデータの一貫性(consistency )を保証する。これ
は、メモリ一貫性問題においてはインタトランザクショ
ン予約領域(intertransaction reserved area)の問題
に整理される。
【0032】データベースマネジャ(Database Manage
r)の現在のバージョンにおいては、たった一つのアプ
リケーションプロセスがトランザクションに参与し、従
って、メモリ内のどの予約領域も一貫性問題を発生しな
い。最近の発売されたバージョンのように、メモリ内の
複数の予約領域が同一テーブルに対する単一トランザク
ションに参与する異なるアプリケーションプロセスに対
して維持される場合は、メモリ内の予約領域に不一致
(memory inconsistencies)が生じる可能性を持つ。
r)の現在のバージョンにおいては、たった一つのアプ
リケーションプロセスがトランザクションに参与し、従
って、メモリ内のどの予約領域も一貫性問題を発生しな
い。最近の発売されたバージョンのように、メモリ内の
複数の予約領域が同一テーブルに対する単一トランザク
ションに参与する異なるアプリケーションプロセスに対
して維持される場合は、メモリ内の予約領域に不一致
(memory inconsistencies)が生じる可能性を持つ。
【0033】メモリマネジャ内の予約領域がトランザク
ションTRからのテーブルTBに対する更新データを検
出すると、これは、UPDATE/DELETE WHERE CURRENT OFコ
マンドと共に使用されたメモリ内の予約領域を除いてT
R内のTB上のカーソルのメモリ内の全ての予約領域を
無効にしなければならない。つまり、TR内のTBに対
してノンカーソル(non-cursor)更新が要求された場合
は、メモリ内の予約領域はTR内のTB上の全てのカー
ソルに対して無効にされなければならない。TR内のT
B上にUPDATE/DELETE CURRENT OF Ci コマンドが発行さ
れた場合は、メモリ内の予約領域がCiを除いてTR内
のTB上の全てのカーソルに対して無効にされなければ
ならない。メモリ内の予約領域を無効にするためにはプ
ロセスフローの以下の延長が必要となる。 ・メモリ内のどの予約領域が無効にされるべきかを決定
しなければならない。 ・メモリ内の適当な予約領域が無効にされるが、これに
は、APPLプロセス内のメモリ内の各予約領域に対し
て無効標識をセットすることが必要となる。 ・次のロウがメモリ内の予約領域内に存在するか否かの
テストの前に最初にこの無効標識をチェックしなければ
ならない。 ・無効標識がセットされている場合は、次のブロックに
対する要求は次のブロックではなく現ブロックを要求す
る。 ・このブロックが到着すると無効標識が解除される。
ションTRからのテーブルTBに対する更新データを検
出すると、これは、UPDATE/DELETE WHERE CURRENT OFコ
マンドと共に使用されたメモリ内の予約領域を除いてT
R内のTB上のカーソルのメモリ内の全ての予約領域を
無効にしなければならない。つまり、TR内のTBに対
してノンカーソル(non-cursor)更新が要求された場合
は、メモリ内の予約領域はTR内のTB上の全てのカー
ソルに対して無効にされなければならない。TR内のT
B上にUPDATE/DELETE CURRENT OF Ci コマンドが発行さ
れた場合は、メモリ内の予約領域がCiを除いてTR内
のTB上の全てのカーソルに対して無効にされなければ
ならない。メモリ内の予約領域を無効にするためにはプ
ロセスフローの以下の延長が必要となる。 ・メモリ内のどの予約領域が無効にされるべきかを決定
しなければならない。 ・メモリ内の適当な予約領域が無効にされるが、これに
は、APPLプロセス内のメモリ内の各予約領域に対し
て無効標識をセットすることが必要となる。 ・次のロウがメモリ内の予約領域内に存在するか否かの
テストの前に最初にこの無効標識をチェックしなければ
ならない。 ・無効標識がセットされている場合は、次のブロックに
対する要求は次のブロックではなく現ブロックを要求す
る。 ・このブロックが到着すると無効標識が解除される。
【0034】図9は本発明に従うデータ構造を図解す
る。各オープンカーソルに対して、コンピュータのメモ
リ内に幾つかの情報が保持されなければならない。最初
に、DBMは宣言されるカーソルの下で適格とされるロ
ウに連続するロウインデックス番号(row index numbe
r、RIN)900を割り当てる。アレイ910がまた
RINをロウ識別子(Row identifier、RID)にマッ
プするために生成される。RINがRIDの代わりにア
プリケーションプロセスとDBMプロセスとの間でパス
され、こうして、アプリケーションプロセスがカーソル
の宣言下において適格とされるもの以外のロウを指定で
きないようにされる。
る。各オープンカーソルに対して、コンピュータのメモ
リ内に幾つかの情報が保持されなければならない。最初
に、DBMは宣言されるカーソルの下で適格とされるロ
ウに連続するロウインデックス番号(row index numbe
r、RIN)900を割り当てる。アレイ910がまた
RINをロウ識別子(Row identifier、RID)にマッ
プするために生成される。RINがRIDの代わりにア
プリケーションプロセスとDBMプロセスとの間でパス
され、こうして、アプリケーションプロセスがカーソル
の宣言下において適格とされるもの以外のロウを指定で
きないようにされる。
【0035】従って、アプリケーションプロセスはカー
ソルの現ロウインジケータ(current-row indicator )
に対応するロウのRIN及びRINをそれがメモリ内の
予約領域内に持つロウにマップするインデックスを保持
しなければならない。このインデックスの実現は、ユー
ザの要件に基づいてハッシュテーブル(hash-table)、
B−トリー或は単純なリストの間で互換的にできる。
ソルの現ロウインジケータ(current-row indicator )
に対応するロウのRIN及びRINをそれがメモリ内の
予約領域内に持つロウにマップするインデックスを保持
しなければならない。このインデックスの実現は、ユー
ザの要件に基づいてハッシュテーブル(hash-table)、
B−トリー或は単純なリストの間で互換的にできる。
【0036】本発明が特定のシステム環境内での一つの
好ましい実施例との関連で説明されたが、当業者におい
ては、本発明は、本発明の請求項の精神及び範囲内で、
他の異なるハードウエア及びソフトウエア環境内におい
て修正を加えて実現できることを認識できるものであ
る。
好ましい実施例との関連で説明されたが、当業者におい
ては、本発明は、本発明の請求項の精神及び範囲内で、
他の異なるハードウエア及びソフトウエア環境内におい
て修正を加えて実現できることを認識できるものであ
る。
【0037】
【発明の効果】以上説明したように本発明によれば、更
新及びスクロール可能なカーソルを使用してアクセスさ
れたロウ当りのオーバヘッドが低減され、データベース
アクセス能力が向上する。
新及びスクロール可能なカーソルを使用してアクセスさ
れたロウ当りのオーバヘッドが低減され、データベース
アクセス能力が向上する。
【図1】本発明に従うホストコンピュータのブロック
図。
図。
【図2】本発明に従うデータベースブロッキングの3つ
のレベルを示す図。
のレベルを示す図。
【図3】本発明に従うブロッキングを通じて達成される
効率上の長所を示す図。
効率上の長所を示す図。
【図4】本発明に従ってDXロックがいかに他のロック
と関連付けられるかを示す図。
と関連付けられるかを示す図。
【図5】本発明に従うアプリケーションプロセス及びデ
ータベースマネジャプロセスの流れ図を示す図。
ータベースマネジャプロセスの流れ図を示す図。
【図6】本発明に従うアプリケーションプロセス及びデ
ータベースマネジャプロセスの流れ図を示す図。
ータベースマネジャプロセスの流れ図を示す図。
【図7】本発明に従うアプリケーションプロセス及びデ
ータベースマネジャプロセスの流れ図を示す図。
ータベースマネジャプロセスの流れ図を示す図。
【図8】本発明に従うアプリケーションプロセス及びデ
ータベースマネジャプロセスの流れ図を示す図。
ータベースマネジャプロセスの流れ図を示す図。
【図9】本発明に従うデータ構造を示す図。
10 CPU 12 システム 14 RAM 16 ROM 18 I/Oアダプタ 20 ディスクユニット 22 ユーザインターフェースアダプタ 24 キーボード 26 マウス 28 スピーカ 32 マイクロホン 34 通信アダプタ 36 ディスプレイアダプタ 38 ディスプレイデバイス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード、デール、ホフマン アメリカ合衆国テキサス州、オースチン、 ベン、クレンショー、ウェイ、1529 (72)発明者 チモシー、レイ、マルクマス カナダ国オンタリオ州、ユニオンビル、ウ ェストモアランド、コート、14 (72)発明者 マーク、グレゴリー、スミス アメリカ合衆国テキサス州、オースチン、 シアラ、オークス、10615
Claims (6)
- 【請求項1】情報をブロックにてデータベースからメモ
リに搬送するための装置であって、この装置が: (a)メモリ内に予約領域を構築するための手段; (b)メモリ内の予約領域を要求された情報が存在する
かチェックするための手段; (c)要求された情報がメモリ内の予約領域内に存在し
ない場合、要求された情報をデータベースからブロック
にて取り出すための手段;及び (d)要求された情報をメモリ内の予約領域内にブロッ
クにて置き、ロックデータ構造を更新するための手段を
含むことを特徴とするデータ転送装置。 - 【請求項2】ブロック内の情報のサイズを調節すること
によって情報の取り出しをバランスさせるための手段が
含まれることを特徴とする請求項1記載のデータ転送装
置。 - 【請求項3】情報を得ようと試みる一つ或はそれ以上の
アプリケーションの間の分離を維持するためにロックデ
ータ構造を更新するための手段が含まれることを特徴と
する請求項1記載のデータ転送装置。 - 【請求項4】情報をブロックにてデータベースからメモ
リに搬送するための方法であって、この方法が: (a)メモリ内に予約領域を構築するステップ; (b)メモリ内の予約領域を要求された情報が存在する
かチェックするステップ; (c)要求された情報がメモリ内の予約領域内に存在し
ない場合、要求された情報をデータベースからブロック
にて取り出すステップ;及び (d)要求された情報をメモリ内の予約領域内にブロッ
クにて置き、ロックデータ構造を更新するステップを含
むことを特徴とするデータ転送方法。 - 【請求項5】ブロック内の情報のサイズを調節すること
によって情報の取り出しをバランスさせるステップが含
まれることを特徴とする請求項4記載のデータ転送方
法。 - 【請求項6】情報を得ようと試みる一つ或はそれ以上の
アプリケーションの間の分離を維持するためにロックデ
ータ構造を更新するステップが含まれることを特徴とす
る請求項4記載のデータ転送方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US923679 | 1986-10-27 | ||
| US07/923,679 US5446858A (en) | 1992-08-03 | 1992-08-03 | Apparatus and method for transferring information in blocks from a database to a memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06103129A true JPH06103129A (ja) | 1994-04-15 |
| JP2614400B2 JP2614400B2 (ja) | 1997-05-28 |
Family
ID=25449094
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5150702A Expired - Lifetime JP2614400B2 (ja) | 1992-08-03 | 1993-06-22 | データ転送方法及び装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5446858A (ja) |
| JP (1) | JP2614400B2 (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5630124A (en) | 1993-12-06 | 1997-05-13 | International Business Machines Corporation | System and method for assuring atomicity of distributed update requests in a parallel database |
| 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 |
| US5835904A (en) * | 1995-10-31 | 1998-11-10 | Microsoft Corporation | System and method for implementing database cursors in a client/server environment |
| US7089331B1 (en) | 1998-05-29 | 2006-08-08 | Oracle International Corporation | Method and mechanism for reducing client-side memory footprint of transmitted data |
| US7389284B1 (en) | 2000-02-29 | 2008-06-17 | Oracle International Corporation | Method and mechanism for efficient processing of remote-mapped queries |
| US6738333B1 (en) | 2000-05-30 | 2004-05-18 | Dphi Acquisitions, Inc. | Format for recording data in a storage disk |
| EP1189154A3 (en) * | 2000-09-07 | 2005-11-16 | International Business Machines Corporation | Method, system, and program for implementing scrollable cursors in a database |
| US6598041B1 (en) | 2000-09-07 | 2003-07-22 | International Business Machines Corporation | Method, system, and program for processing modifications to data in tables in a database system |
| US6990477B2 (en) | 2001-03-28 | 2006-01-24 | International Business Machines Corporation | Method, system, and program for implementing scrollable cursors in a distributed database system |
| US6856996B2 (en) | 2001-03-30 | 2005-02-15 | International Business Machines Corporation | Method, system, and program for accessing rows in one or more tables satisfying a search criteria |
| US7103590B1 (en) | 2001-08-24 | 2006-09-05 | Oracle International Corporation | Method and system for pipelined database table functions |
| US7610351B1 (en) | 2002-05-10 | 2009-10-27 | Oracle International Corporation | Method and mechanism for pipelined prefetching |
| US7051041B1 (en) | 2002-10-21 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Simplified relational database extension to DBM hash tables and method for using same |
| US7231385B2 (en) * | 2003-07-21 | 2007-06-12 | International Business Machines Corporation | Method, system, and program for positioning a cursor on rows of a result table |
| US8312053B2 (en) * | 2009-09-11 | 2012-11-13 | Oracle International Corporation | Dynamic atomic arrays |
| US9767136B2 (en) * | 2010-03-31 | 2017-09-19 | Salesforce.Com, Inc. | System, method and computer program product for maintaining data stored in a data structure |
| US9275096B2 (en) * | 2012-01-17 | 2016-03-01 | Apple Inc. | Optimized b-tree |
| US9208258B2 (en) | 2013-04-11 | 2015-12-08 | Apple Inc. | Locking and traversal methods for ordered tree data structures |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03189741A (ja) * | 1989-12-19 | 1991-08-19 | Toshiba Corp | 遠隔データベースシステム |
| JPH03201046A (ja) * | 1989-12-28 | 1991-09-02 | Toshiba Corp | データベースリソースロック制御方式 |
| JPH0455952A (ja) * | 1990-06-25 | 1992-02-24 | Nec Corp | データベースシステムのデータ転送方式 |
| JPH04139545A (ja) * | 1990-10-01 | 1992-05-13 | Hitachi Ltd | データベース更新処理方式 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4530055A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory |
| US4603380A (en) * | 1983-07-01 | 1986-07-29 | International Business Machines Corporation | DASD cache block staging |
| US5125086A (en) * | 1989-06-29 | 1992-06-23 | Digital Equipment Corporation | Virtual memory paging apparatus with variable size in-page clusters |
| US5202981A (en) * | 1989-10-23 | 1993-04-13 | International Business Machines Corporation | Process and apparatus for manipulating a boundless data stream in an object oriented programming system |
| US5226143A (en) * | 1990-03-14 | 1993-07-06 | International Business Machines Corporation | Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager |
| US5261069A (en) * | 1990-08-13 | 1993-11-09 | Hewlett-Packard Company | Method of maintaining consistency of cached data in a database system |
-
1992
- 1992-08-03 US US07/923,679 patent/US5446858A/en not_active Expired - Fee Related
-
1993
- 1993-06-22 JP JP5150702A patent/JP2614400B2/ja not_active Expired - Lifetime
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03189741A (ja) * | 1989-12-19 | 1991-08-19 | Toshiba Corp | 遠隔データベースシステム |
| JPH03201046A (ja) * | 1989-12-28 | 1991-09-02 | Toshiba Corp | データベースリソースロック制御方式 |
| JPH0455952A (ja) * | 1990-06-25 | 1992-02-24 | Nec Corp | データベースシステムのデータ転送方式 |
| JPH04139545A (ja) * | 1990-10-01 | 1992-05-13 | Hitachi Ltd | データベース更新処理方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5446858A (en) | 1995-08-29 |
| JP2614400B2 (ja) | 1997-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06103129A (ja) | データ転送方法及び装置 | |
| US6192377B1 (en) | Method and apparatus for determing whether a transaction can use a version of a data item | |
| US6321234B1 (en) | Database server system with improved methods for logging transactions | |
| US5832521A (en) | Method and apparatus for performing consistent reads in multiple-server environments | |
| US6240413B1 (en) | Fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
| US5991768A (en) | Finer grained quiescence for data replication | |
| JP2837785B2 (ja) | データ・コヒーレンス制御方法 | |
| US6813617B2 (en) | Dynamic generation of optimizer hints | |
| US6219675B1 (en) | Distribution of a centralized database | |
| US7228300B2 (en) | Caching the results of security policy functions | |
| US5408653A (en) | Efficient data base access using a shared electronic store in a multi-system environment with shared disks | |
| US4881166A (en) | Method for consistent multidatabase transaction processing | |
| US7774319B2 (en) | System and method for an optimistic database access | |
| US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
| US6173290B1 (en) | Method and apparatus for coupling object state and behavior in a database management system | |
| US6557082B1 (en) | Method and apparatus for ensuring cache coherency for spawned dependent transactions in a multi-system environment with shared data storage devices | |
| US7991794B2 (en) | Pipelining operations involving DML and query | |
| US5574902A (en) | Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store | |
| JP2790222B2 (ja) | 並列使用マルチユーザ・リレーショナル・データベース管理システム及びその方法 | |
| US7953749B2 (en) | Providing the timing of the last committed change to a row in a database table | |
| US6961729B1 (en) | Processing in parallel units of work that perform DML operations on the same spanning rows | |
| EP2378420A1 (en) | Ownership reassignment in a shared-nothing database system | |
| US20080281846A1 (en) | High performant row-level data manipulation using a data layer interface | |
| CA2435388C (en) | Partitioning ownership of a database among different database servers to control access to the database | |
| JPH04255041A (ja) | データベース管理方法 |