JPH02228744A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPH02228744A
JPH02228744A JP2007274A JP727490A JPH02228744A JP H02228744 A JPH02228744 A JP H02228744A JP 2007274 A JP2007274 A JP 2007274A JP 727490 A JP727490 A JP 727490A JP H02228744 A JPH02228744 A JP H02228744A
Authority
JP
Japan
Prior art keywords
processor
virtual
processing
segment
message
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
JP2007274A
Other languages
English (en)
Other versions
JPH0557619B2 (ja
Inventor
Marion L Blount
マリオン・リイ・ブラント
Stephen P Morgan
ステフアン・ポール・モーガン
Katalin A V Rader
カタリン・アナ・ベロニカ・ラダー
Robert K Rader
ロバート・ケント・ラダー
Amal A Shaheen-Gouda
アモール・アーメツド・シヤーン‐ゴーダ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02228744A publication Critical patent/JPH02228744A/ja
Publication of JPH0557619B2 publication Critical patent/JPH0557619B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般に同じ仮想記憶アドレス指定空間を共有
する相互接続された複数の同様なデータ処理装置を含む
仮想記憶データ処理システムに関する。具体的には、本
発明は、メッセージ・キューや、緊密結合されたマルチ
プロセッサ「回復可能共有仮想記憶」データ処理システ
ムにおけるシステム機能などの信頼できる共有データ構
造を実施するシステム及び方法に関する。
B、従来の技術 従来技術は、単一スタンドアロン中央演算処理装置(C
PU)を使用したいくつかの仮想記憶データ処理システ
ムを開示している。こうしたシステムは、一般にそれぞ
れJ、バイトのデータを記憶する複数の個別にアドレス
可能な記憶位置をもつ主記憶装置、及びそれぞれ1ブロ
ツクのデータを記憶する複数のブロック・アドレス可能
記憶位置を含むディスク・ファイルなどの2次記憶装置
を使用する。仮想記憶の概念は、ときには1段記憶と呼
ばれるものに関係している。1段記憶では、システムの
最大アドレス範囲が、一般に主記憶装置の実容量よりも
はるかに大きい。主記憶装置は、主記憶装置内のアプリ
ケーション・プログラムが必要とするデータを協働して
保持するベージング機構及び2次記憶装置の使用によっ
て、はるかに大きく見えるようになる。ベージング機構
の機能は、アプリケーション・プログラムによってアド
レスされたページが主記憶装置にないとき、2次記憶装
置から主記憶装置にデータのページを転送することであ
る。これはページ・フォールトと呼ばれる。2次記憶装
置から主記憶装置にデータのページを転送することは、
ページ・フォールト処理と呼ばれる。
従来技術はまた、データ処理能力を増大させるために時
々使用されるいくつかの異なるマルチプロセッサ・シス
テム構成を開示している。マルチプロセッサ・システム
構成は、論理通信チャネルを共有する複数の処理装置と
考えられる。論理通信チャネルは、ある処理装置から別
の処理装置へのメツセージが置かれる、処理装置間で共
有される記憶域の形を取ることがある。さらに、論理通
信チャネルは、メツセージをある処理装置から別の処理
装置に移すための通信ネットワーク(共存バスを含む)
の形を取ることもある。
緊密結合マルチプロセッサ・システム構成と呼ばれる従
来技術のあるマルチプロセッサ・システム構成では、構
成内の処理装置は、ある量の記憶域を共有し、構成内の
どの処理装置もそれにアクセスできる。ただし、各処理
装置は、その処理装置だけがアクセスできるある量の専
用記憶域をもつこともある。
緊密結合マルチプロセッサ構成で配置されたコンピュー
タ・システムは、共有記憶域を介して高速通信ができる
という利点を有し、また共有記憶域をディスク・キャッ
シュとしても利用することができる。ページ・フォール
トが発生するのは、緊密結合マルチプロセッサ構成の処
理装置の1つで実行中のアプリケージ式ン・プログラム
が、主記憶装置にないデータ・ページをアドレスすると
きである。ページ・フォールト処理中に、その構成に接
続された適切な2次記憶装置が、適切なデータ・ページ
を共存記憶域に入れるように指令される。そのデータ・
ページが共有記憶域に入れられると、構成内のどの処理
装置もそれにアドレスできる。
しかし、構成内の処理装置間での共有記憶域に対するア
クセスの競合が、ディスク・キャッシュとして使用する
際に共有記憶域がもたらす利点を上回るとき、緊密結合
マルチプロセッサ構成の実際上の限界に達する。たとえ
ば、構成内のある処理装置が、同じデータ・ページの内
容の検査を試みている間に、他の処理装置がデータ・ペ
ージの内容を変更しようと試みることがある。通常は、
この構成に、2つの処理装置にデータが一貫したビュー
で見えるように、一方の処理装置のために他方の処理装
置を締め出す何らかの機構を設けなければならない。緊
密結合マルチプロセッサ構成内の処理装置に一貫したデ
ータのビューを押しつける様々な方法が従来技術には存
在する。
こうした従来技術の方法は、他方の処理装置が共有記憶
域へのアクセスを完了するまで、構成内の一方の処理装
置を遊ばせるものである。遊んでない処理装置は遊休状
態であり得す、育苗な作業を実行する。したがって、共
有記憶域に対するアクセスの競合の結果、構成を全体と
して考えるとき、不可避的に構成の処理能力が若干失わ
れる。
これらの理由から単一の緊密結合マルチプロセッサ構成
内の処理装置の数が6台を超えることは稀である。
緊密結合または「クラスタ式」マルチプロセッサ構成と
呼ばれる従来技術のあるマルチプロセッサ・システム構
成では、複数の処理装置が通信ネットワークを介して接
続され、各処理装置は直接それ自体の記憶装置にアクセ
スし、他のどの処理装置もその記憶装置にアクセスでき
ない。緊密結合マルチプロセッサ構成内の処理装置は、
通信ネットワークを介して構成内の他の処理装置にメツ
セージを送ることにより、データを共有できる。
緊密結合マルチプロセッサ構成のある変形では、構成内
の処理装置の1つが共存記憶処理装置として動作する。
共有記憶処理装置に接続された主記憶装置は、共有記憶
処理装置によって管理されるディスク・キャッシュとし
て使用される。共有記憶処理装置には、他の処理装置の
どれが、どの時点でどんな条件下で共存記憶域のどの区
域にアクセスできるかを制御する機能も指定されている
最近では、従来技術は、スタンドアロンのパーソナル・
コンピュータまたはスタンドアロンのエンジニアリング
・ワーク・ステージ1ンをローカル・エリア・ネットワ
ークに構成し始めた。こうした構成、いわゆる柔軟結合
マルチプロセッサ構成または分散システム構成では、ど
のワーク・ステーシロンも標準の通信プロトコルを用い
て他のワーク・ステーションと通信できる。こうした柔
軟結合構成を確立するための動機は、必ずしもより高い
データ処理能力ではなく、非電子にではなく電子的に情
報を交換する便宜のためにすぎない。
しかし、多くの状況では、個々のワーク・ステーション
が同じオペレーテング・システムを走行させることが見
られる。
1986年の第5回分散コンピユーテイング原理に関す
る計算機シンポジウム年金(5th AnnualAs
socfatfon for Computing M
achinery Symposiumon  Pr1
nciples  of  Distributing
  Computing)  で提出された、カイ・’
J −(Kai Li)及びボール・フダク(Paul
 Hudak)の論文「共有仮想記憶システムにおける
メモリの整合性(Memory Coherencei
n 5hared Virtual Storage 
Systems) Jは1クラスタ式構成で相互接続さ
れた複数の仮想メモリ・データ処理装置を開示している
。この構成では、すべての装置が同じオペレーティング
・システムを有し、同じ仮想アドレス空間をアドレスす
る。
各装置は、異なる1組のファイルを所有し、それらのフ
ァイルはその所有装置の記憶システムに記憶される。ア
プリケージ1ン・プログラムを走行させる非所有装置は
、適切な通信リンクを介して他の装置の記憶システムへ
のアクセスを獲得して、ファイル所存装置に仮想データ
・ページを要求し、それが要求側に戻される。したがっ
て、クラスタ式構成内の各処理装置は、その仮想記憶シ
ステム中の1組のファイルを構成内の他の装置と共有す
る。
ACM Transactions on Compu
ting Systems  4(2)、1988年5
月刊に発表されたR、フィツジェラルド(Fitzge
rald)及びR,F、ラシード(Rashid)  
の論文「アクセントにおける仮想メモリ管理の統合及び
処理量通信(The Integrationof V
irtual Memory Management 
and InterprocessComn+unic
ation in Accent) Jは1カーネギ−
1メロン大学で開発されたアクセント・オペレーティン
グ・システムを記載している。アクセント・オペレーテ
ィング・システムは、カーネル働サービスを実施するた
め、大容量データ転送でデータ・コピーではなく記憶マ
ツピング技術を使用するように、仮想記憶管理とカーネ
ル内の処理量通信を統合する。
共有仮想記憶域を使用するマルチプロセッサ・システム
では、2つの広く見られる問題がある。
1つは、部分的障害の発生、及びその結果生じるシステ
ムによる信頼性のレベルである。もう1つの問題は、そ
のサービスを分散するためにカーネル内で必要な専用コ
ードがより複雑になり、その量が増えることである。
単一プロセッサ・システムが「崩壊」シ、または障害を
起こすと、システムによって供給されるサービスとサー
ビスのユーザが共に崩壊して、全体的障害が起こる。分
散構成では、1つのプロセッサが崩壊しても、他のプロ
セッサはそのままであり、崩壊したプロセッサによって
提供されるサービスが障害を生じたことをそれらのユー
ザが知って、部分的障害が発生する。有益な作業を再開
するには、システムはまずそれ自体を一貫した状態にし
なければならないが、これは困難な課題である。その結
果、大半のマルチプロセッサ・オペレーティング・シス
テムは、1981年12月の第8回オペレーティング・
システムの原理に関するシンポジウムの報告集(Pro
ceedings of the EighthSy+
+posium On Operating Syst
em Pr1nciplts)で発表されたJ、F、パ
ートレット(Bart 1ett )の論文「非停止カ
ーネル(Won−Stop Kernel) Jで論じ
られているように、最初から(または検査点から)影響
を受けたアプリケーションを「殺し」で再開するか、あ
るいはアプリケーションまたはサブシステムあるいはそ
の両方がそれら自体の部分的障害を処理しようとしてい
ると仮定し、したがって、はとんどまたはまったく援助
を行なわないかのどちらかである。クラスタ式システム
の1つの目標は、透過性である。すなわち、ユーザ及び
アプリケ−シロン・プログラムが、複数のプロセッサ・
ユニットが存在することを知る必要がないようにするこ
とである。したがって、クラスタ式システムにおける部
分的障害の効果を排除または最小にするための処置を講
じなければならない。
独立したプロセッサからなるクラスタ式システムでは、
通信が必ず必要であり、したがってプロトコルが必要に
なり、特殊な処理及び他の関連機能が設けられることも
ある。特殊機能の必要性をなりシ、あるいは減少させる
単一の機構が見つかったなら、現在は分散されているシ
ステム・サービスの実施が単純になり、各特殊機能に努
力を注ぐのではなく、基礎となる機構を最適化すること
が可能になる。
従来技術の分散データ処理システムでは、特定の機能を
必要とするシステム内の1つのl i カ、分散システ
ム内の他の処理装置に自分のために仕事を実行するよう
要求することは普通であった。
実際には、1つのプロセッサが、その特定の作業機能を
指定されたシステム内の異なるプロセッサ・ユニットに
サービス要求を発送し、したがって、その仕事を実行す
るのに利用できる必要なデータ構造を持っていた。こう
した「機能発送」実施態様は、複雑なコード構造の使用
を必要とし、したがって部分的障害からの回復が困難で
あった。
さらに、従来技術で開示された柔軟結合マイクロプロセ
ッサ構成は、従来、個々のプロセッサ・ユニット上で走
行する個々のカーネルが、サービス要求を含むメツセー
ジを、構成全体の共存資源を管理する構成内の他のプロ
セッサ・ユニットに送るという、メツセージ・バス通信
モデルの周囲で設計されていた。こうしたメツセージ・
バス・モデルに頼るのは、疑いもなく、メツセージ・バ
スが、当然のことながら処理装置間の基礎的通信接続に
対応するからである。
メツセージ・バス実施態様で複雑なデータ構造を共有す
るのが難しいことは周知であり、ACMTransac
tions on Programming Lang
uage SystemsVol、4、No、4 (1
982年10月)に発表されたM、ヘルリヒ(Herl
ihy)及びB、リスコツ(Lfskov )の論文「
抽象データ形式用の値伝送方法(A Value Tr
ansmission Method forAbst
ract Data Types) Jに記載されてい
る。上記論文を引用により°本明細書に合体する。メツ
セージ・バス・モデルの難点は、1981年5月にカー
ネギ−・メロン大学から出版されたB、ネルソン(He
lson)の博士論文「遠隔プロシージャ呼出しくRe
mote Procedure Ca1l) Jに論じ
られている@上記論文も引用により本明細書に合体する
それとは対照的に、緊密結合マイクロプロセッサ構成用
の従来技術のオペレーティング・システムは、従来より
メツセージ・バス・モデルの周りで実施されていなかっ
た。そうではなくて、構成内の処理装置が、ある量の主
記憶域を共有し、カーネルが主記憶装置内の複雑なデー
タ構造を共有し、こうした構造を指すポインタだけをカ
ーネル間でバスする。元々単一プロセッサ用に開発され
たオペレーティング・システムを、書き直すのではなく
、直列化領域とキャッシュの整合性に若干の修正を加え
て修正する七、それがこうした緊密結合マルチプロセッ
サ構成で効率的に実行されることは自明である。メツセ
ージ−バス・モデルの周りに構成されたオペレーティン
グ・システムを、こうした緊密結合マルチプロセッサ構
成で実行されるように修正するのは、異常かつ困難であ
る。
関連の米国特許出願第07/126820号には、共有
仮想記憶緊密結合マルチプロセッサ・データ処理システ
ムにおける「回復可能共を仮想記憶(R8VS)Jまた
は「クラスタ式」記憶の新規なシステム及び方法が開示
されている。こうしたシステムは、トランザクションの
打切りによるデータの損失を最小にする新規な方法を利
用することによって、水平成長も可能な「高可用性」デ
ータ処理システムを提供するという目標を達成する。
水平成長とは、プロセッサ・ユニットをクラスタ式シス
テムに追加して、1組のプログラムを処理する時間が短
縮される、あるいはシステムの応答時間を大幅に拡張す
ることなく、より多くのプログラムが同時に処理可能に
なるという意味で、高性能を実現することであると定義
できる。
「トランザクション」とは、クラスタ式構成内の処理装
置間で共有される仮想記憶域に記憶されたデータを更新
するアプリケ−シロン・プログラムによって実行される
、作業単位である。トランザクションは、クラスタ式構
成内の単一処理装置上で唯一プログラムを走行させる単
一処理の実行のスレッドの下で走行する。上記の関連特
許出願で開示された新規なシステムは、1つのプロセッ
サによって実行される識別されたトランザクションの影
響を受けるデータ構造のコピーを維持し、トランザクシ
ョンがコミットされたとき、異なるプロセッサ上にある
コピーの更新だけを行なう。
したがって、トランザクションの開始時に存、在した通
りの情報が他のプロセッサに記憶されたコピー中で利用
可能なので、何らかの理由で打ち切らなければならなか
ったトランザクシリンが再試行できる。
上記の関連特許出願は、ある形の共有仮想記憶域を使用
し、原子的直列化更新意味論を実現し、読み書き直列化
可能性とも呼ばれる第3度の整合性をもたらす、IBM
  AIXオペレーティング・システム(AIXはIB
Mコーポレーションの登録商標)に基づく本発明の実施
態様を開示している。トランザクションは、所与のトラ
ンザクションによる変更がすべて見えるようになるか、
またはまったく見えないようになり、トランザクション
がコミットされるまでいつでもすべての変更をアントウ
ーすることが可能であるという点で原子的である。トラ
ンザクションは、上記の関連特許出願に記載されたハー
ドウェア・ロッキング・サポートにより、複数のトラン
ザクションが「同時に」実行されることがあっても、そ
の結果は、トランザクションがある順序で順次実行され
た場合と同じになるという点で、直列化可能である。
A CM  Transaction on Comp
uting Systems)1988年2月号に発表
されたA、チャン(Chang)及びM6メルゲン(M
ergen)  の論文「801記憶装置:アーキテク
チャ及びプログラミング(801Storage : 
Architecture andProgrammi
ng) Jは、「データベース記憶域」という概念を記
載している。R8VSまたはクラスタ式記憶装置につい
て理解するには、データベース記憶域について若干理解
するのが有用である。
ファイルやデータ構造などのオブジェクトは、仮想記憶
セグメントにマツプされる。オブジェクトのすべてのユ
ーザは、当然のことながら共有可能な、同じ仮想アドレ
スでそれにアクセスする。
1つまたは複数のこうしたオブジェクトに対する動作が
、トランザクションとして行なわれる。トランザクショ
ンは、データベース記憶域にアクセスするとき、必要に
応じて記憶域に対する読取りロックまたは書込みロック
を暗示的に獲得する。
そのロックが他のトランザクションの保持するロックと
衝突する場合、そのトランザクションは待たされる。最
終的に、そのトランザクションは終了し、コミットまた
はアントウーを呼び出すことによって完了する。前者の
場合は、トランザクションの更新が2次記憶装置への書
込みによって永続的になるが、後者の場合は、その更新
は廃棄される。どちらの場合も、ロックは解除され、そ
れを待っていた処理があれば続行できるようになる。
しかし、データベース記憶域とは違って、回復可能共有
仮想記憶域(R8VS)は、計算データを記憶するよう
に設計されている。このデータは、クラスタ全体が崩壊
する場合には必要でなく、システムが動作を開始し継続
するときに構成される。
回復共有仮想記憶域(R8VS)は、クラスタ全体が崩
壊する場合には必要とされない計算データを記憶するよ
うに設計される。すなわち、変更が見えるようになると
き、それらは、データベース記憶域に対する変更のよう
に2次記憶装置に書き込まれることはない。少なくとも
2つのページ・コピーがクラスタ中の様々なプロセラ・
す内に存在している限り、そのデータ・ページは回復可
能である。
上記の関連特許出願はまた、ファイル構造、すなわち、
トランザクションがコミットされるときに2次記憶装置
に書き込まれる構造に基づ〈実施態様も開示している。
上記特許出願は、部分的障害の場合、または2次記憶装
置に書き込まれていないデータ構造に対して、回復可能
共有仮想記憶域(R8VS)を適用して「共有データ構
造」の回復可能性を確保する方法は扱っていない。
共有データ構造には、メッセージ・キュー、セマフォア
、共有メモリ・セグメントなどの処理量通信(IPS)
機構用のデータ構造、並びにコア内iノード表、オーブ
ン・ファイル表、(局所ディレクトリ用及び遠隔ディレ
クトリ用の)ディレクトリ・キャッシュなどのファイル
・システム・データ構造、及びSNA接続表などのサブ
システム大域データが含まれる。
メッセージ・キューは、UNIX (AT&Tベル研究
所の登録商標)オペレーティング・システムに基づくオ
ペレーティング・システム、またはそれから誘導された
オペレーティング・システムでの処理量通信に有用な機
構をもたらす。処理は、まずメッセージ・キューを作成
し、そのキューを用いてメツセージを交換することによ
り通信できる。この機構を使用するため、1組のシステ
ム・コールが設けられている。
メツセージ・キュ一実施態様に関連する最近の従来技術
の開発は、異なる手法を取っている。UNIXの開発は
主に、AT&Tによる「システムV」と呼ばれる仕事及
び、カリフォルニア大学バークレー校による「バークレ
ー」と呼ばれる仕事が中心であった。どちらのバージロ
ンも、ある形の処理量通信が組み込まれている。バーク
レーは「データ・ダラム」及び「仮想クラスタ」と呼ば
れるIPCの2つのバージロンを提供しており、そのど
ちらも「ソケット」という概念に基づいている。198
6年2月にCommunications of th
eACMに発表されたB、D、フライシs (Flei
sch)の論文rLOcUsにおける分散システムVI
PC:設計と実施の回想(Distributed S
ystem VIPCin LOCLIS: A De
sign and ImplementationRe
trospective) Jによると、「バークレー
IPCは「長距離」環境に最適である」。他方、[シス
テムVJIPCは、計算の単一システム・イメージが得
られるように作成されている。具体的には、上記の論文
は、システムV  IPCの分散を記載している。LO
GUSシステムでは、たとえば、異なるプロセッサ上で
走行する処理間でメッセージ・キューを共有することが
可能である。しかし、プロセッサの1つが崩壊した場合
、そのプロセッサ上のキュー中のメツセージが失われる
。ただし、そのキューの識別は失われない。すなわち、
部分的障害の場合には、分散システムの存在が、生き残
った処理に見えるようになる。障害に出会ったときメッ
セージ・キューを回復可能にするため、LOCUSシス
テムでは特別の処置を講じている。
キューは、一義的「ハンドル」によって参照される。ハ
ンドルの値には、識別子及び「ブート・カウント」すな
わちシステムが起動した回数が含まれ、それらは、ハン
ドルが使用されるときに検査される。ハンドルを割当て
て指定する「ネーム・サーバ」が常に利用可能でなけれ
ばならないので、最初のハンドルが障害を起こした場合
に第2のハンドルを起動させる機構が、オペレーティン
グ・システムのカーネル内に存在する。
ネーム・サーバとカーネルは通信しなければならず、そ
れは区別されたキューを介して行なわれる。メツセージ
は、通常の機構を用いてカーネルからネーム・サーバに
送られる。ネーム・サーバからの返答は、カーネルによ
って傍受される。カーネルは、区別されたキューのハン
ドルを認識し、ネーム・サーバのマシンからの返答をそ
のタライアンドが存在するマシンに経路設定する。ネー
ム・サーバを含むプロセッサ・ユニットが崩壊すると、
新しいネーム会サーバ・プロセッサ中ユニットが選ばれ
る。ネーム・サーバのデータベースの複数の部分が、ク
ラスタ内の各プロセッサ・ユニットで複製されており、
新しいネーム・サーバはデータベース全体を再構築し、
生き残ったプロセッサ・ユニットにボーりングすること
により、障害を起こしたプロセッサ・ユニットにあった
ものを再構築する。これは、かなり複雑で長ったらしい
手順である。また、障害を起こしたプロセッサ・ユニッ
トに存在したキューだけが失われることに留意されたい
C0発明が解決しようとする課題 上記の機構は、あるレベルの信頼性を提供するのには有
効であるが、ずっと高い信頼性をもつシステムが望まれ
ている。特に、より高い信頼性を提供するために複雑な
1組の専用機構゛を必要としないシステムが望まれてい
る。したがって、プロセッサ障害の場合にデータ構造の
存在を保持するだけでなく、障害時にデータ構造内で任
意のデータをもセーブする、メッセージ・キューなどの
共有データ構造を実施するための機構を開発することが
望ましい。具体的には、回復可能仮想記憶域(R8VS
)の概念をメッセージ・キュー及びその他の共有データ
構造の実施態様に適合させることにより、極めて信頼・
性の高いある形のデータ構造を実施することが望ましい
。そうすると、より高い信頼性を達成するために、個々
のデータ構造用の特殊な機構を実施する必要はなくなる
00課題を解決するための手段 本発明は、緊密結合マルチプロセッサ回復可能共存仮想
記憶(R8VS)データ処理システムにおいて、メッセ
ージ・キューなどシステム全体にわたる共有データ構造
の信頼性を確保するためのシステムと方法を提供するも
のである。上記のデータ処理システムでは、複数のプロ
セッサはそれぞれ仮想機構域を共存し、同じ仮想記憶ア
ドレスにより複数の記憶セグメントのそれぞれにアクセ
スできる。このシステムは、様々なプロセッサ上で各ペ
ージのコピーを少なくとも2つ保持し、これらのコピー
は、こうしたページを修正するトランザクションの完了
後に初めて更新される。これらのコピーは、実際には、
こうしたシステム内で同時に更新され、一方のプロセッ
サは、所与のデータ構造に対するリード・プロセッサと
呼ばれ、他方のプロセッサはこうしたデータ構造用のバ
ックアップ・プロセッサと呼ばれる。
このシステムは、リード・プロセッサが所有する仮想記
憶セグメントに記憶された識別表を含む。
この表は、オペレーティング・システムの回復可能共有
仮想記憶層が他のプロセッサをリードプロセッサのバッ
クアップ・プロセッサに指定するという、メッセージ・
キューなど、複数の共有データ構造のいずれか1つを見
つけるための情報を含む。修正された共有データ構造表
の一貫したコピーがバックアップ・プロセッサに記憶さ
れて、トランザクションの完了時、すなわち、トランザ
クションがコミットされた時に自動的に更新される。
システム内の複数のプロセッサのいずれが1っでの処理
によって開始されるシステム・コールに応えて、そのプ
ロセッサのオペレーティング・システムは、メッセージ
・キューなどの共有データ構造上でトランザクションを
開始する。それには、要求側プロセッサが所有する新し
いメッセージ・キューを作成すること、処理から、同じ
または別のプロセッサが所有する仮想記憶セグメント内
の1つのメッセージ・キューにメツセージを送ること、
同じまたは別のプロセッサが所有する仮想記憶セグメン
ト内のメッセージ・キューからメツセージを受信するこ
と、または既存のメッセージ・キューを除去することが
含まれる。トランザクションが完了すると、システム・
コールを発行スルプロセッサがCOMMITを呼び出し
て、データ構造の修正がコミットされ、こうしたデータ
構造のコピーが、そのデータ構造を所有するプロセッサ
及びそのバックアップ・プロセッサに記憶される。
コミットされると、オペレーティング・システムのR8
VS層はまた、リード・プロセッサが所有する仮想記憶
セグメントに記憶された表中の識別情報を更新し、こう
したコピーがリード・プロセッサに対するバックアップ
・プロセッサに記憶される。
E6実施例 第1図は、本発明の方法が有利に適用できる、クラスタ
に構成されたマルチプロセッサ・データ処理システムの
構成図である。第1図に示すように、このデータ処理シ
ステムは、複数のプロセッサ・ユニット10、交換機1
1及び複数の通信リンク12を含み、各リンク12はそ
れぞれ1つのプロセッサ・ユニット10を交換機11に
接続する。交換機110機能は、任意のプロセッサ・ユ
ニット10が他の任意のプロセッサ・ユニットと通信で
きるようにすることである。交換機と通信リンクの特定
の詳細は、本発明を理解するのに重要であるとは考えら
れないので、詳細な説明は行なわれない。利用できる交
換機構成の例は、米国特許第4835250号及び第4
805928号明細書に出ている。
第2図は、第1図に示したプロセッサ・ユニツトの1つ
を詳細に示す。プロセッサ・ユニット10は、高機能パ
ーソナル・コンピュータや801アーキテクチヤをもち
IBM  RTシステムなどIBM  AIXオペレー
ティング・システムを走行させるエンジニアリング・ワ
ーク・ステージ日ンでもよい。ただし、他のアーキテク
チャ及びオペレーティング・システムも本発明を実施す
る際に使用できることに留意されたい。
第2図に示すように、プロセッサ・ユニット10は、プ
ロセッサ16、主記憶装置17、プロセッサ16と主記
憶装置17の間でのデータ転送を制御する記憶制御装置
18、及び複数の入出力アダプタまたはポート2OA−
20Eを含む。ボート2OAと20Bは、表示装置型端
末21と22をシステムに接続する。ポート20Cはプ
リンタ23をシステムに接続し、ボート20Dはディス
ク・ドライブ24をシステムに接続する。通信ボート2
0Eはプロセッサ・ユニット10を通信リンクに接続す
るのに使用される。
この説明では、プロセッサ・ユニット10は、一般に、
相互参照する米国特許出願箱O6/819458号明細
書に詳細に記載されている仮想記憶データ処理システム
に対応する。上記出願を引用により本明細書に合体する
。上記出願に記載されているように、プロセッサは、3
2ビツトの有効アドレスをもち、このアドレスは、高位
4ピッ1− (31−28)を用いて、それぞれが40
96個の固有の仮想記憶セグメントのうちの1つを定義
する12ビツト仮想記憶セグメント・アドレスを記憶す
る、16個のセグメント・レジスタのうちの1つを選択
することにより、40ビツト仮想アドレスに変換される
。各仮想記憶セグメントは、256メガバイトの仮想記
憶域(2”28)を含む。1ページが2にのデータを含
む場合、仮想記憶セグメントは128にページを含む。
1ページが4にバイトのデータを含む場合は、仮想記憶
セグメントは64にページをもつ。正確に言うと、その
仮想記憶セグメントに現在割り当てられているデータ・
ページを識別するのに使用される64にの仮想ページ・
アドレスをもつ。
相互参照された上記の特許出願に記載されているように
、このプロセッサ・ユニットでは、アプリケ−シロン・
プログラム及びそれらのプログラムが使用するデータが
AIXファイル・システム型構成に従って構成されるよ
うに、IBMAIXオペレーテオペレーティングが使用
される。
以下の説明では、1データ・ページが2112すなわち
4にパイ) (409Et)を含み、仮想記憶セグメン
トが2116すなわち84にページから成ると仮定する
ブラウンド(Blount)他の名義で同時に出願され
た関連米国特許出願(Ar1−87−051)に記載さ
れたlMC5プロトコルなどの特殊通信プロトコルが、
マシン間通信の効率を高めるために開発されており、ク
ラスタ内の仮想記憶域の整合性を確保するページャ・プ
ロトコルがある。
801記憶制御装置(SCU)18は、物理的ロッキン
グに対するある形のハードウェア支援を行なうことが好
ましい。各4にバイト・ページは1行128バイトの3
2行に分割される。ある処理が最初にある行を参照しよ
うと試みたとき、5CU18がプロセッサ16に割り込
む。この割り込みは「ロック・フォールト」と呼ばれ、
AIXオペレーティング・システムが、その処理の一部
に対する明示的相互作用なしにロッキング機能及びジ日
−ナリング機能を呼び出すのに使用する。
ロック・フォールトは行ごとに発生するが、プロセッサ
16は、ページ全体の読取りロックまたは書込みロック
を許可す、る権利を獲得する。プロセッサ16がこの権
利を獲得すると、そのプロセッサ16で実行中の個々の
処理は、そのプロセッサにあるロック・マネージャから
行レベルのロックを獲得する。トランザクションがその
更新をコミットすると、影響を受けるすべてのページの
以前のコピーが、他のすべてのプロセッサ16中で無効
になる。その後のページ・フォールトが、更新済みコピ
ーを他のプロセッサの記憶装置に入れることができる。
前述の回復可能性はすべてのクラスタ記憶セグメントに
とって望ましいが、それらのすべてがデータベース意味
論を、したがってロッキングを必要とするわけではない
。たとえば、所与のメッセージ・キューを記述する制御
構造へのアクセスは、ロッキング及びロギングを使用す
るトランザクションを用いてそのアクセスを行なうこと
により同期されるが、データが回復可能である必要はな
いものの、メツセージ自体はロッキング制御を必要とし
ない。
R8VSまたはクラスタ記憶装置の実施は、801以外
のアーキテクチャでも行なえることに留意されたい。実
際に、どんな汎用コンピュータ・ハードウェアでも使用
できる。整合性を確保するためには、何らかの形のロッ
キング(ハードウェアまたはソフトウェア)が、必ずし
も不可欠ではないが、有用である。たとえば、クラスタ
記憶装置は、H,T、クング(Kung)及びJ、T、
ロビンソン(Robinson )の論文「並列制御の
楽観的方法J ; A CM Transaction
s on Database Systems6(2)
(1981年6月)に記載されているような楽観的並列
制御機構で実施できる。いつ更新が行なわれたかを検出
する何らかの方法も有用である。こうした検出システム
は、ハードウェア支援記憶保護機構に基づいて実施でき
、またはおそらく、ロード命令及び記憶命令ではなく特
殊サブ。
ルーチンを用いてすべての更新を収集(funnel)
し、どの更新がどのプロセッサによっていつ行なわれた
かを記録することによって実施される。801アーキテ
クチヤは、システム全体のロッキング機能及びロギング
機能を実施するのに適したハードウェア支援記憶保護機
構をもたらす。
回復可能共有仮想記憶装置(R8VS)をどのように使
えばマルチプロセッサ・クラスタ型処理システム内で共
存データ構造の可用性を維持することができるかを説明
するために、ある形の共有クラスタ・データ構造、メッ
セージ・キューの実施態様を説明するのが有益である。
AIXオペレーティング・システムでは、4つの基本シ
ステム・コールを使って、メッセージ・キューMSGG
ET1MSGCTL、MSGSNDlMSGRCVを作
成し使用する。それらのコールは、以下のトランザクシ
ョンを実施するのに使用される。
MSGGET  −キューを作成する。
既存のキューに対するメツ セージ・キューIDを戻す。
MSGCTL  −キューの状況を問い合わせる。
キューの許可を変更する。
キューを削除する。
MSGSND  −メツセージをキューに入れる。
MSGRC■ −キューからメツセージを除去する。
R8VSでメッセージ・キューを実施する際には、関連
米国特許出願第07/12E3820号に記載されてい
るR8VS特性を利用する。上記出願を引用により本明
細書に合体する。具体的に言うと、R8VSセグメント
の内容が、単一プロセッサの障害など致命的でないクラ
スタ障害の後も存続するものと仮定する。また、それを
行なう適切な許可をもつクラスタ内のどの処理も、所与
のR8VSセグメントに接続できるものと仮定する。
アクセスされたデータが、その処理が実行中であるプロ
セッサの記憶装置にない場合は、必要なページをそのプ
ロセッサのメモリに転送するためにカーネル間で交換さ
れるすべてのメツセージは、カーネルのRSVS層で実
施される。また、トランザクションが完了したとき、オ
ペレーティング・システムのRSVS層が、そのトラン
ザクション中に修正されたすべてのページのバックアッ
プ・コピーを更新するものと仮定する。
第5図は、第3A図に示すメッセージ・キュー情報表(
MSGQIT)がシステム起動時にどのように作成され
るかを示す流れ図である。MSGQUITには、MAS
GQUITへのアクセスを制御する制御情報と、各メッ
セージ・キューのMSGQUIT項目が含まれる。第3
B図に示した制御情報の書式には、「ロック・ワード」
、及びMSGQUITで識別される記憶メッセージ・キ
ューの数が含まれる。MSGQU I Tの各項目の書
式を、第3C図に示す。
ステップ26(第5図)で、クラスタ起動時、すなわち
初期プログラム・ローディング(IPL)中に、起動さ
れるシステムの最初のプロセッサが、データを見つける
ための共有データ構造の識別子を記憶するR8VSセグ
メントを作成する。
ステップ28で、リード・プロセッサ、たとえばユニッ
トIOAのオペレーティング・システムが、MSGQU
ITのR8vSセグメントよりを指定する。MSGQU
IT表のR8VSセグメン)IDは、事前定義でき、ま
たはファイル・システムのファイルから検索できる。1
つのファイルにいくつかのこうした大域システムIDが
保持できる。R8VSセグメントの所有装置はクラスタ
・リーダであり、バックアップ・プロセッサ、たとえば
ユニット10Bがこのリード・プロセッサ10Aに割り
当てられる。
ステップ30で、MSGQUITセグメントをロックし
た後、MSGQUITがすべて空の項目を含むように書
式化される。MSGQUITの項目の書式を、第3C図
に示す。各項目のUSECOUNTカウント・フィール
ドはOnに設定される。キューの最大数が記入される。
これは、システム管理担当者が指定するシステム・パラ
メータである。
ステップ32で、10A中のオペレーティング・システ
ムが00MMIT″を発行する。R3VS層は、ステッ
プ30で変更されたバックアップ・プロセッサ10B内
のすべてのページのコピーをとり、獲得されたすべての
ロックを解放する。メッセージ・キュー・システムはこ
れで動作可能である。
AIXオペレーティング・システムの以前のバージロン
と同様に、4つの基本システム・コールによって、回復
可能共有仮想メモリ・システム中のメッセージ・キュー
MSGGET1MSGCTL1MSGSND1MSGR
CV(7)作成及び使用が可能になる。メッセージ・キ
ュー自体は、MSGQUITを含むセグメントとは異な
る他のR8VSセグメントに置くことが好ましい。
新しいメッセージ・キューが作成されると、そのヘッダ
が、そのキューを作成した処理がある、プロセッサのカ
ーネルによって作成されたセグメントに置かれる。これ
は、第3D図に示すMSGQヘッダすなわちMSGQH
DRセグメントである。MSGQHDRセグメントの項
目を、第3E図に示す。さらに、メッセージ・キューに
記憶された各メツセージのテキストが、第3F図に示す
MSGTXTセグメントと呼ばれる別のセグメントに置
かれる。
第6A図と第6B図は、MSGGETシステム・コール
を実行する際にオペレーティング・システムが実行する
ステップを示す流れ図である。
MSGGETシステム・コールは、既存のキューのメッ
セージ・キュー識別子(MSGQUID)を検索し、ま
たは新しいキューを作成するのに使用される。このコー
ルは、以下の構造をもつ。
MSGQUID =MSGGET(KEY、MSGFL
AG)第6A図のステップ42で、本発明のMSGGE
Tシステム・コールのR8VS実施態様のステップをよ
り詳細に考察すると、たとえばプロセッサ・ユニット1
0Bで実行中の処理が、MSGGETシステム・コール
を発行する。
ステップ43で、プロセッサ・ユニットIOBノオペレ
ーティング・システムが、第3B図に示したMSGQU
ITセグメントの制御情報行の「ロック・ワード」に書
き込むことにより、MSGQUITをロックする。クラ
スタ内のどこかで別の処理がすでにそのロックを有する
場合、この処理は待機し、後でR8VSによって開始さ
れる。
MSGQIT全体に対する「大域ロック」は、クラスタ
記憶装置へのアクセス中に通常獲得される行ロックに追
加して行なわれる。この大域ロックの目的は、異なるプ
ロセッサ内の2つ・の処理がそれぞれMSGQUITの
未使用のすなわち「空いた」項目に書き込もうと試みる
場合に、大域ロックがなければ発生する恐れのあるデッ
ドロックを回避することである。
ステップ44で、プロセッサ・ユニットIOBのオペレ
ーティング・システムがMSGQUITを走査する。M
SGQUITが走査されるとき、そのユニットのオペレ
ーティング・システムのカーネルのR878層は、MS
GQU工Tセグメントの参照されたページの読取りロッ
クを獲得する。
ステップ46で、ユニット10Bのオペレーティング・
システムが、キーがMSGQUITで見つかったかどう
か判定する。キーが見つかった場合、プロセッサIOB
はステップ50を実行する。ステップ50で、ユニット
IOBのオペレーティング・システムが、MSGFLA
GのPRI VATEビットがセットされているかどう
か判定する。
セットされている場合、ステップ52で、ユニツ)10
Bのオペレーティング・システムが、′fCOMMIT
”を呼び出してロックを解放し、PERMISSION
  DENIEDエラー標識を処理に戻す。MSGFL
