JP2004220083A - Message queueing method and message queueing system - Google Patents

Message queueing method and message queueing system Download PDF

Info

Publication number
JP2004220083A
JP2004220083A JP2003003285A JP2003003285A JP2004220083A JP 2004220083 A JP2004220083 A JP 2004220083A JP 2003003285 A JP2003003285 A JP 2003003285A JP 2003003285 A JP2003003285 A JP 2003003285A JP 2004220083 A JP2004220083 A JP 2004220083A
Authority
JP
Japan
Prior art keywords
priority
request
input
output queue
computer
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
JP2003003285A
Other languages
Japanese (ja)
Inventor
Masahiro Tsumura
昌洋 津村
Atsushi Kameda
敦 亀田
Makoto Koike
誠 小池
Koji Suzuki
浩次 鈴木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003003285A priority Critical patent/JP2004220083A/en
Publication of JP2004220083A publication Critical patent/JP2004220083A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To change the priority of a request temporarily retaining in an input/output queue according to a change in the state of a computer at the request origin. <P>SOLUTION: In a computer 10, when a request is extracted from an input/output queue, the priority of the requests is determined by referring to not only priority information added during the request but also the priority information managed by a request origin priority managing part 11. In the request origin priority managing part 11, the priority information is managed by directly receiving the value of the priority information from priority management parts 22 and 23 of computers 20 and 30 through a network. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、メッセージキューの制御技術に係わり、特に、複数の計算機間でネットワークを経由してデータのやり取りを行いながらプログラムを実行する分散処理環境において、他計算機からの要求、及び応答を効率的に管理するのに好適なメッセージキュー管理技術に関するものである。
【0002】
【従来の技術】
従来から、メッセージキューを用いてディスクへの書込み制御を行う技術が例えば特許文献1に記載され、また、メッセージキューを用いてコンピュータ装置内のタスク間またはコンピュータ装置間での送信異常の発生の有無及び状況の検知を行う技術が例えば特許文献2に記載されている。
【0003】
さらに、複数のコンピュータからなる分散処理環境においては、メッセージキューに基づく処理順序の管理が行われている。以下、図6に基づき、従来の、他計算機からの要求および他計算機への応答のやり取りを入出力キューを介して行うときの優先度管理技術について説明する。
【0004】
図6は、従来のメッセージキュー管理技術を用いた分散処理システムの構成例を示すブロック図である。
【0005】
図6において、10a,20a,30aは計算機であり、各計算機10a,20a,30aは、各ネットワーク40aを介して接続されており、ネットワーク40aを経由してデータのやり取りを行いながらプログラムを実行する分散処理環境を構築している。
【0006】
計算機20a,30aにおけるクライアントプログラム21a,31aは、他の計算機10aに対して要求を行うプログラムであり、計算機10aのサーバプログラム12aは、クライアントプログラム21a,31aからの要求を受け付けて処理を行い、応答を返すプログラムである。
【0007】
このような構成において、分散処理システムでは、例えば、計算機20a上のクライアントプログラム21aからの要求は、ネットワーク40aを経由して計算機10aに伝えられる。
【0008】
計算機10aでは、クライアントプログラム21aからの要求を直接サーバプログラム12aに渡すか、入力キュー管理部13aを経由してサーバプログラム12aに渡す。また、サーバプログラム12aが要求を処理した結果の応答は、直接クライアントプログラム21aに返すか、または出力キュー管理部14aを経由して返す。
【0009】
キューを経由してやり取りを行う場合、それぞれの要求に優先度を付けてキューに登録することが可能である。複数のクライアントプログラム(21a,31a)からの要求が同時に計算機10a上に到達し、入力キュー管理部13aに滞留した場合、優先度の高い要求は優先度の低い要求よりも先に処理される仕組みになっている。
【0010】
すなわち、入力キュー管理部13aにおいては、要求をキューから取り出すときにそれぞれの要求に付加されている優先度が検査され、最も優先度の高い要求が一番初めにキューから取り出される。
【0011】
このような技術はUNIX(登録商標)のメッセージキューシステムコールにも採用されており、例えば、非特許文献1等で述べられている。
【0012】
しかし、この従来技術では、メッセージキューの優先度の設定は要求をキューに投入する前に行われ、要求が一旦キューに滞留した後は要求元の状態が変化しても優先度の変更を行うことができない。
【0013】
すなわち、クライアントプログラム21aの要求が入力キュー管理部13aに滞留した直後に状態が急に変化して緊急性を必要としなくなった場合にも、入力キュー管理部13a上に滞留した要求の優先度を下げることはできない。
【0014】
そのため、すでに緊急性を必要としなくなった要求がサーバ上で先に処理されてしまうという問題が存在した。
【0015】
【特許文献1】
特開2002−245714号公報
【特許文献2】
特開2002−189605号公報
【非特許文献1】
W.リチャード・スティーヴンス著、篠田陽一訳、「UNIX(登録商標)ネットワークプログラミング 3.9メッセージキュー」(株式会社トッパン発行)
【0016】
【発明が解決しようとする課題】
解決しようとする問題点は、従来の技術では、要求が一旦入出力キューに滞留した後は、要求元の計算機の状態が変化しても優先度を変更することができない点である。
【0017】
本発明の目的は、これら従来技術の課題を解決し、例えば、要求を依頼した側の状態が変化して緊急性を必要としなくなった場合には、入出力キュー上に滞留している要求の優先度を動的に下げることによって、他の要求のレスポンスタイムを向上させ、システム全体で効率良く要求を処理することを可能とすることである。
【0018】
【課題を解決するための手段】
上記目的を達成するため、本発明では、計算機(10)において、入出力キュー(16)から要求を取り出す際、要求中に付加された従来の優先度情報だけでなく、新たに付与された要求元優先度管理部(11)で管理する優先度情報(優先度変更情報)も参照して優先度を決定する。この要求元優先度管理部(11)では、ネットワーク(40)を介して要求元の計算機(20,30)から送られてきた優先度を変更する情報を直接受信して管理する。
【0019】
【発明の実施の形態】
以下、本発明の実施の形態を、図面により詳細に説明する。
【0020】
図1は、本発明に係わるメッセージキュー管理システムを設けた分散処理装置の構成例を示すブロック図であり、図2は、本発明に係わるメッセージキュー管理システムの第1の動作例を示す説明図、図3は、本発明に係わるメッセージキュー管理システムの第2の動作例を示す説明図、図4は、本発明に係わるメッセージキュー管理システムの第3の動作例を示す説明図、図5は、本発明に係わるメッセージキュー管理システムの第4の動作例を示す説明図である。
【0021】
本発明に係わるメッセージキュー管理システムは、CPU(Central Processing Unit)や主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータ構成で実現され、例えば光ディスク駆動装置等を介してCD−ROM等の光ディスクに記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みCPUで処理することにより、図1に示す各計算機10,20,30内に各処理部が構築される。
【0022】
図1においては、ネットワーク40で接続された計算機10と計算機20,30で分散処理環境が構成されており、計算機10には、サーバプログラム12、入力キュー管理部13、出力キュー管理部14、要求元優先度管理部11が設けられている。
【0023】
また、計算機20には、クライアントプログラム21、優先度管理部22が設けられており、同様に、計算機30には、クライアントプログラム31、優先度管理部32が設けられている。
【0024】
このように、本例のメッセージキュー管理システムでは、図6で示した従来のメッセージキュー管理システムに対し、計算機10における要求元優先度管理部11と、計算機20,30における優先度管理部22,32を設けた構成となっている。
【0025】
以下、図2を用いて、計算機20,30のクライアントプログラム21,31からの要求が、計算機10における入力キュー管理部13でどのように処理されるかを説明する。
【0026】
本図2において、50〜52に示すように、計算機10の入力キュー管理部13において滞留・管理している各計算機20,30それぞれの要求a〜cには、優先度の情報(優先度:1,3)と計算機の識別情報(計算機:計算機20,30)が付加されている。
【0027】
この優先度の情報(優先度:1,3)とは、その要求の優先度を表わすものである。ここでは例として「1」〜「5」までの整数値を優先度として用いている。さらに優先度の数値は、大きい数値よりも小さい数値の方が高い優先度を示すものとする。
【0028】
また、計算機の識別情報(計算機:計算機20,30)とは、要求元の計算機を特定するための情報である。この計算機識別情報(計算機:計算機20,30)は、計算機10のサーバプログラム12が要求を処理した後にどの計算機に応答を返すかを決定するときに使用する。
【0029】
計算機10の要求元優先度管理部11は、要求元優先度管理テーブル15を具備しており、この要求元優先度管理テーブル15を用いて要求元の計算機(20,30)毎に優先度を管理している。
【0030】
尚、要求元優先度管理テーブル15で管理する優先度の個数は1つの計算機(20,30)に対して1個、すなわち、各計算機20,30単位で優先度を管理しても良いし、各計算機(20,30)の各要求毎に複数個存在させても良い。図2に示す例では、1つの計算機(20,30)に対して1個の優先度を設定している。
【0031】
また、要求元優先度管理テーブル15で管理する優先度の値は、要求中に付加されている優先度情報との相対値にしても良いし、また計算機(20,30)毎に固定の値としても良い。図2に示す例では、要求中に付加されている優先度情報との相対値を設定しており、計算機20、計算機30からの要求に対する相対的な優先度を±0としている。
【0032】
計算機10の入力キュー管理部13では、3個の要求(要求a、要求b、要求c)が入力キュー16の中に滞留している状態となっている。また、入力キュー16には、それぞれの要求が▲1▼要求a(50)、▲2▼要求b(51)、▲3▼要求c(52)の順番で到着していることを示している。
【0033】
要求a(50)は計算機20からの要求で、優先度3の値を持っている。また要求b(51)は計算機30からの要求で、優先度1の値を持っている。そして、要求c(52)は計算機20からの要求で、優先度3の値を持っている。これら3つの要求a50〜c52が、サーバプログラム12で処理されるのを待ち合わせている状態である。
【0034】
入力キュー管理部13は、入力キュー16から要求(a50〜c52)を取り出してサーバプログラム12に渡す場合、まず、入力キュー16に登録されている全ての要求(a50〜c52)の優先度情報を検査する。
【0035】
この際、入力キュー管理部13は、要求(a50〜c52)の中の優先度情報の値に、要求元優先度管理テーブル15に登録されている要求元計算機に対応した優先度の値を加えたものを最終的な優先度の値として使用する。
【0036】
この最終的な優先度の値が最も小さいもの、すなわち最も優先度が高いものを一番初めにキューから取り出すことにする。同値の場合は、先に登録された要求を優先する。このアルゴリズムに従うと、図2に示す3個の要求(a50〜c52)は、要求b51、要求a50、要求c52の順番で入力キュー16から取り出されることになる。
【0037】
次に、図3を用いて、計算機10における要求元優先度管理部11の管理制御技術について説明する。図3においては、サーバ側の計算機10における要求元優先度管理部11と、クライアント側の計算機20,30のそれぞれにある優先度管理部22,32との関係を示している。
【0038】
ここでは、計算機30からの要求に対する優先度を下げたい場合を考える。計算機30では、優先度の管理は優先度管理部32で行っている。計算機30は、操作者等からの指示に基づき、優先度管理テーブル33にある優先度の値を「±0」から「+3」に変更すると、その後、この値をネットワーク40を経由して計算機10の要求元優先度管理部11に通知する。
【0039】
通知を受けた計算機10の要求元優先度管理部11では、要求元優先度管理テーブル15における計算機30に対応する欄の優先度の値を「±0」から「+3」に変更・設定する。これにより、計算機30からの要求は、入力キュー16から取り出される時点で優先度が3段階下げられて処理されることになる。
【0040】
このように、計算機30の優先度を「±0」から「+3」に変更した後の計算機10における管理状態を、図4において示している。
【0041】
図4に示すように、この場合、サーバプログラム12上で実行されるであろう要求a50〜c52の順番は、▲1▼要求a50、▲2▼要求c52、▲3▼要求b51となる。
【0042】
このように、図2に示した計算機10の入力キュー管理部13における入力キュー16に滞留した時点では最も優先度の高かった要求b51の優先度は、図3に示す計算機30における優先度管理32での操作に基づき要求元優先度管理部テーブル15の情報を変更することによって、最も低い値に変更されたことがわかる。
【0043】
尚、この要求元優先度管理部テーブル15の変更タイミングは、それぞれの計算機20,30上で変更があった時点でその優先度管理部22,32から通知を受けるのではなく、計算機10の要求元優先度管理部11から、一定時間毎に全ての計算機(20,30,…)上の優先度管理部22,32,…に対して問い合わせを行なっても良い。
【0044】
図5には、このように計算機10の要求元優先度管理部11から、一定時間毎に全ての計算機(20,30,…)上の優先度管理部22,32,…に対して問い合わせを行なうことで、要求元優先度管理部テーブル15の変更を行う際の動作を示している。
【0045】
例えば、忙しく動作している計算機20からの要求は優先度を低く設定し、空いている(処理を行っていない)計算機30からの要求に対しては優先度を高く設定したい場合を考える。
【0046】
要求元優先度管理部11が一定時間毎に各計算機20,30上の優先度管理部22,32に対して問い合わせを行ない、それぞれの優先度管理部22,32がその時点の計算機20,30のCPU利用率を取得して優先度に変換する。
【0047】
この優先度を、計算機10の要求元優先度管理部11に応答することで、要求元優先度管理部11の要求元優先度管理管理テーブル15には常に新しい優先度情報が設定される。これにより入力キュー13に滞留している要求(a〜c)を、最新の状態を反映した優先度で取り出すことができるようになる。
【0048】
以上は、入力キュー管理部13に対する管理・制御処理動作を説明したが、図1における出力キュー管理部14についても、入力キュー管理部13と全く同様にして、その管理・制御を行うことができる。
【0049】
例えば、出力キュー管理部14において、出力キューから要求を取り出すときに、要求元優先度管理部11の優先度情報を参照することによって、それぞれの計算機20,30に応答を返す順番を動的に変更することが可能になる。
【0050】
以上、図1〜図5を用いて説明したように、本例では、サーバ側の計算機10は、各クライアント側の計算機20,30からネットワーク40を介して送信されてきた優先度情報を直接受信して、要求元優先度管理部11において要求元優先度管理テーブル15で管理し、入出力キューから要求を取り出す際、入力キュー管理部13および出力キュー管理部14において、要求元優先度管理部11が要求元優先度管理テーブル15で管理している優先度情報を参照し、各要求(a50〜c52)中に付加された従来の優先度情報だけでなく、新たに要求元優先度管理部11の優先度情報も参照して優先度を決定する。
【0051】
このことにより、計算機20のクライアントプログラム21からの要求が、サーバ側の計算機10の入力キュー管理部13に滞留した直後に例えば計算機20の状態が急に変化して緊急性を必要としなくなった場合には、入力キュー管理部13上に滞留した当該要求の優先度を下げることができ、すでに緊急性を必要としなくなった要求がサーバ上で先に処理されてしまうという問題は発生しない。
【0052】
尚、本発明は、図1〜図5を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、ネットワーク40を介して接続されたサーバ側の計算機10とクライアント側の計算機20,30からの分散処理システム構成としたが、複数のCPUがバス接続された構成のシステムにも適用可能である。
【0053】
また、計算機20,30をインターネットで接続された各ISP(Internet Services Provider)におけるWebサーバ装置とし、計算機10を、各Webサーバ装置の例えばアプリケーションサーバプログラムあるいはCGI(Common Gateway Interface)プログラムからの要求に応じてデータ処理するデータベースとする構成としても良い。
【0054】
また、本例のシステムを実現するコンピュータ構成例としては、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、FD(Flexible Disk)等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【0055】
【発明の効果】
本発明によれば、要求が計算機上の入出力キューに一旦滞留した後でも、その要求(キュー)の優先度の変更を行うことができ、例えば、要求を依頼した計算機の状態が変化して緊急性を必要としなくなった場合には、入出力キュー上に滞留している当該要求の優先度を動的に下げることによって、他の要求のレスポンスタイムを向上させることが可能となる。この結果、システム全体で効率良く要求を処理することが可能となり、特に、サーバプログラムの処理時間が長く、入出力キュー上に要求が長時間滞留するようなシステムで高い効果を発揮する。
【図面の簡単な説明】
【図1】本発明に係わるメッセージキュー管理システムを設けた分散処理装置の構成例を示すブロック図である。
【図2】本発明に係わるメッセージキュー管理システムの第1の動作例を示す説明図である。
【図3】本発明に係わるメッセージキュー管理システムの第2の動作例を示す説明図である。
【図4】本発明に係わるメッセージキュー管理システムの第3の動作例を示す説明図である。
【図5】本発明に係わるメッセージキュー管理システムの第4の動作例を示す説明図である。
【図6】従来のメッセージキュー管理技術を用いた分散処理システムの構成例を示すブロック図である。
【符号の説明】
10:計算機(サーバ)、11:要求元優先度管理部、12:サーバプログラム、13:入力キュー管理部、14:出力キュー管理部、15:要求元優先度管理テーブル、16:入力キュー、20,30:計算機(クライアント)、21,31:クライアントプログラム、22,32:優先度管理部、23,33:優先度管理テーブル、40:ネットワーク、50:要求a、51:要求b、52:要求c、10a:計算機(サーバ)、12a:サーバプログラム、13a:入力キュー管理部、14a:出力キュー管理部、20a,30a:計算機(クライアント)、21a,31a:クライアントプログラム、40a:ネットワーク。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technique for controlling a message queue, and in particular, in a distributed processing environment in which a program is executed while exchanging data between a plurality of computers via a network, requests and responses from other computers can be efficiently performed. The present invention relates to a message queue management technique suitable for managing a message queue.
[0002]
[Prior art]
Conventionally, a technique for controlling writing to a disk using a message queue is described in Patent Literature 1, for example. In addition, the presence or absence of occurrence of transmission abnormality between tasks in a computer device or between computer devices using a message queue A technique for detecting a situation and a situation is described in Patent Document 2, for example.
[0003]
Further, in a distributed processing environment including a plurality of computers, management of a processing order based on a message queue is performed. Hereinafter, a conventional priority management technique for exchanging a request from another computer and a response to the other computer via an input / output queue will be described with reference to FIG.
[0004]
FIG. 6 is a block diagram showing a configuration example of a distributed processing system using a conventional message queue management technique.
[0005]
In FIG. 6, computers 10a, 20a, and 30a are computers, and the computers 10a, 20a, and 30a are connected via networks 40a, and execute programs while exchanging data via the network 40a. We are building a distributed processing environment.
[0006]
The client programs 21a and 31a in the computers 20a and 30a are programs that make requests to other computers 10a. The server program 12a of the computer 10a receives and processes the requests from the client programs 21a and 31a, and responds. Is a program that returns
[0007]
In such a configuration, in the distributed processing system, for example, a request from the client program 21a on the computer 20a is transmitted to the computer 10a via the network 40a.
[0008]
In the computer 10a, the request from the client program 21a is passed directly to the server program 12a, or is passed to the server program 12a via the input queue management unit 13a. In addition, a response as a result of processing the request by the server program 12a is directly returned to the client program 21a or returned via the output queue management unit 14a.
[0009]
When exchanging via a queue, each request can be registered in the queue with a priority. When requests from a plurality of client programs (21a, 31a) arrive at the computer 10a at the same time and stay in the input queue management unit 13a, requests with higher priority are processed before requests with lower priority. It has become.
[0010]
That is, in the input queue management unit 13a, when a request is taken out of the queue, the priority added to each request is checked, and the request with the highest priority is taken out of the queue first.
[0011]
Such a technique is also employed in the UNIX (registered trademark) message queue system call, and is described in, for example, Non-Patent Document 1 and the like.
[0012]
However, according to this conventional technique, the priority of the message queue is set before the request is put into the queue, and after the request temporarily stays in the queue, the priority is changed even if the state of the request source changes. I can't.
[0013]
That is, even if the state suddenly changes immediately after the request of the client program 21a stays in the input queue management unit 13a and the urgency is no longer required, the priority of the request staying in the input queue management unit 13a is determined. It cannot be lowered.
[0014]
For this reason, there has been a problem that requests that no longer require urgency are processed first on the server.
[0015]
[Patent Document 1]
JP 2002-245714 A [Patent Document 2]
JP 2002-189605 A [Non-Patent Document 1]
W. Richard Stevens, translated by Yoichi Shinoda, "UNIX (R) Network Programming 3.9 Message Queue" (published by Toppan Co., Ltd.)
[0016]
[Problems to be solved by the invention]
The problem to be solved is that, in the prior art, once a request has stayed in the input / output queue, the priority cannot be changed even if the state of the requesting computer changes.
[0017]
An object of the present invention is to solve these problems of the prior art. For example, when the state of the requesting side changes and the urgency is no longer necessary, the request staying in the input / output queue is By dynamically lowering the priority, it is possible to improve the response time of other requests and to efficiently process the requests in the entire system.
[0018]
[Means for Solving the Problems]
In order to achieve the above object, according to the present invention, when a request is taken out from an input / output queue (16) in a computer (10), not only the conventional priority information added in the request but also the newly added request The priority is also determined with reference to the priority information (priority change information) managed by the original priority management unit (11). The request source priority management unit (11) directly receives and manages information for changing the priority sent from the request source computer (20, 30) via the network (40).
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0020]
FIG. 1 is a block diagram showing a configuration example of a distributed processing device provided with a message queue management system according to the present invention, and FIG. 2 is an explanatory diagram showing a first operation example of the message queue management system according to the present invention. , FIG. 3 is an explanatory diagram showing a second operation example of the message queue management system according to the present invention, FIG. 4 is an explanatory diagram showing a third operation example of the message queue management system according to the present invention, and FIG. FIG. 14 is an explanatory diagram showing a fourth operation example of the message queue management system according to the present invention.
[0021]
The message queue management system according to the present invention is realized by a computer configuration including a CPU (Central Processing Unit), a main memory, a display device, an input device, and an external storage device. After the programs and data recorded on the optical disk are installed in the external storage device, the programs and data are read from the external storage device into the main memory and processed by the CPU, so that the respective processing units in the computers 10, 20, and 30 shown in FIG. Is constructed.
[0022]
In FIG. 1, a distributed processing environment is configured by a computer 10 and computers 20 and 30 connected via a network 40. The computer 10 includes a server program 12, an input queue management unit 13, an output queue management unit 14, An original priority management unit 11 is provided.
[0023]
The computer 20 includes a client program 21 and a priority management unit 22. Similarly, the computer 30 includes a client program 31 and a priority management unit 32.
[0024]
As described above, in the message queue management system of this example, the request source priority management unit 11 in the computer 10 and the priority management units 22 and 22 in the computers 20 and 30 are different from the conventional message queue management system shown in FIG. 32 are provided.
[0025]
Hereinafter, how the requests from the client programs 21 and 31 of the computers 20 and 30 are processed by the input queue management unit 13 in the computer 10 will be described with reference to FIG.
[0026]
In FIG. 2, as shown by 50 to 52, the requests a to c of the computers 20 and 30 that are staying and managed in the input queue management unit 13 of the computer 10 include priority information (priority: 1, 3) and computer identification information (computers: computers 20, 30).
[0027]
The priority information (priority: 1, 3) indicates the priority of the request. Here, an integer value from “1” to “5” is used as a priority as an example. Further, as for the numerical value of the priority, a smaller numerical value indicates a higher priority than a larger numerical value.
[0028]
The computer identification information (computers: computers 20 and 30) is information for specifying the requesting computer. The computer identification information (computers: computers 20 and 30) is used when the server program 12 of the computer 10 determines which computer returns a response after processing the request.
[0029]
The request source priority management unit 11 of the computer 10 includes a request source priority management table 15, and uses this request source priority management table 15 to determine the priority for each request source computer (20, 30). Managing.
[0030]
The number of priorities managed in the request source priority management table 15 may be one for one computer (20, 30), that is, the priority may be managed for each computer 20, 30. A plurality may exist for each request of each computer (20, 30). In the example shown in FIG. 2, one priority is set for one computer (20, 30).
[0031]
The priority value managed in the request source priority management table 15 may be a relative value to the priority information added in the request, or may be a fixed value for each computer (20, 30). It is good. In the example shown in FIG. 2, a relative value with respect to the priority information added in the request is set, and the relative priority with respect to the requests from the computers 20 and 30 is ± 0.
[0032]
In the input queue management unit 13 of the computer 10, three requests (request a, request b, and request c) are in the input queue 16. Further, it shows that the requests arrive at the input queue 16 in the order of (1) request a (50), (2) request b (51), and (3) request c (52). .
[0033]
The request a (50) is a request from the computer 20 and has a value of priority 3. The request b (51) is a request from the computer 30 and has a value of priority 1. The request c (52) is a request from the computer 20 and has a value of priority 3. It is in a state of waiting for these three requests a50 to c52 to be processed by the server program 12.
[0034]
When taking out the requests (a50 to c52) from the input queue 16 and passing them to the server program 12, the input queue management unit 13 first stores the priority information of all the requests (a50 to c52) registered in the input queue 16 inspect.
[0035]
At this time, the input queue management unit 13 adds the priority value corresponding to the request source computer registered in the request source priority management table 15 to the value of the priority information in the requests (a50 to c52). Is used as the final priority value.
[0036]
The one with the lowest final priority value, that is, the one with the highest priority is taken out of the queue first. In the case of the same value, the request registered earlier has priority. According to this algorithm, the three requests (a50 to c52) shown in FIG. 2 are taken out of the input queue 16 in the order of the request b51, the request a50, and the request c52.
[0037]
Next, a management control technique of the request source priority management unit 11 in the computer 10 will be described with reference to FIG. FIG. 3 shows the relationship between the request source priority management unit 11 in the server computer 10 and the priority management units 22 and 32 in the client computers 20 and 30 respectively.
[0038]
Here, a case where it is desired to lower the priority for a request from the computer 30 is considered. In the computer 30, the priority management is performed by the priority management unit 32. The computer 30 changes the priority value in the priority management table 33 from “± 0” to “+3” based on an instruction from the operator or the like, and then changes this value via the network 40 to the computer 10. To the request source priority management unit 11.
[0039]
The request source priority management unit 11 of the computer 10 that has received the notification changes and sets the priority value in the column corresponding to the computer 30 in the request source priority management table 15 from “± 0” to “+3”. As a result, the request from the computer 30 is processed with its priority lowered by three levels when it is taken out of the input queue 16.
[0040]
FIG. 4 shows the management state of the computer 10 after the priority of the computer 30 has been changed from “± 0” to “+3”.
[0041]
As shown in FIG. 4, in this case, the order of the requests a50 to c52 that will be executed on the server program 12 is (1) request a50, (2) request c52, and (3) request b51.
[0042]
As described above, the priority of the request b51 having the highest priority at the time of staying in the input queue 16 in the input queue management unit 13 of the computer 10 shown in FIG. 2 is determined by the priority management 32 in the computer 30 shown in FIG. By changing the information of the request source priority management unit table 15 based on the operation in the above, it can be seen that the value has been changed to the lowest value.
[0043]
The change timing of the request source priority management unit table 15 is not changed by receiving the notification from the priority management units 22 and 32 at the time of the change on each of the computers 20 and 30, but by the request of the computer 10. The original priority management unit 11 may make an inquiry to the priority management units 22, 32,... On all the computers (20, 30,...) At regular time intervals.
[0044]
FIG. 5 shows that the request source priority management unit 11 of the computer 10 inquires the priority management units 22, 32,... On all the computers (20, 30,. By doing so, the operation when the request source priority management table 15 is changed is shown.
[0045]
For example, consider a case where a low priority is set for a request from the busy computer 20 and a high priority is set for a request from a vacant (no processing) computer 30.
[0046]
The request source priority management unit 11 inquires the priority management units 22 and 32 on the computers 20 and 30 at regular intervals, and the priority management units 22 and 32 respectively check the computers 20 and 30 at that time. Of the CPU usage rate and converts it into a priority.
[0047]
By responding this priority to the request source priority management unit 11 of the computer 10, new priority information is always set in the request source priority management management table 15 of the request source priority management unit 11. Thereby, the requests (a to c) staying in the input queue 13 can be taken out with the priority reflecting the latest state.
[0048]
Although the management / control processing operation for the input queue management unit 13 has been described above, the management / control of the output queue management unit 14 in FIG. 1 can be performed in exactly the same manner as the input queue management unit 13. .
[0049]
For example, when taking out a request from an output queue, the output queue management unit 14 refers to the priority information of the request source priority management unit 11 to dynamically determine the order in which responses are returned to the computers 20 and 30. It can be changed.
[0050]
As described above with reference to FIGS. 1 to 5, in the present example, the server-side computer 10 directly receives the priority information transmitted from each of the client-side computers 20 and 30 via the network 40. Then, when the request source priority management unit 11 manages the request in the request source priority management table 15 and takes out the request from the input / output queue, the input queue management unit 13 and the output queue management unit 14 request the request source priority management unit. 11 refers to the priority information managed in the request source priority management table 15 and newly obtains not only the conventional priority information added in each request (a50 to c52) but also a new request source priority management unit. The priority is also determined by referring to the 11 priority information.
[0051]
As a result, when a request from the client program 21 of the computer 20 stays in the input queue management unit 13 of the computer 10 on the server side, for example, the state of the computer 20 suddenly changes and urgency is no longer required. In this case, the priority of the request staying on the input queue management unit 13 can be lowered, and the problem that a request that no longer requires urgency is processed first on the server does not occur.
[0052]
The present invention is not limited to the examples described with reference to FIGS. 1 to 5 and can be variously modified without departing from the gist thereof. For example, in the present example, the distributed processing system configuration includes the server-side computer 10 and the client-side computers 20 and 30 connected via the network 40. However, a system having a configuration in which a plurality of CPUs are connected by a bus may be used. Applicable.
[0053]
Further, the computers 20 and 30 are used as Web server devices in each ISP (Internet Services Provider) connected via the Internet, and the computer 10 is used in response to requests from, for example, an application server program or a CGI (Common Gateway Interface) program of each Web server device. It may be configured to be a database that performs data processing accordingly.
[0054]
Further, as an example of a computer configuration for realizing the system of the present example, a computer configuration without a keyboard or an optical disk driving device may be used. In this example, the optical disk is used as the recording medium, but an FD (Flexible Disk) or the like may be used as the recording medium. As for the installation of the program, the program may be downloaded and installed via a network via a communication device.
[0055]
【The invention's effect】
According to the present invention, the priority of a request (queue) can be changed even after the request temporarily stays in the input / output queue on the computer. For example, the state of the computer that has requested the request changes. When urgency is no longer required, the response time of other requests can be improved by dynamically lowering the priority of the request staying in the input / output queue. As a result, it is possible to efficiently process requests in the entire system, and it is particularly effective in a system in which the processing time of the server program is long and the requests stay in the input / output queue for a long time.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration example of a distributed processing device provided with a message queue management system according to the present invention.
FIG. 2 is an explanatory diagram showing a first operation example of the message queue management system according to the present invention.
FIG. 3 is an explanatory diagram showing a second operation example of the message queue management system according to the present invention.
FIG. 4 is an explanatory diagram showing a third operation example of the message queue management system according to the present invention.
FIG. 5 is an explanatory diagram showing a fourth operation example of the message queue management system according to the present invention.
FIG. 6 is a block diagram showing a configuration example of a distributed processing system using a conventional message queue management technique.
[Explanation of symbols]
10: computer (server), 11: request source priority management unit, 12: server program, 13: input queue management unit, 14: output queue management unit, 15: request source priority management table, 16: input queue, 20 , 30: computer (client), 21, 31: client program, 22, 32: priority management unit, 23, 33: priority management table, 40: network, 50: request a, 51: request b, 52: request c, 10a: computer (server), 12a: server program, 13a: input queue management unit, 14a: output queue management unit, 20a, 30a: computer (client), 21a, 31a: client program, 40a: network.

Claims (6)

入出力キューに滞留している複数の要求を、各々の要求に予め要求元が付加した優先度情報に基づき順次に取り出すメッセージキューイングシステムのメッセージキューイング方法であって、
上記入出力キューに滞留している要求の要求元から通知される優先度変更情報を記憶装置に記憶する第1のステップと、
上記入出力キューから要求を取り出す際、各々の要求に予め付加された上記優先度情報と上記記憶装置に記憶した上記優先度変更情報とに基づき、優先的に取り出す要求を特定する第2のステップとを有し、上記優先度情報と上記優先度変更情報とに基づく順序で要求を入出力キューから取り出すことを特徴とするメッセージキューイング方法。
A message queuing method for a message queuing system, which sequentially retrieves a plurality of requests staying in an input / output queue based on priority information added in advance to each request by a requester,
A first step of storing in a storage device priority change information notified from a request source of a request staying in the input / output queue;
A second step of specifying a request to be taken out preferentially based on the priority information previously added to each request and the priority change information stored in the storage device when taking out requests from the input / output queue A message queuing method comprising: extracting requests from an input / output queue in an order based on the priority information and the priority change information.
入出力キューに滞留しているネットワーク上の複数の計算機からの各要求を、各々の要求に予め要求元の計算機が付加した優先度情報に基づき順次に取り出すメッセージキューイングシステムのメッセージキューイング方法であって、
上記入出力キューに滞留している要求の要求元の計算機からネットワークを介して通知される優先度変更情報を記憶装置に記憶する第1のステップと、
上記入出力キューから要求を取り出す際、各々の要求に予め付加された上記優先度情報と上記記憶装置に記憶した上記優先度変更情報とに基づき、優先的に取り出す要求を特定する第2のステップとを有し、
上記優先度情報と上記優先度変更情報とに基づく順序で要求を入出力キューから取り出すことを特徴とするメッセージキューイング方法。
A message queuing method of a message queuing system that sequentially retrieves each request from a plurality of computers on a network that is staying in an input / output queue based on priority information previously added to each request by a requesting computer. So,
A first step of storing, in a storage device, priority change information notified from a request source computer of the request staying in the input / output queue via a network;
A second step of specifying a request to be taken out preferentially based on the priority information previously added to each request and the priority change information stored in the storage device when taking out requests from the input / output queue And having
A message queuing method, wherein requests are taken out of an input / output queue in an order based on the priority information and the priority change information.
請求項1、もしくは、請求項2のいずれかに記載のメッセージキューイング方法であって、
上記優先度情報と上記優先度変更情報は優先度を表す数値からなり、
上記第1のステップでは、上記優先度変更情報の数値を要求元単位で上記記憶装置に記憶し、
上記第2のステップでは、上記要求元単位で上記記憶装置に記憶された上記優先度変更情報の数値と各要求に予め付加された上記優先度情報の数値とを加減算した結果に基づき、優先的に取り出す要求を特定することを特徴とするメッセージキューイング方法。
A message queuing method according to any one of claims 1 and 2,
The priority information and the priority change information include numerical values representing priorities,
In the first step, a numerical value of the priority change information is stored in the storage device for each request source,
In the second step, priority is given based on a result obtained by adding and subtracting a numerical value of the priority change information stored in the storage device in units of the request source and a numerical value of the priority information added in advance to each request. Message queuing method, wherein a request to be retrieved is specified.
ネットワーク上の複数のクライアント計算機からの要求を、サーバ計算機において入出力キューに複数滞留し、該サーバ計算機において入出力キューから各要求を取り出す際、各々の要求に予め要求元のクライアント計算機が付加した優先度情報に基づき順次に取り出すメッセージキューイング方法であって、
上記クライアント計算機からネットワークを介して上記サーバ計算機に、自クライアント計算機からの要求に対する優先度を変更する優先度変更情報を送信するステップと、
上記サーバ計算機において上記クライアント計算機から送信されてきた優先度変更情報を記憶装置に記憶するステップと、
上記サーバ計算機において上記入出力キューから要求を取り出す際、各々の要求に予め付加された上記優先度情報と上記記憶装置に記憶した上記優先度の変更情報とに基づき、優先的に取り出す要求を特定するステップとを有し、
上記サーバ計算機において上記優先度情報と上記優先度変更情報とに基づく順序で要求を上記入出力キューから取り出すことを特徴とするメッセージキューイング方法。
A plurality of requests from a plurality of client computers on the network stay in the input / output queue in the server computer. When each request is taken out from the input / output queue in the server computer, the requesting client computer is added to each request in advance. A message queuing method for sequentially extracting based on priority information,
Transmitting priority change information for changing the priority for a request from the client computer to the server computer via the network from the client computer;
Storing in the storage device the priority change information transmitted from the client computer in the server computer;
When fetching a request from the input / output queue in the server computer, a request to be fetched with priority is specified based on the priority information previously added to each request and the priority change information stored in the storage device. And the step of
A message queuing method, wherein the server computer retrieves requests from the input / output queue in an order based on the priority information and the priority change information.
入出力キューに滞留している複数の要求を、各々の要求に予め要求元が付加した優先度情報に基づき順次に取り出すメッセージキューイングシステムであって、
上記入出力キューに滞留している要求の要求元から通知される優先度変更情報を登録する優先度管理手段と、
上記入出力キューから要求を取り出す際、各々の要求に予め付加された上記優先度情報と上記優先度管理手段で登録した上記優先度変更情報とに基づき、優先的に取り出す要求を特定する特定手段と
を有し、上記優先度情報と上記優先度変更情報とに基づく順序で要求を入出力キューから取り出すことを特徴とするメッセージキューイングシステム。
A message queuing system that sequentially retrieves a plurality of requests staying in an input / output queue based on priority information added in advance to each request by a requester,
Priority management means for registering priority change information notified from the request source of the request staying in the input / output queue,
Specifying means for specifying a request to be preferentially taken out based on the priority information previously added to each request and the priority change information registered by the priority management means when taking out requests from the input / output queue A message queuing system, wherein requests are taken out of an input / output queue in an order based on the priority information and the priority change information.
入出力キューに滞留しているネットワーク上の複数の計算機からの各要求を、各々の要求に予め要求元の計算機が付加した優先度情報に基づき順次に取り出すメッセージキューイングシステムであって、
上記入出力キューに滞留している要求の要求元の計算機からネットワークを介して通知される優先度変更情報を登録する優先度管理手段と、
上記入出力キューから要求を取り出す際、各々の要求に予め付加された上記優先度情報と上記優先度管理手段で登録した上記優先度変更情報とに基づき、優先的に取り出す要求を特定する特定手段と
を有し、上記優先度情報と上記優先度変更情報とに基づく順序で要求を入出力キューから取り出すことを特徴とするメッセージキューイングシステム。
A message queuing system that sequentially retrieves each request from a plurality of computers on a network staying in an input / output queue based on priority information added in advance to each request by a requesting computer,
Priority management means for registering priority change information notified via the network from the requesting computer of the request staying in the input / output queue,
Specifying means for specifying a request to be preferentially taken out based on the priority information added to each request in advance and the priority change information registered by the priority management means when taking out requests from the input / output queue A message queuing system, wherein requests are taken out of an input / output queue in an order based on the priority information and the priority change information.
JP2003003285A 2003-01-09 2003-01-09 Message queueing method and message queueing system Pending JP2004220083A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003003285A JP2004220083A (en) 2003-01-09 2003-01-09 Message queueing method and message queueing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003003285A JP2004220083A (en) 2003-01-09 2003-01-09 Message queueing method and message queueing system

Publications (1)

Publication Number Publication Date
JP2004220083A true JP2004220083A (en) 2004-08-05

Family

ID=32894594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003003285A Pending JP2004220083A (en) 2003-01-09 2003-01-09 Message queueing method and message queueing system

Country Status (1)

Country Link
JP (1) JP2004220083A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021040259A (en) * 2019-09-04 2021-03-11 株式会社日立製作所 Computer, data control method, and data store system
JP7434040B2 (en) 2020-04-09 2024-02-20 株式会社東芝 Tollgate equipment, information processing equipment, toll collection methods, toll collection programs, and toll collection systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021040259A (en) * 2019-09-04 2021-03-11 株式会社日立製作所 Computer, data control method, and data store system
JP7351679B2 (en) 2019-09-04 2023-09-27 株式会社日立製作所 Computer, data control method and data store system
JP7434040B2 (en) 2020-04-09 2024-02-20 株式会社東芝 Tollgate equipment, information processing equipment, toll collection methods, toll collection programs, and toll collection systems

Similar Documents

Publication Publication Date Title
US7949999B1 (en) Providing support for multiple interface access to software services
JP5624655B2 (en) Message to transfer backup manager in distributed server system
US8140644B2 (en) Method and apparatus for updating application servers
US20140040885A1 (en) Autonomous application-level auto-scaling in a cloud
US20080155067A1 (en) Apparatus for transferring data via a proxy server and an associated method and computer program product
US20090327460A1 (en) Application Request Routing and Load Balancing
JP6539341B2 (en) Providing router information according to the programmatic interface
JP2008510259A (en) Modular event-driven processing
US20060031395A1 (en) Method and system for managing programs for web service system
JP2005539298A (en) Method and system for remotely and dynamically configuring a server
WO2013023306A1 (en) Stream processing using a client-server architecture
US20120072575A1 (en) Methods and computer program products for aggregating network application performance metrics by process pool
CA2640696C (en) Storing and retrieving user context data
US6934761B1 (en) User level web server cache control of in-kernel http cache
US7966394B1 (en) Information model registry and brokering in virtualized environments
JP2006260343A (en) Program for checking link cut
JP3153129B2 (en) Server selection method
US10135916B1 (en) Integration of service scaling and external health checking systems
CN111831503B (en) Monitoring method based on monitoring agent and monitoring agent device
JP5208613B2 (en) Server system
JP2004220083A (en) Message queueing method and message queueing system
JP5884566B2 (en) Batch processing system, progress confirmation device, progress confirmation method, and program
CN115516842A (en) Orchestration broker service
JPH11249986A (en) Event processing method in network management system and network management system
JP2010009288A (en) Multiprocessor system and program execution method