JP5050649B2 - Computer system, method, and program for queuing - Google Patents

Computer system, method, and program for queuing Download PDF

Info

Publication number
JP5050649B2
JP5050649B2 JP2007137469A JP2007137469A JP5050649B2 JP 5050649 B2 JP5050649 B2 JP 5050649B2 JP 2007137469 A JP2007137469 A JP 2007137469A JP 2007137469 A JP2007137469 A JP 2007137469A JP 5050649 B2 JP5050649 B2 JP 5050649B2
Authority
JP
Japan
Prior art keywords
cluster
probability value
queue
service request
received
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.)
Expired - Fee Related
Application number
JP2007137469A
Other languages
Japanese (ja)
Other versions
JP2008047096A (en
Inventor
ライ チェン−チャ
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
Fujifilm Business Innovation 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
Priority claimed from US11/504,314 external-priority patent/US7730186B2/en
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Publication of JP2008047096A publication Critical patent/JP2008047096A/en
Application granted granted Critical
Publication of JP5050649B2 publication Critical patent/JP5050649B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、コンピュータのネットワーク化に関し、より具体的には、コンピュータのクラスタ環境におけるキューイングに関する。即ち、本発明は、このようなキューイングを行うコンピュータシステム、方法、及びプログラムに関する。   The present invention relates to computer networking, and more specifically to queuing in a cluster environment of computers. That is, the present invention relates to a computer system, method, and program for performing such queuing.

グリッド及びクラスタコンピューティングを用いる分散システムにおいて計算量の多いタスクを処理するには、負荷バランシングがますます重要な問題となってきた。1990年代からこのような分散システムの使用が増加したのには、いくつかの理由がある。まず、科学者たちは、並列アルゴリズムを効果的に用いることにより、複数のワークステーション及びパーソナルコンピュータにおいて、スーパーコンピュータと同じぐらいの速さで、複雑な計算タスクを処理することができるようになった。スーパーコンピュータは卓越した計算力を備えるとこれまでは考えられてきたが、1台のスーパーコンピュータを購入するよりも複数のワークステーション及びパーソナルコンピュータを共用した方がはるかにコストは安い。2番目に、インターネット、無線ネットワーク、及びモバイルコンピューティングが急成長したことによって、データ及びユーザの場所が分散しているために分散コンピューティング環境を必要とするアプリケーションが多数生じた。最後に重要なことであるが、インターネットのような広域ネットワークではユーザの数が急激に増加し得るので、短時間でサーバに高負荷がかかる可能性があり、そうすると、サーバは「ホットスポット」となって、キューにおけるユーザ要求の待ち時間が大幅に長くなることにより、ユーザに対する平均サービス時間が非合理的に増加する。   Load balancing has become an increasingly important issue for handling computationally intensive tasks in distributed systems using grid and cluster computing. There are several reasons why the use of such distributed systems has increased since the 1990s. First, scientists have been able to process complex computational tasks on multiple workstations and personal computers as fast as supercomputers by effectively using parallel algorithms. . Although it has been believed that supercomputers have outstanding computing power, it is much cheaper to share multiple workstations and personal computers than to buy a single supercomputer. Second, the rapid growth of the Internet, wireless networks, and mobile computing has resulted in many applications that require a distributed computing environment due to the distributed data and user locations. Last but not least, in a wide area network like the Internet, the number of users can increase exponentially, which can put a heavy load on the server in a short time, and the server is a “hot spot”. Thus, the average service time for the user increases unreasonably due to the significantly increased waiting time for user requests in the queue.

従って、グリッド及びクラスタコンピューティング環境では、1種類のユーザ要求を処理するのに複数個(複数インスタンス)のサーバがインストールされており、これをサーバプール若しくはクラスタと呼ぶことがある。クラスタにおけるサーバはいずれも、計算タスクである要求を処理することができ、要求はそれを処理するのに使用可能な1つのサーバが割り当てられるまで、キューに並んでいなければならない。このクラスタに使用可能なサーバがない場合、その要求を別のクラスタに転送することは可能であるが、これらのクラスタをネットワーク化することは、効率、スケーラビリティ(拡張可能性)、及びセキュリティの点で困難である。例えば2004年には、世界的に、37,790のホストを含む956のコンドルプール(Condor pool:計算資源、即ちサーバのホストコンピュータのクラスタ)があった。伝えられるところによると、グーグル(Google)(登録商標)のようなサービスプロバイダは、そのクラスタに約10万台のコンピュータを備えている。2005年12月8日の報告によると、グリッド(Grid)は、世界に、350万台のコンピュータデバイス及び130万人のメンバーを包含している。   Therefore, in a grid and cluster computing environment, a plurality of (multiple instances) servers are installed to process one type of user request, which may be referred to as a server pool or cluster. Any server in the cluster can process a request that is a computational task, and the request must be queued until one server is assigned that can be used to process it. If there are no servers available in this cluster, it is possible to forward the request to another cluster, but networking these clusters is efficient, scalable, and secure. It is difficult. For example, in 2004, there were 956 condor pools (condor pools, ie, a cluster of host computers of servers) including 37,790 hosts worldwide. Reportedly, service providers such as Google® have approximately 100,000 computers in their cluster. According to a December 8, 2005 report, the Grid encompasses 3.5 million computer devices and 1.3 million members worldwide.

非特許文献1〜非特許文献3には、このような従来のグリッド・クラスタコンピューティング技術が記載されている。また非特許文献4には、従来のキューイング技術が記載されている。   Non-Patent Document 1 to Non-Patent Document 3 describe such conventional grid cluster computing technology. Non-Patent Document 4 describes a conventional queuing technique.

一般的には、待ち行列理論において広く研究されてきたように、複数のサーバに対して共通キューを用いる方が、1つのサーバに対してそれぞれ別個のキューを用いるよりも効率が良い。その理由は、共通キューによれば、キューが空でない(即ち、要求が待っている)ときは常に、いずれのアイドルサーバにもタスクを割り当てることができるからである。しかしながら、サーバがネットワーク上の地理的に分散した場所(即ち、別々のクラスタ)にインストールされている場合(特に、イントラネットが地球上の複数の場所に及ぶ世界的ビジネスの場合)、このような共通キューを実施することは実際には非常に困難である。例えば、コンドルプールは、フロッキング(flocking)及びグライディングイン(gliding in)を用いて、クラスタ外部にある使用可能なサーバを探し出すが、世界的ネットワークではスケーラビリティ及び性能に限りがある。   Generally, as has been widely studied in queuing theory, using a common queue for a plurality of servers is more efficient than using a separate queue for each server. The reason is that, according to the common queue, a task can be assigned to any idle server whenever the queue is not empty (ie, a request is waiting). However, if the servers are installed in geographically dispersed locations on the network (ie, separate clusters) (especially for global businesses where the intranet spans multiple locations on the globe), this common It is actually very difficult to implement a queue. For example, condor pools use flocking and gliding in to find available servers outside the cluster, but global networks have limited scalability and performance.

従って、従来のキューイング技法では、サーバの共同クラスタ用の共通キューを作成するスケーラブル(拡張可能)なキューイングアルゴリズムを提供することができない。
IAN FOSTER, et al., "Computational Grids", Chapter 2 of The Grid: Blueprint for a New Computing Infrastructure, Morgan-Kaufman, 1999(イアン・フォスター他著「コンピュータグリッド」、『グリッド:新しいコンピュータインフラの青写真』第2章、モーガン−カウフマン版、1999年) Shouji Ogura, et al., "Evaluation of the inter-cluster data transfer on Grid environment", Proceedings of the 3rd IEEE/ACM Int'l Symposium on Cluster Computing on the Grid, IEEE Computer Science, 2003(小倉章嗣他著「グリッド環境におけるクラスタ間データ転送の評価」、第3回IEEE/ACMグリッドにおけるクラスタコンピューティングに関する国際シンポジウム会報、IEEEコンピュータサイエンス、2003年) Sang-Min Park, et al., "Chameleon: A Resource Scheduler in A Data Grid Environment*", Proceedings of the 3rd IEEE/ACM Int'l Symposium on Cluster Computing on the Grid, IEEE Computer Science, 2003(サンミン・パク他著「カメレオン:データグリッド環境におけるリソーススケジューラ」、第3回IEEE/ACMグリッドにおけるクラスタコンピューティングに関する国際シンポジウム会報、IEEEコンピュータサイエンス、2003年) Peterson Davie, "Queuing Disciplines", Chapter 6 of Computer Networks: A System Approach, pgs. 457-464, Morgan Kaufman, San Francisco, 2000(ピーターソン・デヴィー著「キューイング統御」、『コンピュータネットワーク:システムアプローチ』第6章、457〜464ページ、モーガン−カウフマン版、サンフランシスコ、2000年)
Thus, conventional queuing techniques cannot provide a scalable (expandable) queuing algorithm that creates a common queue for a joint cluster of servers.
IAN FOSTER, et al., “Computational Grids”, Chapter 2 of The Grid: Blueprint for a New Computing Infrastructure, Morgan-Kaufman, 1999 (Ian Foster et al., “Computer Grid”, “Grid: Blueprint for New Computer Infrastructure” "Chapter 2, Morgan-Kaufmann version, 1999) Shouji Ogura, et al., "Evaluation of the inter-cluster data transfer on Grid environment", Proceedings of the 3rd IEEE / ACM Int'l Symposium on Cluster Computing on the Grid, IEEE Computer Science, 2003 Evaluation of Data Transfer between Clusters in Grid Environment ”, 3rd International Symposium on Cluster Computing in IEEE / ACM Grid, IEEE Computer Science, 2003) Sang-Min Park, et al., "Chameleon: A Resource Scheduler in A Data Grid Environment *", Proceedings of the 3rd IEEE / ACM Int'l Symposium on Cluster Computing on the Grid, IEEE Computer Science, 2003 (Sanmin Park Other book "Chameleon: Resource Scheduler in Data Grid Environment", 3rd International Symposium on Cluster Computing in IEEE / ACM Grid, IEEE Computer Science, 2003) Peterson Davie, "Queuing Disciplines", Chapter 6 of Computer Networks: A System Approach, pgs. 457-464, Morgan Kaufman, San Francisco, 2000 ("Cueing Control" by Peterson Devie, "Computer Network: System Approach" Chapter 6, pages 457-464, Morgan-Kaufmann version, San Francisco, 2000)

本発明の手法は、従来のキューイング技法に関する上記及びその他の問題のうちの1つ以上を実質的に取り除くシステム、方法、及びプログラムを提供する。   The inventive approach provides a system, method, and program that substantially eliminates one or more of the above and other problems associated with conventional queuing techniques.

本発明の請求項1に係る発明は、a.少なくとも1つのサーバ及び第1キューを備えると共に、サービス要求に応じてサービスを提供するように動作可能な、第1クラスタと、b.第2キューを備えると共に、サービス要求に応じてサービスを提供するように動作可能な、第2クラスタと、を備える、コンピュータシステムであって、前記第1クラスタが、i. サービス要求を受信し、ii. 前記第1クラスタにアイドルサーバがあるかどうか判別し、iii.前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信した要求を割り当て、iv. 前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れるように動作可能であることを特徴とする。 The invention according to claim 1 of the present invention comprises: a. A first cluster comprising at least one server and a first queue and operable to provide services in response to service requests; b. A computer system comprising a second cluster, the second cluster being operable to provide a service in response to a service request, wherein the first cluster receives the service request; i. ii. Determine whether there is an idle server in the first cluster, iii. If there is an idle server in the first cluster, assign the received request to the idle server, and iv. If there is no server, the first probability value calculated in advance, the input pre Symbol received service request to the first queue does not take the service request thus received to said first queue in said first probability value in this case, the second probability value calculated in advance, and forwards the service request thus received to the second cluster, the second click the service request thus received in the second probability value When not transferring the static it is characterized in that the received service request is operable so that taking into the first queue.

本発明の請求項2に係る発明は、請求項1のシステムにおいて、前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定されることを特徴とする。   The invention according to claim 2 of the present invention is characterized in that, in the system of claim 1, the first probability value is determined based on the number of service requests waiting in the first queue.

本発明の請求項3に係る発明は、請求項1のシステムにおいて、前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。   The invention according to claim 3 of the present invention is characterized in that, in the system of claim 1, the first probability value is determined based on the number of servers in the first cluster.

本発明の請求項4に係る発明は、請求項1のシステムにおいて、前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。   According to a fourth aspect of the present invention, in the system of the first aspect, the first probability value is based on the number of service requests waiting in the first queue and the number of servers in the first cluster. It is determined.

本発明の請求項5に係る発明は、請求項1のシステムにおいて、 前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出されることを特徴とする。

Figure 0005050649
According to a fifth aspect of the present invention, in the system of the first aspect , the first probability value (P k ) includes a number N k of service requests waiting in the first queue and a number m of the servers. the following equation and using a k, it is calculated from and wherein Rukoto.
Figure 0005050649

本発明の請求項6に係る発明は、請求項1のシステムにおいて、前記第1クラスタの前記第1キューと前記第2クラスタの前記第2キューとの間のリンクをさらに備えることを特徴とする。   The invention according to claim 6 of the present invention is the system of claim 1, further comprising a link between the first queue of the first cluster and the second queue of the second cluster. .

本発明の請求項7に係る発明は、請求項1のシステムにおいて、前記第1クラスタが、前記第1確率値を少なくとも含むローカル状態情報を前記第2クラスタに定期的に提供するように動作可能であることを特徴とする。 The invention according to claim 7 of the present invention is operable in the system of claim 1 such that the first cluster periodically provides local state information including at least the first probability value to the second cluster. It is characterized by being.

本発明の請求項に係る発明は、請求項のシステムにおいて、前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、

Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出されることを特徴とする。
Figure 0005050649
According to an eighth aspect of the present invention, in the system according to the seventh aspect , the local state information includes the first probability value (P k ) in the first cluster and the first probability value (in the second cluster ( Further including information R k represented by the following equation using P y ) :
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) is calculated from the following equation using the characterized Rukoto.
Figure 0005050649

本発明の請求項9に係る発明は、少なくとも1つのクラスタ化されたサーバを含むシステムにおける方法。であって、
a.第1キューを備える第1クラスタにおいてサービス要求を受信し、b.前記第1クラスタにアイドルサーバがあるかどうか判別し、c.前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信したサービス要求を割り当て、d.前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れることを特徴とする。
The invention according to claim 9 of the present invention is a method in a system including at least one clustered server. Because
a. Receiving a service request in a first cluster comprising a first queue; b. Determining whether there is an idle server in the first cluster; c. If there is an idle server in the first cluster, assign the received service request to the idle server; d. Wherein if there is no idle server in the first cluster, the first probability value calculated in advance, input is the previous SL received service request to said first queue, wherein the service request thus received in the first probability value If it is not possible to enter the first queue, the received service request is transferred to the second cluster with a pre-calculated second probability value, and the received service request is transferred to the second cluster with the second probability value. If not is characterized Rukoto put the received service request to the first queue.

本発明の請求項10に係る発明は、請求項の方法において、前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定されることを特徴とする。 The invention according to claim 10 of the present invention is characterized in that, in the method of claim 9 , the first probability value is determined based on the number of service requests waiting in the first queue.

本発明の請求項11に係る発明は、請求項の方法において、前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。 According to an eleventh aspect of the present invention, in the method according to the ninth aspect , the first probability value is determined based on the number of servers in the first cluster.

本発明の請求項12に係る発明は、請求項の方法において、前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。 The invention according to claim 12 of the present invention is the method of claim 9 , wherein the first probability value is based on the number of service requests waiting in the first queue and the number of servers in the first cluster. It is determined.

本発明の請求項13に係る発明は、請求項の方法において、前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出されることを特徴とする。

Figure 0005050649
According to a thirteenth aspect of the present invention, in the method according to the ninth aspect , the first probability value (P k ) includes a number N k of service requests waiting in the first queue and a number m of the servers. the following equation and using a k, it is calculated from and wherein Rukoto.
Figure 0005050649

本発明の請求項14に係る発明は、請求項の方法において、ローカル状態情報を前記第2クラスタに定期的に提供することを更に含むことを特徴とする。 The invention according to claim 14 of the present invention is characterized in that, in the method of claim 9 , further comprising: periodically providing local state information to the second cluster.

本発明の請求項15に係る発明は、請求項14の方法において、前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、

Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出されることを特徴とする。
Figure 0005050649
According to a fifteenth aspect of the present invention, in the method according to the fourteenth aspect , the local state information includes the first probability value (P k ) in the first cluster and the first probability value in the second cluster ( further seen contains information R k represented by the equation below using the P y) and,
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) is calculated from the following equation using the characterized Rukoto.
Figure 0005050649

本発明の請求項16に係る発明は、少なくとも1つのクラスタ化されたサーバを含むシステムにおいて、コンピュータにキューイング処理を実行させるためのコードを含むプログラムであって、前記コードは、a.第1キューを備える第1クラスタにおいてサービス要求を受信し、b.前記第1クラスタにアイドルサーバがあるかどうか判別し、前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信したサービス要求を割り当て、前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れること、を含む処理をコンピュータに実行させることを特徴とする。 The invention according to claim 16 of the present invention is a program including code for causing a computer to execute a queuing process in a system including at least one clustered server, wherein the code includes: a. Receiving a service request in a first cluster comprising a first queue; b. If there is an idle server in the first cluster, and if there is an idle server in the first cluster, the received service request is assigned to the idle server, and if there is no idle server in the first cluster is the first probability value calculated in advance, the input pre Symbol received service request to the first queue if said first probability value is not entered service request thus received to said first queue, advance When the received service request is transferred to the second cluster with the calculated second probability value, and the received service request is not transferred to the second cluster with the second probability value, the received service request is characterized in that to execute, take into said first queue, the processing including the computer.

本発明の請求項17に係る発明は、請求項16のプログラムにおいて、前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定されることを特徴とする。 According to a seventeenth aspect of the present invention, in the program of the sixteenth aspect , the first probability value is determined based on the number of service requests waiting in the first queue.

本発明の請求項18に係る発明は、請求項16のプログラムにおいて、前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。 According to an eighteenth aspect of the present invention, in the program of the sixteenth aspect , the first probability value is determined based on the number of servers in the first cluster.

本発明の請求項19に係る発明は、請求項16のプログラムにおいて、前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定されることを特徴とする。 The invention according to claim 19 of the present invention is the program of claim 16 , wherein the first probability value is based on the number of service requests waiting in the first queue and the number of servers in the first cluster. It is determined.

本発明の請求項20に係る発明は、請求項16のプログラムにおいて、前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出されることを特徴とする。

Figure 0005050649
According to a twentieth aspect of the present invention, in the program of the sixteenth aspect , the first probability value ( Pk ) includes the number Nk of service requests waiting in the first queue and the number m of the servers. the following formula was used and k, is calculated from and wherein Rukoto.
Figure 0005050649

本発明の請求項21に係る発明は、請求項16のプログラムにおいて、ローカル状態情報を前記第2クラスタに定期的に提供する処理を更にコンピュータに実行させることを特徴とする。 According to a twenty-first aspect of the present invention, in the program of the sixteenth aspect, the computer is further caused to execute processing for periodically providing local state information to the second cluster.

本発明の請求項22に係る発明は、請求項21のプログラムにおいて、前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、

Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出されることを特徴とする。
Figure 0005050649
According to a twenty-second aspect of the present invention, in the program according to the twenty- first aspect , the local state information includes the first probability value (P k ) in the first cluster and the first probability value (in the second cluster ( further seen contains information R k represented by the equation below using the P y) and,
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) is calculated from the following equation using the characterized Rukoto.
Figure 0005050649

本発明に関する更なる態様について、一部は以下の説明で述べられ、一部は以下の説明から明らかとなるか或いは本発明の実施により理解されるであろう。本発明の態様は、以下の詳細な説明及び添付の特許請求の範囲により特に示される原理、並びに、様々な原理と態様との組み合わせによって、実現され、達成され得る。   Additional aspects relating to the invention will be set forth in part in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. Aspects of the invention may be realized and attained by the principles particularly pointed out in the following detailed description and the appended claims, as well as in combination with various principles and aspects.

当然のことながら、上記及び下記記述は共に、単なる例示及び説明であり、いかなる形においても、特許請求の範囲に記載されている発明又はその特許出願を限定することを意図しない。   It will be appreciated that both the above and following descriptions are merely exemplary and explanatory and are not intended to limit the claimed invention or its patent application in any way.

本発明によるシステム、方法、プログラムにより、複数のクラスタ間での共有キューを効率よく、かつ容易にシステムを拡張可能な形態で維持することができるという効果がある。   With the system, method, and program according to the present invention, there is an effect that a shared queue among a plurality of clusters can be efficiently and easily maintained in a form that can be expanded.

本明細書中に組み込まれ且つ本明細書の一部を構成する添付の図面は、本発明の実施形態を例示しており、以下の記述と共に、本発明の技法の原理を説明及び図示する機能を果たす。   The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the following description, illustrate and illustrate the principles of the techniques of the invention. Fulfill.

以下の詳細な説明において、添付の図面を参照するが、これらの図面では、全く同一機能の要素は同じ参照番号で示されている。添付の図面は、限定の目的ではなく、例示の目的で、本発明の原理に従った具体的な実施形態及び実施例を示している。これらの実施例は、当業者が本発明を実施することができるように詳細に説明されており、当然のことながら、他の実施例を用いてもよく、本発明の範囲及び精神を逸脱しない限り、構造的な変更や様々な要素の置き換えを行ってもよい。従って、以下の詳細な説明は、限定された意味で解釈されるものではない。更に、説明する本発明の様々な実施形態は、汎用コンピュータで実行するソフトウェアの形態で実施されても、専用ハードウェアの形態で実施されても、ソフトウェアとハードウェアを組み合わせた形態で実施されてもよい。   In the following detailed description, reference will be made to the accompanying drawings, in which identically functional elements are designated with the same reference numerals. The accompanying drawings illustrate, by way of example and not limitation, specific embodiments and examples consistent with the principles of the invention. These embodiments are described in detail to enable those skilled in the art to practice the invention, and it is understood that other embodiments may be used and do not depart from the scope and spirit of the invention. As long as the structure is changed, various elements may be replaced. The following detailed description is, therefore, not to be construed in a limited sense. Furthermore, the various embodiments of the present invention described may be implemented in the form of software executing on a general purpose computer, in the form of dedicated hardware, or in the form of a combination of software and hardware. Also good.

本発明の手法の一態様は、サーバの連携クラスタ若しくはグリッド用の共通キューを実施するように設計された、高性能のキューイング方法及びシステムである。本発明の手法の一実施形態では、サーバの各クラスタがローカルキューを保持し、これらのキューがネットワーク化されることによって、これらのクラスタにおける全サーバ用の統一(若しくは共通)キューが形成される。過密なキューによって受信された受信サービス要求は、キューの長さ及び/又はその他の状態に応じて決定され且つ慎重に設定された確率を用いるランダムアルゴリズムに基づいて、他のキューへ転送される。本発明のシステムの一実施形態は、クラスタ間におけるサポートの優先順位を表すように動作可能な、ネットワークキュー間における定期的メッセージ交換アルゴリズムを備える。   One aspect of the approach of the present invention is a high performance queuing method and system designed to implement a common queue for linked clusters or grids of servers. In one embodiment of the inventive approach, each cluster of servers maintains a local queue, and these queues are networked to form a unified (or common) queue for all servers in these clusters. . Incoming service requests received by a crowded queue are forwarded to other queues based on a random algorithm that uses a carefully set probability that is determined according to queue length and / or other conditions. One embodiment of the system of the present invention comprises a periodic message exchange algorithm between network queues operable to represent the priority of support between clusters.

当業者には理解されるように、本発明の手法によれば、ローカルキューがネットワーク化されてサポートの合意が行われ、これにより、サービスのグリッドが、事業提携に適応可能となると共に参加者の数に合わせて拡張可能となる。また、理解されるように、本発明のキューイング方法は、ローカル性認識(locality awareness)及び負荷バランスを備えた状態で、キュー間において要求を転送することができ、この方法によって、各クラスタは、ローカルで発生する要求を高速処理するためのローカルキューを、サーバファームのように低いオーバヘッドで保持することができる。   As will be appreciated by those skilled in the art, according to the method of the present invention, local queues are networked and support agreements are made so that the service grid can be adapted to business alliances and participants. It can be expanded according to the number of It will also be appreciated that the queuing method of the present invention can forward requests between queues with locality awareness and load balancing, which allows each cluster to In addition, a local queue for high-speed processing of locally generated requests can be maintained with low overhead like a server farm.

従って、本発明の概念の一実施形態によれば、連携されたサーバクラスタ用の共通キューを実施する、高性能のキューイング方法が提供される。サーバの各クラスタがローカルキューを保持すると同時に、これらのキューはネットワーク化されて、これらのクラスタにおける全サーバ用の統一(若しくは共通)キューが形成される。また、ランダムアルゴリズム及びネットワークキュー間におけるメッセージ交換アルゴリズムによって、過密キューにおける要求を他のキューへ転送する方法が提案される。   Thus, according to one embodiment of the inventive concept, a high performance queuing method is provided that implements a common queue for linked server clusters. As each cluster of servers maintains a local queue, these queues are networked to form a unified (or common) queue for all servers in these clusters. In addition, a method for transferring a request in a congested queue to another queue by a random algorithm and a message exchange algorithm between network queues is proposed.

次に、本発明のキューイングシステム及び方法を、添付の図面を参照しながら詳細に説明する。図1を参照すると、本発明のシステム100は、クラスタ101にインストールされた複数インスタンスのサービスを含む。このシステム100において、各クラスタ101はキュー102を含み、受信したサービス要求103を保持する。当業者には理解されるように、本発明の概念は、クラスタ101によって提供されるいずれの特定タイプのサービスにも限定されない。このようなサービスは、あらゆる既知の若しくはこれから開発されるサービスプロトコル(例えば、HTTP、FTP、SOAP、SMTP、IMAP、POPなどが挙げられるが、これらに限定されない)によるサービスを含み得る。   The queuing system and method of the present invention will now be described in detail with reference to the accompanying drawings. Referring to FIG. 1, the system 100 of the present invention includes a multi-instance service installed in a cluster 101. In this system 100, each cluster 101 includes a queue 102 and holds a received service request 103. As will be appreciated by those skilled in the art, the concepts of the present invention are not limited to any particular type of service provided by the cluster 101. Such services may include services via any known or future developed service protocol (for example, but not limited to, HTTP, FTP, SOAP, SMTP, IMAP, POP, etc.).

クラスタ101はそれぞれ、前記サービスを提供するように動作可能な1つ以上のサーバ104を含む。これらのサーバ104は、高いサービスアベイラビリティ(サービス提供性)及び/又はフォールトトレランス(耐障害性)を提供する技法であれば、いずれの既知の若しくはこれから開発される技法を用いて、クラスタ101に構成されることができる。クラスタはそれぞれ、クライアント(図示省略)からのサービス要求を受信するように動作可能である。クラスタに向けられたこのようなサービス要求は、ローカルサービス要求と呼ばれる。本発明の概念によれば、クラスタ101のうちの1つによって受信されたローカルサービス要求は、この受信クラスタ101におけるアイドルサーバに割り当てられるか、この受信クラスタのキューに入れられるか、この受信クラスタによって別のクラスタ101へ転送される。   Each cluster 101 includes one or more servers 104 operable to provide the service. These servers 104 can be configured in the cluster 101 using any known or future developed technique that provides high service availability and / or fault tolerance. Can be done. Each cluster is operable to receive service requests from clients (not shown). Such a service request directed to the cluster is called a local service request. According to the inventive concept, a local service request received by one of the clusters 101 is assigned to an idle server in this receiving cluster 101, queued in this receiving cluster, or by this receiving cluster. Transferred to another cluster 101.

クラスタ101のうちの1つによってローカルサービス要求が受信された際、この受信クラスタ101内に使用可能な(即ち、アイドル状態の)サーバ104がまだ少なくとも1つある場合には、この使用可能なアイドルサーバのうちの1つがすぐに割り当てられ、受信された要求が処理される。逆に受信クラスタ内の全サーバ104が他の要求を処理するのに使用中である場合には、このクラスタ内のサーバ104のうちの1つがアイドル状態となるまで、要求103はこの受信クラスタ101のローカルキューに入れられる。或いは、受信された要求は、別のクラスタ101に転送されてもよく、この場合、この受信された要求は転送された別のクラスタ101において、アイドルサーバに割り当てるか、キュー102に入れるか、更に別のクラスタに転送されることができる。   When a local service request is received by one of the clusters 101, if there is still at least one server 104 available (ie, idle) in this receiving cluster 101, this available idle One of the servers is assigned immediately and the received request is processed. Conversely, if all servers 104 in the receiving cluster are in use to process other requests, request 103 is sent to this receiving cluster 101 until one of the servers 104 in this cluster becomes idle. To the local queue. Alternatively, the received request may be forwarded to another cluster 101, in which case the received request is assigned to an idle server, queued 102 in the forwarded another cluster 101, or Can be transferred to another cluster.

本発明のシステムは、新しい要求103をキュー102に入れるのに確率アルゴリズムを用いることに注意されたい。具体的には、受信クラスタにアイドルサーバがない場合、要求は、ローカルキュー102の長さに応じて決定される確率により、受信クラスタのローカルキュー102の最後に追加される。そうでなければ、受信された要求103は、ネットワーク化された全てのキューの長さ及び/又はその他の状態によって決定される確率により、別のクラスタ101に属するネットワークキュー102に転送される。   Note that the system of the present invention uses a probability algorithm to place a new request 103 into the queue 102. Specifically, if there is no idle server in the receiving cluster, the request is added to the end of the local queue 102 of the receiving cluster with a probability determined according to the length of the local queue 102. Otherwise, the received request 103 is forwarded to a network queue 102 belonging to another cluster 101 with a probability determined by the length and / or other conditions of all networked queues.

以下の記載では、コンピュータシステム内における全く同一のクラスタ101には1、2…で始まる数字が付与されているものとする。本発明の概念の一実施形態によれば、クラスタkのローカルキューが要求を受け入れる確率Pkは、Nk(クラスタkのキューに待機しているその他のサービス要求の数)及びmk(クラスタkにおけるサーバ104の数)の関数である。一例としての実施形態では、このPkの値は以下のように計算される。 In the following description, it is assumed that numbers starting with 1, 2,... Are assigned to the same cluster 101 in the computer system. According to one embodiment of the inventive concept, the probability P k that a cluster k's local queue will accept a request is N k (number of other service requests waiting in cluster k's queue) and m k (cluster The number of servers 104 in k). In an exemplary embodiment, this value of P k is calculated as follows:

Figure 0005050649
Figure 0005050649

本発明の概念の別の態様によれば、クラスタ101のネットワークキュー102は各々、隣接する一対のキュー間のリンクを保持する。このようなリンクは、クラスタのいずれかがそのキューに非常に多くの数の要求を急に受信したとき、2つのクラスタ101が最優先で互いに「サポート(支援)する」ように構成されている場合に作成される。要求103は、遠くのキューまでクラスタ101間を2回以上(即ち、複数のホップにわたり)転送することが可能であるため、直接的にリンクされていないキュー102であっても、それらのサーバ104をやはり共用することができることに留意されたい。   According to another aspect of the inventive concept, each of the network queues 102 of the cluster 101 maintains a link between a pair of adjacent queues. Such a link is configured such that when one of the clusters suddenly receives a very large number of requests in its queue, the two clusters 101 "support" each other with the highest priority. Created when. Request 103 can be transferred between clusters 101 more than once to distant queues (ie, across multiple hops), so even servers 102 that are not directly linked have their servers 104 Note that can still be shared.

図2は、一例として、1つの要求がクラスタ101間を2回以上転送される構造を示している。図2は、一例としての要求の転送経路を示しており、要求はクラスタ101のキュー102−1〜102−k間を複数回にわたって転送される。この実施形態では、要求が訪れるk番目のキュー102−kは、その要求を受け入れて記憶するか、或いは、Pkによりその要求を次のキューへ転送するか、個別に判断する。具体的には、キュー102−1は確率P1でその要求を受け入れ、キュー102−2は確率P2で要求を受け入れる、という具合になる。 FIG. 2 shows a structure in which one request is transferred between the clusters 101 twice or more as an example. FIG. 2 shows an example of a request transfer path, and the request is transferred between the queues 102-1 to 102-k of the cluster 101 a plurality of times. In this embodiment, the k-th queue 102-k from which the request arrives individually decides whether to accept and store the request or forward the request to the next queue with P k . Specifically, the queue 102-1 accepts the request with probability P 1, queue 102-2 accepts request with probability P 2, becomes so on.