AGのPRIVATEビットがセットされていない場合
は、トランザクションが続行する。MSGQUIDは、
MSGQUITアレイ中のメッセージ・キューのMSG
UIT項目のオフセットと、ステップ53の項目のUS
ECOUNTを組み合わせることによって作成される。
MSGQUIDの書式を第4図に示す。
ステップ54で、プロセッサ10Bのオペレーティング
・システムが、“COMMIT″を呼び出してロック・
ワードに対して獲得されたロックと、読み込まれたMS
GQUIT項目を解放する。
ステップ54で、MSGQUIDがMSGGETの呼出
し側に戻される。
ステップ58で、一致するキー項目が見つからない場合
、ユニット10Bのオペレーティング・システムが、M
SGFLAGのCREATEビットがセットされている
かどうか判定する。
ステップ57で、CREATEビットがセットされてい
ない場合、ユニット10Bのオペレーティング・システ
ムがCOMMITを呼び出してロックを解放し、エラー
標識を処理に戻す。CREATEビットがセットされて
いる場合は、新しいメッセージ・キューが、ユニットI
OBのオペレーティング・システムによって作成される
。新しいキューは、そのシステム・コールを実行したプ
ロセッサであるユニットIOBが所有する。これは、そ
のヘッダとデータが、10Bが所存するセグメントに置
かれることを意味する。
第3C図は、MSGQUITアレイ中の項目のレイアウ
トを示す。ステップ58で、空き/未使用フラグが「空
き」に設定された未使用項目が1つ見つかり、そのフラ
グが「使用済み」に設定される。UNSECOUNTフ
ィールドが1だけ増分される。これは、その項目の以前
のユーザが、キューにアクセスするのを防止するためで
ある。
「キー」の値がその項目に置かれている。
ステップ59で、ユニット10Bのオペレーティング・
システムが、作成されたキューがユニット10Bが所有
する最初のキューであるかどうかを判定する。ユニット
10Bが所有するキューが他にはない場合、または同じ
メモリ・セグメントに存在し得るキューの最大数(25
8)にすでに達している場合、ステップ60で、ユニー
/)IOBのオペレーティング・システムが2つの新し
いR8VSセグメントを作成する。1つ・はキュー・ヘ
ッダ(MSGQHDRセグメント)を保持し、他の1つ
はメツセージ・テキスト(MSGTXTセグメント)を
保持するためのものである。こうしたセグメント内の2
58個の項目の割振り表が、プロセッサ10Bのメモリ
内に構築される。プロセッサIOBが崩壊した場合は、
この割振り情報がMSGQUIT項目のデータから再構
築できる。10Bが新しいセグメントの所有位置である
。バックアップ位置、たとえばユニットIOAが選択さ
れる。
ステップ62で、ユニットIOHのオペレーティング・
システムが、新しいMSGQHDRセグメントまたは既
存のMSGQHDRセグメント中にキュー・ヘッダを割
り振りまたは作成し、MSGTXTセグメントの対応す
るテキスト領域を初期設定する。現在の処理が、クラス
タ内でこれらの動作を実行している唯一の処理である。
というのは、その処理がMSGQUITセグメントに対
する大域書込みロックを依然として保持しているからで
ある。
MSGTXTセグメントは、キュー当りIMノ(イトの
領域に分割され、256個のキューがこのセグメントを
共有する。テキスト領域の空間がどのようにメツセージ
に割り振られ管理されるかの詳細は当業者に周知である
。後でわかるように、各テキスト領域は、同時に1つの
プロセッサによってだけアクセスされるので、それ以上
のロッキング機構の必要はない。
ステップ68で、ユニットIOBのカーネルがMSGQ
UITを更新する。カーネルは、MAGQHDR及びM
SGTXTセグメントのIDと、キュー・ヘッダに接続
されたページ番号を記入する。ステップ70で、ユニッ
ト10Bのオペレーティング・システムが、″COMM
IT″コールを発行して、R8vSセグメント内の変更
されたページの両方のコピーを更新する。COMMIT
コールにより、その処理によって保持される、メッセー
ジ・キュー・データ構造に対するすべてのロックが解除
される。ステップ72で、ステップ53に記載したよう
にMSGQUIDが構築され、それを要求した処理に戻
される。
要約すると、ユーザがキーを指定して、関心のあるメッ
セージ・キューを識別する。システムがMSGQUIT
セグメント内の表を走査する。キーに関連する既存のキ
ューがある場合、そのMSGQUIDが戻される。そう
でない場合は、FLAGのCREATEビットがセット
されていれば、新しいキューが作成され、そのMSGQ
UIDが呼出し画処理に戻される。新しいメッセージ・
キューが作成されると、それに関する情報が、そこでM
SGGETが呼び出される処理装置のカーネルが所有す
るR8VSセグメント、すなわちMSGQHDRに置か
れる。
プロセッサIOBがMSGGETコールの実行中に崩壊
する場合、そのプロセッサが3つのR8VSセグメント
に対して加えたすべての変更が失われる。これは望まし
いことである。というのは、MSGGETコールは完了
しなかったからである。
R8VS層は、MSGGET)−ルがプロセッサ10B
で変更したページの未変更バージョンのバックアップ・
コピーをもち、プロセッサtOBが保持するロックを解
放する。その後、生き残ったプロセッサ内の他のMSG
ETコールが走行でき、整合性のないデータは生じない
プロセッサIOBがMSGGETコールの実行後に崩壊
する場合、生き残ったプロセッサ内にすべての更新済み
データ構造のコピーがあるので、新しく作成されたメッ
セージ・キューは失われない。
メッセージ・キューは、ヘッダ領域とメツセージ領域か
ら構成される。ヘッダ領域には、次のようなキュー状況
情報が含まれる。所有者、グループ及び他のすべてのそ
れを含めて、キュー作成者、キュー所有者、そのキュー
にアクセスした最後の処理、そのキューに対する最後の
更新の時間スタンプ、及びそのキューに対するアクセス
許可の処理rDである。ヘッダには、いつでもキュー中
で許されるバイトの最大数を示す数と、キュー中に現在
ある最初と最後のメツセージを指すポインタも含まれる
新しいメッセージ・キューが作成されるとき、そのヘッ
ダはページ境界から始まる。そのため、同じセグメント
内で表される異なるキューが、異なるプロセッサで実行
中の処理によって同時にアクセスされるとき、性能が改
良される。というのは、R8VSはいつでも唯一の処理
にページに書き込ませ、またメッセージ・キューへのア
クセスの結果、キュー・ヘッダ中の状況情報が更新され
るからである。
メツセージ自体は、メツセージ・テキスト・セグメント
と呼ばれる第3のRSVSセグメントに置かれる。メツ
セージは、 <message header、text>対として
書式化される。メツセージ・ヘッダは、メツセージ・タ
イプ、メツセージ中のバイト数、及びキュー内の次のメ
ツセージ・ヘッダ(がある場合、それ)を指すポインタ
の各フィールドを含む、固定長データ構造である。タイ
プ接頭辞は、処理が特定のタイプのメツセージを選択で
きるようにする。そうすると、処理は、メツセージがキ
ューに到着した順序以外の順序でキューからメツセージ
を抽出できる。
MSGCTLシステム・コールは、メッセージ・キュー
に対する様々な制御動作を実行するのに使用される。制
御動作には、キュー上の状況情報を照会し、キューへの
アクセス許可を変更し、システムからメッセージ・キュ
ーを除去することが含まれる。MSGCTLは以下の形
を取る。
MSGCTL(MSGQUID、C14D、BUF)た
だし、CMDはMSGCTLによって実行される動作を
示す。
第7A図と第7B図は、両者あいまって、MSCGTL
システム・コールを実行する際にオペレーティング・シ
ステムが実行するステップを示す流れ図を構成する。ス
テップ74(第7A図)で、プロセッサ・ユニット、た
とえばプロセッサ10Cの処理が、プロセッサIOBが
所有するキュー向けにMSGCTLシステム・コールを
発行する。
ステップ75で、プロセッサIOCのオペレーティング
・システムが、MSCQUIDの0FFSETフイール
ドで指定されたMSCQUIT項目を読み取り、MSG
QUIT項目とMSGIDのUSECOUNTフィール
ドが一致するかどうかを確認する。一致しない場合、M
SGQUIDで識別されるキューはもはや存在しない。
COMMITが呼び出されて、MASGQUIT項目に
対する獲得されたロックを解放し、エラー標識が呼出し
側に戻される。
ステップ76で、プロセッサIOCのオペレーティング
・システムがCMDを読み取り、MSGCTLによって
実行される動作を決定する。
ステップ77で、CMD=状況コマンドのグループ5T
ART、5TAT2またはMTAである場合、プロセッ
サ10Cのオペレーティング・システムは、MSGQH
DRセグメントIDを使って見つかったキュー・ヘッダ
とMSGQUIT項目中のページ番号を読み取る。他の
処理がこのヘッダを変更している場合、呼出し側処理は
、読取りロックを得るために待機しなければならない。
その処理が読取りロックを得ると、ヘッダの一貫したビ
ューが見える。すなわち、その中の情報が変更されてい
ない。IOCのオペレーティング・システムは、要求さ
れた情報をヘッダからBUFにコピーする。
ステップ78で、ユニットIOCのオペレーティング・
システムは、”COMMIT’“を呼び出し、ステップ
75及び77でユニット10Cが獲得した読取りロック
が解除される。ステップ79で、ユニット10Cのオペ
レーティング・システムが復帰する。
ステップ80で、CMDがキューを破壊するコマンドで
あるIPCRMIDに等しい場合、プロセッサ10Cの
オペレーティング・システムは、ステップ75で、その
ロック・ワードに書き込むことにより、見つかったキュ
ー・ヘッダに対する書込みロックを獲得する。そのオペ
レーティング・システムは、呼出し側処理がキューを削
除する許可をもち、キュー・ヘッダを未使用とマークす
ることを確認する。時々、プロセッサIOBの処理は、
そのMSGHDRセグメント中のすべてのキュー・ヘッ
ダを読取り、他のプロセッサ内で解放されたヘッダの割
当て表を更新する。ステップ82ではユニットIOCの
オペレーティング・システムは、ステップ75で見つか
ったMSGQUIT項目のフラグを「空き」に設定する
ことにより、キューを削除する。この動作はMSGQU
ITセグメントに対する口・ツクを必要としないことに
留意されたい。ステップ84でCOMMITを呼び出す
と、ステップ78及び80でユニット10Cが獲得した
書込みロックが解除される。
第7A図に示したMSGCTL )ランザクシロンのス
テップ76に戻ると、コマンドが、あるキューに対する
1組のアクセス許可を更新する工PCSETである場合
、ステップ86で、プロセッサ10Cのオペレーティン
グ・システムが、ステップ78と同様にプロセッサIO
Bが所有するMSQGHDRセグメント中で更新される
キュー・ヘッダに対する書込みロックを獲得する。
ステップ88で、プロセッサ10Cのオペレーティング
・システムが、メッセージ・キュー・ヘツダ中のアクセ
ス許可情報を更新する。
ステップ90で、ユニット10Cのオペレーティング・
システムが”COMMIT’を呼び出す。
上記と同様に、COMMIT動作は、キュー・ヘッダを
含むページの両方の実コピーを自動的に更新し、ステッ
プ75及び86で獲得されたロックを解放する。
MSGSNDとMSCRCVは、メッセージ・キューを
用いてメツセージを交換するために使用される。MSG
SNDシステム・コールは、メツセージを送るために、
すなわち、メツセージをメッセージ・キュー 14sGsND(MSGQID、にSGP、5IZE、
MSGFLAG)に入れるために使用される。
MSGRCVシステム・コールは、メツセージを受は取
る、すなわち、次のキューからメツセージを取り出す。
IJs(1:RCV (MSGQIIID、)(SGP
、5IZE、TYPE、MSGFLAG)ただし、MS
GQUIDはメッセージ・キュー識別子である。MSG
Pは、MSGSNDの場合にメツセージ・テキストを含
むデータ構造を指す、またはMSGRCVに対してテキ
ストが記憶される場所を示すポインタである。5IZE
はメツセージのサイズである。MSGFLAGは、シス
テム・コールが完了できない場合に取られる処置を定義
するフラグである。
ステップ92(第8A図)で、処理装置、たとエバユニ
ット10Gのオペレーティング・システムがMSGSN
Dシステム・コールを発行して、同じまたは異なるプロ
セッサ、たとえばユニット10Bが所存するメッセージ
・キューにメツセージを送るとき、R8vSトランザク
ションが開始される。ステップ94で、ユニット10C
のオペレーティング・システムが、ステップ75及び7
8に記載したように、キュー・ヘッダを見つけてロック
する。
ステップ96で、ユニットIOCのオペレーティング・
システムが、メッセージ・キューが満杯かどうか判定す
る。満杯でない場合、ステップ98で、ユニット10C
のオペレーティング・システムが、メツセージ・テキス
トをMSGTCTセグメントにコピーし、テキスト・セ
グメントのヘッダを更新し、MSGQHDRセグメント
中のキュー・ヘッダを更新する。
ステップ100で、ユニット10Gのオペレーティング
・システムが、rcOMMITJを呼び出す。これは、
MSQGHDR及びMSGTXTセグメントに対して加
えられた変更をバックアップし、ステップ94で獲得さ
れたロックを解放する。ステップ98ではMSGTXT
セグメントのロックは獲得されないことに留意されたい
。というのは、同期は、キュー・ヘッダ中のロック・ワ
ードを用いて行なわれるからである。しかし、ロギング
は、変更がバックアップされるようにMSGTXTセグ
メントに対して行なわれる。
ステップ96でプロセッサ10Cのオペレーティング・
システムが、メッセージ・キューが満杯であると判定し
た場合、ステップ101(第8B図)で、ユニット10
Cのオペレーティング・システムは、MSGFLAGの
IPCN0WAITビツトが設定されているかどうか判
定する。IPCNOWAITに設定されている場合、ス
テップ102で、ユニット10Gのオペレーティング・
システムがCOMMITを呼び出して、エラー・メツセ
ージを処理に戻す。IPCN0WAITビツトが設定さ
れていない場合、トランザクシeンを続行する。
ステップ103で、オペレーティング・システムが「打
切り」を呼び出して、MSGQUIT項目に対して獲得
されたロックとキュー・ヘッダを解放する。それが行な
われなかった場合、たとえばキューからメツセージを取
り出してそれを満杯にしない処理を含めて、他の処理は
キューにアクセスできない。
ステップ104で、ユニットIOCのオペレーティング
・システムが、MSGSNDシステム・コールを発行す
るユニットIOCの処理を、所定の時間「休眠させる」
。“好ましい実施例では、ユニット10Cのオペレーテ
ィング・システムが、ステップ106で、定期的に「覚
醒してJ最初がらMSGSNDシステム・コールを再試
行するようにプログラミングされる。この休眠及び覚醒
処理は、そのキューがもはや満杯でなくなるまで連続し
て行なわれる。
定期的に覚醒して再試行する単純な方法の他に、クラス
タ間覚醒を実行するためのいくつかの代替方法が可能で
ある。たとえば、メッセージ・キューからメツセージを
除去するプロセッサ・ユニットが、メッセージ・キュー
からメツセージが除去されたことをクラスタ内の他のす
べてのプロセッサに知らせる信号を送る。こうした信号
を受信すると、プロセッサは、休眠中のその処理をすべ
て覚醒させる。というのは、メッセージ・キューが満杯
であり、これらの処理はメツセージをキューに入れるも
のだからである。理論的には、この種の1機構は、ポー
リングよりずっと効率がよい。しかし、部分的障害から
回復できるこの種の効率のよい機構を実施するのはずっ
と困難である。
定期的覚醒手法は、「非ブロツク化事象」、すなわちキ
ューからのメツセージ除去が、覚醒信号を送出する前に
崩壊するプロセッサ中で発生する場合、最終的にすべて
の休眠処理がそのことを知るという意味で、「障害耐性
」があるという利点がある。
処理が非ブロツク化事象の発生を待って休眠している間
にメッセージ・キューがシステムから除去される場合、
その中で処理が休眠しているコールは、ステップ75で
処理が覚醒したとき失敗する。MSGQUIDが使用カ
ウントを含むので、同じMSGQUIDをもつ他のキュ
ーはその間に作成できない。
MSGRCV動作は、MSGSND動作とほとんどの点
で同様である。MSGSNDの場合と同様に、キュー・
ヘッダとメツセージ・テキストが見つけられる。キュー
がメツセージまたは正しいタイプのメツセージを持たな
い場合、コールが打ち切られ、待たされることがある。
テキストがMSGTXTセグメントからユーザのバッフ
ァにコピーされ、メツセージ・ヘッダ及びキュー・ヘッ
ダが更新される。次いでCOMMITが呼び出される。
要約すると、メツセージに対しである動作を実行する、
たとえばメツセージをキューに入れる処理は、メッセー
ジ・キューを含む回復可能共有仮想記憶セグメントに対
して単純なトランザクションを実行する。こうしたメッ
セージ・キューに関連する情報が、クラスタ全体にわた
る3つのR8VSセグメントですべて表される。トラン
ザクションは、その動作の実行を希望する処理があるプ
ロセッサ・ユニットで実行され、したがってトランザク
ションがクラスタ内で走行しているという事実を隠す。
トランザクションが完了して始めて、メッセージ・キュ
ー・システムの新しい状態が、プロセッサが所有する仮
想記憶セグメント及びそのバックアップ・プロセッサ内
の仮想記憶セグメントのコピーに記憶されることがコミ
ットされる。
メッセージ・キューを用いて通信する2つの処理が異な
るプロセッサ、たとえば10Aと100にある場合、そ
れらの処理はそのことを知らない。
それらt;I) M S G S N D =7− ル
トM S G RCV =l −ルは局所で動作し、R
878層は必要なカーネル・レベルの通信の手配をする
。他の場合で2つの処理が1つのプロセッサ、たとえば
ユニットIOBで実行される場合、それらの処理は、い
かなる形でも変更される必要はなく、以前のように実行
されることになる。
さらに、2つのプロセッサ・ユニットIOA及び10C
内で走行中に、プロセッサの1つ、たとえばユニットI
OAが崩壊した場合、ユニット10C中の生き残った処
理は、崩壊前にユニット10A中の処理から送られたす
べてのメツセージを受信でき、崩壊時にユニットIOA
から送信中の部分メツセージは受信しないことになる。
この実施態様は、行及びページ境界上の異なるキューに
対するデータ構造のレイアウトを提案するものである。
これは、異なるキューに対するコール間の干渉を防止す
るためであり、この技術によって、R878層のベージ
ング及びロッキング・トラフィックの量が減少する。こ
れは、よりコンパクトな構成よりも多くの仮想記憶域を
使用するが、妥当なトレードオフと思われる。
回復可能共有仮想域(R3VS)に基づく共存データ構
造の1つの形であるメッセージ・キューに対する実施態
様についての上記の説明は、通信する処理間での明示的
なメツセージのバスに依存する実施態様に比べて、トラ
ンザクシVンが呼出し側プロセッサによって実行されず
、メッセージ・キューを含むプロセッサに送られ、次い
でそこで実行されて、その結果が発信側プロセッサに戻
されるという、大きな利点をもたらす。メッセージ・キ
ューの回復可能共存仮想域(R8VS)による実施態様
は、関連特許出願(AT9−87−051)に記載され
たマシン間通信システムを使うと機能拡張される。その
結果、すべてのメツセージ・バス力、°オペレーティン
グ・システムの非常に小さい部分に含まれるようになる
。すなわち、オペレーティング・システムの残りの部分
が、単一プロセッサ用のオペレーティング・システムと
同じくらい単純に実施できる。
本発明では、メッセージ・キューに対する動作を実施し
、他のシステム・サービスを実施する「2段階コミット
」も不要となる。すなわち、システム・サービスが、明
示的「メツセージ・バス」によって実施される場合より
も、少しの作業で実施でき、効率的に実行でき、低いコ
ストで修正及び維持できる。さらに、このようにしてシ
ステム・サービスを実施すると、システム拳サービスの
実施が極めて簡単になる。機能を維持し、オペレーティ
ング・システムに機能を追加することも簡単になる。
以上の説明では、回復可能共有仮想記憶域をどのように
使用すれば、マルチプロセッサのクラスタ内でAIXメ
ッセージ・キューを信頼できるものにすることができる
か、すなわちクラスタ内の1つの単一プロセッサが故障
した場合でさえ、キュー及びそれに含まれたメツセージ
が存続できるかを示したが、当業者には明らかなように
、他のシステム機能及び共存データ構造も信頼できるも
のにすることができ、また本発明の精神と特許請求の範
囲を逸脱せずに、本発明に他の様々な修正を加えること
ができる。
【図面の簡単な説明】
第1図は、本発明の方法が有利に適用できるクラスタ構
成で相互接続された複数のプロセッサ・ユニットの機能
構成図である。 第2図は、ユニットの1つに組み込まれている様々な機
能を示す、第1図に示すプロセッサ・ユニットの1つの
構成図である。。 第3A図は、メッセージ・キュー情報表(MSGQUI
T)の書式を示す図である。 第3B図は、MSGQUITへのアクセスを制御する制
御情報の書式を示す図である。 第3C図は、メッセージ・キュー情報表(MSGQUI
T)の項目の書式を示す図である。 第3D図は、メッセージ・キュー・ヘッダヲ含むMSG
QHDRセグメントを示す図である。 第3E図は、メッセージ・キュー・ヘッダ項目の書式を
示す図である。 第3F図は、メツセージ・テキストを含むMSGTXT
セグメントを示す図である。MSGQHDRセグメント
とそのMSGTXTセグメントの間、及びそれぞれの項
目間には1対1の対応がある。 第4図は、メッセージ・キュー識別子(MSGQU I
 D)の書式を示す図である。 第5図は、メッセージ・キュー情報表を作成するために
