[go: up one dir, main page]

JPH07262071A - データベースシステム及び負荷分散制御方法 - Google Patents

データベースシステム及び負荷分散制御方法

Info

Publication number
JPH07262071A
JPH07262071A JP6045888A JP4588894A JPH07262071A JP H07262071 A JPH07262071 A JP H07262071A JP 6045888 A JP6045888 A JP 6045888A JP 4588894 A JP4588894 A JP 4588894A JP H07262071 A JPH07262071 A JP H07262071A
Authority
JP
Japan
Prior art keywords
transaction
data
management process
database
management
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
Application number
JP6045888A
Other languages
English (en)
Other versions
JP2960297B2 (ja
Inventor
Masanori Tomota
正憲 友田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6045888A priority Critical patent/JP2960297B2/ja
Priority to US08/404,770 priority patent/US5706511A/en
Publication of JPH07262071A publication Critical patent/JPH07262071A/ja
Application granted granted Critical
Publication of JP2960297B2 publication Critical patent/JP2960297B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】本発明は、各管理プロセス間でのデータの移動
を抑えて各トランザクションの処理を高速に行なう。 【構成】データベース4と、トランザクションを受けと
りデータベース4に対する処理を行なう複数の管理プロ
セス2と、複数の管理プロセス2のそれぞれに対応して
管理プロセス2によって処理されるデータを保持するた
めのバッファ3と、複数の管理プロセス2に対応するバ
ッファ3に保持された処理対象とするデータを示す情
報、及び処理対象とする各データの種類を示す情報とを
格納するためのデータ管理テーブル6と、複数の管理プ
ロセス2間でのデータのやりとりを管理するロックマネ
ージャ5と、データ管理テーブル6に格納された情報を
参照し、トランザクションの種類に応じて、トランザク
ションを処理するべきデータベース管理プロセスを決定
するトランザクション負荷分散手段1とを具備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベースを管理す
る複数のデータベース管理プロセスが動作するデータベ
ースシステム及び負荷分散制御方法に関する。
【0002】
【従来の技術】従来、複数のプロセッサを備える計算機
において、データベースを複数のデータベース管理プロ
セス(以下、管理プロセスと略称する)が管理するシス
テムが提案されている。例えば、「ORCALE RD
BMS Version6.2Database Ad
ministrator´s Guide」 Adde
ndumに記載されている。
【0003】この種、システムの特徴としては、複数の
トランザクションを効率良く並行して処理できることが
あげられる。それぞれの管理プロセスは、ディスク上で
共有しているデータベースにアクセスし、データの更
新、削除などを行ない、トランザクションを処理する。
【0004】この際に、管理プロセスは、処理するデー
タ(ブロック)を主記憶(バッファ)に保持しており、
次に同じデータを処理する場合は、ディスクヘのI/O
操作なしに主記憶に対する操作を行なうので、高速に処
理を行なうことができる。また、読み取り専用であれ
ば、同一のデータを複数個の管理プロセスの主記憶に保
持でき、より少ないI/O操作で処理が可能となる。
【0005】しかし、これらの主記憶上のデータの一つ
が更新された場合、他の主記憶上のデータのコピーとの
一貫性が取れなくなる可能性がある。従って、各管理プ
ロセスの主記憶上のデータの一貫性を保つための機構、
すなわちロックの制御が必要となる。
【0006】また、ある管理プロセスが主記憶に保持し
ているデータを、他の管理プロセスがアクセスする場合
には、ロック制御や主記憶間でのデータの転送が起こ
り、トランザクションの処理に時間がかかる。
【0007】また、複数ある管理プロセスから任意に選
択されたプロセスによってトランザクションを処理する
と、前述したような主記憶間でのデータの移動が起こり
やすく、システム全体のスループットが落ちてしまう。
【0008】また、トランザクションは、ディスク操作
を伴う。通常、管理プロセスは、プロセッサの使用効率
を向上させるために、同時に複数のトランザクションを
処理する。このような処理を行なうために、管理プロセ
スはトランザクションごとに処理プロセスを作成する。
これらの処理プロセス間で、バッファを共有するために
共有メモリを使用することが多い。従来のシステムで
は、バッファを共有するプロセスは、オペレーティング
システムが提供する「共有メモリ」などの機能を使用す
る。「共有メモリ」間でのデータの共有、特に移動に非
常に大きなコストがかかることが多く、プロセッサの使
用効率を下げる要因になる。つまり、共有メモリを使用
する場合、任意に選択された管理プロセスによってトラ
ンザクションを処理すると、その管理プロセスが多くの
トランザクションを処理していると、プロセッサを効率
良く使用できなくなってしまう。
【0009】
【発明が解決しようとする課題】このように従来のシス
テムでは、異なる管理プロセスが同一のデータベースに
アクセスする場合、バッファ間でデータが頻繁に移動す
る場合がある。データを移動するには、非常に大きなオ
ーバヘッドがかかる。そのため、プロセッサが効率良く
使用できない、トランザクションの処理に時間がかかっ
てしまう、システム全体としてのスループットが落ちて
しまうなどの問題があった。
【0010】本発明は前記のような事情を考慮してなさ
れたもので、各管理プロセスのバッファ間でのデータの
移動を抑えて各トランザクションの処理を高速に行なう
ことが可能なデータベース負荷分散制御方式を提供する
ことを目的とする。
【0011】
【課題を解決するための手段】本発明は、データベース
と、トランザクションを受けとり、前記データベースに
対する処理を行なう複数のデータベース管理プロセス
と、前記複数のデータベース管理プロセスのそれぞれに
対応して、前記データベース管理プロセスによって処理
されるデータを保持するための保持手段と、前記複数の
データベース管理プロセスに対応する前記保持手段に保
持された処理対象とするデータを示す情報、及び処理対
象とする各データの種類を示す情報とを格納するための
データ管理テーブルと、前記複数のデータベース管理プ
ロセス間でのデータのやりとりを管理するロックマネー
ジャと、前記データ管理テーブルに格納された情報を参
照し、トランザクションの種類に応じて、トランザクシ
ョンを処理するべきデータベース管理プロセスを決定す
るトランザクション負荷分散手段とを具備し、前記複数
のデータベース管理プロセス間でのデータの移動を低減
させることを特徴とする。
【0012】
【作用】このような構成によれば、トランザクション負
荷分散手段は、それぞれの管理プロセスがメモリに保持
しているデータベースのデータを示す情報及び各データ
の種類を格納するためのデータ管理テーブルを参照し
て、トランザクションに対し、複数の管理プロセスのう
ち最も負担の少なくなると予想される管理プロセス、す
なわち処理するデータを一時保持する保持手段(バッフ
ァ)に格納されているデータに応じて、処理を実行すべ
き管理プロセスとして決定する。これにより、複数の管
理プロセス間でデータの送受信をできるだけ抑えること
ができ、トランザクションの処理を高速に行なうことが
できる。
【0013】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1は第1実施例に係わるデータベース負荷分散
制御方式を適用するシステムの構成を示すブロック図で
ある。図1に示すように、第1実施例のシステムは、ト
ランザクション負荷分散手段1、管理プロセス2、バッ
ファ3、データベース4、ロックマネージャ5、データ
管理テーブル6、及びアプリケーション8によって構成
されている。
【0014】トランザクション負荷分散手段1は、アプ
リケーション8から発行されたトランザクション(デー
タベース4に対する操作)について、トランザクション
がどのようなデータ種類のデータにアクセスするか、及
びデータ管理テーブル6に格納された内容に基づいて、
管理プロセス2への負荷が分散されるように割り当てる
ための処理を行なう。
【0015】管理プロセス2は、データベース4の管理
や、アプリケーション8から発行されトランザクション
負荷分散手段1によって割り当てられたトランザクショ
ンに応じた一連のデータベース操作を実行するものであ
る。管理プロセス2は、データベース4のデータをアク
セスする場合は、データをいくつかまとめたブロックと
呼ぶ単位として、ディスク(データベース4)とバッフ
ァ3の間でやりとりする。
【0016】バッファ3は、管理プロセス2が処理する
データをデータベース4との間でやりとりするために、
ブロック単位で一時的に蓄えるものである。データベー
ス4は、複数のプロセッサに共有されているディスク装
置等によって実現され、アプリケーション8が発行する
トランザクションの対象となる各種テーブルから構成さ
れ、管理プロセス2によって管理される。データベース
4に対しては、各テーブルに付与されたテーブル名を用
いて対象とするテーブルが指定される。
【0017】ロックマネージャ5は、管理プロセス2が
用いるバッファ3を管理し、管理プロセス2間のデータ
の受け渡しの処理を担当するものである。ロックマネー
ジャ5は、バッファ3にコピーされたデータとディスク
(データベース4)に格納されたデータとに矛盾が無い
ことを保証する。ロックマネージャ5は、バッファ3に
格納されているブロックの状態を、データ管理テーブル
6を用いて管理し、また、データベース4と管理プロセ
ス2のバッファ3の間のブロックのやりとりも管理して
いる。
【0018】データ管理テーブル6は、ロックマネージ
ャ5によって管理され、各管理プロセス2が保持してい
るデータを示す情報の一覧を格納するためのものであ
る。図2に、第1実施例におけるデータ管理テーブル6
の一例を示している。データ管理テーブル6は、図2に
示すように、管理プロセス2ごとに一意に定まる管理プ
ロセスID21と、データベース4のブロックのブロッ
ク番号22、ブロックの状態23、及びブロックが所属
するテーブル名24の組からなる。
【0019】ブロック番号は、データベース4内でブロ
ックにつけられたユニークな番号である。ブロックは、
読みだしロック(ro)、読み書きロック(rw)、ダ
ーティ(d)としてその状態がデータ管理テーブル6に
登録されている。
【0020】ディスク操作には時間がかかるために、デ
ィスク操作を少なくするためにバッファ3にブロックの
コピーを保有する。その種類として、読みだし専用、読
み書き用がある。roは、読みだし用のコピーであるこ
とを示し、複数のコピーがバッファ3に存在してもよ
い。rwは、読み書き用で、内容が更新中(確定してい
ない)状態を示し、roのコピーが他に存在してもよ
い。dは、そのコピーが最新の内容を持つ唯一のもので
あり、roのコピーは存在できず、新たにディスクより
コピーを作ることもできない状態を表している。
【0021】アプリケーション8は、一連のデータベー
ス処理を要求するためのトランザクションを、トランザ
クション負荷分散手1を介して管理プロセス2に発行す
るものである。
【0022】次に、第1実施例の動作について説明す
る。管理プロセス2は、ロックマネージャ5に、問い合
わせをしてからデータベース4のデータにアクセスして
ブロックをバッファ3へ転送する。はじめに、ロックマ
ネージャ5の動作について説明する。図3はロックマネ
ージャ5の具体的な動作手順を示すフローチャートであ
る。
【0023】ロックマネージャ5は、管理プロセスI
D、テーブル名、ブロック番号、状態(読みだし専用、
読み書き用)を管理プロセス2より渡される。ロックマ
ネージャ5は、渡された状態から、そのブロックの状態
を把握し、他の管理プロセス2がロックしている場合に
は、ロックが解除されるまで待つ。以下、引数として受
けとった状態を「status」と略して記述する。
【0024】まず、ロックマネージャ5は、データ管理
テーブル6を検索して、既にブロックがその管理プロセ
ス2のバッファにあるかどうかを調べる(ステップA
1)。リードコピーが必要な場合は(status=r
oのとき)、更新されたコピーが存在するならそれをデ
ィスクに反映させ、更新できないようにする必要があ
る。また、ライトコピーが必要な場合は(status
=rwのとき)、同じく更新されたコピーが存在する場
合は、ディスクに反映させる必要がある。
【0025】(1)他の管理プロセスのバッファに存在
する場合(ステップA1)には、他の管理プロセス2の
バッフア3に存在するコピーの状態により動作が異な
る。 [1]status=ro(読出しロック)のとき(ス
テップA2)。
【0026】リードコピーが要求されている場合なの
で、更新されているコピーが他に存在する場合には、デ
ータベース4へ最新の内容を反映させなければならな
い。従って、他の管理プロセスのバッファ中にダーティ
(d)状態のコピーがあるとき(ステップA3)、その
ブロックをデータベース4に対して書かせる。
【0027】[2]status=ro(読出しロッ
ク)ではないとき(ステップA2)。 ブロックの内容を更新する場合なので、他の書き込み可
能なコピーをディスクに反映させる必要がある。 (a)他の管理プロセス2のバッファ3中に、ダーティ
(d)状態のコピーがあるとき(ステップA5)には、
ロックマネージャ5は、更新されたブロックが、他の管
理プロセス2のバッファ3にあるので、そのブロックを
データベース4に書かせる(ステップA6)。 (b)他の管理プロセス2のバッファ3中に、ダーティ
(d)状態のコピーがないとき(ステップA5)には、
ロックマネージャ5は、rwのコピーが他の管理プロセ
スに存在するとき(ステップA7)、そのコピーの状態
がダーティ(d)になるまで待つ(ステップA8)。こ
れは、更新するべくコピーをバッファに格納しているプ
ロセスが他に存在している場合なので、その更新が終了
するまで待つ必要があるためである。
【0028】最後に、ロックマネージャ5は、データ管
理テーブル6にブロックを登録する(ステップA9)。 (2)一方、何れの管理プロセス2のバッファ3にもな
い、あるいは、呼び出した管理プロセス2のバッファ3
にブロックが存在する場合(ステップA1)。
【0029】[1]status=rw(読み書きロッ
ク)のとき(ステップA10,A11)。 すでにあるブロックの状態がrwのとき(ステップA1
2)、この管理プロセス2が処理している途中の他のト
ランザクションがロックしているので、状態がダーティ
(d)になるまで待つ(すなわち処理が終了するまで待
つ)(ステップA13)。ロックマネージャ5は、デー
タ管理テーブル6のエントリ(状態)を書き替える(ス
テップA15)。
【0030】[2]status=d(ダーティ)のと
き(ステップA10,A11)。 他の管理プロセスのバッファのroの状態のコピーを捨
てる(ステップA14)。これは、更新するためにロッ
クしていたブロックの処理が終了し、その内容を最新の
ものにするために、他のプロセスが保持しているコピー
を破棄させなければならないためである。
【0031】ロックマネージャ5は、データ管理テーブ
ル6のエントリ(状態)を書き替える(ステップA1
5)。次に、トランザクション負荷分散手段1の動作に
ついて説明する。図3はトランザクション負荷分散手段
1がどのように負荷分散を行なうかを説明するためのフ
ローチャートである。
【0032】アプリケーション8からトランザクション
が発行されると、トランザクション負荷分散手段1は、
そのトランザクションを受けとる(ステップB1)。次
に、トランザクション負荷分散手段1は、トランザクシ
ョンを処理する管理プロセス2を決定する。
【0033】以下、第1実施例におけるトランザクショ
ン負荷分散手段1がトランザクションを処理する管理プ
ロセスを、どのように決定するかを説明する。トランザ
クション負荷分散手段1は、アプリケーション8からの
トランザクションの内容を解析することで、どのテーブ
ルにアクセスするかデータ種類を含めて判別することが
できる。
【0034】一般に、一つのトランザクションの中で、
複数のテーブルに対して操作を行なう場合もあるため、
トランザクション負荷分散手段1は、受けとったトラン
ザクションがアクセスする複数のテーブル名を得ること
ができる。
【0035】トランザクション負荷分散手段1は、取得
したテーブル名とデータ管理テーブル6を用いて、「操
作を行なうテーブルに所属し、かつ、管理プロセスのバ
ッファに格納されているブロックの総数値」(以下、ブ
ロック総数値と称する)を各管理プロセスに対して計算
する(ステップB2)。
【0036】すなわち、ブロック総数値が最も大きい管
理プロセスが、いまから処理しようとするトランザクシ
ョンに対して、すでに多くのブロックをバッファ3に保
持しており、ブロックのバッファ間での転送が少なくて
すむと予想されるものである。
【0037】トランザクション負荷分散手段1は、ブロ
ック総数値が最も大きい管理プロセスに、トランザクシ
ョンを処理させるものと決定する(ステップB3)。ト
ランザクション負荷分散手段1は、アプリケーション8
からのトランザクションを、決定した管理プロセス2に
渡す。
【0038】次に、管理プロセス2の動作について説明
する。図4は管理プロセス2の動作手順を説明するため
のフローチャートである。まず、管理プロセス2は、ト
ランザクション負荷分散手段1を介して、アプリケーシ
ョン8からのトランザクションを受けとる(ステップC
1)。そして、管理プロセス2は、トランザクション内
のデータベース操作の内容を解析する(ステップC
2)。管理プロセス2は、データベース操作の内容の解
析結果と、データベース4のインデックスから、トラン
ザクションを処理するために必要なブロック(複数の場
合もある)のデータベースのテーブル名と、ブロック番
号、状態(読みだし専用、読み書き用)が取得できる。
【0039】次に、管理プロセス2は、自身の管理プロ
セスID、テーブル名、ブロック番号、状態をロックマ
ネージャ5に渡す(ステップC3)。すでにバッファ3
に対象とするブロックがあると返事が返った場合には、
データベース4から、そのブロックの内容をバッファ2
にコピーする(ステップC4)。管理プロセス2は、処
理に必要な全てのブロックをバッファ2に格納した後、
トランザクションの処理を行なう(ステップC5)。
【0040】また、管理プロセス2は、読み書き用とし
てバッファ2にコピーを持つ場合で、そのブロックのデ
ータを更新した場合は(ステップC7)、ダーティとし
てそのブロックをロックマネージャ5を通じて、データ
管理テーブル6に登録させる(ステップC8)。
【0041】このようにして、アプリケーション8から
発行されたトランザクションに対して、トランザクショ
ン負荷分散手段1が、処理しようとするトランザクショ
ンに対する多くのブロックをすでに保持している、ブロ
ック総数値の最も大きい管理プロセス2にトランザクシ
ョンを渡すので、バッファ3間でのデータの転送を低減
させることができる。従って、プロセッサを効率良く使
用することができ、またトランザクションの処理時間を
短縮して、システム全体としてのスループットの向上を
図ることができる。
【0042】次に、第2実施例について説明する。第2
実施例は、第1実施例と比較して、トランザクション負
荷分散の方法が異なる。図6は第2実施例に係わるシス
テムの構成を示すブロック図である。第2実施例のシス
テムは、トランザクション負荷分散手段51、管理プロ
セス52、バッファ53、データベース54、ロックマ
ネージャ55、データ管理テーブル56、管理プロセス
テーブル57、及びアプリケーション58によって構成
されている。
【0043】トランザクション負荷分散手段51は、ア
プリケーション58から発行されたトランザクション
(データベース54に対する操作)について、データ管
理テーブル56に格納された内容を参照して、管理プロ
セス52への負荷が分散されるように割り当てるための
処理を行なう。
【0044】管理プロセス52は、データベース54の
管理や、アプリケーション58から発行されトランザク
ション負荷分散手段51によって割り当てられたトラン
ザクションに応じた一連のデータベース操作を実行する
ものである。
【0045】バッファ53は、管理プロセス52が処理
するデータをデータベース54との間でやりとりするた
めに、ブロック単位で一時的に蓄えるものである。デー
タベース54は、複数のプロセッサに共有されているデ
ィスク装置等によって実現され、アプリケーション58
が発行するトランザクションの対象となる各種データベ
ース(テーブル)から構成され、管理プロセス52によ
って管理される。データベース54に対しては、各テー
ブル名を用いて対象とするテーブルが指定される。
【0046】ロックマネージャ55は、管理プロセス5
2が用いるバッファ53を管理し、管理プロセス52間
のデータの受け渡しの処理を担当するものである。ロッ
クマネージャ55は、バッファのコピーとディスクの無
矛盾を保証する。ロックマネージャ55は、バッファ5
3に格納されているブロックの状態を、データ管理テー
ブル56を用いて管理し、また、データベースと管理プ
ロセスのバッファの間のブロックのやりとりも管理して
いる。
【0047】データ管理テーブル56は、ロックマネー
ジャ55によって管理され、各管理プロセス52が保持
しているデータの一覧を格納するためのものである。第
2実施例におけるデータ管理テーブル56は、図2に示
した第1実施例におけるデータ管理テーブル6と同様の
内容が格納されるものとして説明を省略する。
【0048】管理プロセステーブル57は、図7に示す
ように、管理プロセスID61とそのプロセスが現在処
理中のトランザクション数62の組からなる。アプリケ
ーション58は、一連のデータベース処理を要求するた
めのトランザクションを、トランザクション負荷分散手
51を介して管理プロセス52に発行するものである。
【0049】次に、第2実施例の動作について説明す
る。第2実施例におけるロックマネージャ55の動作
は、第1実施例におけるロックマネージャ5と同じもの
として説明を省略する。
【0050】次に、トランザクション負荷分散手段51
の動作について説明する。図8はトランザクション負荷
分散手段51がどのように負荷分散を行なうかを説明す
るためのフローチャートである。
【0051】アプリケーション58からトランザクショ
ンが発行されると、トランザクション負荷分散手段51
は、そのトランザクションを受けとる(ステップD
1)。次に、トランザクション負荷分散手段51は、ト
ランザクションを処理する管理プロセス52を決定す
る。
【0052】以下、第2実施例におけるトランザクショ
ン負荷分散手段51がトランザクションを処理する管理
プロセスを、どのように決定するかを説明する。トラン
ザクション負荷分散手段51は、アプリケーション58
からのトランザクションの内容を解析することで、どの
テーブルにアクセスするかデータ種類を含めて判別する
ことができる。
【0053】一般に、一つのトランザクションの中で、
複数のテーブルに対して操作を行なう場合もあるため、
トランザクション負荷分散手段51は、受けとったトラ
ンザクションがアクセスする複数のテーブル名を得るこ
とができる。
【0054】トランザクション負荷分散手段51は、取
得したテーブル名とデータ管理テーブル56を用いて、
「操作を行なうテーブルに所属し、かつ、管理プロセス
のバッファに格納されているブロックの総数値」(ブロ
ック総数値)を、各管理プロセスに対して計算する(ス
テップD2)。
【0055】トランザクション負荷分散手段51は、ト
ランザクションをどの管理プロセスに処理させるかを、
管理プロセステーブル57から得られる処理中のトラン
ザクション数と、ステップD2で求めたブロック総数値
を使って、全ての管理プロセス52に対して、以下の式
(1)が示す値を計算して求める(ステップD3)。
【0056】 (ブロック総数値)−(処理中のトランザクション×定数値) …(1) トランザクション負荷分散手段51は、全ての管理プロ
セス52に対して求められた値の中で、最も大きな値と
なった管理プロセス52にトランザクションを処理させ
るものと決定する(ステップD4)。
【0057】トランザクション負荷分散手段51は、ア
プリケーション58からのトランザクションを、ステッ
プD4で決定した管理プロセス52に渡す。なお、前記
(1)式中の定数値は、適当な値を予め設定しておく。
【0058】次に、管理プロセス52の動作について説
明する。第2実施例の管理プロセス52は、第1実施例
における管理プロセス2の動作手順を説明するためのフ
ローチャートに、管理プロセステーブル57に対する処
理ステップが付加されたものである。
【0059】管理プロセス52は、トランザクション負
荷分散手段51を介して、アプリケーション58から処
理をすべきトランザクションを受けとると、管理プロセ
ステーブル57中の、自身の管理プロセスID61に対
応するトランザクション数62のトランザクション処理
数を増やす(図5中の例えばステップC1の後)。
【0060】また、管理プロセス52は、トランザクシ
ョンの処理を終了すると、管理プロセステーブル57中
の、自身の管理プロセスID61に対応するトランザク
ション数62のトランザクション処理数を減らす(図4
中の例えばステップC6の後)。
【0061】その他の処理については、図5のフローチ
ャートに示す手順と同一であるので説明を省略する。次
に、第3実施例について説明する。第3実施例は、第2
実施例におけて用いた処理中のトランザクション数に代
えて、平均応答時間を使用するものである。第3実施例
のシステム構成は、管理プロセステーブル67が異なる
他は、第2実施例の構成と同一であるので、図6に示す
ブロック図を用いて説明する。
【0062】図9に第3実施例における管理プロセステ
ーブル67に格納される内容を示す。図9に示すよう
に、管理プロセステーブル67は、管理プロセスID7
1と、その管理プロセスが処理したトランザクションの
平均応答時間72の組が、複数の管理プロセスID分登
録されたものである。
【0063】次に、第3実施例のトランザクション負荷
分散手段81の動作について説明する。図10はトラン
ザクション負荷分散手段81がどのように負荷分散を行
なうかを説明するためのフローチャートである。
【0064】アプリケーション58からトランザクショ
ンが発行されると、トランザクション負荷分散手段81
は、そのトランザクションを受けとる(ステップE
1)。次に、トランザクション負荷分散手段81は、ト
ランザクションを処理する管理プロセス52を決定す
る。
【0065】以下、第3実施例におけるトランザクショ
ン負荷分散手段81がトランザクションを処理する管理
プロセスを、どのように決定するかを説明する。トラン
ザクション負荷分散手段81は、アプリケーション58
からのトランザクションの内容を解析することで、どの
テーブルにアクセスするかデータ種類を含めて判別する
ことができる。
【0066】一般に、一つのトランザクションの中で、
複数のテーブルに対して操作を行なう場合もあるため、
トランザクション負荷分散手段81は、受けとったトラ
ンザクションがアクセスする複数のテーブル名を得るこ
とができる。
【0067】トランザクション負荷分散手段81は、取
得したテーブル名とデータ管理テーブル56を用いて、
「操作を行なうテーブルに所属し、かつ、管理プロセス
のバッファに格納されているブロックの総数値」(ブロ
ック総数値)を、各管理プロセスに対して計算する(ス
テップE2)。
【0068】トランザクション負荷分散手段81は、ト
ランザクションをどの管理プロセスに処理させるかを、
管理プロセステーブル87から得られる処理中のトラン
ザクション数と、ステップE2で求めたブロック総数値
を使って、全ての管理プロセス52に対して、以下の式
(2)が示す値を計算して求める(ステップE3)。
【0069】 (ブロック総数値)−(平均応答時間×定数値) …(2) トランザクション負荷分散手段81は、全ての管理プロ
セス52に対して求められた値の中で、最も大きな値と
なった管理プロセス52にトランザクションを処理させ
るものと決定する(ステップE4)。
【0070】トランザクション負荷分散手段81は、ア
プリケーション58からのトランザクションを、ステッ
プE4で決定した管理プロセス52に渡す。なお、前記
(2)式中の定数値は、適当な値を予め設定しておく。
【0071】次に、管理プロセス82の動作について説
明する。第3実施例の管理プロセス82は、第1実施例
における管理プロセス2の動作手順を説明するためのフ
ローチャートに、管理プロセステーブル87に対する処
理ステップが付加されたものである。
【0072】管理プロセス82は、トランザクション負
荷分散手段81を介して受けとったアプリケーション5
8からのトランザクションを処理するときに、その実行
時間を計測する。そして、管理プロセス82は、管理プ
ロセステーブル87に格納された、自身の管理プロセス
ID71に対応する平均応答時間72を、計測した実行
時間を含めて再計算して、管理プロセステーブル87に
格納(更新)する(図5中の例えばステップC6の
後)。
【0073】その他の処理については、図5のフローチ
ャートに示す手順と同一であるので説明を省略する。こ
のようにして、第2実施例及び第3実施例は、アプリケ
ーション58から発行されたトランザクションに対し
て、ブロック総数値だけでなく、各管理プロセス52が
実行中のトランザクション数(第2実施例)、または各
管理プロセス82のトランザクションに対する処理の平
均応答時間(第3実施例)に基づいて、トランザクショ
ンを渡す管理プロセスを決定するので、第1実施例と同
様に、バッファ53間でのデータの転送を低減させるこ
とができる。従って、プロセッサを効率良く使用するこ
とができ、またトランザクションの処理時間を短縮し
て、システム全体としてのスループットの向上を図るこ
とができる。
【0074】
【発明の効果】以上のように本発明によれば、トランザ
クションを処理する管理プロセスを管理プロセスの保持
するデータとトランザクションの性質から決定し、管理
プロセス間のデータの移動をできる限り抑えることがで
きる。これにより、各トランザクションの処理を、より
高速に行なうことができる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係わるデータベース負荷
分散制御方式を適用するシステムの構成を示すブロック
図。
【図2】第1実施例におけるデータ管理テーブル6の一
例を示す図。
【図3】第1実施例におけるロックマネージャ5の動作
を説明するためのフローチャート。
【図4】第1実施例におけるトランザクション負荷分散
手段1の動作を説明するためのフローチャート。
【図5】第1実施例における管理プロセス2の動作手順
を説明するためのフローチャート。
【図6】第2実施例に係わるシステムの構成を示すブロ
ック図。
【図7】第2実施例における管理プロセステーブル57
の一例を示す図。
【図8】第2実施例におけるトランザクション負荷分散
手段51の動作を説明するためのフローチャート。
【図9】第3実施例における管理プロセステーブル67
の一例を示す図。
【図10】第3実施例におけるトランザクション負荷分
散手段81の動作を説明するためのフローチャート。
【符号の説明】
1,51,81…トランザクション負荷分散手段、2,
52…管理プロセス、3,53…バッファ、4,54…
データベース、5,55…ロックマネージャ、6,56
…データ管理テーブル、8,58…アプリケーション、
21,71…管理プロセスID、22…ブロック番号、
23…状態、24…テーブル名、56…データ管理テー
ブル、57,87…管理プロセステーブル、61…管理
プロセスID、62,72…トランザクション数。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 データベースと、 トランザクションを受けとり、前記データベースに対す
    る処理を行なう複数のデータベース管理プロセスと、 前記複数のデータベース管理プロセスのそれぞれに対応
    して、前記データベース管理プロセスによって処理され
    るデータを保持するための保持手段と、 前記複数のデータベース管理プロセスに対応する前記保
    持手段に保持された処理対象とするデータを示す情報、
    及び処理対象とする各データの種類を示す情報とを格納
    するためのデータ管理テーブルと、 前記複数のデータベース管理プロセス間でのデータのや
    りとりを、前記データ管理テーブルを用いて管理するロ
    ックマネージャと、 前記データ管理テーブルに格納された情報を参照し、ト
    ランザクションの種類に応じて、トランザクションを処
    理するべきデータベース管理プロセスを決定するトラン
    ザクション負荷分散手段と、 を具備し、 前記複数のデータベース管理プロセス間でのデータの移
    動を低減させることを特徴とするデータベースシステ
    ム。
  2. 【請求項2】 前記トランザクション負荷分散手段は、
    トランザクションが対象とするデータを前記保持手段に
    保持する可能性の高さに基づいて、トランザクションを
    処理するべきデータベース管理プロセスを決定すること
    を特徴とする請求項1記載のデータベースシステム。
  3. 【請求項3】 前記トランザクション負荷分散手段は、
    トランザクションが対象とするデータを前記保持手段に
    保持する可能性の高さ、及び前記複数のデータベース管
    理プロセスのそれぞれの処理負担状況に基づいて、トラ
    ンザクションを処理するべきデータベース管理プロセス
    を決定することを特徴とする請求項1記載のデータベー
    スシステム。
  4. 【請求項4】 前記トランザクション負荷分散手段は、
    トランザクションが対象とするデータを前記保持手段に
    保持する可能性の高さ、及び前記複数のデータベース管
    理プロセスのそれぞれのトランザクションに対する応答
    時間に基づいて、トランザクションを処理するべきデー
    タベース管理プロセスを決定することを特徴とする請求
    項1記載のデータベースシステム。
  5. 【請求項5】 データベースのデータを処理するトラン
    ザクションに対して複数の管理プロセスから1つの管理
    プロセスが選択されて処理が実行されるデータベースシ
    ステムにおいて、 複数のデータベース管理プロセスが処理対象としてそれ
    ぞれ保持するデータと、トランザクションの種類によ
    り、トランザクションを処理すべきデータベース管理プ
    ロセスを決定することで各管理プロセスへトランザクシ
    ョンを割つけることを特徴とする負荷分散制御方法。
JP6045888A 1994-03-16 1994-03-16 データベースシステム及び負荷分散制御方法 Expired - Fee Related JP2960297B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6045888A JP2960297B2 (ja) 1994-03-16 1994-03-16 データベースシステム及び負荷分散制御方法
US08/404,770 US5706511A (en) 1994-03-16 1995-03-15 Data base system and load distribution control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6045888A JP2960297B2 (ja) 1994-03-16 1994-03-16 データベースシステム及び負荷分散制御方法

Publications (2)

Publication Number Publication Date
JPH07262071A true JPH07262071A (ja) 1995-10-13
JP2960297B2 JP2960297B2 (ja) 1999-10-06

Family

ID=12731789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6045888A Expired - Fee Related JP2960297B2 (ja) 1994-03-16 1994-03-16 データベースシステム及び負荷分散制御方法

Country Status (2)

Country Link
US (1) US5706511A (ja)
JP (1) JP2960297B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480224A (zh) * 2017-09-11 2017-12-15 爱普(福建)科技有限公司 控制站的组态数据与第三方数据库实现数据共享的装置
CN113176876A (zh) * 2021-04-23 2021-07-27 网易(杭州)网络有限公司 数据读写的方法、装置和电子设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US6185601B1 (en) 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6101508A (en) * 1997-08-01 2000-08-08 Hewlett-Packard Company Clustered file management for network resources
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US5924097A (en) * 1997-12-23 1999-07-13 Unisys Corporation Balanced input/output task management for use in multiprocessor transaction processing system
US6829609B1 (en) * 2000-01-11 2004-12-07 Emc Corporation System, device, and method for providing mutual exclusion for computer system resources
JP2001209586A (ja) * 2000-01-26 2001-08-03 Toshiba Corp コンピュータにおけるコンテンツ管理装置及びコンテンツ管理方法
US7028297B2 (en) 2000-11-17 2006-04-11 Aristos Logic Corporation System and method of scalable transaction processing
DE10109441A1 (de) * 2001-02-27 2002-09-12 Mayah Comm Gmbh Verfahren zum Erkennen audio-visueller Daten in Übertragungsnetzen, insbesondere dem Internet
US7383290B2 (en) 2004-03-09 2008-06-03 Hewlett-Packard Development Company, L.P. Transaction processing systems and methods utilizing non-disk persistent memory
US7398338B2 (en) * 2004-06-30 2008-07-08 Sap Ag Flexible and error resistant data buffering and connectivity
US10824622B2 (en) * 2013-11-25 2020-11-03 Sap Se Data statistics in data management systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0233650A (ja) * 1988-07-25 1990-02-02 Nec Corp マルチプロセッサシステムのタスクスケジュール方式
JPH04123234A (ja) * 1990-09-14 1992-04-23 Hitachi Ltd マルチプロセッサのプロセススケジューリング方式及びメモリ管理方式

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51127626A (en) * 1975-04-30 1976-11-06 Hitachi Ltd Information processor
US5283897A (en) * 1990-04-30 1994-02-01 International Business Machines Corporation Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5325525A (en) * 1991-04-04 1994-06-28 Hewlett-Packard Company Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
FR2683341A1 (fr) * 1991-10-30 1993-05-07 Apple Computer Procede et appareil pour reduire la transmission de donnees par la mise en antememoire indexee de donnees.
US5504894A (en) * 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
JP3017892B2 (ja) * 1992-09-30 2000-03-13 株式会社東芝 ファイル管理装置
JP3609841B2 (ja) * 1992-11-25 2005-01-12 富士通株式会社 ファイル管理装置
JP2809961B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 マルチプロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0233650A (ja) * 1988-07-25 1990-02-02 Nec Corp マルチプロセッサシステムのタスクスケジュール方式
JPH04123234A (ja) * 1990-09-14 1992-04-23 Hitachi Ltd マルチプロセッサのプロセススケジューリング方式及びメモリ管理方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480224A (zh) * 2017-09-11 2017-12-15 爱普(福建)科技有限公司 控制站的组态数据与第三方数据库实现数据共享的装置
CN107480224B (zh) * 2017-09-11 2021-06-22 爱普(福建)科技有限公司 控制站的组态数据与第三方数据库实现数据共享的装置
CN113176876A (zh) * 2021-04-23 2021-07-27 网易(杭州)网络有限公司 数据读写的方法、装置和电子设备
CN113176876B (zh) * 2021-04-23 2023-08-11 网易(杭州)网络有限公司 数据读写的方法、装置和电子设备

Also Published As

Publication number Publication date
JP2960297B2 (ja) 1999-10-06
US5706511A (en) 1998-01-06

Similar Documents

Publication Publication Date Title
CA2436517C (en) Method and apparatus for data processing
US7284151B2 (en) Conditional data access after database system failure
US7120746B2 (en) Technique for data transfer
US8589937B2 (en) Shared file system cache in a virtual machine or LPAR environment
US7092971B2 (en) Prefetch appliance server
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
JP4410795B2 (ja) 共有リソースの同時アクセス
US5946711A (en) System for locking data in a shared cache
US5892945A (en) Method and apparatus for distributing work granules among processes based on the location of data accessed in the work granules
US8489821B2 (en) Managing concurrent accesses to a cache
US5226143A (en) 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
US5852747A (en) System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client
US7024525B2 (en) Distributed background track processing
JP4746838B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
JP2960297B2 (ja) データベースシステム及び負荷分散制御方法
JPH10222407A (ja) プロセスオーバーヘッド及びデータベースサーバからの冗長な検索を減少するように同じプロセスにおける多数のデータベーストランザクションを処理する方法
US6473845B1 (en) System and method for dynamically updating memory address mappings
US20220229777A1 (en) Data storage system with multiple-size object allocator for disk cache
JP2781092B2 (ja) システム間排他制御方式
US20030225948A1 (en) Method, system, and article of manufacture for increasing processor utilization
US7536422B2 (en) Method for process substitution on a database management system
WO1993003436A1 (en) Method and apparatus for reducing lock period of shared buffer
US11880304B2 (en) Cache management using cache scope designation
JP2002032251A (ja) データ処理システム
JP2787107B2 (ja) バッファ制御方式及び装置

Legal Events

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