図3は、クラスタ101−kが要求103をそのキュー102−kに受け入れるかどうかを決定する決定過程301を示している。この決定過程は、以下の3つのステップを含む。まず、受信キュー102−kは確率Pkで、単純にその要求を受け入れる。そうでなければ、過程は第2ステップへ続き、この第2ステップでは、受信キュー102−kは、それに直接的にリンクされた隣接キューのうちの1つのみに、その要求を以下に説明するようにランダムに転送しようと試みる。本発明のシステムの一実施形態では、各キュー102は、その「ローカル状態」を全ての隣接キューと定期的に交換することに留意されたい。このローカル状態とは、そのキューに対する1組の数(Pk,Rk)であり、ここで、Pkは先に定義されたとおりであり、Rkは以下のように定義される。 FIG. 3 illustrates a decision process 301 that determines whether cluster 101-k accepts request 103 into its queue 102-k. This determination process includes the following three steps. First, receive queue 102-k simply accepts the request with probability P k . Otherwise, the process continues to the second step, in which receive queue 102-k describes its request to only one of the adjacent queues directly linked to it. Try to transfer randomly. Note that in one embodiment of the system of the present invention, each queue 102 periodically exchanges its “local state” with all neighboring queues. This local state is a set of numbers (P k , R k ) for that queue, where P k is as previously defined and R k is defined as:

Figure 0005050649
Figure 0005050649

上記式において、Φkは、k番目のクラスタにおけるキュー102−kの全ての隣接キューのセットである。このキュー102−kが要求を転送しようと試みる場合、この要求は以下の式で表される確率で隣接キュー102−yへ転送される。 In the above equation, Φ k is a set of all adjacent queues of the queue 102-k in the k th cluster. When this queue 102-k attempts to transfer a request, the request is transferred to the adjacent queue 102-y with a probability expressed by the following equation.

Figure 0005050649
Figure 0005050649

上記式において、Ryは、キュー102−kが知っているキュー102−yの最新状態における値であり、|Φk|は、キュー102−kの隣接キューの数である。(1−Pk)で正規化するのは、キュー102−yに関して先に計算するRyに値Pkが関与しており、これを相殺すべきだからである。 In the above equation, R y is a value in the latest state of the queue 102-y known by the queue 102-k, and | Φ k | is the number of adjacent queues of the queue 102-k. The reason for normalizing by (1−P k ) is that the value P k is involved in R y calculated earlier with respect to the queue 102-y and should be offset.

最後に、前記第2ステップで要求103を転送しようとする試みが全て確率によって拒否された場合、この要求はk番目のキュー102−kに単に留まる。本発明の概念の一実施形態では、所定の時間が経つと、k番目のキュー102−kの長さが長いままで確率Pkが引き続き低い場合、このキュー102−kは要求103を再度転送しようとすることができる。 Finally, if all attempts to forward the request 103 in the second step are rejected by probability, the request simply remains in the kth queue 102-k. In one embodiment of the inventive concept, after a predetermined time, if the length of the kth queue 102-k remains long and the probability Pk continues to be low, this queue 102-k forwards the request 103 again. Can try.

要求103は、現キューの負荷以外の理由(例えば、遠隔ユーザ認証の失敗や、序列ネゴシエーションの失敗)で、ローカルキューによって拒否されることもあることに留意されたい。実際には、このような要因によって、確率Pkはより小さくなる。しかし、当業者には理解されるように、このような追加の作用は本発明にとってそれほど重要なものではない。 It should be noted that the request 103 may be rejected by the local queue for reasons other than the current queue load (eg, remote user authentication failure or rank negotiation failure). In practice, due to such factors, the probability P k becomes smaller. However, as will be appreciated by those skilled in the art, such additional action is not critical to the present invention.

以下に説明するように、要求103がより早い順序でクラスタ101を訪れるほど、且つ、クラスタ自体の受信要求を受け入れる確率がより高いほど、要求103はより高い確率でクラスタ101によって受け入れられる。更に、本発明の概念の一態様によれば、要求103が無限長経路(例えば、サイクル)で転送されることはまずない。   As will be explained below, the higher the probability that request 103 visits cluster 101 in an earlier order and the higher the probability of accepting the incoming request of the cluster itself, the higher the probability that request 103 will be accepted by cluster 101. Further, according to one aspect of the inventive concept, the request 103 is unlikely to be forwarded on an infinite path (eg, cycle).

