JPH0895841A - データベース処理方式 - Google Patents

データベース処理方式

Info

Publication number
JPH0895841A
JPH0895841A JP6228051A JP22805194A JPH0895841A JP H0895841 A JPH0895841 A JP H0895841A JP 6228051 A JP6228051 A JP 6228051A JP 22805194 A JP22805194 A JP 22805194A JP H0895841 A JPH0895841 A JP H0895841A
Authority
JP
Japan
Prior art keywords
node
server
memory device
client
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6228051A
Other languages
English (en)
Inventor
Mariko Masuda
まり子 増田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6228051A priority Critical patent/JPH0895841A/ja
Publication of JPH0895841A publication Critical patent/JPH0895841A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【構成】 データベースサーバ(以下、サーバという)
を有する計算機ノードと、このノードで共有可能な共有
ディスク装置と、前記ノードと結合された共有メモリ装
置と、を備え、前記共有ディスク装置上にデータベース
を構築し、同時アクセス制御に必要な制御情報を前記サ
ーバから前記共有メモリ装置に書込み・相互参照を行
い、前記サーバから前記同一データベースに対するデー
タ参照要求ができる。 【効果】 ノード数に拘らず同時実行制御に必要な情報
を得るためのメモリアクセスを同じ方法で行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、それぞれにサーバを
含む複数の計算機で構成されるシステムに於けるデータ
ベース処理方式に関するものである。
【0002】
【従来の技術】従来、それぞれがサーバを含む複数の計
算機サイトから、1つのデータベースに対し、同時にデ
ータ参照を行なうためのデータベース処理方式として
は、例えばORACLE社の「The ORACLE
Pararcll Server−white pap
er(Part No.3000103−0291)」
で述べられているORACLE社のパラレルサーバーと
いう製品のように、それぞれがノード間で相互に通信機
能を持つメモリ装置を使用した計算機を用いる方式があ
る。これは各メモリ上に書きこんだ自ノードのサーバの
制御情報を、前記メモリ通信機能を用いて他のノードか
らも参照できるようにしている。
【0003】何故他ノードのサーバの制御情報が必要か
について、もう少し詳しく解説する。一般的に、同一デ
ータに対して複数のサーバあるいは複数ユーザから同時
データ参照を行なう場合、同時書き込みを回避し、デー
タの一貫性の確保が必要である。このためにサーバは、
2相ロック・2相コミット(代表的なコミットメント制
御法)と呼ばれる手法をとっている。
【0004】2相ロックはあるノードがデータを更新す
る場合、他ノードからの同時書き込みを避けるため、す
でに対象データにロックがかかっていないかを調べる。
ロックがかかっていなければ、ロックをかけて他からア
クセス出来ない状態にしてから、更新処理を開始する。
トランザクション内の更新処理は、更新処理終了毎に変
更をデータベースに書き込むわけではなく、変更内容だ
けをトランザクションログファイルに書き込む。全ての
更新処理終了後、このトランザクションログファイルを
使い変更したデータをディスクに書き込んでデータベー
スの更新を行ない、ロックを解除する。これをコミット
という。もし、ロック要求を出しても既にロックがかか
っていた場合は、そのロック要求は実行されず、ロック
の解除を待つか、ロック要求をキャンセルさせるなどし
て、同一データの同時更新を回避する。
【0005】次にコミットは、先に述べたように2相コ
ミットという方式で行なわれる。まずコミット要求を出
し、他がコミット中でないことを確認してからコミット
を実行する。他がコミット中はコミット終了を待つ。こ
れにより、データベースへの同時書き込みを回避する。
【0006】以上より、複数のノードから同一データベ
ースに対する更新処理を行なう場合、この個々のノード
は、システム全体でロック情報やコミット情報などの制
御情報を管理し、相互にロック・コミットの実行を制御
する必要がある。先に従来例として上げたORACLE
社のパラレルサーバの場合では、この制御に必要な他ノ
ードの制御情報をメモリの前記の通信機能により相互に
通知しあい、実現しているのである。
【0007】図12は、例えば1994年1月20日・
21日に開催された「第1回オラクル・オープン・ワー
ルド」の前述したORACLE社のパラレルサーバに関
するセミナー「ソリューションセミナー/UNIX/パ
ラレルサーバ」で日本ピラミット社が配布した資料「P
YRAMID Valcncc Clustcr &O
RACLE7パラレルサーバーセミナー」中で述べられ
ているような、ORACLE社のパラレルサーバを実現
するシステム構成の一例を示した図である。システムは
それぞれサーバを含むノードa,b上にノード間で同期
可能なメモリ装置m、さらにノード間で共有可能なディ
スク装置hを持つ。共有ディスク装置hは回線81でノ
ードa,bと結合され、共有メモリ装置mは回線81と
は別の専用メモリバスなどの回線82によってノード
a,bに結合されている。ノードcはデータベースクラ
イアントを含む計算機であり、Ethernetなどの
通信回線4によってノードa,bと接続されている。各
ノードのサーバは、メモリ装置m上に必要な自ノードの
制御情報を書き込み、前記のメモリ間通信機能を使っ
て、他ノードの制御情報を読み込む。この2つの制御情
報を合わせて同時実行制御を行なう。
【0008】例えば、ロック実行時に、上記メモリ間通
信機能を使って他ノードにロック実行を通知する。各ノ
ードは、このようにして他ノードのロック情報を得て、
自ノードのロックの制御を実現している。
【0009】また、上記のメモリ間通信機能を用いて、
定期的にステイタス情報を他ノードに通知を行なう。他
ノードから送られたステイタス情報を各ノードがチェッ
クすることによって、他ノードの障害を検知する。さら
にこの機能により他ノードの障害を検知したノードは、
障害を起こしたノードのトランザクションログ情報をメ
モリ間通信機能を使って参照し、データベースの回復処
理を行なう。
【0010】また、各ノードが負荷状況に関するデータ
を取得してメモリ装置m上に置き、これを前記のメモリ
間通信機能を使いノード間で参照し、低負荷サーバの検
出を行なう。これにより、クライアントはノードの位置
を意識せずに、接続要求を出せば自動的に負荷の低いノ
ードに接続することができる。
【0011】
【発明が解決しようとする課題】従来の通信機能を持つ
メモリ装置を使用する方式では、ノード数が増加するに
つれ各ノードが通信しなくてはならないメモリ数が増え
る。そうすると各メモリの通信回線数が増えることにな
り、管理が複雑化するといった問題が発生する。また、
クライアントからデータ参照を行なっていた間に、接続
先のノードで障害が発生しクライアントに何の異常通知
も行なわずにサーバがダウンしたような場合、他ノード
からクライアントに異常を通知することはしないので、
クライアント自身はサーバからの応答を待ち続け、処理
が止まってしまう。クライアント側で一定時間内にサー
バからの応答がないときにプログラムを終了させるタイ
ムアウト処理を設定することも可能だが、設定された一
定時間が経過するまでは何も行なえない。
【0012】この発明は、上記のような問題点を解消す
るためになされたもので、ノードが増えても、メモリア
クセス方法を変化させる必要がなく、ノードの追加によ
るメモリ管理の複雑化といった問題を解決するデータベ
ース処理方式を提供すること、また、あるノードで障害
が発生して接続中のクライアントに何も通知を出来ない
ままそのノード上のサーバが停止した場合でも、従来と
違い、他ノードのいずれかから必ずクライアントに接続
中サーバの異常が通知されるサーバ異常検知手段を有す
るデータベース処理方式を提供することを目的とする。
【0013】
【課題を解決するための手段】請求項1のデータベース
処理方式は、サーバを有する計算機ノードと、このノー
ドで共有可能な共有ディスク装置と、前記ノードと結合
された共有メモリ装置と、を備え、前記共有ディスク装
置上にデータベースを構築し、同時アクセス制御に必要
な制御情報を前記サーバから前記共有メモリ装置に書込
み・相互参照を行い、前記サーバから前記同一データベ
ースに対するデータ参照要求ができるものである。
【0014】請求項2のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、前記ノードは定期的に自ノードの動作
状態に関する情報を共有メモリ装置上に書込み、この情
報を前記ノードが参照することにより他ノードの障害の
有無の判定を行い、障害ありと判定した場合は障害が発
生した以外のノードから、障害が発生したノードで実行
されていたトランザクションのリカバリ処理を行なうも
のである。
【0015】請求項3のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、障害が発生したノードのサーバ自身
が、接続中のクライアントに対しサーバのダウンを通知
できなかった場合、前記障害が発生したノード以外のサ
ーバが、共有メモリ装置にクライアント接続に関して書
込まれた情報を参照して接続中のクライアントを検出し
該クライアントにサーバの異常発生を通知し、クライア
ントが前記通知を受け取りサーバの異常を認識するもの
である。
【0016】請求項4のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、前記共有メモリ装置上に前記サーバの
負荷情報を置き、クライアントからサーバに対し接続要
求が送られると、前記共有メモリ装置上の負荷情報を参
照して低負荷サーバを判定しこのサーバを自動的に選択
して接続するものである。
【0017】請求項5のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、クライアントからサーバに接続してデ
ータ参照処理実行中に、接続開設時より現在接続してい
るサーバの負荷が上がり、逆に他のいずれかのサーバの
負荷が下がるという負荷状態の変化に応じ適切な負荷状
態にあるサーバを判定し、定められたタイミングでこの
サーバに自動的に接続を切り替えるものである。
【0018】
【作用】請求項1のデータベース処理方式は、ノード数
に拘らず同時実行制御に必要な情報を得るためのメモリ
アクセスを同じ方法で行える。
【0019】請求項2のデータベース処理方式は、各ノ
ード相互の異常検知、他ノードからのリカバリ処理がで
きる。
【0020】請求項3のデータベース処理方式は、クラ
イアントに異常を通知し、クライアントは異常処理を行
い、一定時間の経過を待たずに障害を起こしたノードを
検知して異常処理を開始する。
【0021】請求項4のデータベース処理方式は、低負
荷サーバの自動選択・接続切り替えにより負荷分散が図
れる。
【0022】請求項5のデータベース処理方式は、接続
先のノードの位置を意識することなく、常に負荷の低い
ノードのサーバを検出し、これを自動的に接続して処理
する。
【0023】
【実施例】
実施例1.図1は、この発明の実施例1によるシステム
構成の例を示す概略図であり、この場合A,B,Cの3
つのノードから成っている。ノードA,Bは通信回線3
で接続され、さらに共有可能な共有メモリ装置Sは各ノ
ードと回線1で結合されている。共有ディスク装置H
は、各ノードと共有ディスク結合手段2で結合されてい
る。また、共有ディスク装置H上にデータベースを構成
して、各ノード上のサーバから同時にデータ参照を行な
えるデータベースとして使用が可能である。また、ノー
ドCはデータベースクライアントとしての機能を持つ計
算機ノードであり、回線4でノードA,Bと接続されて
いる。
【0024】図2は、ノードA,Bの内部構成の例を示
す図である。1つのノードは、CPU6、メモリ7、共
有ディスク装置Hへの入出力を制御する入出力制御装置
8から成っている。また、回線3を管理する回線3管理
部9、回線1を管理する共有メモリ装置S管理部10が
含まれる。サーバ5は、メモリ7上にサーバプロセスと
して存在する。サーバ5は、図3のように構成される。
大きくはデータベース管理部11とデータベース通信制
御部12があり、データベース管理部11は一般的な質
問処理、データベース参照制御など、自ノード上で行な
うデータベース処理を制御する。さらにデータベース管
理部11は制御情報管理部13、データ情報管理部14
の2つがあり、制御情報管理部13はさらにその機能の
一部として、ロック要求処理機能15、ノード動作状態
送信機能16、リカバリ機能17、異常検出機能18、
クライアント異常通知機能19、負荷検出機能20な
ど、共有メモリ上での制御情報のやりとりを含む各種制
御機能から構成される。データベース通信制御部12は
ノードの外部との通信を管理する部分でロック管理を行
ない、データベース管理部などの要求に従い、入出力制
御装置8、回線3管理部9、共有メモリ装置管理部10
とのやりとりを行なう。
【0025】一般的にデータベース管理システムが更新
処理を行なう場合、表あるいはレコードなどの単位で、
対象オブジェクトに他からアクセスできないようロック
をかけてから、更新処理を行なう。このロックは、更新
処理が全て終了し、ディスクに変更書き込み(コミッ
ト)が終了後に解除される。この機能により、複数サー
バからのデータ更新要求が発生しても、データの一貫性
を保つことができる。図4は、その例として、ノードA
のレコードxに対する更新処理が終了しないうちに、ノ
ードBからレコードxに対する更新処理要求を出した場
合について、どのようにしてそれぞれの更新要求が処理
されるかを示している。ステップ21でノードAがまず
ロック要求を出し、ステップ22で既にロックされてい
ないか確認する。ロックされていない場合は、ステップ
23でロックをかけ、ステップ24の更新処理を実行
し、ステップ25のコミット処理でロックを解除する。
ロック実行からコミット終了までの期間(ステップ23
〜25)は、他ノードからレコードxに対するロック要
求を出しても、ロックは行なえない。この場合でもステ
ップ26のロック要求は、ステップ27のロックの有無
のチェックですでにステップ23でノードAにロック済
みであると判定され、ステップ28のロック解除待ちに
なる。ステップ25のノードAのコミット終了後に、ノ
ードBのロックが実行され(ステップ29)、更新処理
(ステップ30)をすべて終了し、コミット終了(ステ
ップ31)後に解除されている。
【0026】この時行なわれる個々のロック要求は、図
5に示されるような手順で処理される。図4のノードB
の出したロック要求の場合を用いて説明する。まずステ
ップ32でノードBは更新を行なおうとしてレコードx
にロック要求を出すが、ステップ33の他ノードからの
ロックの有無のチェックですでにノードAによってロッ
クされているためロック要求は拒否され、ステップ34
でノードBのロック要求はレコードxのロック待ちキュ
ーにエントリされる。さらにステップ35で、キューに
エントリされる毎にエントリ数を1つ増やす処理を行な
っている。なおこのような、他がすでにロック中のデー
タに対するロック要求の処理としては、ステップ34の
ようにロック待ちキューに入れてロック解除を待ってか
らロックを実行する方式と、ロック要求をキャンセルす
る方式とがある。図5では、ロック待ちキューに入れる
方式とした。ステップ37で先に実行されていたノード
Aのロックが解除されると、ステップ38でデータxに
対するロック待ちキューのエントリの有無を調べ、ステ
ップ39で何らかのアルゴリズムによって優先順位が付
けられたキューから最も優先度の高いロック要求を実行
する。また、キューの中の1つのロックが実行されたの
で、ステップ40でキューのエントリ数を1つ引いてい
る。もし、ノードBがステップ32でロック要求を出し
たデータがロックされていなかった場合は、ステップ3
6のロック実行が行なわれ、共有メモリ装置S上にロッ
ク情報としてノード識別子、オブジェクト識別子、レコ
ード識別子などの情報を書き込む。この情報は、コミッ
トが実行されるステップ37の時点で消去される。
【0027】この実施例によれば、共有メモリ装置S上
にサーバの制御情報を置くことにより、ノード数に拘ら
ず同時実行制御に必要な情報を得るためのメモリアクセ
スを同じ方法で行なえるため、管理が容易になる。
【0028】実施例2.図6は、この発明の実施例2に
おける各ノードが他ノードのサーバの異常発生を検知す
るために行なう処理の例である。ノードA,Bは、それ
ぞれ一定の間隔をおいて順に、次の動作(ステップ4
1、42および43、44)を行なう。まず自ノードの
サーバの動作状態に関するデータを取得し、動作状態情
報として共有メモリ装置S上に書き込む。このデータの
取得方法としては、例えばサーバプロセスを監視するデ
ーモンプロセスが、サーバプロセスと通信し、その応答
結果をあらかじめ定めておいた幾つかの動作状態から該
当するものを判定し、例えば図7に示すような形式で共
有メモリ装置Sに書き込む。この場合では、ノード識別
子、動作状態の他に書き込み時の時刻を加え、前回書き
込んだ情報を上書きする形式で書き込んでいる。動作状
態は、’サーバ停止中’、’正常運行中’、’異常発
生’の3パターンとしている。次に、同様の手順で既に
書き込まれている他ノードのサーバの動作状態情報を読
み込み、正常に動作しているかどうかを確認する。ステ
ップ44の動作状態チェックの結果、例えば図7のよう
に動作状態の値が’異常発生’、あるいは時刻から前回
の読み込み時から動作状態情報が更新されていないと判
定された場合は、異常発生と判断され、ノードAのサー
バ異常を検知する。
【0029】例えば、ステップ45でノードAに障害が
起きてサーバ異常が発生し、ステップ44でノードBが
行なうノードAの動作状態の判定結果は異常有りとした
場合、ステップ46でノードBはノードAの異常を検知
し、ステップ47でノードBはノードAの実行した処理
のリカバリ処理を開始する。あらかじめ各サーバが更新
処理を行なう場合、1つの更新処理が終了する毎にトラ
ンザクションログ情報としてその更新内容を共有メモリ
装置S上に書き込み、これをコミットが終了するまで保
持するものとし、異常発生時にはこのトランザクション
ログを使用してリカバリ処理を行えるようにしている。
更新処理がコミットされると変更内容がディスクに書き
込まれ、共有メモリ装置S上のトランザクションログ情
報はクリアされる。トランザクションログ情報にはノー
ド識別子、レコード識別子、更新内容、時刻などが含ま
れる。図8は、他サーバの異常を検知したノードのサー
バが、異常を起こしたノードが行なっていたデータ参照
処理に対して行なうリカバリ処理の動作例を示してい
る。まずサーバが更新処理中でコミットしない状態で異
常発生した場合、障害を起こした以外のノードはステッ
プ48のロールバック処理、つまり更新の取消と対象レ
コードのロック解除を行なうリカバリ処理を起動する。
その内容として、ステップ49で障害発生時のコミット
されていない更新処理の有無を確認するため、共有メモ
リ装置H上の各ノードのトランザクションログ情報を読
みこみ、ステップ50で異常発生したノードのトランザ
クションログがないかを調べる。そして該当するトラン
ザクションログが残っていた場合は、ステップ51で該
当するトランザクションログ情報をクリアし、ステップ
52で更新レコードに対するロック解除を行ない、ステ
ップ53のリカバリ終了となる。ステップ52のロック
解除で必要な情報は、実施例1で述べた共有メモリ装置
H上にあるロック情報を参照して行なう。
【0030】この実施例によれば、各ノード相互の異常
検知、他ノードからのリカバリ処理により信頼性が向上
する。
【0031】実施例3.図9は、この発明の実施例3の
動作を示すフローチャートである。なお、あらかじめ各
サーバはクライアントとの接続を開設した場合、共有メ
モリ装置H上に接続クライアント情報として、サーバ識
別子、クライアント識別子などを書き込みを行なうもの
とする。また、接続が解除されるとこれをクリアする。
まず、ステップ54〜57でノードCのクライアント
が、ノードAのサーバに接続し、データ参照を行なうア
プリケーションを実行する。この時、ステップ58でノ
ードAで障害が発生しクライアントに何も通知できない
ままサーバがダウンしてしまったとする。ここでノード
Bはステップ59で、ノードAの障害によるサーバダウ
ンを発見し、接続クライアントを検出し、そのクライア
ントへのサーバAの異常発生を通知する。これは、共有
メモリ装置HからノードAの出した前記の接続クライア
ント情報の有無を確認し、有る場合はクライアント識別
子を検出する。ここでは、ノードCがクライアントであ
ることを検出し、ノードCに対して接続中サーバがダウ
ンしたことを通知する。さらにステップ60でこの通知
を受けたクライアントは、異常を検知して実行中のアプ
リケーションの異常終了を行なっている。この処理は、
クライアント側に例えばクライアントプロセスとは別の
デーモンプロセスを用意し、ノードBからの異常通知メ
ッセージを認識し、さらにこれを受けた場合にクライア
ントプロセスを異常終了させるなど異常処理を行なえる
ようにすれば実現できる。
【0032】この実施例によれば、クライアントに異常
を通知し、クライアントは異常処理を行ない、タイムア
ウトのような一定時間の経過を待たずに、障害を起こし
たノードを素早く検知して異常処理を開始することがで
きる。
【0033】実施例4.図10は、この発明の実施例4
の動作例を示すフローチャートである。ステップ61で
ノードCのクライアントからAPPを起動すると、クラ
イアントはまず接続先サーバを決定するため、ステップ
62でいずれかのサーバにメッセージを送って(ここで
はノードAとした)、ステップ63で最も負荷の低いサ
ーバの検出・通知処理を実行させる。ステップ64では
その通知結果(ここではノードAとする)に従い、通知
されたサーバに接続要求を送り、ステップ65の接続終
了後、ステップ66のデータ参照処理を開始する。この
実現方法については、クライアント上に各アプリケーシ
ョンを実行するクライアントプロセスの他に、サーバと
の接続を管理するデーモンプロセスを使用する方法があ
る。さらに詳しく説明する。この方法ではステップ62
で、ノードCのデーモンプロセスがクライアントプロセ
スからのサーバへの接続要求を受け取って(クライアン
トプロセス側では、ノードの指定は行なわない)、サー
バプロセスに対して、最も負荷の低いサーバの検出・通
知処理の実行を依頼するメッセージを送る。なお、クラ
イアントのデーモンプロセスは、ノードAまたはBのい
ずれにメッセージを送信するかは、あらかじめデフォル
トの設定等により決めておき、これに従うものとし、こ
こではノードAとした。次にステップ63でノードAの
サーバプロセスは、図3の負荷検出機能20を用いて最
も負荷の低いサーバを判定し(ここではノードAとし
た)、その結果をクライアントのデーモンプロセスに通
知する。この通知を受けたデーモンプロセスが接続要求
を出したクライアントプロセスに最も負荷の低かったノ
ード(ここではノードA)を通知する。ステップ64で
これを受けとったクライアントプロセスはそのノードの
サーバを指定して接続要求を出し、ステップ65の接続
が終了したら、ステップ66のアプリケーションで与え
られたデータ参照処理を開始する。
【0034】各サーバの持つ負荷検出機能は、自ノード
のサーバの負荷情報を取得し共有メモリ装置S上に書き
込む処理、すでに同じようにして書き込済みの他ノード
の負荷情報を参照し、何らかの基準に従って、最も負荷
の低いサーバを判定する処理、その結果をクライアント
上のデーモンプロセスへ通知する処理の3つを定期的に
各ノードが交互に行なう。
【0035】各サーバが行なう負荷検出には、負荷情報
として、例えば、各ノードの回線1、2の混み具合、C
PU利用率、メモリ空き領域、接続クライアント数など
の情報を取得し、これらを使用した何らかの判定式を用
意し、その計算結果より、最も負荷の低いサーバを決定
する。
【0036】この実施例によれば、低負荷サーバの自動
選択・接続切替えにより負荷分散を図り、処理能力を向
上させることができる。
【0037】実施例5.図11はこの発明の実施例5の
動作例を示すものである。ノードCのクライアントは、
実施例4の機能によってその時に最も低負荷状態にあっ
たノードAのサーバに接続してデータ参照を行なってい
たとする(ステップ67〜70)。その後ノードA,B
の負荷状況が逆転し、ノードBがステップ71の低負荷
ノードの検出で、ノードBの方がノードAよりも低負荷
であると判定し、ノードCのクライアントに通知した。
通知を受けたクライアント側では、例えば、クライアン
トプロセスとは別の接続管理を行なうデーモンプロセス
によってこれを受信し、さらにクライアントプロセスに
現在ノードBの方が低負荷であることを通知する。通知
を受けたクライアントプロセスが接続サーバを切替える
場合は、トランザクションの切れ目などのあらかじめ設
定しておいた適当なタイミングで、ステップ72のデー
タ参照処理中断を行ない、ステップ73のさらにノード
Bとの接続解除要求を出し、ステップ74でノードAと
の接続解除が終了するのを待って、ステップ75のノー
ドBへの接続要求を出し、ステップ76で接続後、ステ
ップ77で中断していたデータ参照処理を再開する。こ
の例ではステップ77の処理再開からステップ78の処
理終了までの間に負荷状況の逆転が検出・通知されなか
ったので、そのままステップ79、80でノードBとの
接続を解除して、ステップ81でAPPを終了してい
る。しかし、もしステップ77と78のデータ参照処理
終了までの間に負荷状況の逆転が検出された場合は、ス
テップ72〜77と同様の処理が繰り返される。
【0038】この実施例によれば、接続先のノードの位
置を意識することなく、常に負荷の低いノードのサーバ
を検出し、これを自動的に接続して処理を行なうことが
できる。
【0039】
【発明の効果】請求項1のデータベース処理方式は、サ
ーバを有する計算機ノードと、このノードで共有可能な
共有ディスク装置と、前記ノードと結合された共有メモ
リ装置と、を備え、前記共有ディスク装置上にデータベ
ースを構築し、同時アクセス制御に必要な制御情報を前
記サーバから前記共有メモリ装置に書込み・相互参照を
行い、前記サーバから前記同一データベースに対するデ
ータ参照要求ができる構成にしたので、ノード数に拘ら
ず同時実行制御に必要な情報を得るためのメモリアクセ
スを同じ方法で行えるので、管理が容易になる。
【0040】請求項2のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、前記ノードは定期的に自ノードの動作
状態に関する情報を共有メモリ装置上に書込み、この情
報を前記ノードが参照することにより他ノードの障害の
有無の判定を行い、障害ありと判定した場合は障害が発
生した以外のノードから、障害が発生したノードで実行
されていたトランザクションのリカバリ処理を行なう構
成にしたので、各ノード相互の異常検知、他ノードから
のリカバリ処理により信頼性が向上する。
【0041】請求項3のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、障害が発生したノードのサーバ自身
が、接続中のクライアントに対しサーバのダウンを通知
できなかった場合、前記障害が発生したノード以外のサ
ーバが、共有メモリ装置にクライアント接続に関して書
込まれた情報を参照して接続中のクライアントを検出し
該クライアントにサーバの異常発生を通知し、クライア
ントが前記通知を受け取りサーバの異常を認識する構成
にしたので、クライアントに異常を通知し、クライアン
トは異常処理を行い、一定時間の経過を待たずに障害を
起こしたノードを検知して異常処理を開始することがで
きる。
【0042】請求項4のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、前記共有メモリ装置上に前記サーバの
負荷情報を置き、クライアントからサーバに対し接続要
求が送られると、前記共有メモリ装置上の負荷情報を参
照して低負荷サーバを判定しこのサーバを自動的に選択
して接続する構成にしたので、低負荷サーバの自動選択
・接続切り替えにより負荷分散を図り、処理能力を向上
させることができる。
【0043】請求項5のデータベース処理方式は、サー
バを有する計算機ノードと、このノードで共有可能な共
有ディスク装置と、前記ノードと結合された共有メモリ
装置と、を備え、クライアントからサーバに接続してデ
ータ参照処理実行中に、接続開設時より現在接続してい
るサーバの負荷が上がり、逆に他のいずれかのサーバの
負荷が下がるという負荷状態の変化に応じ適切な負荷状
態にあるサーバを判定し、定められたタイミングでこの
サーバに自動的に接続を切り替える構成にしたので、接
続先のノードの位置を意識することなく、常に負荷の低
いノードのサーバを検出し、これを自動的に接続して処
理を行なうことができる。
【図面の簡単な説明】
【図1】 この発明の実施例1によるデータベース処理
方式を採用したデータベースシステムの全体構成を示す
概略図である。
【図2】 この発明の実施例1によるノードA、ノード
B単体の構成例を示す概略図である。
【図3】 この発明の実施例1によるデータベースサー
バプロセスの構成を示す図である。
【図4】 この発明の実施例1の動作で行なわれるロッ
ク要求処理の動作を示すフローチャート図である。
【図5】 この発明の実施例1の動作で行なわれるロッ
ク要求処理の動作を示すフローチャート図である。
【図6】 この発明の実施例2のサーバ異常検出処理の
動作を示すフローチャート図である。
【図7】 この発明の実施例2の動作で各サーバのステ
イタス情報として共有メモリ装置上に書かれるメッセー
ジの構成例を示す図である。
【図8】 この発明の実施例2のリカバリ処理の動作を
示すフローチャート図である。
【図9】 この発明の実施例3の動作を示すフローチャ
ート図である。
【図10】 この発明の実施例4の動作を示すフローチ
ャート図である。
【図11】 この発明の実施例5の動作を示すフローチ
ャート図である。
【図12】 従来の個々のメモリが同期機能を持つ計算
機を利用したシステムの全体構成を表す概略図である。
【符号の説明】
1〜4 回線、5 データベースバス、6 CPU、7
メモリ、8 入出力制御装置、9 回線管理部、10
共有メモリ装置管理部、11 データベース管理部、
12 データベース通信制御部、15 制御情報管理
部、14 データ参照管理部、15 ロック要求処理機
能、16 ノードステイタス送信機能、17 リカバリ
処理機能、18 異常検出機能、19 クライアント異
常通知機能、20 負荷検出機能。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 データベースサーバ(以下、サーバとい
    う)を有する計算機ノードと、このノードで共有可能な
    共有ディスク装置と、前記ノードと結合された共有メモ
    リ装置と、を備え、前記共有ディスク装置上にデータベ
    ースを構築し、同時アクセス制御に必要な制御情報を前
    記サーバから前記共有メモリ装置に書込み・相互参照を
    行い、前記サーバから前記同一データベースに対するデ
    ータ参照要求ができることを特徴とするデータベース処
    理方式。
  2. 【請求項2】 サーバを有する計算機ノードと、このノ
    ードで共有可能な共有ディスク装置と、前記ノードと結
    合された共有メモリ装置と、を備え、前記ノードは定期
    的に自ノードの動作状態に関する情報を共有メモリ装置
    上に書込み、この情報を前記ノードが参照することによ
    り他ノードの障害の有無の判定を行い、障害ありと判定
    した場合は障害が発生した以外のノードから、障害が発
    生したノードで実行されていたトランザクションのリカ
    バリ処理を行うことを特徴とするデータベース処理方
    式。
  3. 【請求項3】 サーバを有する計算機ノードと、このノ
    ードで共有可能な共有ディスク装置と、前記ノードと結
    合された共有メモリ装置と、を備え、障害が発生したノ
    ードのサーバ自身が、接続中のクライアントに対しサー
    バのダウンを通知できなかった場合、前記障害が発生し
    たノード以外のサーバが、共有メモリ装置にクライアン
    ト接続に関して書込まれた情報を参照して接続中のクラ
    イアントを検出し該クライアントにサーバの異常発生を
    通知し、クライアントが前記通知を受け取りサーバの異
    常を認識することを特徴とするデータベース処理方式。
  4. 【請求項4】 サーバを有する計算機ノードと、このノ
    ードで共有可能な共有ディスク装置と、前記ノードと結
    合された共有メモリ装置と、を備え、前記共有メモリ装
    置上に前記サーバの負荷情報を置き、クライアントから
    サーバに対し接続要求が送られると、前記共有メモリ装
    置上の負荷情報を参照して低負荷サーバを判定しこのサ
    ーバを自動的に選択して接続することを特徴とするデー
    タベース処理方式。
  5. 【請求項5】 サーバを有する計算機ノードと、このノ
    ードで共有可能な共有ディスク装置と、前記ノードと結
    合された共有メモリ装置と、を備え、クライアントから
    サーバに接続してデータ参照処理実行中に、接続開設時
    より現在接続しているサーバの負荷が上がり、逆に他の
    いずれかのサーバの負荷が下がるという負荷状態の変化
    に応じ適切な負荷状態にあるサーバを判定し、定められ
    たタイミングでこのサーバに自動的に接続を切り替える
    ことを特徴とするデータベース処理方式。
