Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5679256B2 - 分散タスクシステムおよび分散タスク管理方法 - Google Patents
[go: Go Back, main page]

JP5679256B2 - 分散タスクシステムおよび分散タスク管理方法 - Google Patents

分散タスクシステムおよび分散タスク管理方法 Download PDF

Info

Publication number
JP5679256B2
JP5679256B2 JP2009548390A JP2009548390A JP5679256B2 JP 5679256 B2 JP5679256 B2 JP 5679256B2 JP 2009548390 A JP2009548390 A JP 2009548390A JP 2009548390 A JP2009548390 A JP 2009548390A JP 5679256 B2 JP5679256 B2 JP 5679256B2
Authority
JP
Japan
Prior art keywords
task
server
execution
distributed
transaction
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.)
Active
Application number
JP2009548390A
Other languages
English (en)
Other versions
JP2010517198A (ja
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2010517198A publication Critical patent/JP2010517198A/ja
Application granted granted Critical
Publication of JP5679256B2 publication Critical patent/JP5679256B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本開示は、コンピュータタスクスケジューリングおよびタスク戦略の分野に関し、特に、分散タスクシステムおよび分散タスク管理方法に関する。
本出願は、以前2007年1月30日に出願した中国特許出願、出願番号第200710002961.6号、発明の名称「分散タスクシステムおよび分散タスク管理方法」の利益を主張する。
コンピュータ技術において、タスクは、設定された戦略に従い実行されるジョブである。例えば、Windows(登録商標)タスクシステムでは、「午前12:50にシステムを自動シャットダウンする」とタスクを設定することができる。午前12:50に、システムはこのタスクを実行し、自動シャットダウンのジョブを完了する。コンピュータプログラムでは、タスクは、プログラム内で呼び出されるサブルーチンであり得る。さらに、より複雑なコンピュータ環境では、タスクは、互いに関連した、または関連しない、膨大な数の計算ジョブにおける別個のジョブであり得る。
現在では、ほとんどのタスクシステムは単一システムである。単一システムの処理能力は非常に制限されている。タスクの複雑性および精度要件が増加し続けるに従い、タスクシステムの処理能力に対する要件もまた増加し、したがって単一システムは、もはやユーザの要望を満足し得ない。
タスクシステムの処理能力を増加させるために、分散タスクシステムが使用される。分散タスクシステムを使用して、1つの大きな問題を、多くの小さな問題に分割し、多くのコンピュータに分散することができる。例えば、分散コンピューティングは、ネットワークを介して互いに通信する2つ以上のコンピュータ上でプログラムの異なる部分が同時に実行される、コンピュータ処理の方法である。
分散タスクシステムは、通常、タスク戦略ユニットおよび一群のタスク実行ユニットを有する。タスク戦略ユニットの制御下で、各タスク実行ユニットは、処理を必要とする1つ以上のタスクを実行する。分散タスクシステムでは、通常、ユニットタスク時間内にタスクがただ1つのタスク実行ユニットにより行われることが必要とされる。これにより、分散タスクシステムにおいてタスクは線形に実行されることが確実となる。2つのタスク実行ユニットがタスク戦略ユニットから同じタスクを同時に実行する承認を受信することは、誤りと認識され得る。
図1は、現在の技術における一種の分散タスクシステムを示す。このシステムは、タスク戦略ユニット110およびN個のタスク実行ユニット120を含む。タスク戦略ユニット110は、各タスク実行ユニット120と通信する。タスク戦略ユニット110は、タスクを、タスク実行ユニット120のうちの1つに割り当て、各タスク実行ユニット120を監視および管理する。タスク実行ユニット120は、タスク戦略ユニット110から割り当てられたタスクを行い、その状況をタスク戦略ユニット110に報告する。タスク戦略ユニット110は、マルチサーバシステムの処理能力を達成するために、リモートプロシージャコール(RPC:Remote Procedure Call)を介してタスク実行ユニットを拡張することができる。
しかしながら、図1に示される現在の分散タスクシステムでは、タスク実行ユニット120は、サービスのために受動的に呼び出され、タスクの分散化およびタスク戦略にほとんどまたは全く関与せず、それらは主にタスク戦略ユニット110のみにより行われる。これは、実行を必要とする多数のタスクが存在する場合、また特に長期間のタスクおよび短期間のタスクが互いに混在している場合、タスク実行ユニット120に対するタスク戦略ユニット110の制御はより弱くなり、さらにタスク実行ユニット120は制御不能にもなり得るため、不都合である。
本開示は、タスク実行ユニットは受動的に機能するためだけに呼び出すことができ、システムのタスク分散化を補助するための自己均衡動作を行うことができないという制限を克服するために使用される、分散タスク管理方法を説明する。タスクを実行するためにタスクトランザクションサーバにより単に受動的に呼び出されるかわりに、本開示のシステムにおけるタスクサーバは、タスク実行条件およびタスクサーバの運転状況に従い、自己均衡を行う。タスクトランザクションサーバは、タスクサーバからタスク要求を受信し、実行条件を記録し、タスクサーバにフィードバックを提供する。一方、タスクサーバは、受信したフィードバックおよびタスクサーバの運転状況に従いタスクを実行する。
一実施形態において、タスクサーバは、タスク要求をタスクトランザクションサーバに送信し、タスクトランザクションサーバからフィードバックを受信し、フィードバックに従いタスクを行うようにタスクサーバのタスク実行ユニットをトリガする、自己均衡ユニットを有する。タスク実行ユニットは、自己均衡ユニットに接続し、自己均衡ユニットの制御下でタスクを行う。タスクトランザクションサーバは、タスクの実行条件に従い、タスクサーバがタスクを実行することができるかどうかを判定し、次いでタスクサーバにフィードバックを送信する。タスクサーバがタスクを行うことができることをフィードバックが示している場合、タスクサーバの自己均衡ユニットは、さらに、タスクサーバがビジー状態であるかどうかを判定し、ビジー状態でない場合、タスクを実行するようにタスクサーバのタスク実行ユニットをトリガする。タスクサーバがビジー状態である場合、タスクサーバは、タスクチェックメッセージをタスクトランザクションサーバに送信する。タスクチェックメッセージの受信後、タスクトランザクションサーバは、他の任意のタスクサーバがこのタスクを要求しているかどうかをチェックし、チェック結果を自己均衡ユニットに送信する。
以下の条件のいずれか、または組合せを満たす場合、タスクサーバはビジー状態であるとみなされ得る。スレッドの現在の数が、スレッドの数に対する設定限界値以上である、長期間のスレッドの現在の数が、長期間のスレッドに対する設定限界値以上である、およびタスクサーバの実行妨害値が、設定閾値以上である。
タスクサーバは、自己均衡ユニットに接続し、タスク要求を送信するように自己均衡ユニットをトリガするために使用される、タスク戦略ユニットをさらに含み得る。
本開示の他の態様は、分散タスク管理方法に関する。この方法の一実施形態によれば、タスクサーバは、タスク要求をタスクトランザクションサーバに送信し、タスクトランザクションサーバは記録されたタスクの実行条件に基づいてタスクサーバがタスクを実行することができるかどうかを判定し、結果をタスクサーバに送信する。タスクの実行条件は、タスクの要求元または実行プログラム(executor)の識別、タスクの以前のタスク実行時間、およびタスク名等の情報を含み得る。判定の結果が肯定的である(すなわち、サーバがタスクを実行することができる)場合、タスクサーバはタスクを実行し得る。タスク要求をタスクトランザクションサーバに送信した後、第1の時間間隔内にタスクトランザクションサーバからフィードバックを受信した場合は、タスクサーバはタスクの実行を開始することができる。第1の時間間隔内にいかなるフィードバックも受信しなかった場合、タスクサーバは別のタスク要求を送信する。タスクサーバは、第2の時間間隔内にタスクトランザクションサーバからフィードバックを受信しなかった場合、タスクの要求を破棄する。
タスクがタスクサーバにより行われ得るかどうかを判定する例示的なプロセスによれば、タスクトランザクションサーバは、タスクサーバにより要求されたタスクの実行条件をチェックする。実行条件が、別のタスクサーバが現在同じタスクを実行中であることを示している場合、タスクトランザクションサーバは、要求タスクサーバが要求されたタスクを行うことができないと決定し得る。現在タスクを実行している他のタスクサーバがない場合、タスクトランザクションサーバは、要求タスクサーバが要求されたタスクを実行することができると決定し得る。
該方法の一実施形態において、タスクサーバは、自らをチェックしてビジー状態であるかどうかを判定する。ビジー状態でない場合、タスクサーバは要求されたタスクを行う。ビジー状態である場合、タスクサーバはタスクチェックメッセージを送信して、タスクトランザクションサーバに、同じタスクを要求している別のタスクサーバがあるかどうかをチェックし、要求タスクサーバの自己均衡ユニットにチェック結果を送信するように要求する。チェック結果が肯定的である場合、要求タスクサーバは、タスク要求を破棄する。それ以外の場合、タスクサーバはタスクを実行し得る。
タスクサーバがビジー状態であるかどうかを判定するために、タスクサーバは、タスクスレッドの現在の数が、スレッドの数に対する設定境界値以上であるかどうかを判定し得る。「はい」の場合、タスクサーバはビジー状態であるとみなされる。代替として、または追加的に、タスクサーバはまた、長期間のスレッドの現在の数が、長期間のタスクスレッドの数に対する設定境界値以上であるかどうかを判定し得る。「はい」の場合、タスクサーバはビジー状態であるとみなされる。一実施形態において、タスクサーバは、CPU使用率、スレッドの現在の数、長期間のスレッドの現在の数に基づいてタスクサーバの実行妨害値を推定することにより、ビジー状態であるかどうかを判定する。実行妨害値が設定閾値(例えば1.0)以上である場合、タスクサーバはビジー状態であるとみなされる。
要求されたタスクを行うために、タスクサーバは、実行されているタスクに関するデータを取得し、データの特徴に従いデータを複数のデータグループにグループ化し、各データグループを処理する。
本明細書に開示されるシステムおよび方法は、タスク実行ユニット(例えば、タスクサーバ)がサービスのために受動的に呼び出され、自己均衡動作を行うことができないという制限を取り除くのに役立つ。既存の技術と比較して、分散タスクシステムおよび方法の例示的な実施形態は、以下の利点を有し得る。本明細書で開示される例示的な実施形態において、タスクサーバは、自己均衡ユニットを使用してその運転状況を検査する。タスクサーバがビジー状態である場合、実行のためにタスクを別のタスクサーバに転送し、これによりタスクサーバの自己均衡を達成する。自己均衡プロセスにおいて、タスクサーバは、単にタスクトランザクションサーバからの管理指示を受動的に待つのではなく、タスクトランザクションサーバを起動または能動的に支援して、実行のためにタスクを別のタスクサーバに転送する。この機構を使用して、実行が必要な多数のタスクがある場合、さらに長期間のタスクおよび短期間のタスクが互いに混在している場合でも、自己均衡ユニットは効果的にそのタスク実行ユニット(例えばタスクサーバ)を制御することができる。
さらに、本明細書で開示される例示的な実施形態は、タスクサーバのタスク要求に応じてフィードバックを提供するタスクトランザクションサーバを提供する。フィードバックは、要求されたタスクの実行条件に基づき、タスクの線形実行を確実にする。
本概要は、以下の発明を実施するための形態でさらに説明される選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
発明を実施するための形態は、添付の図面を参照して説明される。図中、参照番号の最も左側の数字は、その参照番号が最初に現れる図面を特定するものである。異なる図面における同じ参照番号の使用は、同様または同一の物を指す。
既存の技術を使用した分散タスクシステムを示す図である。 本明細書による例示的な分散タスクシステムを示す図である。 本明細書による例示的な分散タスク管理方法のフローチャートである。 図3におけるタスク実行の例示的な前処理のフローチャートである。 本明細書のシステムおよび方法を実装するための例示的な環境を示す図である。
分散タスクシステムおよび分散タスク管理方法を、図面および例示的な実施形態を用いて以下に詳細に説明する。
図2は、本明細書による分散タスクシステムの例を示す。このシステムは、タスクサーバ210および230と、タスクトランザクションサーバ220とを有し、タスクトランザクションサーバ220はタスクサーバ210およびタスクサーバ230に別個に接続する。タスクトランザクションサーバ220は、タスクサーバ210およびタスクサーバ230からタスク要求を受信し、タスクサーバ210およびタスクサーバ230にフィードバックを提供し、各タスクの実行条件を記録するために使用される。タスクの実行条件は、タスクの要求元または実行プログラムの識別(すなわち、タスクを要求するタスクサーバ、タスクを実行するタスクサーバ、タスクを実行するために割り当てられるタスクサーバ内の実行プログラムおよびその数等)、タスクの以前の実行時間、およびタスク名等の情報を含み得る。タスクサーバ210およびタスクサーバ230は、それぞれ、タスク要求をタスクトランザクションサーバ220に送信し、タスクトランザクションサーバ220からのフィードバックに従い、それぞれのタスクを実行する。
タスクトランザクションサーバ220、ならびにタスクサーバ210および230は、本明細書に記載されるそのそれぞれの目的に好適な任意のコンピュータデバイスを表し得、実際のサーバコンピュータに限定されず、またスタンドアロン型の物理的コンピュータデバイスにも限定されないことが理解される。
タスクサーバ210は、タスク戦略ユニット211、自己均衡ユニット212、およびタスク実行ユニット213をさらに含み、自己均衡ユニット212は、タスク戦略ユニット211およびタスク実行ユニット213と接続する。同様に、タスクサーバ230は、タスク戦略ユニット231、自己均衡ユニット232、およびタスク実行ユニット233をさらに含み、自己均衡ユニット232は、タスク戦略ユニット231およびタスク実行ユニット233と接続する。以下、例示を目的としてタスクサーバ210をさらに詳細に説明する。説明は、タスクサーバ230にも適用され得る。図2における分散タスクシステムは、タスクサーバ210および230と同様、任意の数のタスクサーバを有し得ることも理解される。
タスクサーバ210のタスク戦略ユニット211を用いて自己均衡ユニット212をトリガして、タスク要求を送信する。自己均衡ユニット212を用いてタスク要求をタスクトランザクションサーバ220に送信し、タスクトランザクションサーバ220からフィードバックを受信する。タスクサーバ210がタスクを実行することができることをフィードバックが示している場合、自己均衡ユニット212は、タスクサーバ210がビジー状態かどうかをチェックする。タスクサーバ210がビジー状態でない場合、自己均衡ユニット212は、要求されたタスクを実行するようにタスク実行ユニット213に指示する。タスクサーバ210がビジー状態である場合、自己均衡ユニット212は、さらなる判定のために、タスクチェックメッセージをタスクトランザクションサーバ220に送信する。タスクチェックメッセージの受信後、トランザクションサーバ220は、同じタスクを要求している別のタスクサーバ(例えばタスクサーバ230)があるかどうかをチェックし、チェック結果を自己均衡ユニット212に返す。結果が肯定的である(すなわち別のタスクサーバがタスクを要求している)場合、タスクサーバ210は、そのタスクの要求を破棄し、タスクを実行するために、タスクトランザクションサーバ220に、他のタスクサーバ(例えばタスクサーバ230)からの要求を認めさせることができる。結果が否定的である(すなわち、他にタスクを要求しているタスクサーバがない)場合、自己均衡ユニット212は、タスクサーバ210がタスクを実行することができるときには、いずれにしてもタスク実行ユニット213にタスクを行うように指示することができる。
タスクサーバ210のビジー状態は、分散タスクシステムの特徴に基づき様々な手法で定義され得る。例えば、ビジー状態は、タスクサーバ210のスレッド(長期間のスレッドおよび短期間のスレッド等の全てのスレッドを含む)の現在の数が、スレッドの数に対する設定境界値以上である状態、長期間のスレッドの現在の数が、長期間のスレッドの数に対する設定境界値以上である状態、または、タスクサーバ210の実行妨害値が、設定閾値(例えば1.0)以上である状態となり得る。これらの条件因子の任意の組合せ、および他の好適な条件因子を使用して、タスクサーバ210のビジー状態を定義することができる。
例えば、タスクサーバ210におけるスレッドの数に対する設定境界値は、500であってもよい。スレッドの現在の数が500である場合、スレッドの現在の数はスレッドの数に対する設定境界値と等しく、従ってタスクサーバ210はビジー状態にあるとみなされ、追加のタスクを実行することができない。
別の例として、タスクサーバ210における長期間のスレッドの数に対する設定境界値は、5であってもよい。長期間のスレッドの現在の数が5である場合、長期間のスレッドの現在の数は長期間のスレッドの数に対する設定境界値と等しく、従ってタスクサーバ210はビジー状態にあるとみなされ、追加のタスクを実行することができない。
タスクサーバ210の実行妨害は、分散システムの特徴に好適な様々な手法で推定され得る。一実施形態において、タスクサーバ210の全体的な運転状況は、CPU使用率および上述の条件因子の組合せにより推定される実行妨害により測定され得る。
例えば、タスクサーバ210の実行妨害値は、以下の式に従って得ることができる。
EC=CPU使用率×W1+NT1d×W2/NT1d0+NT×W3/NT0
ここで、ECはタスクサーバ210の実行妨害、NT1dは長期間のスレッドの現在の数、NT1d0は長期間のスレッドの数に対する設定境界値、NTは全てのスレッド(長期間および短期間)の現在の数、NT0は全てのスレッドの数に対する設定境界値、W1、W2およびW3は各条件因子に割り当てられた重みであり、経験的に得ることができる。W1、W2およびW3は、W1+W2+W3=1.0であるように正規化されてもされなくてもよい。好ましくは、W1、W2およびW3は、1.0の実行妨害値が、それを超えるとタスクサーバは込み過ぎている(すなわちビジー状態である)とみなされて追加のタスクに利用できない閾値を示すように、経験的に選択される。
例示を目的として、タスクサーバ210のスレッドの数に対する設定境界値が500であり、長期間のスレッドに対する設定境界値が5であると仮定する。タスクサーバ210の現在のCPU利用率が85%、スレッドの現在の数が100、長期間のスレッドの現在の数が3、W1、W2およびW3がそれぞれ0.80、0.75および0.40である場合、タスクサーバの現在実行妨害値は以下のように推定され得る。
EC=80%×0.80+3×0.75/5+100×0.40/500=0.68+0.45+0.08=1.21
上記W1、W2およびW3は、1.0を超える実行妨害値がビジー状態を示すように較正される。上記の推定実行妨害値は1.0を超えるため、タスクサーバ210はビジー状態であるとみなされ、追加のタスクを実行することができない。重みW1、W2およびW3の上記の例示的値(それぞれ0.80、0.75および0.40)は、経験的に得られ、ハードウェアおよびオペレーティングシステムにおける変更に従い修正することができる。
タスクサーバ210のスレッドの数に対する設定境界値が500であり、長期間のスレッドに対する設定境界値が5である別の例を考える。タスクサーバ210の現在のCPU使用率が80%、長期間のスレッドの現在の数が2、スレッドの現在の数が50の場合、実行妨害は以下のように推定される。
現在の実行妨害値=80%×0.8+2×0.75/5+50×0.40/500=0.64+0.3+0.04=0.98<1
現在の実行妨害値が1.0未満であるため、タスクサーバ210は、ビジー状態ではないとみなされ、したがって追加のタスクを実行することができる。しかしながら、もう1つの長期間のスレッドが実行されると、長期間のスレッドの現在の数は3となり、したがって、現在の実行妨害値=80%×0.8+3×0.75/5+50×0.40/500=0.64+0.45+0.04=1.13>1である。したがってタスクサーバ210はビジー状態に変わる。すなわち、タスクサーバ210は、この状況では、ビジー状態に変わることなく、最大でも1つの追加の長期間のスレッドしか実施できない。
一方、もう1つの短期間スレッドが実行されると、現在の実行妨害値=80%×0.8+2×0.75/5+51×0.40/500=0.64+0.3+0.0408=0.9808<1である。したがって、タスクサーバ210は、1つの追加の短期間のタスクを実施した後でもまだビジー状態ではない。
上述の例に示されるように、タスクサーバの実行妨害の推定における長期間のタスクおよび短期間のタスクの差別的な処理により、タスクサーバが柔軟性をもって効果的な自己均衡が実施できるようになる。
図3は、図2の分散タスクシステムを使用した例示的なプロセスのフローチャートを示す。この説明において、プロセスが説明される順番は、限定として解釈されることを意図せず、本方法、または代替の方法を行うために、任意の数の説明されるプロセスブロックが任意の順番で組み合わされ得る。
例示的なプロセス300において、タスクサーバは、タスク要求をタスクトランザクションサーバ220に送信する。次いで、タスクトランザクションサーバ220は、タスクの記録された実行条件に基づき、要求タスクサーバがタスクを実行することができるかどうかを判定し、要求タスクサーバに結果を送信する。チェック結果が肯定的である場合、要求タスクサーバは、タスクを実行する。本明細書で開示される、分散タスクシステム内のいかなるタスクサーバも、要求タスクサーバであり得る。例示を目的として、図2のタスクサーバ210は、以下において、タスクAを実行するための要求タスクサーバ220と仮定される。プロセスの例示的な実施形態は、以下のように説明される。
ブロック301において、タスクサーバ210は、タスク要求をタスクトランザクションサーバ220に送信する。タスク戦略ユニット211は、タスクAを実行するために要求をタスクトランザクションサーバ220に送信するよう自己均衡ユニット212をトリガする。
ブロック302において、タスクサーバ210は、設定された第1の時間間隔内にタスクトランザクションサーバ220からフィードバックが受信されたかどうかを判定する。「はい」である場合、プロセスはブロック304に進む。そうでない場合、プロセスはブロック303に進む。設定された第1の時間間隔は、分散タスクシステムおよびその管理に好適ないかなる現実的な時間であってもよい。
ブロック303において、タスクサーバ210は、タスクトランザクションサーバ220からフィードバックを受信することなく第2の時間間隔が経過したかどうかを判定する。「はい」である場合、プロセスはブロック308に進み、タスク要求を破棄する。そうでない場合、プロセスはブロック301に戻る。設定された第2の時間間隔は、分散システムおよびその管理に好適ないかなる現実的な時間であってもよい。一般に、第1の時間間隔がそうであるように、第2の時間間隔がプロセス300の開始から数える場合、第2の時間間隔は、第1の時間間隔よりも長くなければならない。第2の時間間隔が第1の時間間隔の終了から数える場合、第2の時間間隔はいかなる好適な長さであってもよい。例えば、第2の時間間隔は30秒であってもよく、またはスケジューリング間隔の分数(例えば1/3)であってもよい。
ブロック304において、タスクトランザクションサーバ220は、タスクサーバ210がタスクAを実行することができるかどうかを判定し、フィードバックをタスクサーバ210に送信する。「はい」である場合、プロセスはブロック305に進む。それ以外の場合、プロセスはブロック310において終了する。判定は、タスク実行条件の記録に基づき得る。
タスクサーバ210がタスクAを実行することができるかどうかを判定するために、タスクトランザクションサーバ220は、タスクAのタスク実行条件、および必要な場合は、他の任意のタスクのタスク実行条件をチェックする。タスクの実行条件は、タスクの要求元または実行プログラムの識別(すなわち、タスクを要求するタスクサーバ、タスクを実行するタスクサーバ、タスクを実行するために割り当てられるタスクサーバ内の実行プログラムおよびその数等)、タスクの以前の実行時間、およびタスク名等の情報により特徴付けることができる。例えば、異なるタスクサーバ(タスクサーバ230)が現在タスクAを実行していると判定された場合、タスクトランザクションサーバ220は、タスクサーバ210がタスクAを同時に実行することができないと決定することができる。他のタスクサーバが現在タスクAを実行していない場合、タスクサーバ210はタスクAを実行することができる。
タスクサーバ210がタスクAを実行することができないと判定された場合、プロセス300はブロック310において終了することができる。しかし、タスクサーバ210がタスクAを実行することができると判定された場合(例えばタスクAがタスクサーバ230により実行されていないため)は、タスクトランザクションサーバ220はフィードバックをタスクサーバ210に送信して、タスクサーバ210がタスクAを実行することができることを示し、プロセスはブロック305に進む。
ブロック305において、自己均衡ユニット212は、タスクサーバ210がビジー状態であるかどうかを検査する。「はい」である場合、プロセスはブロック306に進む。それ以外の場合、プロセスはブロック309に進む。自己均衡ユニット212は、以下を含むいくつかの因子を考慮することにより、タスクサーバ210がビジー状態であるかどうかを判定することができる。
(i)タスクサーバ210のスレッドの現在の数が、スレッドの数に対する設定境界値以上であるかどうか(「はい」の場合、タスクサーバ210はビジー状態である)。
(ii)長期間のスレッドの現在の数が、長期間のスレッドの数に対する設定境界値以上であるかどうか(「はい」の場合、タスクサーバ210はビジー状態である)。
(iii)タスクサーバ210の実行妨害値が、設定閾値(例えば1)以上であるかどうか(「はい」の場合、タスクサーバ210はビジー状態である)。
タスクサーバ210の実行妨害値は、CPU使用率、スレッドの現在の数、および長期間のスレッドの現在の数に従い計算され得る。
プロセス300が、以下の条件を有し得る例を考える。
タスクサーバ210のスレッドの数に対する設定境界値が500
長期間のスレッドの数に対する現在の数が5
タスクサーバ210の現在のCPU使用率が85%
長期間のスレッドの現在の数が3
スレッドの現在の数が100。
タスクサーバ210の実行妨害値は、以下の式により計算され得る。
実行妨害値=CPU利用率×0.8+長期間のスレッドの数×0.75/5+スレッドの数×0.4/500
上記の式に従い、タスクサーバ210の現在の実行妨害値は、以下のように推定される。
85%×0.8+3×0.75/5+100×0.4/500=0.68+0.45+0.08=1.21
上記の実行妨害値は1.0を超えるため、タスクサーバ210はビジー状態であるとみなされる。したがって、プロセスはブロック306に進む。
上記式中で使用されている重みの値0.8、0.75および0.4は、経験的に得られる。これらは、分散タスクシステムのハードウェアおよびオペレーティングシステムにおける変更に従い修正することができる。
ブロック306において、自己均衡ユニット212は、タスクAのチェックメッセージをタスクトランザクションサーバ220に送信する。チェックメッセージは、タスクトランザクションサーバ220に、同じくタスクAの実行を要求している他の任意のタスクサーバがあるかどうかをチェックするように要求することができる。チェックメッセージは、タスクトランザクションサーバ220に、タスクサーバ210の現在のビジー状態を通知してもしなくてもよい。
ブロック307において、タスクトランザクションサーバ220は、他のタスクサーバ(例えばタスクサーバ230)がタスクAを実行するように要求したかまたは要求しているかどうかをチェックする。「はい」である場合、プロセスはブロック308に進む。それ以外の場合、プロセスはブロック309に進み、タスクサーバ210に、要求されたタスクAを実行するように指示する。タスクサーバ210のビジー状態に起因して、タスクAの実行が遅延する場合がある。代替として、タスクトランザクションサーバ220は、タスクAを実行することができる他の資源を用いてもよい。
ブロック308において、タスクAの実行に別のタスクサーバが利用可能であると判定された場合、ビジー状態のタスクサーバ210は、タスクAの実行の要求をキャンセルすることができ、310においてプロセスを終了する。
ブロック309において、自己均衡ユニット212は、タスクAを実行するようにタスク実行ユニット213をトリガする。プロセス300は、2つの例示的なシナリオでブロック309に到達する。第1のシナリオでは、タスクサーバ210がタスクAを実行することができ、さらにビジー状態にないと判定されたため、タスクサーバ210は続いて要求されたタスクAを実行する。第2のシナリオでは、タスクサーバ210はタスクを実行することができると判定されたが、タスクサーバ210は一時的にビジー状態であることが判明する。しかし同時に、タスクAの実行を要求している他のタスクサーバはないこともあり得る。このシナリオでは、いずれにしてもタスクサーバ210にタスクAを実行するように指示することが妥当となり得る。
図4は、図3においてタスクAを実行する前の例示的な前処理のフローチャートを示す。タスクサーバ210のタスク実行ユニット213は、タスクAを実行する前に前処理を行う。
ブロック401において、タスク実行ユニット213は、タスクAのデータを受信する。該データは、タスクAを実行する際に処理される。
ブロック402において、タスク実行ユニット213は、データの種類、およびデータを処理するために必要な実行時間に従い、受信したデータをデータグループにグループ化する。
ブロック403において、タスク実行ユニット213は、データグループを処理するために、実行プログラム等の実際の計算資源を各データグループに割り当てる。タスクサーバは、通常、ある特定のタスクを実行するために利用可能な複数の実行プログラムを有する。タスク実行ユニット213は、処理を必要とするデータの量およびデータを処理するために必要な時間等の各データグループの特徴に従い、タスクAの各データグループを実行するために好適な数の実行プログラムを動的に判定することができる。例えば、ある特定のデータグループが1000ユニットのデータを有し、1分以内に完了することを必要とする場合、タスク実行ユニット213は、このデータグループを処理するためには20の実行プログラムが必要と決定し得る。したがって、タスク実行ユニット213は、必要とされる実行プログラムが利用可能である場合は、このデータグループを処理するために十分な数(例えば20)の実行プログラムを割り当てる。
ブロック404において、実行ユニット213は、各データグループを処理し、タスクの実行条件を監視する。ブロック403に示されるように、実行ユニット213は、呼び出された実行プログラムが対応するデータグループの実行に最適であるように、異なる実行プログラムを呼び出して、異なるデータグループを実行することができる。実行ユニット213はまた、タスクAの様々な実行条件を監視することができる。例えば、実行ユニット213が、タスク(またはタスクのある特定のデータグループ)が最長許容実行時間よりも長い時間を要したことを検出した場合、実行ユニット213は、タスクの実行が異常状態であることを示すためにマークを付けることができる。
上述の例示的な実施形態は、タスクサーバ210がビジー状態であるかどうかを検査し、タスクサーバ210がビジー状態であることが判定された場合、実行のためにタスクを別のタスクサーバに転送する、自己均衡ユニット212を使用して、自己均衡を達成することができる。さらに、タスクトランザクションサーバ220は、タスクサーバ210のタスク要求に応じてフィードバックを提供する。フィードバックは、各タスクの実行条件に基づき、要求されたタスクの線形実行を確実にする。
実装環境
上述の技術は、サーバ、パーソナルコンピュータ(PC)、または演算ユニットを有する携帯型デバイス等のコンピュータデバイスを活用して実装することができる。
図5は、本開示の方法を実装するための例示的な環境を示す。コンピュータシステム501は、プロセッサ510、I/Oデバイス520、コンピュータ読み取り可能な媒体(例えばメモリ)530、およびネットワークインタフェース(図示せず)を含む、コンピュータデバイス502により実装される。541、542、および543等の他のコンピュータデバイスも同様のコンポーネントを有し得る。コンピュータデバイス502は、ネットワーク590を介して、サーバ541、542、および543と接続される。各コンピュータデバイス502、541、542、および543は、タスクトランザクションサーバまたはタスクサーバとして機能するために使用され得る。例えば、コンピュータデバイス502は、タスクトランザクションサーバとして機能することができ、各コンピュータデバイス541、542、および543は、タスクサーバとして機能することができる。
コンピュータ読み取り可能な媒体530は、アプリケーションプログラムモジュール532およびデータ534(タスク実行条件のデータ等)を格納する。アプリケーションプログラムモジュール532は、プロセッサ510により実行された際に、プロセッサ510に、本明細書に記載のプロセス(例えば、図3〜図4のプロセス)の動作を行わせる命令を含有する。
コンピュータ読み取り可能な媒体は、コンピュータデータを格納するために好適ないかなるメモリであってもよいことが理解される。そのようなメモリデバイスは、ハードディスク、フラッシュメモリデバイス、光データ記憶装置、およびフロッピー(登録商標)ディスクを含むが、これらに限定されない。さらに、コンピュータ実行可能な命令を含有するコンピュータ読み取り可能な媒体は、ローカルシステムにおけるコンポーネント、または複数の遠隔システムのネットワークを介して分散したコンポーネントから構成され得る。コンピュータ実行可能な命令のデータは、有形の物理メモリデバイスとして提供されても、電子的に伝送されてもよい。
また、コンピュータデバイスは、プロセッサ、I/Oデバイス、およびメモリ(内蔵メモリまたは外付けメモリのいずれか)を有するいかなるデバイスであってもよく、パーソナルコンピュータに限定されないことも理解される。例えば、コンピュータデバイスは、サーバ、PC、ゲーム機、セットトップボックス、および、テレビ、ディスプレイ、プリンタまたはデジタルカメラ等の別の電子デバイスに内蔵された演算ユニットであってもよいが、これらに限定されない。
特に、各コンピュータデバイス502、541、542、および543は、サーバコンピュータ、または、インターネットもしくはイントラネットのいずれかあってもよいネットワーク590を介して接続された、そのようなサーバコンピュータのクラスタであってもよい。このように構成された本開示の分散タスクシステムは、オンライン商取引の処理のために使用されるeコマースシステムの一部としての使用を含め、様々な計算タスクを扱うために使用し得る。
本発明の分散タスクシステムおよび分散タスク管理方法は、いかなる既存の分散タスクシステムおよび方法と組み合わせて使用してもよい。例えば、本開示の技術と組み合わせてリモートプロシージャコール(RPC)を使用してもよい。RPCは、コンピュータプログラムが、この遠隔インタラクションの詳細を明確に符号化するプログラマなしで、サブルーチンまたはプロシージャに、別のアドレス空間(一般には共有ネットワーク上の別のコンピュータ上)において実行させることを可能にする。
本明細書において議論された潜在的な利益および利点は、添付の請求項の範囲に対する限定または制限として解釈されるべきではないことが理解される。
構造的特徴および/または方法論的動作に固有の言語で説明してきたが、添付の特許請求の範囲で定義される本発明の主題事項は、必ずしも説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および動作は、本発明を実装する例示的な形態として開示されている。

Claims (18)

  1. スクトランザクションサーバ(220)と、
    少なくとも1つのタスクサーバ(210または230)と
    を備え、
    前記タスクトランザクションサーバ(220)は、前記タスクサーバ(210または230)から、タスクを要求するタスク要求を受信し、前記タスクサーバ(210または230)にフィードバックを提供し、要求された前記タスクの実行条件を記録するように構成され、前記タスクサーバ(210または230)は、前記タスク要求を前記タスクトランザクションサーバ(220)に送信し、前記タスクトランザクションサーバ(220)から受信した前記フィードバックに従い前記タスクを実行するように構成され、
    前記少なくとも1つのタスクサーバが、
    自己均衡ユニットと、
    タスク実行ユニットと
    をさらに備え、
    前記自己均衡ユニットは、前記タスク要求を前記タスクトランザクションサーバに送信し、前記タスクトランザクションサーバから前記フィードバックを受信し、前記フィードバックに従い前記タスクを実行するように前記タスク実行ユニットをトリガするように構成され、
    前記タスク実行ユニットは、前記自己均衡ユニットに接続され、前記タスクを実行するように構成され、
    前記自己均衡ユニットは、前記タスクサーバが前記タスクを実行することができることを前記フィードバックが示している場合、前記タスクサーバがビジー状態であるかどうかをチェックし、さらに、前記タスクサーバがビジー状態である場合、タスクチェックメッセージを前記タスクトランザクションサーバに送信するように構成され、
    前記タスクトランザクションサーバは、続いて別のタスクサーバが前記タスクを要求しているかどうかをチェックし、チェックの結果を前記自己均衡ユニットに返すように構成される
    ことを特徴とする分散タスクシステム。
  2. 前記タスク実行ユニットは、前記自己均衡ユニットの制御下で前記タスクを実行するように構成されることを特徴とする請求項に記載の分散タスクシステム。
  3. 前記少なくとも1つのタスクサーバが、前記自己均衡ユニットと接続され、前記タスク要求を送信するように前記自己均衡ユニットをトリガするために使用される、タスク戦略ユニットをさらに備えたことを特徴とする請求項に記載の分散タスクシステム。
  4. 前記システムは、タスクスレッドの現在の数および長期間のタスクスレッドの現在の数を判定するように構成され、
    前記タスクサーバは、
    前記タスクスレッドの現在の数が、タスクスレッドの数に対する設定境界値以上である、および
    前記長期間のタスクスレッドの現在の数が、長期間のタスクスレッドの数に対する設定境界値以上である
    という条件の少なくとも1つを満たす場合、ビジー状態であるとみなされることを特徴とする請求項に記載の分散タスクシステム。
  5. 前記システムは、タスクスレッドの現在の数および長期間のタスクスレッドの現在の数に基づいて、前記タスクサーバの実行妨害を判定するように構成され、前記タスクサーバは、前記タスクサーバの前記実行妨害が設定閾値以上の値を有する場合、ビジー状態であるとみなされることを特徴とする請求項に記載の分散タスクシステム。
  6. 前記システムは、前記タスクの実行データを取得し、前記実行データおよび前記タスクの実行時間に従い、前記実行データを複数のデータグループにグループ化し、各データグループを処理するように構成されることを特徴とする請求項1に記載の分散タスクシステム。
  7. 前記タスクトランザクションサーバおよび前記少なくとも1つのタスクサーバは、ネットワークを介して接続されることを特徴とする請求項1に記載の分散タスクシステム。
  8. 前記タスクトランザクションサーバおよび少なくとも1つの前記タスクサーバは、オンライン商取引の処理のために使用されるeコマースシステムの一部であることを特徴とする請求項1に記載の分散タスクシステム。
  9. タスクトランザクションサーバ(220)と、
    自己均衡ユニット(212または232)およびタスク実行ユニット(213または233)を有する、少なくとも1つのタスクサーバ(210または230)と
    を備え、
    前記タスクトランザクションサーバ(220)は、前記タスクサーバ(210または230)から前記タスクサーバが要求するタスクを受信し、前記タスクサーバ(210または230)が要求したタスクの実行条件を記録し、前記タスクサーバ(210または230)にフィードバックを提供するように構成され、
    前記少なくとも1つのタスクサーバ(210または230)は、当該タスクサーバ(210または230)が要求するタスクを前記タスクトランザクションサーバ(220)に送信し、前記タスクトランザクションサーバ(220)から前記フィードバックを受信するように構成され、
    前記タスクサーバ(210または230)の前記自己均衡ユニット(212または232)は、前記タスクトランザクションサーバ(220)からの前記フィードバックを処理し、前記タスクサーバ(210または230)が、当該タスクサーバ(210または230)が要求した前記タスクを実行するための実行基準を満たすかどうかを判定し、前記実行基準を満たす場合は、前記タスクサーバ(210または230)が要求した前記タスクを実行するように前記タスク実行ユニット(213または233)をトリガするように構成されることを特徴とする分散タスクシステム。
  10. 前記自己均衡ユニットは、前記タスクトランザクションサーバからの前記フィードバックを分析し、前記タスクサーバの運転状況を検査することにより、前記実行基準を満たすかどうかを判定することを特徴とする請求項に記載の分散タスクシステム。
  11. タスクサーバ(210または230)からタスクトランザクションサーバ(220)にタスク要求を送信するステップと、(301)
    前記タスクトランザクションサーバ(220)により、前記タスクの実行条件に基づき、前記タスクサーバ(210または230)が前記タスクを実行することができるかどうかを判定し、判定された結果を前記タスクサーバ(210または230)に送信するステップと、(304)
    前記タスクサーバ(210または230)が前記タスクを実行することができるとタスクトランザクションサーバ(220)が判定した場合、前記タスクサーバ(210または230)がビジー状態であるかどうかを前記タスクサーバ(210または230)により最初にチェックするステップと、(305)
    前記タスクサーバ(210または230)がビジー状態である場合、前記タスクサーバ(210または230)によりタスクチェックメッセージを前記タスクトランザクションサーバ(220)に送信するステップと、(306)
    前記タスクトランザクションサーバ(220)により、別のタスクサーバが前記タスクを要求しているかどうかを次にチェックし、当該次のチェックの結果を前記タスクサーバ(220)に送信するステップと、
    前記次のチェックの結果が肯定的である場合、前記タスクサーバ(210または230)により前記タスク要求を破棄し、(308)
    前記次のチェックの結果が否定的である場合、前記タスクサーバ(210または230)により前記タスクを実行するステップと(309)
    を含むことを特徴とする分散タスク管理方法。
  12. タスクサーバにより前記タスク要求をタスクトランザクションサーバに送信した後、第1の時間間隔内に前記タスクトランザクションサーバからフィードバックが受信された場合、前記タスクサーバは前記タスクを実行し、それ以外の場合、別のタスク要求を前記タスクトランザクションサーバに送信することを特徴とする請求項11に記載の分散タスク管理方法。
  13. 第2の時間間隔内に前記タスクトランザクションサーバからフィードバックが受信されない場合、前記タスク要求を破棄するステップをさらに含むことを特徴とする請求項12に記載の分散タスク管理方法。
  14. 前記タスクトランザクションサーバにより、前記タスクサーバが前記タスクを実行することができるかどうかを判定するステップが、
    前記タスクが別のタスクサーバにより現在実行中であるか否かをチェックするステップと、
    記タスクが別のタスクにより現在実行中の場合、前記タスクサーバは前記タスクを実行することができないと結論付け、それ以外の場合、前記タスクサーバは前記タスクを実行することができると結論付けるステップと
    を含むことを特徴とする請求項11に記載の分散タスク管理方法。
  15. 前記タスクサーバがビジー状態であるかどうかをチェックするステップが、
    タスクスレッドの現在の数が設定境界値以上であるかどうかを判定し、肯定的である場合、前記タスクサーバがビジー状態であると結論付けるステップを含むことを特徴とする請求項11に記載の分散タスク管理方法。
  16. 前記タスクサーバがビジー状態であるかどうかをチェックするステップが、
    長期間のタスクスレッドの現在の数が設定境界値以上であるかどうかを判定し、肯定的である場合、前記タスクサーバがビジー状態であると結論付けるステップを含むことを特徴とする請求項11に記載の分散タスク管理方法。
  17. 前記タスクサーバがビジー状態であるかどうかをチェックするステップが、
    CPU使用率、タスクスレッドの現在の数、および長期間のタスクスレッドの現在の数に基づいて、前記タスクサーバの実行妨害値を計算するステップと、
    前記実行妨害値が設定閾値以上である場合、前記タスクサーバがビジー状態であると結論付けるステップと
    を含むことを特徴とする請求項11に記載の分散タスク管理方法。
  18. 前記タスクサーバにより前記タスクを実行するステップが、
    前記タスクのデータを取得するステップと、
    処理が必要なデータの量およびデータ処理時間に従い、前記データを複数のデータグループにグループ化するステップと、
    各データグループを処理するステップと
    を含むことを特徴とする請求項11に記載の分散タスク管理方法。
JP2009548390A 2007-01-30 2008-01-29 分散タスクシステムおよび分散タスク管理方法 Active JP5679256B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710002961.6 2007-01-30
CN2007100029616A CN101236513B (zh) 2007-01-30 2007-01-30 一种分布式任务系统和分布式任务管理方法
PCT/US2008/052310 WO2008094907A2 (en) 2007-01-30 2008-01-29 Distributed task system and distributed task management method

Publications (2)

Publication Number Publication Date
JP2010517198A JP2010517198A (ja) 2010-05-20
JP5679256B2 true JP5679256B2 (ja) 2015-03-04

Family

ID=39674752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009548390A Active JP5679256B2 (ja) 2007-01-30 2008-01-29 分散タスクシステムおよび分散タスク管理方法

Country Status (6)

Country Link
US (1) US8533729B2 (ja)
EP (1) EP2108154B1 (ja)
JP (1) JP5679256B2 (ja)
CN (1) CN101236513B (ja)
TW (1) TWI439940B (ja)
WO (1) WO2008094907A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5132459B2 (ja) * 2008-07-18 2013-01-30 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、記憶媒体及びプログラム
CN101510167B (zh) * 2009-03-31 2016-04-20 阿里巴巴集团控股有限公司 一种插件运行的方法、装置及系统
JP5675082B2 (ja) * 2009-11-26 2015-02-25 キヤノン株式会社 印刷装置及びその処理方法
CN101882161B (zh) * 2010-06-23 2012-07-04 中国工商银行股份有限公司 应用级异步任务调度系统和方法
CN102043675B (zh) * 2010-12-06 2012-11-14 北京华证普惠信息股份有限公司 一种基于任务处理请求任务量大小的线程池管理方法
CN102902587B (zh) * 2011-07-28 2015-10-07 中国移动通信集团四川有限公司 分布式任务调度方法、系统和装置
US9008839B1 (en) 2012-02-07 2015-04-14 Google Inc. Systems and methods for allocating tasks to a plurality of robotic devices
CN103377087B (zh) * 2012-04-27 2017-06-23 北大方正集团有限公司 一种数据任务处理方法、装置及系统
US9342326B2 (en) * 2012-06-19 2016-05-17 Microsoft Technology Licensing, Llc Allocating identified intermediary tasks for requesting virtual machines within a trust sphere on a processing goal
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
CN103905515A (zh) * 2012-12-28 2014-07-02 北大方正集团有限公司 一种分布式互联网信息下载系统及方法
US9146777B2 (en) 2013-01-25 2015-09-29 Swarm Technology Llc Parallel processing with solidarity cells by proactively retrieving from a task pool a matching task for the solidarity cell to process
US9313087B2 (en) * 2013-01-29 2016-04-12 Stg Interactive, S.A. Distributed computing architecture
CN104468174B (zh) * 2013-09-25 2017-10-13 北京新媒传信科技有限公司 一种集群服务器执行任务的方法和装置
CN103729241B (zh) * 2013-12-12 2016-08-31 华中科技大学 一种多核环境下OpenMP任务并行的优化方法
CN104734923B (zh) * 2013-12-18 2018-12-28 青岛海尔空调器有限总公司 应用任务的执行控制方法和系统、消息服务器
US20160103708A1 (en) * 2014-10-09 2016-04-14 Profoundis Labs Pvt Ltd System and method for task execution in data processing
CN105630588B (zh) * 2014-11-06 2019-03-01 卓望数码技术(深圳)有限公司 一种分布式作业调度方法和系统
CN107430526B (zh) * 2015-03-24 2021-10-29 瑞典爱立信有限公司 用于调度数据处理的方法和节点
CN104915258B (zh) * 2015-06-09 2019-07-02 北京京东尚科信息技术有限公司 分布式任务调度的方法和装置
US20170118293A1 (en) * 2015-10-26 2017-04-27 Trilliant Networks, Inc. Method and system for efficient task management
CN105677469B (zh) * 2016-01-06 2019-12-27 北京京东世纪贸易有限公司 定时任务执行方法及装置
CN107229517A (zh) 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 任务调度方法和装置
CN107547608A (zh) * 2016-06-29 2018-01-05 华为技术有限公司 分布式任务处理方法和装置
CN107678840B (zh) * 2016-08-01 2021-08-24 百度在线网络技术(北京)有限公司 用于运行任务的系统、方法和装置
TWI608360B (zh) * 2016-09-02 2017-12-11 群暉科技股份有限公司 任務執行方法及任務調度系統
US10613904B2 (en) 2017-05-10 2020-04-07 International Business Machines Corporation Non-directional transmissible task
CN110633133A (zh) * 2018-06-21 2019-12-31 中兴通讯股份有限公司 一种任务处理方法、装置及计算机可读存储介质
CN110489222B (zh) * 2019-08-22 2025-01-28 深圳前海微众银行股份有限公司 任务调度方法、系统、集群服务器及可读存储介质
CN110851363A (zh) * 2019-11-12 2020-02-28 广东电网有限责任公司 一种云测试系统及方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
JP2875284B2 (ja) * 1989-06-23 1999-03-31 株式会社日立製作所 計算機システム及びその課金処理方法
CA2019327C (en) 1990-06-19 2000-02-29 Peter K.L. Shum User inquiry facility for data processing systems
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
US5710918A (en) 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US6393481B1 (en) * 1997-10-06 2002-05-21 Worldcom, Inc. Method and apparatus for providing real-time call processing services in an intelligent network
JP2000242614A (ja) 1999-02-22 2000-09-08 Nippon Steel Corp 分散処理システムおよびその方法、分散処理を行うための端末装置および記録媒体
US6728961B1 (en) * 1999-03-31 2004-04-27 International Business Machines Corporation Method and system for dynamically load balancing a process over a plurality of peer machines
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6298451B1 (en) * 1999-11-02 2001-10-02 Idini Corporation Directory-based failure recovery and load balancing system
US6748414B1 (en) 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for the load balancing of non-identical servers in a network environment
US6389448B1 (en) 1999-12-06 2002-05-14 Warp Solutions, Inc. System and method for load balancing
WO2001081829A1 (en) * 2000-04-27 2001-11-01 Brio Technology, Inc. Method and apparatus for processing jobs on an enterprise-wide computer system
US7406515B1 (en) * 2000-06-27 2008-07-29 Aspect Communications System and method for automated and customizable agent availability and task assignment management
US7500243B2 (en) 2000-08-17 2009-03-03 Sun Microsystems, Inc. Load balancing method and system using multiple load balancing servers
JP2002091936A (ja) 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
US6938087B1 (en) 2000-09-12 2005-08-30 Hewlett-Packard Development Company, L.P. Distributed universal communication module for facilitating delivery of network services to one or more devices communicating over multiple transport facilities
US7203747B2 (en) 2001-05-25 2007-04-10 Overture Services Inc. Load balancing system and method in a multiprocessor system
JP2003178041A (ja) * 2001-12-11 2003-06-27 Dainippon Printing Co Ltd 負荷分散システム
WO2003052597A2 (en) 2001-12-14 2003-06-26 Koninklijke Philips Electronics N.V. Data processing system having multiple processors and task scheduler and corresponding method therefore
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US7284067B2 (en) * 2002-02-20 2007-10-16 Hewlett-Packard Development Company, L.P. Method for integrated load balancing among peer servers
US20030195962A1 (en) 2002-04-10 2003-10-16 Satoshi Kikuchi Load balancing of servers
US6988139B1 (en) * 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
CN1294509C (zh) * 2002-09-06 2007-01-10 劲智数位科技股份有限公司 具有分布式负载平衡系统的集群计算机
JP2004264905A (ja) 2003-02-17 2004-09-24 Matsushita Electric Ind Co Ltd 分散計算機システムの管理方法および分散計算機管理システム
CN1201246C (zh) * 2003-02-24 2005-05-11 武汉大学 一种集群服务器的动态负载均衡方法
US7912954B1 (en) 2003-06-27 2011-03-22 Oesterreicher Richard T System and method for digital media server load balancing
US20050033796A1 (en) 2003-08-06 2005-02-10 International Business Machines Corporation Online autonomic operations guide
US20050033809A1 (en) 2003-08-08 2005-02-10 Teamon Systems, Inc. Communications system providing server load balancing based upon weighted health metrics and related methods
US7594228B2 (en) 2003-09-23 2009-09-22 Lam Siu H Method and apparatus to perform task scheduling
US7389510B2 (en) 2003-11-06 2008-06-17 International Business Machines Corporation Load balancing of servers in a cluster
US8156217B2 (en) 2003-11-24 2012-04-10 Hewlett-Packard Development Company, L.P. Dynamically balancing load for servers
US7047252B2 (en) * 2003-12-02 2006-05-16 Oracle International Corporation Complex computation across heterogenous computer systems
US20060129684A1 (en) 2004-11-10 2006-06-15 Chutney Technologies, Inc. Apparatus and method for distributing requests across a cluster of application servers
US7818401B2 (en) 2004-12-23 2010-10-19 General Instrument Corporation Method and apparatus for providing decentralized load distribution
JP2006227963A (ja) 2005-02-18 2006-08-31 Fujitsu Ltd 多段負荷分散装置、方法及びプログラム
CN100362806C (zh) 2005-03-16 2008-01-16 华为技术有限公司 一种实现分布式系统中负载分担的方法
TWI298129B (en) 2006-01-20 2008-06-21 Hon Hai Prec Ind Co Ltd System and method for processing files distributively
CN100401707C (zh) 2006-05-31 2008-07-09 北京和利时系统工程有限公司 一种分布式控制系统中的远程过程调用方法及系统

Also Published As

Publication number Publication date
CN101236513B (zh) 2012-07-18
TWI439940B (zh) 2014-06-01
TW200928983A (en) 2009-07-01
US20100146516A1 (en) 2010-06-10
US8533729B2 (en) 2013-09-10
HK1119808A1 (en) 2009-03-13
EP2108154B1 (en) 2018-12-12
EP2108154A2 (en) 2009-10-14
WO2008094907A2 (en) 2008-08-07
WO2008094907A3 (en) 2008-10-16
EP2108154A4 (en) 2011-03-02
CN101236513A (zh) 2008-08-06
JP2010517198A (ja) 2010-05-20

Similar Documents

Publication Publication Date Title
JP5679256B2 (ja) 分散タスクシステムおよび分散タスク管理方法
US8819238B2 (en) Application hosting in a distributed application execution system
JP4921054B2 (ja) 負荷分散制御システム及び負荷分散制御方法
US10614004B2 (en) Memory transaction prioritization
US11606261B2 (en) Data service overload detection and mitigation
US9875141B2 (en) Managing pools of dynamic resources
US10560537B2 (en) Function based dynamic traffic management for network services
CN107729559A (zh) 数据库读写异步访问的方法、系统、设备及存储介质
KR20190028477A (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
US8914582B1 (en) Systems and methods for pinning content in cache
JP6972796B2 (ja) ソフトウェアサービス実行装置、システム、及び方法
US9851988B1 (en) Recommending computer sizes for automatically scalable computer groups
US20060015875A1 (en) Distributed processing controller, distributed processing control method, and computer product
US9386087B2 (en) Workload placement in a computer system
JP6244949B2 (ja) 情報処理装置、制御方法、および制御プログラム
US8973007B1 (en) Adaptive lock list searching of waiting threads
US9298576B2 (en) Collecting processor usage statistics
CN103257899A (zh) 计算机系统
CN106201847B (zh) 考虑云平台主机性能衰减的任务分配方法、装置和系统
JP2009252050A (ja) サーバ負荷管理システム、サーバ負荷管理方法、サーバ負荷管理プログラム
KR101248470B1 (ko) 자원 모니터링 컴퓨팅 장치, 방법 및 그 방법을 실행시키기 위한 프로그램을 기록한 기록매체
JP6112205B2 (ja) 情報処理システム、装置、方法及びプログラム
Dou et al. Towards application performance fairness on clouds
JP5146272B2 (ja) 情報処理装置
CN121166341A (zh) 一种计算资源释放方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130405

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141225

R150 Certificate of patent or registration of utility model

Ref document number: 5679256

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250