本発明の一実施形態を、シミュレーションによってテストした。このシミュレーションの結果によれば、ポアソン過程にユーザが出入りする動的環境では、作成された共通キューの方が分離キューよりも効率が良かったことが示された。このシミュレーションの結果は、オンザフライ(動的)キューの長さが短くなり、且つ、要求の平均待ち時間も短くなる、ということで目に見えるかたちで現れる。   One embodiment of the present invention was tested by simulation. According to the simulation results, it was shown that the created common queue was more efficient than the separation queue in the dynamic environment where the user entered and exited the Poisson process. The results of this simulation appear in a visible way as the length of the on-the-fly (dynamic) queue is reduced and the average latency of requests is also reduced.

当業者には理解されるように、本発明のランダム転送アルゴリズムによれば、要求は、最初の受信クラスタにより近く且つ確率がより高いキューによって確実に受け入れられる。これにより、必要とされる要求転送動作の数が最小限に抑えられる。以下の説明において、Qkは、要求がk番目に訪れたインスタンスによって受け入れられる確率を示している。k=1,2,3…という全ての値に関し、Qkの値は以下の式によって計算される。 As will be appreciated by those skilled in the art, the random transfer algorithm of the present invention ensures that requests are accepted by queues that are closer and more probable to the initial receiving cluster. This minimizes the number of required transfer operations required. In the following description, Q k indicates the probability that a request is accepted by the kth visited instance. For all values k = 1, 2, 3,..., the value of Q k is calculated by the following equation.

Figure 0005050649
Figure 0005050649

理想的な負荷バランシングアルゴリズムでは、全てのkに関してQk/Pk比率が同じになると推測され得るが、当業者には理解されるように、インスタンスの場所も重要な要素と考えるべきである。つまり、要求元に「より近い」インスタンスは、所定の同じ負荷を受け入れる確率も「より高い」。本発明の方法によれば、「負荷バランス」要件と「ローカル性認識」要件との両方が満たされる。 In an ideal load balancing algorithm, it can be inferred that the Q k / P k ratio will be the same for all k, but as those skilled in the art will appreciate, the location of the instance should also be considered an important factor. That is, instances that are “closer” to the requester also have a “higher” probability of accepting the same predetermined load. According to the method of the present invention, both the “load balance” requirement and the “locality recognition” requirement are satisfied.

図3に示されている例としての実施形態では、Pkの値は、k番目に訪れたクラスタ101−kに関し、閉区間0〜0.6(平均0.3)からランダムに選択される。図4は、Pk、Qk、受け入れ率、及びkの関数であるQk/Pk比率の値の例示的グラフを示している。この図4を参照すると、結果として得られたQk曲線にはPk曲線との類似性が見られるが、Qk/Pk比率は実際にはkが大きくなるにつれて減少している。分析すると、1回目に訪れたkの範囲内における受け入れ率は、以下のとおりである。 In the example embodiment shown in FIG. 3, the value of P k is randomly selected from the closed interval 0-0.6 (average 0.3) for the kth visited cluster 101-k. . FIG. 4 shows an exemplary graph of values of Q k / P k ratio, which is a function of P k , Q k , acceptance rate, and k. Referring to FIG. 4, the resulting Q k curve is similar to the P k curve, but the Q k / P k ratio actually decreases as k increases. When analyzed, the acceptance rate within the range of k visited the first time is as follows.

Figure 0005050649
Figure 0005050649

また、当業者には理解されるように、要求がより早い順序でクラスタを訪れるほど、且つ、クラスタ自体の受信要求を受け入れる確率がより高いほど、要求はより高い確率でクラスタによって受け入れられる。ゆえに、本発明の技法によれば、要求は、長さがより短く(従って先入れ先出しの場合には待ち時間がより短く)且つ最初のクラスタにより近く確率がより高いキューに確実に転送される。このようにローカルキューがネットワーク化されてサポートの合意が行われ、これにより、サービスのグリッドが、事業提携に柔軟且つ適応可能となると共に、そのサービスグリッドにおける参加者の数に合わせて拡張可能となる。   Also, as will be appreciated by those skilled in the art, the higher the probability that a request will visit the cluster in order and accept the incoming request of the cluster itself, the higher the probability that the request will be accepted by the cluster. Thus, according to the techniques of the present invention, requests are reliably forwarded to queues that are shorter in length (and thus have lower latency in first-in first-out) and are closer to the first cluster and have a higher probability. In this way, local queues are networked and support agreements are made, which allows the service grid to be flexible and adaptable to business alliances and expandable to accommodate the number of participants in the service grid. Become.

本発明は、クラスタ化された複数のサーバコンピュータを含むシステムにおいて、上述したキューイング処理を行う方法、及び該システムに上述のキューイング処理を実行させるコード(命令)を含むプログラムとしても実現できる。   The present invention can also be realized as a method including the above-described queuing process in a system including a plurality of clustered server computers and a program including a code (instruction) that causes the system to execute the above-described queuing process.

図5は、本発明のクラスタ101の一実施形態が実施され得る、コンピュータ/サーバシステム500の一実施形態を示すブロック図である。
各クラスタ101は、上述したように相互接続されたプラットフォーム501のうちの1つ以上を含み得る。このシステム500は、コンピュータ/サーバプラットフォーム501、周辺装置502、及びネットワーク資源503を含む。
FIG. 5 is a block diagram illustrating one embodiment of a computer / server system 500 in which one embodiment of the cluster 101 of the present invention may be implemented.
Each cluster 101 may include one or more of the platforms 501 interconnected as described above. The system 500 includes a computer / server platform 501, peripheral devices 502, and network resources 503.

コンピュータプラットフォーム501は、データバス504、又は、このコンピュータプラットフォーム501の様々な部分間にわたり情報を通信するその他の通信メカニズムと、このバス504に接続されて情報を処理し且つその他の計算及び制御タスクを行うプロセッサ505とを含み得る。また、コンピュータプラットフォーム501は、バス504に接続されて様々な情報及びプロセッサ505により実行される命令を記憶する、揮発性記憶装置506(例えば、ランダムアクセスメモリ(RAM)や、その他の動的記憶装置)も含む。この揮発性記憶装置506は、プロセッサ505による命令の実行中に、一時的数値変数又はその他の中間情報を記憶するのに用いることができる。更に、コンピュータプラットフォーム501は、バス504に接続されて静的情報及びプロセッサ505(例えば、基本入出力システム(BIOS))への命令並びに様々なシステム構成パラメータを記憶する、読み出し専用メモリ(ROM若しくはEPROM)507又はその他の静的記憶装置も含み得る。また、固定記憶装置508(例えば、磁気ディスク、光ディスク、固体フラッシュメモリ素子)が設けられバス504に接続されて、情報及び命令が記憶される。これらの記憶装置には、本発明のシステムに上述したキューイング処理を実行させるためのコードからなるプログラムが記憶されることができる。   The computer platform 501 is connected to the data bus 504 or other communication mechanism that communicates information between various parts of the computer platform 501, and is connected to the bus 504 to process information and perform other computational and control tasks. And a processor 505 for performing. The computer platform 501 is also connected to the bus 504 to store various information and instructions executed by the processor 505, such as a volatile storage device 506 (eg, random access memory (RAM) or other dynamic storage device). ) Is also included. This volatile storage device 506 can be used to store temporary numeric variables or other intermediate information during execution of instructions by the processor 505. In addition, computer platform 501 is connected to bus 504 and stores read-only memory (ROM or EPROM) that stores static information and instructions to processor 505 (eg, basic input / output system (BIOS)) and various system configuration parameters. 507 or other static storage devices. Further, a fixed storage device 508 (for example, a magnetic disk, an optical disk, a solid flash memory device) is provided and connected to the bus 504 to store information and instructions. In these storage devices, a program comprising codes for causing the system of the present invention to execute the above-described queuing process can be stored.

コンピュータプラットフォーム501は、バス504を介して、情報をこのコンピュータプラットフォーム501のシステム管理責任者又はユーザに表示するディスプレイ509(例えば、陰極線管(CRT)、プラズマディスプレイ、液晶ディスプレイ(LCD))に接続され得る。英数字及びその他のキーを含む入力装置(キーボード)510がバス504に接続されて、情報及びコマンドの選択がプロセッサ505に伝送される。別のタイプのユーザ入力装置として、方向情報及びコマンドの選択をプロセッサ505に伝送し且つディスプレイ509におけるカーソルの動きを制御するカーソル制御装置511(例えば、マウス、トラックボール、カーソル方向キー等の位置ポイント装置)がある。一般的に、このような入力装置では、2つの軸(即ち、第1軸(例えば、x)及び第2軸(例えば、y))における2つの自由度を有することにより、平面における位置を特定することができる。   The computer platform 501 is connected via a bus 504 to a display 509 (for example, a cathode ray tube (CRT), a plasma display, a liquid crystal display (LCD)) that displays information to a system administrator or user of the computer platform 501. obtain. An input device (keyboard) 510 containing alphanumeric and other keys is connected to the bus 504 and information and command selections are transmitted to the processor 505. As another type of user input device, a cursor control device 511 (eg, a position point such as a mouse, trackball, cursor direction key, etc.) that transmits direction information and command selections to the processor 505 and controls cursor movement on the display 509 Device). In general, such an input device identifies a position in a plane by having two degrees of freedom in two axes (ie, a first axis (eg, x) and a second axis (eg, y)). can do.