JP6228051A 1994-09-22 1994-09-22 データベース処理方式 Pending JPH0895841A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6228051A JPH0895841A (ja) 1994-09-22 1994-09-22 データベース処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6228051A JPH0895841A (ja) 1994-09-22 1994-09-22 データベース処理方式

Publications (1)

Publication Number Publication Date
JPH0895841A true JPH0895841A (ja) 1996-04-12

Family

ID=16870437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6228051A Pending JPH0895841A (ja) 1994-09-22 1994-09-22 データベース処理方式

Country Status (1)

Country Link
JP (1) JPH0895841A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018110031A (ja) * 2018-03-07 2018-07-12 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタ内のロック管理方法、ロックサーバ及びクライアント
US10609150B2 (en) 2015-12-14 2020-03-31 Huawei Technologies Co., Ltd. Lock management method in cluster, lock server, and client

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10609150B2 (en) 2015-12-14 2020-03-31 Huawei Technologies Co., Ltd. Lock management method in cluster, lock server, and client
JP2018110031A (ja) * 2018-03-07 2018-07-12 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタ内のロック管理方法、ロックサーバ及びクライアント

Similar Documents

Publication Publication Date Title
US7062676B2 (en) Method and system for installing program in multiple system
US7028218B2 (en) Redundant multi-processor and logical processor configuration for a file server
US5513314A (en) Fault tolerant NFS server system and mirroring protocol
US5784617A (en) Resource-capability-based method and system for handling service processor requests
US6449734B1 (en) Method and system for discarding locally committed transactions to ensure consistency in a server cluster
US7290086B2 (en) Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system
US7246187B1 (en) Method and apparatus for controlling exclusive access to a shared resource in a data storage system
US6839752B1 (en) Group data sharing during membership change in clustered computer system
US6363495B1 (en) Method and apparatus for partition resolution in clustered computer systems
TW523656B (en) Method and apparatus for building and managing multi-clustered computer systems
US7711820B2 (en) High availability for intelligent applications in storage networks
EP0750256B1 (en) Framework for managing cluster membership in a multiprocessor system
US6421787B1 (en) Highly available cluster message passing facility
JP3759410B2 (ja) クラスタ化された計算処理環境において実行する分散ネットワークアプリケーションの管理用リクエストを処理するための方法および装置
US6163855A (en) Method and system for replicated and consistent modifications in a server cluster
JP4500490B2 (ja) コンピュータ・クラスタリング・システムにおいて「スプリット・ブレイン」を防止する方法
US20140149783A1 (en) Methods and apparatus facilitating access to storage among multiple computers
JP3385091B2 (ja) 計算機間の排他制御装置
US20030187991A1 (en) System and method for facilitating communication between network browsers and process instances
US7293194B2 (en) Method and device for switching database access part from for-standby to currently in use
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
JPH04271453A (ja) 複合電子計算機
JPH0895841A (ja) データベース処理方式
WO2024174306A1 (zh) 一种基于共享存储数据库集群的事务托管方法及装置