オペレーティング・システムが実行するステップを記述
する流れ図である。 第8A、図及び第6B図は、rMSGGETJシステム
・コールが発行されるとき、所与の処理装置で実行中の
回復可能共有仮想システムが実行するステ、プを記述す
る流れ図である。MSGGETシステム・コールは、メ
ッセージ・キューを作成し、またはそれにアクセスする
ために使用される。 第7A図及び第7B図は、「MSGTL」システム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSCGTLシステム・コールは
、メッセージ・キューの状況を照会し、そのアクセス許
可を変更し、またはそれを破壊するのに使用される。 第8A図と第8B図は、rMsGsNDJシステム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSGSNDシステム・コールは
、メツセージをメッセージ・キューに入れるのに使用さ
れる。 10・・・・フロセッサ・ユニット、16・・・・プロ
セッサ、17・・・・主記憶装置、18・・・・記憶制
御装置(SCU)、20・・・・ポート、21.22・
・・・端末、23・・・・プリンタ、24・・・・ディ
スク・ドライブ。 出願人  インターナシ1ナル・ビジネス・マシーンズ
番コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 3】 第 B 図 第 C 図 第 B 図 第 B 図 第 図 第 8A 図 第 B 図

Claims (4)

    【特許請求の範囲】
  1. (1)通信リンクにより相互接続された複数の処理装置
    を有するデータ処理システムであって、上記複数の処理
    装置の各々により共有可能であり、複数の仮想記憶セグ
    メントを有し、該セグメントの各々が上記処理装置の任
    意のものから同じ仮想アドレスによりアクセス可能な仮
    想記憶装置と、 仮想ページの少なくとも2つのコピーを、各々異なった
    処理装置上に保持する手段と、 変更された上記ページの各々に関する上記コピーの各々
    を自動的に更新する手段と、 システム中の複数のメッセージ・キューに関する情報を
    有する、仮想記憶セグメント中に記憶されたメッセージ
    ・キュー・テーブルと、 第1の処理装置中のプロセスによって形成されたメッセ
    ージ・キューを、上記第1の処理装置によって形成され
    た仮想記憶セグメント中に置く手段とを含むデータ処理
    システム。
  2. (2)通信リンクにより相互接続された複数の処理装置
    を有するデータ処理システムにおいて、システム全体に
    わたるデータ構造の信頼性を保証するためのシステムで
    あつて、 複数の処理装置の間で仮想記憶を共有する手段と、 上記処理装置の各々から同じアドレスによって上記仮想
    記憶の複数の仮想記憶セグメントの各々にアクセスする
    手段と、 要求元プロセスによって仮想記憶セグメント中にメッセ
    ージを置く手段と、 上記置かれたメッセージに関する受信側処理装置により
    周期的に上記仮想記憶セグメントを調査する手段とを有
    するシステム。
  3. (3)通信リンクにより相互接続された複数の処理装置
    を有し、上記各処理装置が仮想記憶セグメントを共有し
    、上記各セグメントが上記処理装置の任意のものから同
    じ仮想アドレスによりアクセス可能なデータ処理システ
    ムにおいて、システム全体にわたるデータ構造の信頼性
    を保証するためのシステムであつて、 複数のシステム全体にわたるデータ構造に関する識別情
    報を有し、システムの起動時に処理装置の1つによって
    形成される、仮想記憶セグメント中に記憶されたテーブ
    ルと、 上記テーブルを含む仮想記憶セグメントを所有する処理
    装置に関してバックアップ処理装置を割当て、上記テー
    ブルのコピーを上記バック・アップ処理装置中に記憶す
    る手段と、 上記識別情報を使用する処理装置による最初のシステム
    ・コールの発行時に、上記テーブルを含む仮想記憶セグ
    メントを上記処理装置に取り付ける手段と、 システム・コールの成功終了時に、仮想セグメント中に
    記憶された上記テーブルの全てのコピーを更新する手段
    とを有するシステム。
  4. (4)通信リンクにより相互接続された複数の処理装置
    を有するデータ処理システムにおいて、システム全体に
    わたるデータ構造の信頼性を保証するためのシステムで
    あって、 複数の処理装置の各々により仮想記憶を共有する手段と
    、 上記処理装置の任意のものから仮想アドレスによって上
    記仮想記憶の複数の仮想記憶セグメントの各々にアクセ
    スする手段と、 複数のデータ構造に関する識別情報を第1の仮想記憶セ
    グメント中に記憶するための第1の処理装置により形成
    されたテーブルと、 上記第1の処理装置に少なくとも1つのバック・アップ
    処理装置を割当てる手段と、 上記バック・アップ処理装置に第1の処理装置中の上記
    テーブルをコピーする手段と、 上記複数の処理装置の任意のものの中のプロセスから、
    処理装置により所有されているデータ構造に対して原子
    的なトランザクションを実行するシステム・コールを発
    行する手段と、 上記データ構造を所有している上記処理装置に対してバ
    ック・アップ処理装置を割当てる手段と、トランザクシ
    ョンの成功終了時にデータ構造の全てのコピーを更新す
    る手段とを有するシステム。