コンピュータプラットフォーム501にバス504を介して外部記憶装置512を接続することにより、コンピュータプラットフォーム501に追加の若しくは取り外し可能(リムーバブル)な記憶容量を設けてもよい。コンピュータシステム500の一実施形態では、この外部リムーバブル記憶装置512を用いて、他のコンピュータシステムとのデータ交換を支援してもよい。   By connecting an external storage device 512 to the computer platform 501 via the bus 504, the computer platform 501 may be provided with an additional or removable storage capacity. In one embodiment of the computer system 500, the external removable storage device 512 may be used to support data exchange with other computer systems.

本発明は、コンピュータシステム500を用いて本明細書中に記載の技法を実施することに関する。一実施形態では、本発明のシステムは、コンピュータプラットフォーム501のような装置に備えられ得る。本発明の一実施形態によれば、本明細書中に記載の技法は、コンピュータシステム500により、揮発性記憶装置506に収容された1つ以上の命令のうちの1つ以上のシーケンスをプロセッサ505が実行することにより実施される。このような命令は、別のコンピュータ可読媒体(例えば、固定記憶装置508)から揮発性記憶装置506に読み込まれてもよい。揮発性記憶装置506に収容された命令のシーケンスを実行することにより、プロセッサ505は、本明細書中に記載の処理ステップを行う。これにより、コンピュータシステム500を上述したキューイング処理を実行するシステムとして機能させることができる。
別の実施形態では、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて組み込み回路を用いて、本発明を実施してもよい。このように、本発明の実施形態は、ハードウェア回路とソフトウェアとのいずれの特定の組み合わせにも限定されない。
The invention is related to the use of computer system 500 for implementing the techniques described herein. In one embodiment, the system of the present invention may be included in a device such as computer platform 501. In accordance with one embodiment of the present invention, the techniques described herein may cause the computer system 500 to process one or more sequences of one or more instructions contained in the volatile storage device 506 in the processor 505. Is implemented by executing. Such instructions may be read into volatile storage device 506 from another computer readable medium (eg, persistent storage device 508). By executing the sequence of instructions contained in volatile storage device 506, processor 505 performs the processing steps described herein. This allows the computer system 500 to function as a system that executes the above-described queuing process.
In another embodiment, the invention may be implemented using embedded circuitry instead of or in combination with software instructions. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

本明細書中で用いる「コンピュータ可読媒体」という語は、プロセッサ505に命令を与えて実行させることに関するあらゆる媒体を指す。このコンピュータ可読媒体は、本明細書中に記載の方法及び技法のいずれも実施する命令を保持し得る、機械可読媒体の単なる一例である。このような媒体は、多数の形態を取ることができ、例として、不揮発性媒体、揮発性媒体、及び伝送媒体が挙げられるが、これらに限定されない。不揮発性媒体としては、例えば、固定記憶装置508のような、光ディスク若しくは磁気ディスクが挙げられる。揮発性媒体としては、揮発性記憶装置506のような、動的記憶装置が挙げられる。伝送媒体としては、データバス504を含むワイヤのような、同軸ケーブル、銅線、及び光ファイバーが挙げられる。また、この伝送媒体は、電波や赤外線によるデータ通信で生成されるような、音波や光波の形態を取ることもできる。   The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor 505 for execution. This computer readable medium is only one example of a machine readable medium that may retain instructions that implement any of the methods and techniques described herein. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Examples of the nonvolatile medium include an optical disk or a magnetic disk such as the fixed storage device 508. Volatile media includes dynamic storage devices, such as volatile storage device 506. Transmission media include coaxial cables, copper wire, and optical fibers, such as the wire that includes the data bus 504. The transmission medium can also take the form of sound waves or light waves that are generated by data communication using radio waves or infrared rays.

コンピュータ可読媒体の一般的な形態としては、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、あらゆるその他の磁気媒体、又は、CD−ROM、あらゆるその他の光媒体、又は、パンチカード、紙テープ、孔パターンを備えたあらゆるその他の物理的媒体、又は、RAM、PROM、EPROM、フラッシュEPROM、フラッシュドライブ、メモリカード、あらゆるその他のメモリチップ若しくはカートリッジ、又は、後で説明するような搬送波、又は、コンピュータが読み取ることのできるあらゆるその他の媒体が挙げられる。   Common forms of computer readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic medium, or CD-ROM, any other optical medium, or punch card. , Paper tape, any other physical medium with a hole pattern, or RAM, PROM, EPROM, flash EPROM, flash drive, memory card, any other memory chip or cartridge, or carrier wave as described below Or any other medium that can be read by a computer.

1つ以上の命令のうちの1つ以上のシーケンスをプロセッサ505に伝送して実行するのに、様々な形態のコンピュータ可読媒体を用いてもよい。例えば命令は、まずリモートコンピュータから磁気ディスクに伝送されることができる。或いは、リモートコンピュータは、命令をその動的記憶装置にロードし、モデムを用い電話回線を介してこの命令を転送することができる。コンピュータシステム500のローカルなモデムは、電話回線上でデータを受信し、赤外線送信機を用いてこのデータを赤外線信号に変換することができる。赤外線検出器がこの赤外線信号に保持されたデータを受信することができると共に、適切な回路がこのデータをデータバス504上に載せることができる。バス504はこのデータを揮発性記憶装置506に伝送し、プロセッサ505がこの揮発性記憶装置506から命令を読み出して実行する。揮発性記憶装置506によって受信された命令は、必要に応じて、プロセッサ505によって実行される前か或いは後に、固定記憶装置508に記憶されてもよい。また、この命令は、当業界では周知の様々なネットワークデータ通信プロトコルを用い、インターネットを介して、コンピュータプラットフォーム501にダウンロードされてもよい。   Various forms of computer readable media may be used to transmit and execute one or more sequences of one or more instructions to processor 505 for execution. For example, instructions can first be transmitted from a remote computer to a magnetic disk. Alternatively, the remote computer can load the instructions into its dynamic storage and transfer the instructions over a telephone line using a modem. A local modem in computer system 500 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector can receive the data held in the infrared signal and appropriate circuitry can place this data on the data bus 504. The bus 504 transmits this data to the volatile storage device 506, and the processor 505 reads the instruction from the volatile storage device 506 and executes it. The instructions received by volatile storage device 506 may be stored in persistent storage device 508 before or after being executed by processor 505 as appropriate. The instructions may also be downloaded to the computer platform 501 via the Internet using various network data communication protocols well known in the art.

コンピュータプラットフォーム501は、データバス504に接続されたネットワークインタフェースカード513のような、通信インタフェースも含む。この通信インタフェース513は、ローカルネットワーク515に接続されたネットワークリンク514への双方向データ通信接続をもたらす。例えば、この通信インタフェース513は、対応するタイプの電話回線へのデータ通信接続をもたらす総合デジタル通信網(ISDN)カード又はモデムであってもよい。別の例として、この通信インタフェース513は、互換LANへのデータ通信接続をもたらすローカルエリアネットワークインタフェースカード(LANNIC)であってもよい。また、無線リンク(例えば、周知の802.11a、802.11b、802.11g、ブルートゥース等)を用いて、ネットワークを実現してもよい。このような実現方法ではいずれも、通信インタフェース513は、様々なタイプの情報を表すデジタルデータストリームを保持する、電気信号、電磁信号、又は光信号を送受信する。   The computer platform 501 also includes a communication interface, such as a network interface card 513 connected to the data bus 504. This communication interface 513 provides a two-way data communication connection to a network link 514 connected to the local network 515. For example, the communication interface 513 may be an integrated digital network (ISDN) card or modem that provides a data communication connection to a corresponding type of telephone line. As another example, the communication interface 513 may be a local area network interface card (LANNIC) that provides a data communication connection to a compatible LAN. Further, the network may be realized using a wireless link (for example, well-known 802.11a, 802.11b, 802.11g, Bluetooth, etc.). In any such implementation, communication interface 513 sends and receives electrical, electromagnetic, or optical signals that hold digital data streams representing various types of information.

一般的に、ネットワークリンク514は、1つ以上のネットワークを介して、他のネットワーク資源へのデータ通信をもたらす。例えば、ネットワークリンク514は、ローカルネットワーク515を介して、ホストコンピュータ516又はネットワーク記憶装置/サーバ522への接続をもたらし得る。更に若しくは或いは、このネットワークリンク514は、ゲートウェイ/ファイアウォール517を介して、広域若しくは大域ネットワーク518(例えば、インターネット)へ接続し得る。従って、コンピュータプラットフォーム501は、インターネット518上のいずれに位置するネットワーク資源(例えば、遠隔ネットワーク記憶装置/サーバ519)にもアクセスすることができる。一方、コンピュータプラットフォーム501も、ローカルエリアネットワーク515及びインターネット518上のいずれに位置するクライアントによってもアクセスされ得る。これらのネットワーククライアント520及び521自体は、プラットフォーム501と同様のコンピュータプラットフォームに基づいて実装されてもよい。   In general, network link 514 provides data communication to one or more other network resources via one or more networks. For example, network link 514 may provide a connection to host computer 516 or network storage / server 522 via local network 515. Additionally or alternatively, the network link 514 may connect to a wide or global network 518 (eg, the Internet) via a gateway / firewall 517. Accordingly, the computer platform 501 can access network resources located anywhere on the Internet 518 (eg, remote network storage / server 519). On the other hand, the computer platform 501 can also be accessed by clients located anywhere on the local area network 515 and the Internet 518. These network clients 520 and 521 themselves may be implemented based on a computer platform similar to the platform 501.

