JPH11238046A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH11238046A
JPH11238046A JP10327125A JP32712598A JPH11238046A JP H11238046 A JPH11238046 A JP H11238046A JP 10327125 A JP10327125 A JP 10327125A JP 32712598 A JP32712598 A JP 32712598A JP H11238046 A JPH11238046 A JP H11238046A
Authority
JP
Japan
Prior art keywords
processing
request
server
computer system
rpc
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
JP10327125A
Other languages
English (en)
Other versions
JPH11238046A5 (ja
Inventor
Takeshi Nishizawa
剛 西沢
P Nesbit David
ピー ネスビット デイビッド
H Torong Ton
エイチ トロング トン
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Publication of JPH11238046A publication Critical patent/JPH11238046A/ja
Publication of JPH11238046A5 publication Critical patent/JPH11238046A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 処理要求のマルチスレッド処理を実行し、ま
た、処理されずにデータベースに残されている要求を回
復する。 【解決手段】 サーバ20は、クライアント30から出
されたリモートプロシージャコール(RPC)要求を並
列的に処理する方法及び装置であり、リモートプロシー
ジャコール要求が来ると、それをキュー21に登録し、
不揮発性メモリに格納する機能を含む。処理要求を受け
付けた旨の応答は、クライアント30に対し直ちに返さ
れる。RPC要求はキュー21から取り出され、並列的
に処理される。完了した処理の通知は、通知クライアン
トに送られる。サーバ障害またはシステム障害が発生し
た場合、システムが復元した時に不揮発性メモリから処
理要求が取り出され、サーバ20が受け取った順序でキ
ュー21に入れられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、クライアントか
らの要求をキューに登録し、その要求に対する応答をク
ライアントに返すための装置及び方法に関する。また、
この発明は処理されずにデータベースに残されている要
求の確実な回復(リカバリ)を保証する。
【0002】
【従来の技術】コンピュータシステムでプロセスによる
処理を実現する時、メモリ構造が頻繁に使用される。各
種アプリケーションで頻繁に使用される2種類のメモリ
構造は、先入れ先出し法(FIFO)による構造、つま
りキュー(待ち行列)、と後入れ先出し法(LIFO)
による構造、つまりスタックである。これらのメモリ構
造では、データは順次に記憶される。キューではデータ
は記憶された順序で取り出されるのに対し、スタックで
はデータは記憶された順序と逆の順序で取り出される。
オペレーティングシステム、アプリケーションプログラ
ム、及び他のプログラムでは、多くの場合、キューを利
用する。オペレーティングシステムが1つの要求を実行
している間、後続の要求はキューに格納され、到着順に
処理される。このようなバッファ処理は、コンピュータ
の通信ポートでデータを受信する場合など、他のアプリ
ケーションにも共通したキューメモリ構造の使用法であ
る。例えば、通信ポートにおける入力データの受信速度
がデータの処理速度より高速の場合は、キューを利用す
ることで、これら2つのデータ速度の同期を取ることが
できる。これは、入力データ速度に合わせて入力データ
をキューに入れ、プロセッサの処理速度に合わせてデー
タをキューから取り出すことで行われる。
【0003】1つのサーバと複数のクライアントを使用
する分散処理システムでは、いくつかのクライアントか
らの処理要求が同時に、または殆ど同時に、サーバに到
着することがある。例えば、2つの処理要求がほぼ同時
にサーバに到着した場合は、片方の処理要求は、他方の
処理を完了するまでその処理が遅延される。したがっ
て、遅延された処理要求に対する応答も、クライアント
に遅れて戻される。
【0004】
【発明が解決しようとする課題】このように、従来のシ
ステムでは、サーバにおいてある処理要求の処理が遅延
すると、それに対応する応答もクライアントに対して遅
れて返されていた。このため、処理要求を発したクライ
アントは、場合によっては応答が返ってくるまで長時間
待たされる可能性があった。
【0005】本発明はこのような問題を解決するために
なされたものであり、処理要求を発したクライアントを
長時間待たせることがないシステム及び方法を提供する
ことを目的とする。また、本発明は、サーバに障害が発
生した場合に、処理待ちキューに登録されていた未処理
の処理要求を復旧するためのシステム及び方法を提供す
る。
【0006】
【課題を解決するための手段】この発明は、同時に到来
する処理要求のマルチスレッド処理を実行するための装
置及び方法を提供する。また、この発明は処理されずに
データベースに残されている要求の回復(リカバリ)の
ための方法及び装置も提供する。
【0007】本発明では、マルチスレッド処理を実現す
るために、リモート・プロシージャ・コール(RPC)
サーバを用いる。RPCサーバにおいては、処理待ちの
処理要求を登録するキューがメモリ上に構築されるとと
もに、システム障害に備えてそれら処理要求を保存する
データベースがディスク等の不揮発性記憶装置上に構築
される。RPCサーバはRPC要求を受け取ると、その
要求をキューに入れ、データベースに保存する。次に、
RPCサーバは新しい要求が到着したことをバックグラ
ウンドスレッドに通知し、直ちに応答を返す。バックグ
ラウンドスレッドは、キューからRPC要求を取り出
し、スレッドを生成してそのRPC要求を処理する。処
理中にRPCサーバに障害が発生してRPC要求を完了
できない場合は、RPCサーバはデータベースからRP
C要求を取り出して処理する。
【0008】
【発明の実施の形態】以下図面を参照して、本発明の好
適な実施の形態を詳細に説明する。
【0009】図1は、従来の分散処理システム1を示
し、このシステムはRPC(リモート・プロシージャ・
コール)サーバ2、RPCクライアント3、及び通知ク
ライアント5とを含む。RPCクライアント3はRPC
サーバ2へ要求を送り、サーバ2から応答を受け取る。
RPCサーバ2は、RPCクライアント3からの要求の
処理を管理する。通知クライアント5は、RPCサーバ
2によるRPC要求実行中に何等かのイベントが発生し
た場合、通知を受け取ることができる。
【0010】サーバ2における要求処理は、先入れ先出
し(FIFO)法で行われる。つまり、RPCクライア
ント3からのRPC要求は、受け取られた順に処理され
る。さらに、RPCサーバ2からRPCクライアント3
への応答は、処理の完了後に戻される。使用頻度が高い
システムでは、複数のクライアント3からのRPC要求
が同時または殆ど同時に、RPCサーバ2へ到着するこ
とがある。しかし、RPCサーバ2はシングルスレッド
プロセッサであるため、複数のクライアント3からのす
べてのRPC要求は逐次的に処理される。
【0011】図2は、図1に示されているシステム1を
使用するリモート・プロシージャ・コール(RPC)シ
ングルスレッド処理を示したタイミング図である。図2
では、2つのRPCクライアント3が、同時にまたは殆
ど同時に、RPCサーバ2へRPC要求PR1とPR2
をそれぞれ送信している(T1)。この例では、RPC
サーバ2は最初のRPC要求PR1を処理し、その間、
2番目の要求PR2はキューに入れられる(T1)。最
初のRPC要求PR1の処理が完了すると(T2)、R
PCサーバ2は、その要求に対応するRPCクライアン
ト3へ最初の応答R1を送り、2番目のRPC要求RP
2の処理を開始する。2番目のRPC要求PR2を完了
すると(T3)、RPCサーバ2は、対応するPRCク
ライアント3へ2番目の応答R2を送る。ここで、もし
最初のRPC要求PR1を完了するためにかなりの時間
が必要な場合は、2番目のRPC要求PR2が普通なら
短時間で完了するような場合でさえも、2番目のRPC
クライアント3は2番目の応答R2を受け取るまでかな
りの時間待たされることになる。例えば、最初のRPC
要求PR1の処理時間が30秒で、2番目のRPC要求
PR2の処理時間が1秒の場合でも、2番目のRPCク
ライアント3は31秒後に2番目の応答R2を受け取る
ことになる。3つ以上のRPC要求がサーバ2に同時ま
たは殆ど同時に到着する時は、応答の遅れはさらに深刻
になる可能性がある。
【0012】図3は、この問題を解決するマルチスレッ
ドRPCシステム10のブロック図である。このマルチ
スレッドRPCシステム10は、1つのRPCサーバ2
0とそのサーバに接続される1つまたは複数のRPCク
ライアント30とを含む。この例では1つだが、RPC
システム10に複数のRPCサーバ20が含まれていて
ももちろんよい。RPCサーバ20には、キュー21と
データベース22とが含まれている。データベース22
は、システム障害時にも記憶内容が消えないよう、不揮
発性の記憶装置上に構築されている。例えば、不揮発性
記憶装置としては、例えばハードディスク装置などの外
部記憶装置などを用いることができる。また、RPCサ
ーバ20には、少なくとも4種類のモジュール、つまり
スレッドが含まれている。それらは、作成(スポーン:
spawn)スレッド23、処理スレッド24n、応答スレッ
ド25、及び回復スレッド26である。作成スレッド2
3は、キュー21からRPC要求を取り出し、処理スレ
ッド241から24iを作成する(ここでiは、キュー2
1で待ち状態のRPC要求の数に等しい)。応答スレッ
ド25と作成スレッド23は、RPCサーバ20のシャ
ットダウン等の特定のイベントが発生しない限り、連続
して実行される。処理スレッド24nは、RPC要求を
処理する。しかし、並列的な処理スレッド24nの数
は、RPC要求の処理時に拘束される処理資源の量を制
限するために、制限されることがある。処理スレッドカ
ウンタ(単にカウンタと呼ぶこともある)27は、作成
スレッド23が処理スレッド24iを作成するたびに1
ずつ増加する。作成スレッド23が新しい処理スレッド
24iを作成しようとした時に処理スレッドカウンタ2
7が所定値に達すると、条件変数28にシグナルが送ら
れるまで、作成スレッド23は待ち状態になる。処理ス
レッド24iがクローズされる度に、処理スレッドカウ
ンタ27は1だけ減少し、条件変数28にシグナルが送
られる。
【0013】RPC要求は、要求ライン31を介してR
PCクライアント30から送られ、RPCサーバ20に
より受け取られる。各RPC要求に関する応答は、対応
する応答ライン32を介してRPCクライアントへ戻さ
れる。
【0014】RPCクライアント30から送られてきた
RPC要求がRPCサーバ20で受け取られると、それ
らの要求は受け取られた順に応答スレッド25によりキ
ュー21に入れられる。また、応答スレッド25は、R
PC要求をデータベース22へ保存(セーブ)する。次
に、応答スレッド25は、キュー21に追加された新し
いRPC要求について、作成スレッド23に直ちに通知
する。
【0015】応答スレッド25は、RPC要求をキュー
21へ登録すると、応答ライン32を介して、RPCク
ライアント30へ応答を返す。RPCクライアント30
に応答を戻した後、応答スレッド25は条件変数29に
シグナルを送る。条件変数29はこのシグナルを受け取
るとアイドル(休止)状態の作成スレッド23を再起動
し、キュー21内のRPC要求の処理を開始する。
【0016】このように、RPCサーバ20がRPC要
求を受け取ると、RPCクライアント30は直ちにその
旨の通知を受ける。さらに、RPCクライアント30は
応答を受け取ると、RPCサーバ20が実際にRPC要
求を完了したものと想定し、RPC要求がまだキュー内
にある場合でも、操作は完了したものとみなして自分自
身の処理操作を継続する。
【0017】処理スレッドカウンタ27が所定値を超え
てなく、しかも、新たな処理スレッド24nを作成する
だけの十分な処理資源が残されている限り、作成スレッ
ド23はキュー21からRPC要求を取り出し、そのR
PC要求を処理するために処理スレッド24nを直ちに
作成する。
【0018】データベース22は、応答送信済みのRP
Cクライアント30のRPC要求の処理を妨げたり中断
させたりするような障害がRPCサーバ20に起きたと
きに、使用される。このデータベースは、RPCサーバ
20がRPC要求を受け取った旨が応答ライン32を介
してRPCクライアント30に直ちに通知されるため
に、必要となる。RPCサーバ20に何等かの障害が発
生した場合にデータベース22が備わっていないと、R
PC要求は処理されない可能性があるにもかかわらず、
RPCクライアントにはRPC要求が実行された旨の応
答が返されることになる。したがって、データベース2
2を備えておけば、RPCサーバ20が正常に操作を再
開した時点で、受信されキューに入れられているRPC
要求の内まだ処理されていない要求をデータベース22
から取り出し、これらのRPC要求を処理することがで
きる。回復スレッド26は、データベース22を検査
し、まだ処理されていない要求があるかどうかを判別す
る。処理されていない要求があると、回復スレッド26
は、データベース22に記憶されている最も古いRPC
要求を選択し、キュー21へ復元(リストア)する。
【0019】図4は、この発明によるマルチスレッドR
PC処理を示したタイミングチャートである。図4で、
1番目のクライアント30は1番目のRPC要求PR1
を送り、2番目のクライアント30は2番目のRPC要
求PR2をRPCサーバ20へ送り、それぞれ処理を依
頼する。1及び2番目のRPC要求PR1、PR2は、
殆ど同時にRPCサーバ20に到着する(T1)。ただ
し、要求PR1の方が、要求PR2より処理にかなり時
間がかかる。1及び2番目のRPC要求PR1とPR2
の両方がRPCサーバ20に到着すると、それらは直ち
にキュー21へ入れられ、対応するエントリがデータベ
ース22に作成される(T1)。処理スレッド241
242が作成され、別々のPR1とPR2要求の処理が
並行して開始される。さらに、RPC要求PR1とPR
2がキュー21へ入れられるとすぐ、RPCサーバ20
は応答R1とR2とを各々のクライアント30へ直ちに
返し、RPC要求PR1とPR2とが処理されたことを
通知する(T1)。RPCサーバ20は1番目のRPC
要求PR1及び2番目のRPC要求PR2とを並行して
処理するため、応答時間は、サーバ内にすでに受け付け
てられているRPC要求には依存しない。したがって、
応答時間は、シングルスレッドRPCサーバの応答時間
より格段に速くなる。つまり、2番目のRPC要求PR
2の処理はT2で終了し、最初のRPC要求PR1の処
理はT3で終了する。
【0020】図4に示されている応答R1とR2は、R
PC要求がRPCサーバ20で処理されたことを示す簡
単な内容でも、またはRPC要求が単に受け取られたこ
とだけを表す内容でも構わない。さらに、応答R1とR
2には、予想される完了時間等、処理に関するデータを
含めてもよい。
【0021】図5は、この発明の応用例を示している。
図5では、RPCクライアント30は、上記と同様に、
RPC要求PR1とPR2とをRPCサーバ20へ送
る。しかし、マルチスレッドRPCシステム10には通
知サーバ40が含まれていて、この通知サーバがイベン
ト通知Niを通知クライアント50へ送ることができる
ようになっている。つまり、RPCサーバ20がRPC
要求を処理している間に何等かのイベントが発生する
と、RPCサーバ20は通知サーバ40に対し“Sen
dEvent”要求を送る。RPCサーバ20と通知サ
ーバ40との間で受け渡されるこれらの要求と応答も、
RPCである。つまり、“SendEvent”オペレ
ーションに関して言えば、「RPCクライアント」はR
PCサーバ20であり、「RPCサーバ」は通知サーバ
40である。したがって、この場合は、通知サーバ40
は、通知クライアント50に対し通知プロファイルに指
定されている方法を使用して通知Niを送るための処理
を実行しなければならない。通知プロファイルは、“S
endEvent”要求のデータに組み込むことができ
る。通知サーバ40へ送るデータには、例えば、イベン
ト識別番号やイベントについてのその他の追加情報、及
び通知プロファイル(デリバリー(配信)方法とデリバ
リーアドレスとが含まれる)が含まれる。通知サーバ4
0は、イベント識別番号と追加情報とからユーザが読み
取り可能なイベントメッセージを作成し、指定されたデ
リバリー方法を使用してその通知をデリバリーアドレス
へ送る。
【0022】図6は、シングルスレッドRPC処理シス
テムを使用したイベント通知のシングルスレッドRPC
処理を示している。この場合、2つのRPCサーバ20
は“SendEvent”RPC要求PR1とPR2と
を同時にまたは殆ど同時に通知サーバ40へ送る(T
1)。図6に示されているように、PR1の処理を完了
した時点で、通知サーバ40は応答R1をRPCサーバ
20へ送り返し、その後“SendEvent”RPC
要求PR2の処理を開始する(T2)。PR1、PR2
の処理を完了した後には、通知N1とN2とが、それぞ
れ、T2とT3の時点で通知クライアント50へ送られ
る。したがって、一方のRPCサーバ20は、最初の
“SendEvent”要求PR1の処理の終了に対応
するT2で応答を受け取る。さらに、通知サーバ40
は、対応する通知クライアント50に対し通知N1を送
る。しかし、2番目の“SendEvent”要求PR
2に関するイベント通知N2は、1番目のRPC要求P
R1と2番目のRPC要求PR2の両方が完全に処理さ
れるまで(T3)、送られない。これは、通知サーバ4
0がRPC要求を逐次的に処理するからである。
【0023】図7は、イベント通知のマルチスレッドR
PC処理を示すタイミングチャートである。図7に示さ
れている処理は図4に示されている処理と似ているが、
通知クライアント50が用意されていて“SendEv
ent”処理終了時に通知Niを出す点は異なってい
る。2つのRPCサーバ20は、1番目及び2番目のR
PC要求PR1とPR2とを通知サーバ40に送る。1
及び2番目の“SendEvent”要求PR1とPR
2は、通知サーバ40に同時または殆ど同時に到着する
(T1)。応答スレッド25は、1及び2番目の“Se
ndEvent”要求PR1とPR2をキュー21とデ
ータベース22へロードし、1及び2番目の応答R1と
R2を対応するRPCサーバ20へ直ちに戻す(T
1)。1及び2番目のRPC要求PR1とPR2の処理
は、処理スレッド241及び242を使用して並列的に実
行される。2番目の処理要求PR2は短時間(例えば1
秒)で完了するため(T2)、対応する通知クライアン
ト50は最初の要求PR1の処理が完了するまで待たず
に、イベントを通知される。1番目の“SendEve
nt”要求PR1の処理が完了すると(T3)、通知N
1は対応する通知クライアント50へ送られる。したが
って、シングルスレッド通知サーバを使用する時には通
知クライアント50に対する通知は遅れていたが、マル
チスレッドではこの遅れもなくなる。
【0024】図5では、通知クライアント50はRPC
クライアント30からは独立した別個の装置として示さ
れている。しかし、RPCクライアント30と通知クラ
イアント50は、物理的に同じ装置(エンティティ)で
も構わない。また、さらに、通知クライアント50への
通知Niには、イベントが発生した時刻等、RPCサー
バ20に発生したイベントに関する追加情報を組み込む
こともできる。また、RPCサーバ20と通知サーバ4
0とは、同じハードウエア上に構築してもよい。
【0025】図7に示されている例では、2つのRPC
サーバ20が最初及び2番目の“SendEvent”
要求PR1とPR2を通知サーバ40へ送っている。し
かし、この発明は、RPC要求が2つの場合だけに限定
されたものではない。任意の数の“SendEven
t”要求を同時または殆ど同時に受け取ることができ、
また、キュー21には任意の数の“SendEven
t”要求がすでに格納されていても構わない。しかし、
実際には、並列的に処理できる“SendEvent”
要求数には制限がある。したがって、通知サーバ40に
は、並列的に処理されるRPC要求数について、ハード
ウエア的な制限があることがある。
【0026】図8〜図11は、マルチスレッドRPC処
理を実行するためのフローチャートである。図8は、応
答スレッドサブルーチンを示している。ステップS10
では、RPCサーバ20は新しいRPC要求をRPCク
ライアント30から受け取る。
【0027】次に、ステップS11では、新しいRPC
要求はキュー21へ入れられる。次に、ステップS12
で、新しいRPC要求はデータベース22へ記憶され
る。
【0028】次に、ステップS13では、RPCサーバ
20は応答RiをRPCクライアント30へ返し、新し
いRPC要求が受け取られた旨を通知する。
【0029】次に、ステップS14では、条件変数29
にシグナルを送る。作成スレッド23がアイドル状態の
場合は、このステップにより、作成スレッドはキュー2
1に記憶されているRPC要求の処理を開始する。
【0030】ステップS10〜S14が繰り返される。
【0031】図9は、スレッド作成ルーチンを示してい
る。ステップS20では、RPCサーバは、応答スレッ
ド25が条件変数29に対しシグナルを送るまで、待ち
状態のままである。
【0032】ステップS21では、RPCサーバ20は
処理スレッドカウンタ27が所定の値に達したことを判
別する。処理スレッドカウンタ27が所定の値に達して
いれば、処理はステップS22へ移る。所定の値に達し
ていない場合は、処理はステップS23へジャンプす
る。
【0033】次に、ステップS22では、RPCサーバ
20はすでに実行されている処理スレッド24iのいず
れかが条件変数28に対しシグナルを送るまで待つ。
【0034】ステップS23では、作成スレッド23は
最も古い(すなわち最初に入れられた)RPC要求PR
iをキュー21から取り出す。処理はステップS24へ
進む。ステップS24では、作成スレッド23は、RP
C要求PRiを処理するためにスレッド24nを作成す
る。処理はステップS25へ進む。ステップS25で
は、処理スレッドカウンタ27が1だけ増分される。処
理はステップS26へ進む。ステップS26では、RP
Cサーバ20は、キュー21にRPC要求があるかどう
か判別する。キュー21にRPC要求がある場合は、処
理はステップS23へ戻る。RPC要求がない場合は、
処理はステップS20へ戻る。
【0035】図10は、典型的なRPC処理スレッド2
4の処理ルーチンを示している。ステップS30では、
処理スレッド24nはRPC要求PRiの処理を開始す
る。処理はステップS31へ進む。ステップS31で
は、処理が完了している場合はステップS32へ進む。
処理が完了していない場合は、処理は終了し、エラーが
発生する。ステップS32では、RPC要求PRiはデ
ータベース22から削除される。次に処理はステップS
34へ進む。
【0036】ステップS34では、要求PRiを処理す
るためにスレッド24nに割り当てられていた処理資源
が解放される。処理はステップS35へ進む。ステップ
S35では、処理スレッドカウンタ27は1だけ減少さ
れる。ステップS36では、条件変数28にシグナルが
送られる。そして処理は終了する。
【0037】図11は、回復ルーチンを示している。ス
テップS41では、RPCサーバ20は障害発生後に再
起動される。処理はステップS42へ進む。ステップS
42では、RPCサーバは、キュー21内にないRPC
要求がデータベース22に記憶されているかどうか判別
する。データベース22にそのようなRPC要求がない
場合は、処理は終了する。そのような要求がある場合
は、処理はステップS43へ進む。ステップS43で
は、最も古い(最初に入れられた)RPC要求がデータ
ベース22からコピーされる。処理はステップS44へ
進む。ステップS44では、選択されたRPC要求がキ
ュー21へ追加される。処理はステップS45へ進む。
ステップS45では、RPCサーバ20は、キュー21
にないRPC要求がデータベース22にあるかどうか再
び判別する。データベース22にRPC要求がある場合
は、処理はステップS43へ進む。RPC要求がない場
合は、処理は終了する。
【0038】上記で説明した実施例では、適切にプログ
ラムされた汎用コンピュータが記載されたデータ処理を
制御する。しかし、システム全体を制御する主プロセッ
サ部すなわち中央プロセッサ部と、この中央プロセッサ
部の制御下で様々な特殊計算、機能、及び他の処理を実
行するための個別回路とを備えた専用の集積回路(例え
ばASIC等)でも、これらの処理機能を実現すること
はできる。また、個別のの専用電子回路やプログラマブ
ル集積電子回路、すなわちデバイス、を使用して実現す
ることもできる(例えば、個別回路要素、PAL、PL
A、DLD、FPGA等のハードワイヤード電子デバイ
スまたは論理デバイス)。一般的に、図8〜図11のフ
ローチャートを実行できる有限状態マシンが搭載可能な
デバイスまたはアセンブリならば、データ処理の制御に
使用できる。
【0039】好ましい実施態様を参照しながらこの発明
を説明したが、この実施態様は説明上のもので、制約的
なものと解してはならない。特許請求の範囲で定義して
いるこの発明の範囲から逸脱すること無しに、各種変更
が可能である。
【図面の簡単な説明】
【図1】 シングルスレッド処理を使用する分散処理シ
ステムのブロック図である。
【図2】 シングルスレッド処理のタイミングチャート
である。
【図3】 この発明に係るマルチスレッド処理システム
のブロック図である。
【図4】 待ち合せを使用するマルチスレッド処理のタ
イミングチャートである。
【図5】 通知サーバ及び関連構成要素のブロック図で
ある。
【図6】 通知機能を使用するシングルスレッド処理の
タイミングチャートである。
【図7】 通知機能を使用するマルチスレッド処理のタ
イミングチャートである。
【図8】 応答スレッドサブルーチンを実行するフロー
チャートである。
【図9】 作成スレッドサブルーチンを実行するフロー
チャートである。
【図10】 処理スレッドサブルーチンを実行するフロ
ーチャートである。
【図11】 回復スレッドサブルーチンを実行するフロ
ーチャートである。
【符号の説明】
20 サーバ、21 キュー、22 データベース、2
3 作成スレッド、24 処理スレッド、25 応答ス
レッド、26 回復スレッド、27 カウンタ(処理ス
レッドカウンタ)、28,29 条件変数、30 クラ
イアント。
フロントページの続き (72)発明者 トン エイチ トロング アメリカ合衆国 カリフォルニア州 ウェ ストミンスター オレンジ ソープ アベ ニュー 8821

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのクライアントと、 前記クライアントから処理要求を受け取る第1のサーバ
    と、 処理要求をキューに登録する手段と、 複数の処理要求を並列的に処理可能な並列処理手段と、 処理要求が前記キューに登録されたときに、前記クライ
    アントのうちのその処理要求を発したクライアントに対
    して応答を返す手段と、 を備えるコンピュータシステム。
  2. 【請求項2】 請求項1に記載のコンピュータシステム
    であって、 処理要求を不揮発性メモリに格納する手段と、 前記コンピュータシステムに障害が発生した場合に、前
    記不揮発性メモリから処理要求を取り出し、前記キュー
    に登録する手段と、 をさらに備えるコンピュータシステム。
  3. 【請求項3】 請求項1に記載のコンピュータシステム
    であって、 前記並列処理手段は、キューから処理要求を選択し、選
    択した処理要求を複数の個別処理手段のいずれかに渡し
    て処理させる手段を有することを特徴とするコンピュー
    タシステム。
  4. 【請求項4】 請求項3に記載のコンピュータシステム
    であって、前記各個別処理手段は、前記選択された要求
    を受け取って処理し、その後その要求を前記不揮発性メ
    モリから削除することを特徴とするコンピュータシステ
    ム。
  5. 【請求項5】 請求項4に記載のコンピュータシステム
    であって、前記第1のサーバが選択された要求を処理し
    ている間にイベントが発生した時に、通知クライアント
    に通知する通知手段をさらに備えたことを特徴とするコ
    ンピュータシステム。
  6. 【請求項6】 請求項5に記載のコンピュータシステム
    であって、前記通知手段は第2のサーバを備え、前記第
    2のサーバは、前記第1のサーバが選択された要求を処
    理している時にイベントが発生した場合に、前記第1の
    サーバから要求を受け取り、イベント通知を前記通知ク
    ライアントに送信することを特徴とするコンピュータシ
    ステム。
  7. 【請求項7】 コンピュータシステムで要求を処理する
    方法であって、 クライアントから処理要求を受け取り、 該処理要求を処理要求のキューに登録し、 該処理要求を外部装置に記憶させ、 該処理要求をキューに登録した時に前記クライアントに
    応答を戻し、 処理要求のいずれかをキューから取り出し、 取り出した処理要求を処理することを特徴とする方法。
  8. 【請求項8】 請求項7に記載の方法であって、取り出
    された処理要求の処理が完了した時にその処理要求を前
    記外部装置から削除するステップをさらに含むことを特
    徴とする方法。
  9. 【請求項9】 請求項8に記載の方法であって、 前記外部装置に処理要求が含まれているかどうかを判別
    し、 障害からの回復時に、記憶されている各処理要求を前記
    外部装置から読み取り、 読み取られた処理要求を、前記サーバが受け取った順序
    に対応する順序で、前記キューに登録するステップをさ
    らに含むことを特徴とする方法。
  10. 【請求項10】 少なくとも一つのクライアントと、 前記クライアントから処理要求を受け取るサーバと、 処理要求をキューに登録し、処理要求を前記キューに登
    録した時に、前記クライアントのうちのその処理要求を
    発したクライアントに対して応答を返すモジュールと、 を備えるコンピュータシステム。
  11. 【請求項11】 請求項10に記載のコンピュータシス
    テムであって、前記モジュールは処理要求を外部装置に
    格納することを特徴とするコンピュータシステム。
  12. 【請求項12】 請求項11に記載のコンピュータシス
    テムであって、コンピュータシステム障害が発生した場
    合に、前記外部装置から処理要求を取り出し、取り出し
    た要求を前記キューに登録する第2のモジュールをさら
    に備えることを特徴とするコンピュータシステム。
  13. 【請求項13】 請求項11に記載のコンピュータシス
    テムであって、 前記キューから処理要求を選択する第2のモジュール
    と、 選択された複数の処理要求を並列的に処理する第3のモ
    ジュールと、 をさらに備えることを特徴とするコンピュータシステ
    ム。
  14. 【請求項14】 請求項13に記載のコンピュータシス
    テムであって、処理要求は前記第3のモジュールにより
    処理された後に前記外部装置から削除されることを特徴
    とするコンピュータシステム。
  15. 【請求項15】 請求項14に記載のコンピュータシス
    テムであって、選択された要求を前記サーバが処理して
    いる間にイベントが発生すると、前記サーバから第1の
    要求を受け取った後でイベント通知を通知クライアント
    に送信する通知サーバをさらに含むことを特徴とするコ
    ンピュータシステム。
  16. 【請求項16】 請求項13に記載のコンピュータシス
    テムであって、 キューから選択した処理要求の数をカウントするカウン
    タと、 前記カウンタによりカウントした処理要求の数に基づい
    て、前記第3のモジュールによるキューからの処理要求
    の選択を制御するリミッタと、 をさらに備えることを特徴とするコンピュータシステ
    ム。
JP10327125A 1997-11-21 1998-11-17 コンピュータシステム Pending JPH11238046A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/975,860 1997-11-21
US08/975,860 US6081906A (en) 1997-11-21 1997-11-21 Multi-thread processing with queuing and recovery

Publications (2)

Publication Number Publication Date
JPH11238046A true JPH11238046A (ja) 1999-08-31
JPH11238046A5 JPH11238046A5 (ja) 2004-08-19

Family

ID=25523496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10327125A Pending JPH11238046A (ja) 1997-11-21 1998-11-17 コンピュータシステム

Country Status (2)

Country Link
US (1) US6081906A (ja)
JP (1) JPH11238046A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226584A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 取引システム
JP2008135013A (ja) * 2006-10-30 2008-06-12 Hitachi Ltd 注文システム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US6708224B1 (en) * 1999-01-19 2004-03-16 Netiq Corporation Methods, systems and computer program products for coordination of operations for interrelated tasks
JP3807588B2 (ja) * 1999-08-12 2006-08-09 富士通株式会社 マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体
EP1407583B1 (en) * 2001-07-17 2009-06-03 Alcatel Internetworking, Inc. In-band message synchronization for distributed shared memory packet switch
US7523200B2 (en) * 2003-07-02 2009-04-21 International Business Machines Corporation Dynamic access decision information module
US7447710B2 (en) * 2003-12-11 2008-11-04 Sybase, Inc. Database system providing self-tuned parallel database recovery
JP4238142B2 (ja) * 2004-01-15 2009-03-11 株式会社日立製作所 プログラムコンポーネントの処理要求キューの構成方法、プログラムコンポーネントの登録方法及び実行制御方法、プログラムコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバ
GB0407388D0 (en) * 2004-03-31 2004-05-05 British Telecomm Method and apparatus for communicating data between computer devices
US20060067162A1 (en) * 2004-09-29 2006-03-30 Blankinship Thomas J Ultrasonic cement scanner
US8065690B2 (en) * 2005-12-01 2011-11-22 Cisco Technology, Inc. Method and system for event-based remote procedure call implementation in a distributed computing system
US7676811B2 (en) * 2006-03-23 2010-03-09 Microsoft Corporation Ensuring thread affinity for interprocess communication in a managed code environment
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
WO2008098070A1 (en) 2007-02-06 2008-08-14 Mba Sciences, Inc. A resource tracking method and apparatus
JP4801761B2 (ja) * 2009-08-12 2011-10-26 株式会社日立製作所 データベース管理方法およびシステム並びにその処理プログラム
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
ES2754099T3 (es) * 2009-12-10 2020-04-15 Royal Bank Of Canada Tratamiento sincronizado de datos mediante recursos informáticos en red
WO2025010725A1 (en) * 2023-07-13 2025-01-16 Beijing Oceanbase Technology Co., Ltd. Hybrid database implementations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61131043A (ja) * 1984-11-30 1986-06-18 Toshiba Corp タスク間キユ−制御方式
JPS63138439A (ja) * 1986-12-01 1988-06-10 Hitachi Ltd 分散データベースアクセス要求処理方法
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014221A (en) * 1988-01-29 1991-05-07 Digital Equipment Corporation Mechanism for arbitrating client access to a networked print server
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5485626A (en) * 1992-11-03 1996-01-16 International Business Machines Corporation Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing
JPH06187302A (ja) * 1992-12-18 1994-07-08 Fujitsu Ltd 転送要求キュー制御方式
US5577204A (en) * 1993-12-15 1996-11-19 Convex Computer Corporation Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device
US5673381A (en) * 1994-05-27 1997-09-30 Cheyenne Software International Sales Corp. System and parallel streaming and data stripping to back-up a network
EP0694837A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
US5802371A (en) * 1994-09-29 1998-09-01 International Business Machines Corporation Method of walking-up a call stack for a client/server program that uses remote procedure call
US5797005A (en) * 1994-12-30 1998-08-18 International Business Machines Corporation Shared queue structure for data integrity
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US5872963A (en) * 1997-02-18 1999-02-16 Silicon Graphics, Inc. Resumption of preempted non-privileged threads with no kernel intervention

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61131043A (ja) * 1984-11-30 1986-06-18 Toshiba Corp タスク間キユ−制御方式
JPS63138439A (ja) * 1986-12-01 1988-06-10 Hitachi Ltd 分散データベースアクセス要求処理方法
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226584A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 取引システム
JP2008135013A (ja) * 2006-10-30 2008-06-12 Hitachi Ltd 注文システム

Also Published As

Publication number Publication date
US6081906A (en) 2000-06-27

Similar Documents

Publication Publication Date Title
JPH11238046A (ja) コンピュータシステム
JP2587141B2 (ja) 共用知能メモリを介して結合された複数のプロセッサ間でメッセージを伝達するための機構
US6085277A (en) Interrupt and message batching apparatus and method
US6195701B1 (en) Method and apparatus for synchronization and scheduling of multiple data streams and real time tasks
US5566337A (en) Method and apparatus for distributing events in an operating system
US5946498A (en) Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out
CN107391271A (zh) 一种基于消息队列系统的延时任务触发方法和装置
CN107341062B (zh) 一种数据推送方法、装置、设备以及存储介质
US20130268647A1 (en) Non-blocking buffered inter-machine data transfer with acknowledgment
CN112667382A (zh) 任务调度方法、装置、设备及存储介质
US11086691B2 (en) Producer-consumer communication using multi-work consumers
US20070260777A1 (en) Queues for information processing and methods thereof
CN111460350A (zh) 一种防抖与节流封装方法及系统
CN109710421B (zh) 消息中间件的接收者异常处理方法、服务器及存储介质
CN113419832A (zh) 一种延迟任务的处理方法、装置及终端
CN114945005B (zh) 一种消息处理方法及相关设备
CN112306827A (zh) 日志采集装置、方法和计算机可读存储介质
US10949367B2 (en) Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof
CN112711485A (zh) 一种消息处理方法和装置
US7380248B1 (en) Queue alerts
US11210089B2 (en) Vector send operation for message-based communication
US20090024998A1 (en) Initiation of batch jobs in message queuing information systems
Yanacek Avoiding insurmountable queue backlogs
JP3257484B2 (ja) コンピュータの通信フロー制御方式,方法および記録媒体
US20220238027A1 (en) Application for processing distributed flight data

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060110