JP2007274A 1989-01-18 1990-01-18 データ処理システム Granted JPH02228744A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US298384 1989-01-18
US07/298,384 US5222217A (en) 1989-01-18 1989-01-18 System and method for implementing operating system message queues with recoverable shared virtual storage

Publications (2)

Publication Number Publication Date
JPH02228744A true JPH02228744A (ja) 1990-09-11
JPH0557619B2 JPH0557619B2 (ja) 1993-08-24

Family

ID=23150268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007274A Granted JPH02228744A (ja) 1989-01-18 1990-01-18 データ処理システム

Country Status (3)

Country Link
US (1) US5222217A (ja)
EP (1) EP0381644A3 (ja)
JP (1) JPH02228744A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239812A (ja) * 1994-02-28 1995-09-12 Sanyo Electric Co Ltd 情報処理装置

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390302A (en) * 1991-02-21 1995-02-14 Digital Equipment Corporation Transaction control
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5892953A (en) * 1991-04-15 1999-04-06 International Business Machines Corporation Corrective service facility
JP3189903B2 (ja) * 1991-06-03 2001-07-16 富士通株式会社 ケーパビリティの退避・復元機構を持つ装置
JPH0812616B2 (ja) * 1991-09-11 1996-02-07 インターナショナル・ビジネス・マシーンズ・コーポレイション オペレーティングシステムカーネル用受動回復方法およびシステム
US5499367A (en) * 1991-11-15 1996-03-12 Oracle Corporation System for database integrity with multiple logs assigned to client subsets
EP0551009B1 (en) * 1992-01-08 2001-06-13 Emc Corporation Method for synchronizing reserved areas in a redundant storage array
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
WO1994000816A1 (en) * 1992-06-18 1994-01-06 Andor Systems, Inc. Remote dual copy of data in computer systems
GB2276739A (en) * 1993-03-30 1994-10-05 Ibm System for storing persistent and non-persistent queued data.
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP1031928B1 (en) 1993-06-04 2005-05-18 Network Appliance, Inc. A method for providing parity in a raid sub-system using non-volatile memory
US5485573A (en) * 1993-07-16 1996-01-16 Unisys Corporation Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
GB9323241D0 (en) * 1993-11-11 1994-01-05 Int Computers Ltd Message handler
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
US5796999A (en) * 1994-04-15 1998-08-18 International Business Machines Corporation Method and system for selectable consistency level maintenance in a resilent database system
US5649092A (en) * 1994-04-21 1997-07-15 Unisys Corporation Fault tolerant apparatus and method for maintaining one or more queues that are shared by multiple processors
US6029205A (en) * 1994-12-22 2000-02-22 Unisys Corporation System architecture for improved message passing and process synchronization between concurrently executing processes
US5555396A (en) * 1994-12-22 1996-09-10 Unisys Corporation Hierarchical queuing in a system architecture for improved message passing and process synchronization
US5602998A (en) * 1994-12-22 1997-02-11 Unisys Corporation Dequeue instruction in a system architecture for improved message passing and process synchronization
US5797005A (en) * 1994-12-30 1998-08-18 International Business Machines Corporation Shared queue structure for data integrity
CA2167632A1 (en) 1995-01-23 1996-07-24 Leonard R. Fishler Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
JP3253473B2 (ja) * 1995-01-27 2002-02-04 富士通株式会社 二重化された共用メモリの等価性回復処理方法および装置
US5761403A (en) * 1995-05-17 1998-06-02 Nec Corporation Failure recovery system and failure recovery method in loosely coupled multi-computer system, and medium for storing failure recovery program
US6633897B1 (en) * 1995-06-30 2003-10-14 International Business Machines Corporation Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler
JPH0962586A (ja) * 1995-08-25 1997-03-07 Fujitsu Ltd 情報処理装置及び情報処理装置におけるデータ処理方法
US5778168A (en) * 1995-09-11 1998-07-07 Sun Microsystems, Inc. Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device
US5978894A (en) * 1995-11-27 1999-11-02 Hitachi, Ltd. Method of interprocessor data transfer using a network, virtual addresses and paging, a buffer, flags, data transfer status information and user accessible storage areas in main memory
US5906658A (en) * 1996-03-19 1999-05-25 Emc Corporation Message queuing on a data storage system utilizing message queuing in intended recipient's queue
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5805786A (en) * 1996-07-23 1998-09-08 International Business Machines Corporation Recovery of a name server managing membership of a domain of processors in a distributed computing environment
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US6353834B1 (en) * 1996-11-14 2002-03-05 Mitsubishi Electric Research Laboratories, Inc. Log based data architecture for a transactional message queuing system
EP0854423A1 (en) 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
US5933838A (en) * 1997-03-10 1999-08-03 Microsoft Corporation Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US6029204A (en) * 1997-03-13 2000-02-22 International Business Machines Corporation Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries
US5864851A (en) * 1997-04-14 1999-01-26 Lucent Technologies Inc. Method and system for managing replicated data with enhanced consistency and concurrency
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6633922B1 (en) 1997-12-15 2003-10-14 International Business Machines Corporation Object access mechanism that dynamically switches between multiple distributed access models
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6289432B1 (en) 1998-03-25 2001-09-11 International Business Machines Corporation Sharing segments of storage by enabling the sharing of page tables
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
US6279011B1 (en) 1998-06-19 2001-08-21 Network Appliance, Inc. Backup and restore for heterogeneous file server environment
US6269381B1 (en) 1998-06-30 2001-07-31 Emc Corporation Method and apparatus for backing up data before updating the data and for restoring from the backups
US6366986B1 (en) * 1998-06-30 2002-04-02 Emc Corporation Method and apparatus for differential backup in a computer storage system
US6182197B1 (en) 1998-07-10 2001-01-30 International Business Machines Corporation Real-time shared disk system for computer clusters
US6286110B1 (en) * 1998-07-30 2001-09-04 Compaq Computer Corporation Fault-tolerant transaction processing in a distributed system using explicit resource information for fault determination
US6574591B1 (en) 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6119244A (en) * 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6247024B1 (en) * 1998-09-25 2001-06-12 International Business Machines Corporation Method and system for performing deferred file removal in a file system
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
JP4294142B2 (ja) * 1999-02-02 2009-07-08 株式会社日立製作所 ディスクサブシステム
US6411981B1 (en) 1999-03-12 2002-06-25 Compaq Computer Corporation Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer
US6336173B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
US6336172B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in a data storage library system
US6473829B1 (en) 1999-05-28 2002-10-29 International Business Machines Corporation Data storage device providing communication between processing units
US6961749B1 (en) 1999-08-25 2005-11-01 Network Appliance, Inc. Scalable file server with highly available pairs
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US6976260B1 (en) * 1999-09-24 2005-12-13 International Business Machines Corporation Method and apparatus for serializing a message queue in a multiprocessing environment
TW454120B (en) 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US6523078B1 (en) 1999-11-23 2003-02-18 Steeleye Technology, Inc. Distributed locking system and method for a clustered system having a distributed system for storing cluster configuration information
US6883120B1 (en) 1999-12-03 2005-04-19 Network Appliance, Inc. Computer assisted automatic error detection and diagnosis of file servers
US6715034B1 (en) 1999-12-13 2004-03-30 Network Appliance, Inc. Switching file system request in a mass storage system
US6769027B1 (en) * 2000-01-31 2004-07-27 Avaya Technology Corp. System and method for using multi-headed queues for bookmarking in backup/recover scenarios
US7346910B1 (en) * 2000-05-26 2008-03-18 International Business Machines Incorporation Administration of groups of computer programs, data processing systems, or system resources
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US6816941B1 (en) 2000-10-23 2004-11-09 International Business Machines Corporation Method and system for efficiently importing/exporting removable storage volumes between virtual storage systems
US6993523B1 (en) 2000-12-05 2006-01-31 Silicon Graphics, Inc. System and method for maintaining and recovering data consistency in a data base page
US6721739B1 (en) 2000-12-05 2004-04-13 Silicon Graphics, Inc. System and method for maintaining and recovering data consistency across multiple pages
US6751636B1 (en) 2000-12-05 2004-06-15 Silicon Graphics, Inc. System and method for maintaining and recovering data consistency across multiple instances of a database
US6799284B1 (en) 2001-02-28 2004-09-28 Network Appliance, Inc. Reparity bitmap RAID failure recovery
JP3690295B2 (ja) * 2001-03-15 2005-08-31 日本電気株式会社 ディスクアレイ制御装置
WO2002078292A1 (en) * 2001-03-26 2002-10-03 Duaxes Corporation Protocol duplexer and protocol duplexing method
US6668264B1 (en) 2001-04-03 2003-12-23 Network Appliance, Inc. Resynchronization of a target volume with a source volume
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
US6901533B2 (en) * 2001-08-23 2005-05-31 International Business Machines Corporation Reconstructing memory residents queues of an inactive processor
US20030110232A1 (en) * 2001-12-11 2003-06-12 International Business Machines Corporation Distributing messages between local queues representative of a common shared queue
US7185033B2 (en) 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory
US7181482B2 (en) * 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
US7185034B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with guaranteed at least once delivery
US7203706B2 (en) 2002-08-01 2007-04-10 Oracle International Corporation Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7457796B2 (en) * 2004-07-08 2008-11-25 International Business Machines Corporation Method using virtual replicated tables in a cluster database management system
US7703098B1 (en) 2004-07-20 2010-04-20 Sun Microsystems, Inc. Technique to allow a first transaction to wait on condition that affects its working set
US8074030B1 (en) * 2004-07-20 2011-12-06 Oracle America, Inc. Using transactional memory with early release to implement non-blocking dynamic-sized data structure
US7610200B2 (en) * 2004-08-30 2009-10-27 Lsi Corporation System and method for controlling sound data
US7792274B2 (en) * 2004-11-04 2010-09-07 Oracle International Corporation Techniques for performing multi-media call center functionality in a database management system
US7779418B2 (en) * 2004-12-30 2010-08-17 Oracle International Corporation Publisher flow control and bounded guaranteed delivery for message queues
US7818386B2 (en) * 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8959125B2 (en) * 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7720925B1 (en) * 2005-08-03 2010-05-18 Oracle America, Inc. Multiple message receive routine for network packets
US7568013B1 (en) * 2005-08-03 2009-07-28 Sun Microsystems, Inc. Multiple message send routine for network packets
US8196150B2 (en) * 2005-10-07 2012-06-05 Oracle International Corporation Event locality using queue services
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) * 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
US9027025B2 (en) * 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
JP4475598B2 (ja) 2007-06-26 2010-06-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US8886675B2 (en) * 2008-01-23 2014-11-11 Sap Se Method and system for managing data clusters
US20090276654A1 (en) * 2008-05-02 2009-11-05 International Business Machines Corporation Systems and methods for implementing fault tolerant data processing services
US9128895B2 (en) * 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
CA2867302A1 (en) 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
CN109086144B (zh) 2017-06-14 2022-04-05 阿里巴巴集团控股有限公司 一种进程之间的通信方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
US4313162A (en) * 1979-12-14 1982-01-26 Burroughs Corporation I/O Subsystem using data link processors
CH637228A5 (fr) * 1980-03-27 1983-07-15 Willemin Machines Sa Dispositif de commande d'une machine ou d'une installation.
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4525800A (en) * 1981-06-01 1985-06-25 General Electric Co. Enhanced reliability data storage system with second memory for preserving time-dependent progressively updated data from destructive transient conditions
US4430700A (en) * 1981-07-31 1984-02-07 Norand Corporation System and method for communication between nodes of a closed loop local communication path
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
EP0092895B1 (en) * 1982-04-28 1988-05-11 International Computers Limited Data processing system
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
WO1984002409A1 (en) * 1982-12-09 1984-06-21 Sequoia Systems Inc Memory backup system
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
US4620276A (en) * 1983-06-02 1986-10-28 International Business Machines Corporation Method and apparatus for asynchronous processing of dynamic replication messages
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4718002A (en) * 1985-06-05 1988-01-05 Tandem Computers Incorporated Method for multiprocessor communications
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239812A (ja) * 1994-02-28 1995-09-12 Sanyo Electric Co Ltd 情報処理装置

Also Published As

Publication number Publication date
US5222217A (en) 1993-06-22
JPH0557619B2 (ja) 1993-08-24
EP0381644A2 (en) 1990-08-08
EP0381644A3 (en) 1991-09-11

Similar Documents

Publication Publication Date Title
JPH02228744A (ja) データ処理システム
JP2558052B2 (ja) 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法
Haskin et al. Recovery management in QuickSilver
US7072894B2 (en) Data management application programming interface handling mount on multiple nodes in a parallel file system
JP3145236B2 (ja) フォールトトレラントコンピューティング装置
JP2675955B2 (ja) データ処理システム
US6192514B1 (en) Multicomputer system
US4480304A (en) Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
EP1015983B1 (en) Data sharing method and computer architecture
US5860115A (en) Requesting a dump of information stored within a coupling facility, in which the dump includes serviceability information from an operating system that lost communication with the coupling facility
US20030079093A1 (en) Server system operation control method
JPH01188965A (ja) データ処理方法
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
US6424988B2 (en) Multicomputer system
JPH04310148A (ja) データの単位を高速度でアクセスする方法
CN111209142A (zh) 跨数据库的事务管理方法、装置、设备及存储介质
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
CA2177022A1 (en) Customer information control system and method with temporary storage queuing functions in a loosely coupled parallel processing environment
EP0747812A2 (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
EP0724223B1 (en) Remote duplicate database facility with database replication support for online line DDL operations
US8589362B1 (en) Cluster metadata recovery
US20020138704A1 (en) Method and apparatus fault tolerant shared memory
EP0096199A2 (en) Method and apparatus for logging journal data in a computing apparatus
EP0049423B1 (en) Multiprocessor system
US7711721B2 (en) Apparatus, system, and method for suspending a request during file server serialization reinitialization