ローカルネットワーク515及びインターネット518は共に、デジタルデータストリームを保持する電気信号、電磁信号、又は光信号を用いる。コンピュータプラットフォーム501とデジタルデータを送受信する、様々なネットワークを介する信号及びネットワークリンク514上にあり通信インタフェース513を介する信号は、情報(データ信号)を搬送する搬送波の例示的形態である。   Local network 515 and Internet 518 both use electrical, electromagnetic or optical signals that hold digital data streams. The signals over the various networks and signals over the network link 514 via the communication interface 513 that send and receive digital data to and from the computer platform 501 are exemplary forms of carrier waves that carry information (data signals).

コンピュータプラットフォーム501は、様々なネットワーク(例えば、インターネット518、ローカルネットワーク(LAN)515、ネットワークリンク514、通信インタフェース513)を介して、メッセージを送信しデータ、例えばプログラムコードを受信することができる。インターネットの例において、コンピュータプラットフォーム(システム)501がネットワークサーバとして機能する場合、クライアント520及び521の少なくとも1つで動作するアプリケーションプログラムに必要なコード又はデータを、インターネット518、ゲートウェイ/ファイアウォール517、ローカルエリアネットワーク515、及び通信インタフェース513を介して送信し得る。同様に、コンピュータプラットフォーム501は、他のネットワーク資源からコードを受信し得る。このような送受信され得るコード又はデータは、システム500内のサーバ(コンピュータプラットフォーム501及び他のネットワークサーバ等)が本発明のキューイング処理を実施するためのプログラムコードであってもよい。   The computer platform 501 can send messages and receive data, eg, program codes, via various networks (eg, the Internet 518, local network (LAN) 515, network link 514, communication interface 513). In the case of the Internet, when the computer platform (system) 501 functions as a network server, code or data necessary for an application program operating on at least one of the clients 520 and 521 is transferred to the Internet 518, gateway / firewall 517, local area. It can be transmitted via the network 515 and the communication interface 513. Similarly, the computer platform 501 may receive code from other network resources. Such code or data that can be transmitted and received may be program code for a server (such as the computer platform 501 and other network servers) in the system 500 to perform the queuing process of the present invention.

受信されたコードは、受信され次第プロセッサ505によって実行されるか、又は後で実行されるために、固定記憶装置508又は揮発性記憶装置506又は他の不揮発性記憶装置に記憶され得る。このように、コンピュータプラットフォーム(システム)501は、本発明のキューイング処理を実施するためのアプリケーションコードを搬送波の形態で取得し得る。   The received code may be stored in persistent storage 508 or volatile storage 506 or other non-volatile storage for execution by processor 505 as it is received or later. As described above, the computer platform (system) 501 can obtain application code for performing the queuing process of the present invention in the form of a carrier wave.

最後に、本明細書中に記載の処理及び技法は、本質的にいかなる特定の装置にも関連せず、コンポーネントのいかなる適切な組み合わせによっても実施され得ることを理解されたい。更に、本明細書中に記載の教示に従って、様々なタイプの汎用装置を用いてもよい。また、本明細書中に記載の方法及びプログラムの各ステップを行う専用装置を構築することは有益であることも明らかであろう。本発明を特定の例に関して説明してきたが、これらの例は、全ての点において、制限ではなく例示を意図したものである。当業者にはハードウェア、ソフトウェア、及びファームウェアの多数の異なる組み合わせが、本発明を実施するのに適していることが理解されよう。例えば、説明したソフトウェアは、様々なプログラミング言語又はスクリプト言語(例えば、アセンブリ言語、C/C++、perl、シェル、PHP、Java(登録商標)など)で実施され得る。   Finally, it should be understood that the processes and techniques described herein are not inherently related to any particular apparatus and can be implemented by any suitable combination of components. In addition, various types of general purpose devices may be used in accordance with the teachings described herein. It will also be apparent that it would be beneficial to build a dedicated device that performs the steps of the methods and programs described herein. Although the invention has been described with reference to particular examples, these examples are in all respects intended to be illustrative rather than limiting. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware are suitable for practicing the present invention. For example, the described software can be implemented in various programming or scripting languages (eg, assembly language, C / C ++, Perl, shell, PHP, Java, etc.).

更に、当業者には、本明細書中に開示した本発明の具体例及び実施例を考慮することにより、本発明のその他の実施例が明らかとなるであろう。データ複製機能を備えたコンピュータ制御の記憶装置に、本明細書中に説明した実施形態の様々な態様及びコンポーネントの少なくとも1つを、単独で或いは任意の組み合わせで用いてもよい。これらの具体例及び実施例は単なる例と見なし、本発明の真の範囲及び精神は添付の特許請求の範囲により示されることが意図されている。   Furthermore, other embodiments of the invention will be apparent to those skilled in the art from consideration of the embodiments and embodiments of the invention disclosed herein. At least one of the various aspects and components of the embodiments described herein may be used alone or in any combination in a computer controlled storage device with data replication capabilities. These examples and examples are to be considered merely exemplary and the true scope and spirit of the invention is intended to be indicated by the appended claims.

本発明の概念が実施され得る、ネットワークキューを備えるクラスタシステムの、一例としての実施形態を示す図である。FIG. 1 illustrates an example embodiment of a cluster system with network queues in which the concepts of the present invention may be implemented. 本発明の概念による、キュー間において要求を転送する際の確率的な受け入れを示す図である。FIG. 6 illustrates probabilistic acceptance when forwarding requests between queues according to the inventive concept. 本発明の概念による、受信要求を受け入れるか又は転送するかの決定過程を示す図である。FIG. 6 is a diagram illustrating a process of determining whether to accept or forward a reception request according to the inventive concept. 0〜0.6のランダムなPkで要求を受け入れる例示的確率を示すグラフである。Random P k of 0-0.6 is a graphical illustration of an exemplary probability to accept the request. 本発明のシステムが実施され得るコンピュータプラットフォームの、一例としての実施形態を示す図である。FIG. 2 illustrates an example embodiment of a computer platform on which the system of the present invention may be implemented.

符号の説明Explanation of symbols

100 キューイングシステム
101 クラスタ
102 キュー
104 サーバ
301 決定過程
500 コンピュータシステム
501 コンピュータプラットフォーム
502 周辺装置
503 ネットワーク資源
514 ネットワークリンク
DESCRIPTION OF SYMBOLS 100 Queuing system 101 Cluster 102 Queue 104 Server 301 Determination process 500 Computer system 501 Computer platform 502 Peripheral device 503 Network resource 514 Network link

Claims (22)

a.少なくとも1つのサーバ及び第1キューを備えると共に、サービス要求に応じてサービスを提供するように動作可能な、第1クラスタと、
b.第2キューを備えると共に、サービス要求に応じてサービスを提供するように動作可能な、第2クラスタと、
を備える、コンピュータシステムであって、
前記第1クラスタが、
i. サービス要求を受信し、
ii. 前記第1クラスタにアイドルサーバがあるかどうか判別し、
iii.前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信したサービス要求を割り当て、
iv. 前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、
前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れ
ように動作可能な、コンピュータシステム。
a. A first cluster comprising at least one server and a first queue and operable to provide a service in response to a service request;
b. A second cluster comprising a second queue and operable to provide a service in response to a service request;
A computer system comprising:
The first cluster is
i. Receive a service request,
ii. Determine if there is an idle server in the first cluster;
iii. if there is an idle server in the first cluster, assign the received service request to the idle server;
iv. If no idle server on the first cluster, the first probability value calculated in advance, put pre Symbol received service request to the first queue, the service request thus received in the first probability value If not in the first queue , transfer the received service request to the second cluster with a pre-calculated second probability value ;
Wherein when the second probability value does not transfer the service request thus received to the second cluster, operable the received service request to and place in the first queue computer system.
前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定される、請求項1に記載のコンピュータシステム。   The computer system of claim 1, wherein the first probability value is determined based on a number of service requests waiting in the first queue. 前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定される、請求項1に記載のコンピュータシステム。   The computer system of claim 1, wherein the first probability value is determined based on a number of servers in the first cluster. 前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定される、請求項1に記載のコンピュータシステム。   The computer system of claim 1, wherein the first probability value is determined based on a number of service requests waiting in the first queue and a number of servers in the first cluster. 前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出される、請求項1に記載のコンピュータシステム。
Figure 0005050649
Wherein the first probability value (P k), the following equation using the number m k of the server and the number N k of the first service requests waiting in the queue, Ru is calculated from, to claim 1 The computer system described.
Figure 0005050649
前記第1クラスタの前記第1キューと前記第2クラスタの前記第2キューとの間のリンクをさらに備える、請求項1に記載のコンピュータシステム。   The computer system of claim 1, further comprising a link between the first queue of the first cluster and the second queue of the second cluster. 前記第1クラスタが、前記第1確率値を少なくとも含むローカル状態情報を前記第2クラスタに定期的に提供するように動作可能である、請求項1に記載のコンピュータシステム。 The computer system of claim 1, wherein the first cluster is operable to periodically provide local state information to the second cluster that includes at least the first probability value . 前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、
Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出される、請求項に記載のコンピュータシステム。
Figure 0005050649
The local state information includes information R k represented by the following equation using the first probability value (P k ) in the first cluster and the first probability value (P y ) in the second cluster. In addition,
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) Ru is calculated from the following equation using a computer system of claim 7.
Figure 0005050649
少なくとも1つのクラスタ化されたサーバを含むシステムにおけるキューイング方法であって、
a.第1キューを備える第1クラスタにおいてサービス要求を受信し、
b.前記第1クラスタにアイドルサーバがあるかどうか判別し、
c.前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信したサービス要求を割り当て、
d.前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、
前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れること、
を含む方法。
A queuing method in a system including at least one clustered server comprising:
a. Receiving a service request in a first cluster comprising a first queue;
b. Determining whether there is an idle server in the first cluster;
c. If there is an idle server in the first cluster, assign the received service request to the idle server;
d. Wherein if there is no idle server in the first cluster, the first probability value calculated in advance, put pre Symbol received service request to said first queue, wherein the service request thus received in the first probability value first If it is not possible to enter one queue, the received service request is transferred to the second cluster with a second probability value calculated in advance .
Wherein when the second probability value does not transfer the service request thus received to the second cluster, Rukoto put the received service request to said first queue,
Including methods.
前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定される、請求項に記載の方法。 The method of claim 9 , wherein the first probability value is determined based on a number of service requests waiting in the first queue. 前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定される、請求項に記載の方法。 The method of claim 9 , wherein the first probability value is determined based on a number of servers in the first cluster. 前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定される、請求項に記載の方法。 The method of claim 9 , wherein the first probability value is determined based on a number of service requests waiting in the first queue and a number of servers in the first cluster. 前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出される、請求項に記載の方法。
Figure 0005050649
Wherein the first probability value (P k), the following equation using the number m k of the server and the number N k of the first service requests waiting in the queue, Ru is calculated from, to claim 9 The method described.
Figure 0005050649
前記第1クラスタが、前記第1確率値を少なくとも含むローカル状態情報を前記第2クラスタに定期的に提供することを更に含む、請求項に記載の方法。 The method of claim 9 , further comprising: the first cluster periodically providing the second cluster with local state information that includes at least the first probability value . 前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、
Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出される、請求項14に記載の方法。
Figure 0005050649
The local state information includes information R k represented by the following equation using the first probability value (P k ) in the first cluster and the first probability value (P y ) in the second cluster. In addition seen including,
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) Ru is calculated from the following equation using the method of claim 14.
Figure 0005050649
少なくとも1つのクラスタ化されたサーバを含むシステムにおいて、コンピュータにキューイング処理を実行させるためのコードを含むプログラムであって、前記コードは、
a.第1キューを備える第1クラスタにおいてサービス要求を受信し、
b.前記第1クラスタにアイドルサーバがあるかどうか判別し、前記第1クラスタにアイドルサーバがある場合には、該アイドルサーバに前記受信したサービス要求を割り当て、前記第1クラスタにアイドルサーバがない場合には、予め算出した第1確率値で、前記受信したサービス要求を前記第1キューに入れ、前記第1確率値では前記受信したサービス要求を前記第1キューに入れない場合には、予め算出した第2確率値で、前記受信したサービス要求を前記第2クラスタに転送し、前記第2確率値では前記受信したサービス要求を第2クラスタに転送しない場合には、前記受信したサービス要求を前記第1キューに入れること、
を含む処理をコンピュータに実行させる、プログラム。
A program including code for causing a computer to execute a queuing process in a system including at least one clustered server, the code comprising:
a. Receiving a service request in a first cluster comprising a first queue;
b. If there is an idle server in the first cluster, and if there is an idle server in the first cluster, the received service request is assigned to the idle server, and if there is no idle server in the first cluster is the first probability value calculated in advance, put pre Symbol received service request to the first queue if said first probability value is not entered service request thus received to said first queue, calculated in advance in and second random values, and transfers the received service request to the second cluster, wherein when the in the second probability value does not transfer the service request thus received to the second cluster, the said received service request , it takes into the first queue,
A program for causing a computer to execute a process including:
前記第1確率値が、前記第1キューに待機しているサービス要求の数に基づいて決定される、請求項16に記載のプログラム。 The program according to claim 16 , wherein the first probability value is determined based on the number of service requests waiting in the first queue. 前記第1確率値が、前記第1クラスタにおけるサーバの数に基づいて決定される、請求項16に記載のプログラム。 The program according to claim 16 , wherein the first probability value is determined based on a number of servers in the first cluster. 前記第1確率値が、前記第1キューに待機しているサービス要求の数及び前記第1クラスタにおけるサーバの数に基づいて決定される、請求項16に記載のプログラム。 The program according to claim 16 , wherein the first probability value is determined based on the number of service requests waiting in the first queue and the number of servers in the first cluster. 前記第1確率値(P k )は、前記第1キューに待機しているサービス要求の数N k と前記サーバの数m k とを用いた下記の式、から算出される、請求項16に記載のプログラム。
Figure 0005050649
Wherein the first probability value (P k), the following equation using the number m k of the server and the number N k of the first service requests waiting in the queue, Ru is calculated from, to claim 16 The listed program.
Figure 0005050649
前記第1クラスタが、前記第1確率値を少なくとも含むローカル状態情報を前記第2クラスタに定期的に提供することを更にコンピュータに実行させる、請求項16に記載のプログラム。 The program according to claim 16 , further causing the computer to periodically provide the second cluster with local state information including at least the first probability value . 前記ローカル状態情報が、前記第1クラスタにおける前記第1確率値(P k )と前記第2クラスタにおける前記第1確率値(P )とを用いた下の式で表される情報R kを更に含み、
Figure 0005050649
前記第2確率値は、前記第2クラスタから提供された前記ローカル状態情報における当該第2クラスタの情報(R )、前記第1クラスタにおける前記第1確率値(P k )、及び前記第1クラスタに隣接する各クラスタのキューの数(|Φ k |)を用いた下記の式から算出される、請求項21に記載のプログラム。
Figure 0005050649
The local state information includes information R k represented by the following equation using the first probability value (P k ) in the first cluster and the first probability value (P y ) in the second cluster. In addition seen including,
Figure 0005050649
The second probability value includes the second cluster information (R y ) in the local state information provided from the second cluster, the first probability value (P k ) in the first cluster , and the first the number of queues each cluster adjacent to the cluster (| Φ k |) Ru is calculated from the following equation using the program of claim 21.
Figure 0005050649
JP2007137469A 2006-08-14 2007-05-24 Computer system, method, and program for queuing Expired - Fee Related JP5050649B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/504,314 US7730186B2 (en) 2006-05-25 2006-08-14 Networked queuing system and method for distributed collborative clusters of services
US11/504314 2006-08-14

Publications (2)

Publication Number Publication Date
JP2008047096A JP2008047096A (en) 2008-02-28
JP5050649B2 true JP5050649B2 (en) 2012-10-17

Family

ID=39180731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007137469A Expired - Fee Related JP5050649B2 (en) 2006-08-14 2007-05-24 Computer system, method, and program for queuing

Country Status (1)

Country Link
JP (1) JP5050649B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259227B (en) * 2020-01-16 2023-11-10 北京旷视科技有限公司 Method and apparatus for sharing a targeted search service among multiple search clusters
CN111930502A (en) * 2020-07-31 2020-11-13 苏州交驰人工智能研究院有限公司 Server management method, device, equipment and storage medium
CN114390104A (en) * 2022-01-26 2022-04-22 杭州趣链科技有限公司 Process forensics system, method, apparatus, computer device and medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06195317A (en) * 1992-12-22 1994-07-15 Mitsubishi Electric Corp Data processing system
JP2743865B2 (en) * 1995-04-28 1998-04-22 日本電気株式会社 Job scheduling method
US7712102B2 (en) * 2004-07-30 2010-05-04 Hewlett-Packard Development Company, L.P. System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data

Also Published As

Publication number Publication date
JP2008047096A (en) 2008-02-28

Similar Documents

Publication Publication Date Title
US7730186B2 (en) Networked queuing system and method for distributed collborative clusters of services
EP3637733B1 (en) Load balancing engine, client, distributed computing system, and load balancing method
JP3480794B2 (en) Server computer system and method for generating predicted response
JP4144897B2 (en) Optimal server in common work queue environment
CA2367800C (en) Communication architecture for distributed computing environment
JP5281160B2 (en) Method and apparatus for resource sharing between multiple user devices in a computer network
CN109729040B (en) Method, apparatus and computer readable medium for selection of a protocol
WO2017050215A1 (en) System and method for control traffic balancing in in-band software defined networks
US9967360B2 (en) Method and system for information exchange utilizing an asynchronous persistent store protocol
US20100293268A1 (en) Efficient message consumption in a point-to-point messaging environment
JP4663948B2 (en) Anonymous subject-based addressing method and apparatus
CN111200606A (en) Deep learning model task processing method, system, server and storage medium
JP2005346573A (en) Web service providing method, server device and client terminal in web service system, web service system, web service program, and recording medium
JP5050649B2 (en) Computer system, method, and program for queuing
US20030110154A1 (en) Multi-processor, content-based traffic management system and a content-based traffic management system for handling both HTTP and non-HTTP data
US20080168125A1 (en) Method and system for prioritizing requests
JP5611952B2 (en) Asynchronous queuing messaging for web applications
CN111049915A (en) Message queue agent grid under container cloud and method
CN111752728B (en) Message transmission method and device
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof
CN108696598B (en) Method and device for transparently transmitting message received by stateless service through long connection under micro-service architecture
US8989184B2 (en) Message relay apparatus and method
US11777878B1 (en) Message routing based on unavailability
CN110764932A (en) Data processing method, system, medium and computing device
KR102367017B1 (en) Communication network system and control method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120626

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120709

R150 Certificate of patent or registration of utility model

Ref document number: 5050649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees