JP2020074101A - コンピュータ処理のためのリソース割当て - Google Patents

コンピュータ処理のためのリソース割当て Download PDF

Info

Publication number
JP2020074101A
JP2020074101A JP2019229115A JP2019229115A JP2020074101A JP 2020074101 A JP2020074101 A JP 2020074101A JP 2019229115 A JP2019229115 A JP 2019229115A JP 2019229115 A JP2019229115 A JP 2019229115A JP 2020074101 A JP2020074101 A JP 2020074101A
Authority
JP
Japan
Prior art keywords
amount
backlog
job
determined
processing resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019229115A
Other languages
English (en)
Other versions
JP6971294B2 (ja
Inventor
ブラッドショウ,ロバート
Bradshaw Robert
モクテスマ,ラファエル・デ・ヘスス・フェルナンデス
De Jesus Fernandez Moctezuma Rafael
ミルズ,ダニエル
Mills Daniel
マクビーティ,サミュエル・グリーン
Green Mcveety Samuel
ウィットル,サミュエル・カール
Carl Whittle Samuel
マクシメンカ,アンドレイ
Maksimenka Andrei
アラド,コスミン・イオネル
Ionel Arad Cosmin
シールズ,マーク・ブライアン
brian shields Mark
ノーバー,ハリス・サミュエル
Samuel Nover Harris
ファンドリヒ,マヌエル・アルフレート
Alfred Fahndrich Manuel
ガードナー,ジェフリー・ポール
Paul Gardner Jeffrey
シュムリアン,ミクハイル
Shmulyan Mikhail
ラックス,ルーベン
Lax Reuven
アルタイ,アフメット
Altay Ahmet
チャンバーズ,クレイグ・ディ
D Chambers Craig
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2020074101A publication Critical patent/JP2020074101A/ja
Application granted granted Critical
Publication of JP6971294B2 publication Critical patent/JP6971294B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ストリーム処理において入力量の急上昇または低下へ柔軟に応答する。【解決手段】データストリームを入力として受信するジョブが実行される。ジョブについて、第1の期間にわたるバックログ増大と、バックログ量と、処理リソースの量を調整するか否か、とが繰り返し判定される。ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量が調整される。ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量が維持される。【選択図】図1

Description

関連出願の相互参照
本願は、2016年3月4日に出願された米国仮出願第62/303,827号に基づく優先権を主張し、その開示を本明細書に引用により援用する。
本明細書は、並列処理環境における入力のコンピュータ処理に関する。
背景
コンピュータネットワークは、リソースおよび情報の共有を可能にする通信チャネルによって相互接続されたコンピュータおよび他のハードウェアの集合である。通信プロトコルは、コンピュータネットワークにおいて情報を交換するための規則およびデータフォーマットを規定する。
概要
一局面において、方法はコンピュータシステムによって行なわれる。方法は、複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを実行するステップを備える。データストリーム内のデータ量は、無限である。方法は、ジョブについて、ジョブに入力される受信されたデータストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、ジョブに入力される受信されたデータストリームにおける未処理データの量であるバックログ量と、バックログ増大およびバックログ量に基づいて、ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップを含む。方法は、ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量を調整するステップを含む。方法は、ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量を維持するステップを含む。
実現例は、以下の特徴のうちのいずれか、もしくはすべてを含んでもよく、または以下の特徴を含まなくてもよい。判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標と等しいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標と等しいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標未満であると判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を削減するステップを含む。判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標よりも大きいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標未満であると判定され、バックログ増大が正であると判定され、かつ、バックロ
グ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標以上であると判定され、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。バックログ増大はデータサイズの大きさである。データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。バックログ増大は処理時間の長さである。処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。バックログ量はデータサイズの大きさである。データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。バックログ量は処理時間の長さである。処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。方法は、ジョブについて、プロセッサ使用率を繰り返し判定するステップをさらに含み、ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定するステップは、さらにプロセッサ使用率に基づく。判定の繰り返しについて、プロセッサ使用率はある値未満であり、プロセッサ使用率がある値未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップを含む。プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップは、ジョブに割当てるリソースの離散数を減少させるステップを含み、離散数はプロセッサ使用率に基づく。離散数はコンピュータメモリディスクの数である。バックログ増大およびバックログ量に基づいてジョブに割当てる処理リソースの量を調整するか否かを判定するステップは、ジョブに割当てる処理リソースの量の変動を生じさせる判定するステップを平滑化するステップを含む。判定するステップを平滑化するステップは、第2の期間待つステップを含む。判定するステップを平滑化するステップは、ジョブに割当てる処理リソースの量を調整するか否かの複数の判定を平均化するステップを含む。
一局面において、システムは、コンピュータプログラム命令を実行するように構成された1つ以上のプロセッサと、コンピュータプログラム命令が符号化されたコンピュータ記憶媒体とを備え、コンピュータプログラム命令は、1つ以上のプロセッサによって実行されると、コンピュータデバイスに演算を行なわせる。演算は、複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを行なわせる。データストリーム内のデータ量は、無限である。演算は、ジョブについて、ジョブに入力される受信されたデータストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、ジョブに入力される受信されたデータストリームにおける未処理データの量であるバックログ量と、バックログ増大およびバックログ量に基づいて、ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップを含む。演算は、ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量を調整するステップを含む。演算は、ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量を維持するステップを含む。
ここで記載されるシステムおよび処理を用いて、多くの潜在的な利点が提供され得る。リソース割当てレベルを判定するための測定基準としてバックログ量を用いることによって、過剰供給および過少供給という不都合が低減または排除され得る。過剰供給は、使用されない、またはアイドル状態のネットワークリソースを生じさせるため、コストが上昇
し、処理可能なジョブ数が減少する。作業負荷に合わせてリソース割当てを削減することによって、使用されていないリソースが他のジョブのために自由に使えるようになり得る。過少供給はバックログの増加につながり、データ損失およびレイテンシの増大を生じさせるおそれがある。作業負荷に合わせてリソース割当てを増加させることによって、入力が増加した際にジョブをより速く処理することができる。多くの場合において、データは、予測不能に増加または減少し得るストリーム、または連続する無限のデータの流れとしてジョブに入力される。この入力を一括として扱い、または最悪のシナリオのために計画するのではなく、この入力に動的に応答することによって、入力の大きな急上昇または低下への柔軟な応答が可能になる。
他の特徴、局面、および潜在的な利点は、添付の明細書および図面から明らかになるである。
図面の説明
さまざまな図面における同様の参照符号は、同様の要素を指す。
ジョブ群へのリソース割当てをオートチューニングする、高度に分散されたコンピューティング環境のブロック図である。 オートチューニングを行なう場合および行わない場合のジョブへのリソース割当てを示すチャートを含む図である。 経時的なストリーミング信号を示すチャートを含む図である。 オートチューニングリソース割当てのための処理例のフローチャートである。 リソース割当てを増加するか削減するかを判定するための処理例のフローチャートである。 タスクのセットアップ、サイズ変更、および休止のための処理例のフローチャートである。 タスクのセットアップ、サイズ変更、および休止のための処理例のフローチャートである。 タスクのセットアップ、サイズ変更、および休止のための処理例のフローチャートである。 コンピューティングデバイスの例を示す概略図である。
詳細な説明
共用並列コンピューティング環境において、コンピューティングリソースは、異なるタスク(単一のジョブ内の異なる並列実行タスク、および、同時に処理され得る異なるジョブの両方)に割当てられ得る。それらのリソースの割当て方を決定するために、ジョブには、許容される入力バックログの量を規定するバックログサイズが割当てられ得る。次いで、実際のバックログを割当てられたバックログレベル以下に保つために、バックログの実際のサイズに基づいてリソースが動的に割当てられたり除去されたりする。これにより、例えば、特定のジョブの要求に経時的に合致するリソースの動的割当てを可能にすることができる。
この動的割当ては、オートスケーリングと呼ばれることがある。これは、特定のジョブに利用可能なリソースが、ジョブに供給される入力の処理要件に経時的に合致するように自動的にスケール変更されるからである。入力量が経時的に変化するのに伴って、許容できない未処理入力が生じるのを防ぐためには、より多くのリソースが必要になる。この未処理入力はバックログを生じさせる。バックログとは、本質的には、処理に利用可能であるが未処理の入力である。
バックログは、データサイズ(例えば、バイト、メガバイト)、処理時間(例えば、データが利用可能であるが未処理である継続時間、現在のリソース量または一定のリソース量を用いて現在のバックログデータのすべてを処理するまでの予想時間、経時的なデータのスループットの値)、カウント(例えば、ファイルまたはシャードの数)、または他の適切な次元で計測され得る。
バックログサイズは、オートチューニングのための有用な測定基準として使用される。なぜなら、それは他のコンピューティングリソースにも影響を与え得て、コンピュータベースの製品の有用性に影響を与え得て、かつ、人間のユーザによって容易に理解され得る測定基準だからである。例えば、コンピュータメモリに格納されたバックログは、バックログの増加に伴ってより多くのメモリを必要とするであろう。バックログを目標サイズ以下に保つことにより、必要メモリ量を把握し、計画を立てることができる。同様に、バックログを目標サイズ未満に保つことにより、高い質のサービスが提供され得る。ソーシャルメディア投稿を構文解析するジョブは、投稿が公開されたときに当該投稿を構文解析して初めて有用であり得る。構文解析されていない投稿のバックログを例えば2分未満に保つことによって、ジョブがその意図された目的のために有用であることが保証され得る。人間のユーザに理解できる次元でバックログを記録および報告することによって、ユーザは、如何にしてジョブを利用するか、および、如何にして将来のジョブを活用して報酬を得ることができるかについて決定することができる。
図1は、ジョブ群へのリソース割当てをオートチューニングする、高度に分散されたコンピューティング環境100のブロック図である。ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組み合わせなどのコンピュータネットワーク102により、分散処理システム104と、ストリーミングデータプロバイダ106と、1つ以上のネットワーク記憶装置108とが接続される。分散処理システム104は、例えば、分散処理システムマネージャ110と、ワーカーマネージャ112と、複数のデータプロセッサ114とを含み得る。ネットワーク記憶装置108は分散処理システム104とは別に図示されているが、分散処理システム104に含まれてもよい。
ストリーミングデータプロバイダ106は、分散処理システム104による処理のためにデータを提供する。分散処理システム104は、データレコードおよび命令を取得して、当該データレコード上の1つ以上のジョブ111を行ない得る。一例として、ストリーミングデータプロバイダ106は、フィルタリング、ソーティング、および他の分析のために、分散処理システム104に検索クエリレコードを提供し得る。検索クエリレコードは、例えば、検索システムに送られる検索クエリおよび関連情報(例えば、クエリが受取られた時間を示すタイムスタンプなど)を含み得る。
ストリーミングデータプロバイダからのデータは、例えば、無限であり、予測不能であり、非常に変化しやすく、および/またはバースト的であり得る。無限のデータは、絶えずアップデートされ、確定したサイズを持たないデータセット、すなわちストリーミングデータを含む。絶えずアップデートされるデータセットの例は、発生するサーバログ、または処理されるすべての新たな命令であり得る。予測不能なデータは、少なくとも何らかの次元において予測が難しいデータ、予測ができないデータ、または、予測されていないデータを含む。例えば、ユーザが受信する電子メールのレートは予測不能であり得る。なぜなら、それは高度に分散されたコンピューティング環境100がアクセスしない、またはアクセスできない要因に依存し得るからである。非常に変化しやすいデータは、少なくとも1つの次元において著しく変化するデータを含む。非常に変化しやすいデータは、極めて季節的または周期的なデータであり得る。小売業者のウェブサイトからのログのアッ
プデートは、1年のうちの時期および買い物シーズン次第で速くなったり遅くなったりし得る。バーストデータは、現在のデータ生成レートが平均のデータ生成レートに近いことがほとんどないデータを含む。言い換えると、多くの場合、バーストデータは、高度に分散されたコンピューティング環境100によってバーストで大量受信され、その後に少ない量のデータ受信が続く。
分散処理システムマネージャ110は、例えば、ワーカー113によって実行されるジョブ111を割当てることによって、データプロセッサ114のうちの1つ以上をワーカー113に割当てることによって、ネットワーク記憶装置108の1つ以上のディスクをワーカー113に割当てることによって、障害およびバックログを特定して対処することによって、および、一時的および長期的なストレージを管理することによって、データ処理システム104のためのプロセススケジューリングおよびリソース管理サービスを行ない得る。ワーカーマネージャ112は、分散処理システムマネージャ110とは別に図示されているが、いくつかの実現例では、分散処理システムマネージャ110の一部であってもよい。ワーカーマネージャ112は、ワーカー113、データプロセッサ114、およびネットワーク記憶装置108を監視して、作業負荷バックログが生じているか否か、および作業負荷バックログがいつ生じるかを判定する。作業負荷バックログが生じている場合、または、リソース(例えば、データプロセッサ114および/またはネットワーク記憶装置108)がアイドル状態で作業負荷バックログが生じていない場合、作業負荷マネージャ112は、ジョブ111に割当てるリソースをオートチューニングし得る。
ジョブ111は、ストリーミングデータプロバイダ106からのデータを処理し、出力を生成する。この出力は、ネットワーク記憶装置108に格納されるか、または他の目的で使用され得る。いくつかの実現例では、ジョブ111は、複数のデータストリームから入力データを受信する。例えば、ジョブ11は、ストリーミングデータプロバイダ106からソーシャルメディア投稿のストリームを受信し、別の(図示しない)ストリーミングデータプロバイダから天気データのストリームを受信し得る。受信された入力データのストリームを処理するために、ジョブ111にワーカー113が割当てられてもよい。各ワーカー113には、例えば、1つ以上のプロセッサ114と、ネットワーク記憶装置108の1つ以上のディスク(現実または仮想)とが割当てられてもよい。特定のジョブ111に割当てられたワーカー113は、次いで、ジョブ111によって規定された処理に従ってストリーミング入力データを処理し、出力を生成し得る。この出力は、ネットワーク記憶装置108に格納され、別の場所に送信され得る。
この例では、リソース(例えば、データプロセッサ114およびネットワーク記憶装置108)がワーカー113に割当てられ、ワーカー113がジョブ111に割当てられる場合を説明しているが、リソースをジョブ111に割当てるための他の仕組みも可能である。例えば、データプロセッサ114および/またはネットワーク記憶装置108のディスクが、分散処理システムマネージャによってジョブ111に直接割当てられてもよい。
いくつかの場合には、ジョブ111が複数の処理に分解され、各々の処理が1つのワーカー113に割当てられてもよい。これは、例えばジョブ111が並列化可能である場合(例えば、ジョブ111が、互いに独立して実行され得る複数の動作に分解可能である場合)に有利であり得る。
図2は、オートチューニングを行なう場合および行わない場合のジョブへのリソース割当てを示すチャート200、208、および216を含む図である。オートチューニングを行わない場合、リソースは過剰供給または過少供給の場合がある。過剰供給の場合にはリソースが無駄になる可能性があり、一方、過少供給の場合には、作業負荷の急上昇の際に遅延につながる可能性がある。これに対して、作業負荷の増加時にワーカーの供給をオ
ートチューニングし、同様に作業負荷の減少時にワーカーの数を削減すると、需要に従ってリソースを動的に調整することが可能である。
チャート200では、リソースの過剰生成を示す。線202は、線204で示す作業負荷が到達するよりも常に多い、一定レベルの供給を表わす。領域206は、割当てられたものの使用されていない、つまり無駄になったリソースを表わす。
チャート208では、リソースの過少生成を示す。線210は、急上昇の際に線212で示す作業負荷よりも少ない、一定レベルの供給を表わす。領域214は、処理できずにバックログとなる作業負荷を表わす。
チャート216では、オートチューニングされたリソースの割当てを示す。線218は、線220で示す作業負荷の変化に応じたリソース割当ての動的割当てレベルを表わす。図示のように、割当てられたリソースは、作業負荷とほぼ同じか、または作業負荷よりも多い。さらに、割当てられたリソースよりも作業負荷が多くなることによってバックログの発生が増加する場合もあるが、リソース割当てのレベルがすぐに高まり、その結果、短期間でリソース割当てが増加する。このように、バックログの増加はリソース割当ての増加によって対処され、処理されて目標レベルに戻され得る。
一例として、オートチューニングは以下の信号を用いて決定を行なうことができる。
CPU使用率:ジョブにおけるすべてのワーカーVMの平均CPU使用率
ステージバックログ増大:未処理データのサイズ
ステージバックログ量:ジョブに入力される受信されたデータストリームにおける未処理データの量
いくつかの実現例では、バックログ量はバックログ時間であってもよい。バックログ時間とは、現在のスループットで追加の入力がない場合に、そのバックログを処理するのに必要となるであろう時間の長さである。他の信号が使用されてもよい。
オートチューニングは、以下の条件を用いてジョブのすべてのステージ間の均衡を求める。すなわち、バックログ増大、バックログ量、およびCPU使用率という条件である。これらの条件のサブセットを用いて調整を行なってもよい。例えば、いくつかの実現例では、バックログ増大およびバックログ量が用いられ得る。バックログ増大条件は、バックログ増大≦平均0である。バックログ増大が正の場合、バックログが累積してジョブが遅延する。バックログ量条件は、バックログ量≦目標バックログ量である。例えば、バックログ量がバックログ時間である場合、バックログ時間は比較的短いことが望ましい。さもなければ、バックログは増大しないが高い処理レイテンシが存在する安定状態を回避するためである。許容可能なより短いバックログは、より多くの処理リソースを必要とするが、より低いレイテンシを実現する。いくつかの場合には、許容可能なバックログレイテンシ時間は0であるか、または0に近い。他の場合、許容可能なバックログレイテンシ時間は、より長い。CPU条件は、CPU(例えば、データプロセッサ114)使用率が閾値よりも大きいことである。CPU使用率が低い安定状態は、ストリーミングジョブが少ないワーカー数に対応可能であろうことを示す。いくつかの実現例では、バックログ条件を用いて、ジョブに割当てるリソースの数を調整するか否かを判定し、システムがリソースの数を調整すると判定された場合には、CPU条件を用いて、調整するリソースの数を決定する。
全体のジョブサイジングは、すべてのステージについてバックログ条件を満たすのに必要なワーカーの最大数によって決まる。すべてのステージについてバックログ条件を満たす場合、CPU条件を用いて、割当て削減の程度を判定する。
いくつかの実現例では、永続ディスクを用いて状態を格納する。ジョブ状態を格納するために、ジョブは一定数(いくつかの場合には、そのジョブについてのワーカーの最大数と同じ数)の永続ディスクを有し得る。各ディスクは、ジョブによる処理中のキー範囲に対応する。そのため、ディスク数が多いワーカーの方が、ディスク数が少ないワーカーよりもビジーである(範囲間でデータ分散が均等であると想定した場合)。いくつかの場合には、ディスク分散が不均等な状態でワーカーの数を増減させると、最も負荷のかかったワーカーのレベルで動作することになる。そのため、オートチューニングは、最も均等なディスク分散を提供するワーカー数を選択する(例えば、システムがワーカー1個当たりd個のディスクを目標とする場合、システムは、d1個のディスクを有するワーカーの数を最小限にする)。
いくつかの実現例では、現在の入力レート(スループット+バックログ増大)を現在のスループットで除することによって、かつ、それをワーカーの現在の数によってスケール変更することによって、特定のステージについての望ましいワーカー数が計算される。例えば、ワーカーが10個でスループットが1MB/sであり、バックログ増大が200K/sである場合、オートチューニングは、1.2×10=12個のワーカーを要求するであろう。さらに、望ましいバックログ時間よりも長い場合、余分のワーカーが追加され得る。
いくつかの実現例では、各ステージは、この望ましいワーカー数を独立して計算する。次いで、ジョブのためのプールは、すべてのステージにわたって望ましいワーカー数の最大値に合わせてスケール変更される。
ジョブに割当てるリソースの数を削減するために、ジョブは、平均バックログ時間がある閾値未満であり、かつ、バックログ増大が0である安定状態(例えば、平均して、経時的に、閾値距離内で)にされ得る。いくつかの実現例では、システムは、割当て削減の程度を次のように判定する。均等なディスク分散への要望を考慮して、オートチューニングは、ジョブがすぐ下のワーカーレベルに対処可能であるか否かのプロキシとして、CPUを次のように使用する。現在の数w1のワーカーがワーカー1個当たりd1(またはd1−1)個のディスクを有すると想定する。ワーカー1個当たり最少のd2>d1のディスク数、および必要なワーカーの最少数w2を、w2<w1、かつ、各ワーカーがd2(またはd2−1)個のディスクを得るように求める。理想的なスケール変更かつオーバーヘッドのない状態を想定すると、新たなワーカーは、現在のCPUレートにw1/w2を掛けたもので動作することになる。この新たなCPUレートが妥当な閾値(例えば、1.0
)未満である場合、オートチューニングは、割当てをw2まで削減することを試みる。
前回の割当て増加または削減の直後の信号は、多くの場合、定常状態を表わすものではない(例えば、頻発するキャッシュミスなどのため)。そのため、オートチューニングは、決定の平滑化を採用することにより、不要な変動を回避しつつ、作業負荷の実際の変化に依然として反応することができる。スケール拡大の決定の平滑化は、以下の1)および2)によって行なわれる。
1)ワーカー変更の後、入力信号が安定するまである期間待つ。
2)出力信号を平滑化して、スケール拡大時の時間枠内の望ましいワーカーの平均値を選択する(その時間枠において要求される最少のワーカー数が現在の数よりも多いと想定した場合)。
最少値が増加するまで時間枠の全体にわたって待つことにより、入力レートにおける短期のノイズへの反応が回避される。例えば、現在のワーカー数が10未満であり、時間枠が望ましいワーカー数[11、12、10]を含む場合、割当て増加は、(均等なディスク分散を得るために数を正規化する前に)作動させるワーカーの数として11を選択するであろう。
いくつかの実現例では、スケール縮小のために、オートチューニングは、ある期間にわたる時間枠におけるすべての値が現在のワーカー数未満となるまで待ち、その後最大値(ディスク分散が均等な状態で、現時点で常にすぐ下のワーカーレベル)までスケール縮小する。
ワーカーに関係し得る以下の信号が、ワーカーマネージャから受信され得る。
per_stage信号
input_size:絶えず増加する、処理されたバイトの合計
スループットとして計算された派生信号(derivative)(以下参照)
backlog_size:バックログの現在のバイトサイズ
バックログ増大として計算された派生信号(以下参照)
active_size:そのステージで現在処理中のバイト
ステージの固有のレイテンシを判定するために使用される
system_watermark:ステージのシステム透かし
いくつかの実現例では、1M/sで増加する。
ジョブ信号
active_workers:現在のアクティブなワーカー数
ストリーミングの文脈において、ワーカーは、ワーカー処理、および/またはワーカースレッドであり得る。いくつかの実現例では、構成アップデートを受信した後にチェックインするワーカー数として計算される。カウントは、動作可能なワーカー数(例えば、すべてのディスク割当て、スキャニングが行なわれた後)を反映し得る。
attached_disks:すべてのディスクが装着されているわけではないため、スケール変更の決定を行なうべきではないと判定するために使用される。
平均CPU使用率:ジョブにおけるすべてのワーカーVMの平均CPU使用率
例えばジョブのステージ毎の派生信号
input_sizeからのスループット(前回のアップデート以降、かつ指数平滑平均)
バックログサイズからのbacklog_growth(前回のアップデート以降、かつ指数平滑平均)
backlog_time:(backlog_size active_size)/
スループット
追加の入力がない場合にバックログを処理するのに必要となるであろう時間(現在処理中の分を割引いてもよい)
いくつかの実現例では、システムが実時間に近づくにつれて、効率が低下し、ひいては事実上のバックログ時間が長くなり得る。
min_throughput=スループット+max(0、backlog_growth):遅延しないために必要な最小スループット。
ステージ毎の目標は、以下の条件で均衡に到達するようにワーカーを増減することである。
backlog_growth≦平均0(つまり、バックログ長さが増大せずに安定している)
backlog_time≦acceptable_backlog_time(構成パラメータ)
backlog_time≧max_backlog_to_downscale(構成パラメータ)
backlog_time条件は、レイテンシが許容可能範囲内となることを保証し、バックログが極めて大きい安定バックログ状態となることを回避することを試みる。max
_backlog_to_downscale条件は、割当てを削減することを試みる信号である。システムがその閾値未満である場合、システムはリソースを無駄にする可能性が高く、より少ないシステムワーカーで対処可能であろう。
いくつかの実現例では、スケール拡大は、1)入力レートに対応するため、および、2)バックログを最小長さに向けて減少させるために、ワーカーを追加することに基づく。いくつかの例では、ワーカー数に対してスループットが最終的には線形的にスケール変更されることが想定され得る。すなわち、要因xによってワーカー数が増加または減少するのに伴い、要因xによってスループットが増加または減少する。いくつかの実現例では、必要ワーカー数は、必要スループットの最小レベルを、ワーカー1個当たりのスループットで除したものとして算出され得る。
残存バックログは、許容可能バックログよりも大きいバックログであって、現在のバックログ増大が負であるときに、見かけ上、システムが当該負の増大の分だけ減少させていないバックログである。これは、バックログアクティブサイズからバックログの許容可能サイズを差引き、負のバックログ増大およびバックログ回復時間の合計を加えたものとして算出され得る。
追加のワーカー数は、ワーカー1個当たりの現在のスループットに基づいて、バックログ回復時間内に残存バックログを処理できるように選択される。追加のワーカー数は、残存バックログを、ワーカー1個当たりのスループットおよびバックログ回復時間の合計で除したものとして算出され得る。次いで、新たな望ましいワーカー数が、スループットワーカー数とバックログワーカー数とを足したものとして算出される。
ディスクの総数はジョブ毎に一定であり得るため、システムがスケール変更する際に、システムは、存在するディスクをワーカー間に分散させ得る。ディスクはデータのソース/範囲に対応するため、ディスク数が多いワーカーの方が、システムディスク数が少ないワーカーよりもビジーである(範囲間でデータ分散が均等であると想定した場合)。いくつかの場合には、ディスク分散が不均等な状態でワーカーの数に合わせて増減させると、最も負荷のかかったワーカーのレベルで動作することになる。そのため、システムは、均等なディスク分散を提供するワーカー数に最も近い数に合わせるようにスケール変更を試み得る。
割当てを削減するために、いくつかの実現例では、システムは、平均バックログ時間がmax_backlog_to_downscale未満であり、かつ、バックログ増大が平均0である安定状態となる必要があり得る。割当て削減の程度を判定するために、システムは、当該システムがすぐ下のワーカーレベルに対処可能であるか否のプロキシとして、CPUを使用する。プロキシに基づく決定の一例は、次のようなものであり得る。現在の数w1のワーカーが、ワーカー1個当たり最大d1個のディスクを含むものと想定する。システムは、各ワーカーが最大でd2>d1のディスクを有するような最大ワーカーw2<w1を計算する。いくつかの状況では、新たなワーカーは、現在のCPUレートにw1/w2を掛けたもので動作することになる。この新たなCPUが許容可能最大値(例えば、1.0)未満である場合、システムは、割当てをw2まで削減することを試みる。
ジョブのスケール変更のために、各ステージは、望ましいワーカー数を独立して有し得る。次いで、ジョブのためのプールは、すべてのステージにわたって望ましいワーカー数の最大値に合わせてスケール変更される。
平滑化は、以下の1)および2)によって行なわれ得る。
1)ワーカー変更の後、入力信号が安定するまである期間待つ。
2)出力信号を平滑化して、スケール拡大時の時間枠内の望ましいワーカーの平均値を選択する(最少値が現在の数よりも多いと想定した場合)。
最少値が増加するまで時間枠の全体にわたって待つことにより、min_throughputの短期間の急上昇への反応を回避することができる。
いくつかの実現例では、スケール縮小のために、システムは、時間枠におけるすべての値が現在のワーカー数未満となるまで待ち、その後、特定される最大値(ディスク分散が均等な状態で、現時点で常にシステムのワーカーレベルの次のレベル)までスケール縮小し得る。
図3は、経時的なストリーミング信号を示すチャート400、402、406、および408を含む図である。チャート400は、アクティブワーカーの数を示す。このチャートにおいて、要求されるワーカーを示す一番下のチャートから分かるように、ワーカーは15から8まで割当てを次第に減少させる。要求されるワーカーとアクティブワーカーとの間の不一致は、サイズ変更時の短期間いくつかのワーカーがアクティブではない場合があること、いくつかのワーカーが停止して回復する場合があることなどを示す。なお、すべてのワーカーが現時点ですべてのステージで動作するとき、アクティブワーカーおよび要求されるワーカーのチャートは各ステージで同一である。
チャート402は、このステージについてのバックログ時間を示す。それは、現在の平均処理速度でバックログを0まで減少させるのに必要となるであろう推定時間である。
チャート404は、ストリーミングCPU使用率を示す。ここでは、すべての仮想マシンの平均使用率を示す。しかしながら、外れ値を除いた平均値、中央値、最頻値、最小値、最大値、またはこれらの値を組み合わせた測定基準を含む、他の測定基準を用いてもよい。
チャート406は、入力レートが約5MB/sから始まり、6.6MB/sまで増加し
、次いで減少し始めて4MB/s未満となることを示す。レートの***は、チャート408で減少として示されるサイズ変更点に起因するものである。サイズ変更はパイプラインを滞らせ、ひいてはバックアップおよびその後の取戻し作業につながる。したがって、これらの過渡事象は派生信号に現れる。
図4は、オートチューニングリソース割当てのための処理500の例のフローチャートである。処理500は、例えば、高度に分散されたコンピューティング環境100の要素によって実行され得る。したがって、一例として、高度に分散されたコンピューティング環境100を参照して処理500を説明する。しかしながら、処理500または他の同様の処理を実行するために、他の要素を用いてもよい。
処理500は、複数の処理リソースを含むコンピュータシステムにおいて、データストリームを入力として受信するジョブを実行すること(502)を含む。データストリーム内のデータ量は、無限である。例えば、分散処理システムマネージャ110は、外部のユーザからジョブを受信し得る。このジョブは、例えば、入力データとして用いられる、ストリーミングデータプロバイダ106からの1つ以上の入力ソースのための命令を含み得る。高度に分散されたコンピューティング環境100は、データプロセッサ114および/またはネットワーク記憶装置108のディスクを1つ以上のワーカー113に割当てることによって、または割当てるようにワーカーマネージャ112に命令することによって、および、これらの1つ以上のワーカー113をジョブに割当てることによって、ジョブを実行し得る。このようなジョブへの初期割当ては、技術的に適当な任意の要因に基づいて設定され得る。これらの要因には、ジョブ111の過去の実行、利用可能なシステムリ
ソース、または他の要因が含まれるが、それらに限定されない。
処理500は、ジョブについて、バックログ増大504、バックログ量506、および、割当てを調整するか否か508を繰り返し判定することを含む。
ジョブについてバックログ増大504を繰り返し判定することは、ジョブに入力される受信されたデータストリームにおける未処理データの増大量であるバックログ増大を、第1の期間にわたって判定することを含む。例えば、ジョブ111が実行される際に、ジョブ111はストリーミングデータプロバイダ106から入力を受信する。この入力は、ジョブ111がデータのうちのより多くを受付けて処理することが可能になるまで、キューまたはバッファのような適切なストレージ構造に格納され得る。このため、データの受信と同じ速度でジョブ111がデータを処理することができない場合には、経時的にバックログ増大が発生または追加され得る。データがストレージ構造に受信されるよりも速い速度でジョブ111がデータを処理可能である場合には、バックログ増大が低減され得る。いずれの場合にも、増大の変化または無変化が監視され得る。このバックログ増大は、例えば、データサイズ(すなわち、ビット、バイト、メガバイト、ギガバイト、レコード、基数)の変化、処理時間(すなわち、マイクロ秒、秒、分、時間、日、MB/s)、またはその他の観点で測定され得る。
ジョブについてバックログ量506を繰り返し判定することは、ジョブに入力される受信されたデータストリームにおける未処理データの量であるバックログ量を判定することを含む。記載したように、ジョブ111による処理待ちのデータは、バックログと呼ばれ得る。このバックログは、例えば、データサイズ(すなわち、ビット、バイト、メガバイト、ギガバイト、レコード、基数)、処理時間(すなわち、マイクロ秒、秒、分、時間、日)、またはその他の観点で測定され得る。
ジョブについて割当てを調整するか否か508を繰り返し判定することは、バックログ増大およびバックログ量に基づいて、ジョブに割当てる処理リソースの量を調整するか否かを判定することを含む。以下の処理600の例でさらに説明するように、バックログ増大およびバックログ量の状態を過剰供給または過少供給の指標として用いることにより、より少ない、またはより多いリソースの割当てが可能になり、または望まれ得る。
ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量が調整される(510)。例えば、ネットワークリソースがジョブ111に対して過剰供給された場合には、それらは削減され得る。ネットワークリソースが過少供給された場合には、それらは増加され得る。
ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量が維持される(512)。例えば、ネットワークリソースが過剰供給でも過少供給でもない場合には、同一またはほぼ同一レベルのネットワークリソースがジョブ111に供給され得る。このことは、全く同一のリソースが引続き供給されることを含んでもよいし、または、異なるリソースが同程度に供給されることを含んでもよい。
他の処理例は、異なる数、種類、および順序の要素を含んでもよい。例えば、バックログ増大およびバックログ量に加えて、平均プロセッサ使用率が判定されてもよい。この例では、ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定することは、さらにプロセッサ使用率に基づく。プロセッサ使用率(例えば、使用される仮想マシンの平均)がある値未満である場合に、システムは、ジョブに割当てる処理リソースの量を調整すると判定し得る。例えば、プロセッサ使用率がある値未満である場合に、システムは
、プロセッサ値がある値未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定してもよい。次いで、システムは、ジョブに割当てる処理リソースの量を調整し得る。これは、プロセッサ値がある値未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を削減することを含む。例えば、多くのワーカーのプロセッサのプロセッサ使用率が低い場合には、これは過剰供給を示すものとして解釈され、システムは割当てリソースを削減することによって割当てリソースをオートチューニングし得る。
図5は、リソース割当てを増加するか削減するかを判定するための処理600の例のフローチャートである。処理600は、例えば、高度に分散されたコンピューティング環境100の要素によって実行され得る。処理600は、例えば、処理500の実行の一部として実行されてもよい。しかしながら、他の要素を用いて、処理600または他の同様の処理を、処理500の一部として、または処理500の一部としてではなく実行してもよい。
ジョブに割当てる処理リソースの量が維持され得る(606)。例えばバックログ増大が負またはゼロであると判定され(例えば、ゼロ、ゼロの閾値の範囲内)、かつ、バックログ量が目標値(例えば、目標と同一、目標の閾値の範囲内)であると判定された場合には、これは、割当てリソースが過剰供給にならずに、なおかつ、ジョブによる入力データの処理を可能にするには十分であることを示し得る。
ジョブに割当てる処理リソースの量が削減され得る(608)。例えば、バックログ増大が負またはゼロであり、かつ、バックログ量が目標未満であると判定された場合には、バックログは、場合によっては目標に近づくまで、または目標に到達するまで増大し得る。
ジョブに割当てる処理リソースの量が増加され得る(610)。例えば、バックログ増大がゼロであり、かつ、バックログ量が目標と等しいと判定された場合には、バックログを場合によっては目標に近づくまで、または目標に到達するまで減少させるために、追加のリソースが割当てられ得る。
ジョブに割当てる処理リソースの量が維持され得る(612)。例えば、バックログ増大が正であり、かつ、バックログ量が目標未満であると判定された場合には、バックログは、場合によっては目標に近づくまで、または目標に到達するまで増大し得る。
ジョブに割当てる処理リソースの量が増加され得る(614)。例えば、バックログ増大が正であり、かつ、バックログ量が目標以上であると判定された場合には、バックログ増大が停止または逆転するように、追加のリソースがジョブに割当てられ得る。
他の処理例は、異なる数、種類、および順序の要素を含んでもよい。
図6A、図6B、図6Cは、タスクのセットアップ、サイズ変更、および休止のための処理例のフローチャートである。
初期スタートアップ700の時に、ストリーミングロードバランサは、ワーカーがどの範囲を有しているか、どのディスクをマウントすべきかをワーカーに伝えるとともに、正しいワーカーにデータディスクを装着するように調整する役割を担い得る。サイズ変更時には、ロードバランサはワーカーに、特定の範囲での動作を停止し、対応のディスクをアンマウントし、ディスクを取外し、ディスクを再び装着し、すべてのワーカーについて新たなトポロジセットアップタスクを生成し、新たな開始計算タスクを生成するように伝え得る。
ストリーミングロードバランサは、スモールステップ(small step)実行インスタンスを用いて、ワーカーと対話する。これらは、ストリーミングロードバランサがワーカーとの対話を要する際にトリガされる。これらのステップの結果、ストリーミングロードバランサが、開始したステップが終了したことを知るために使う特殊ディスク移行アップデート結果が生成され得る。ストリーミングロードバランサがディスク移行アップデートを受信した後、ストリーミングロードバランサは、すべてのワーカーに、新たなディスク割当ての新たなセットアップ(トポロジ)タスクを発行し得る。
初期スタートアップ702。ストリーミングロードバランサは、最初に、トポロジおよびディスク割当てを含むタスクセットアップメッセージを各ワーカーに送信する。初期セットアップタスクはワーカー毎にディスクを含み得るが、システムは、初期セットアップタスクのディスク割当てを送信しないことを決定し得る。これにより、ワーカーが未装着のディスクをマウントしようとすることを防止することができる。ワーカーはこのセットアップタスクを要求し得るが、それが最初であるために、ワーカーがディスクをマウントしようとしてもセットアップタスクにディスクが現れないことがある。その場合、システムにエラーが生じ得る。
次いで、ストリーミングロードバランサはディスク装着704を開始し得る。第1のステップは、ステップ入力でトポロジが与えられている場合、すべてのワーカーへのディスク装着を行ない得る。例えばすべてのディスクが装着されると、すべてのワーカーについてのストリーミング計算タスクを生成する後続の計算開始がトリガされ、どのディスクを装着すべきであるかをそれらのワーカーに伝える。このステップは、これらすべてのタスクが完了状態となるまで待ってもよい。ワーカーはこれらの計算タスクを要求し、ディスクのマウントを試み、関連付けられた範囲の要求を開始し得る。その時点で、ワーカーは706の動作を開始し得る。
すべてのストリーミング計算タスクが完了したことをシステムが検知すると、ディスク移行アップデート708は、すべてが完了したことをストリーミングロードバランサに伝え始めてもよい。ストリーミングロードバランサは、ディスク移行アップデートを監視し、すべての既存のセットアップタスクをキャンセルするとともに、最終的なディスク割当てを含むすべてのワーカーに新たなセットアップタスクを送出し得る。
タスクセットアップメッセージリース(1s)の次のアップデート時のワーカーは、セットアップタスクを手放し、新たなセットアップタスクを探し得る。しかしながら、ワーカーが既にマウントされた正しいディスクを有していると想定した場合、ワーカーの最初のものではないため、ワーカーは、必ずしも新たなセットアップタスクのディスクに働きかけるとは限らない。
サイズ変更(例えば、ディスク移動)710。少なくとも、サイズ拡大およびサイズ縮小の2つの場合があり得る。それらはともにプロトコルの同一または類似のステップで対処され得る。その例が以下のものである。新たなワーカーのための新たな空のセットアップタスクが送出される(サイズ縮小では無し)(712)。これらは、最初はディスクを含まない。新たなワーカーがこれらの空のセットアップタスクを要求するのを待つ(既存のストリーミングの停止を早めすぎないため)。サイズ縮小では待つことは不要であり得る。ディスクを失うすべてのワーカーに停止計算タスク712を送信し、それらすべてが完了するまで待つ。ディスク取外し714ステップを行なう。ディスク装着716ステップを行なう。ディスクを得るすべてのワーカーに開始計算718タスクを送信し、それらすべてが完了するまで待つ。すべての既存のセットアップタスクをキャンセルし、すべてのワーカーに新たな最終セットアップ720タスクを送出する。ストリーミングロードバ
ランサと上述のミニワークフローステップとの間の組織化は、初期セットアップ時と同じ方法で行なわれ得る。すなわち、最後のステップが完了した後、ストリーミングロードバランサが新たな最終セットアップタスクを送出する前に使うディスク移行アップデート結果が生成され得る。
休止740。ワークフローを休止するために、休止パラメータが初期化され得る(742)。ワーカーによる計算の休止が開始され得る(704)。いくつかまたはすべてのワーカーからディスクが取外され得る(706)。ディスク移行アップデート708が完了し得る。
処理700、710、および740を特定の数、順序、および種類の動作によって説明したが、他のものも可能である。例えば、他の処理を以下で説明する。この処理では、システムが開始計算タスクおよび停止計算タスクを送出するのと同時に、システムが新たなセットアップタスクを送出し得る。それにより、ワーカー挙動が障害に対して冪等となる。各ディスク移行には、少なくとも3種類のワーカーがあり得る。すなわち、ディスクを失うワーカー、ディスクを得るワーカー、および、同じディスクを保持するワーカーである。テストのために、システムは、ディスクを得るワーカーとディスクを失うワーカーとの第4の組み合わせをサポートし得る。
いずれかのディスクを失うワーカーは、同時にタスクを得てもよく、ワーカーが失ったディスクをもはや含まない新たなセットアップタスクを得る必要がある。加えて、ワーカーが次のタスクのディスクを得る場合、その時点で送出されたセットアップタスクは、ワーカーが既に有していないディスクを含まない場合がある。したがって、ワーカーがクラッシュした場合、ワーカーは手放している、または手放したばかりのディスクのマウントを試みるとは限らないし、まだ受取っていないディスクのマウントを試みるとは限らない。ワーカーが当該ワーカーのディスクを首尾よくアンマウントした場合、ワーカーは望ましい状態となり得る。そうでなければ、ワーカーはアンマウントを再び要求および実行し得る。それが既に行なわれていた場合、noopとなり得る。ワーカーがクラッシュおよび再始動する場合、ワーカーはこのラウンドで保持するディスクのみをマウントする(失うことも得ることもない)。
ディスクを得るワーカーは、開始計算タスクを得ると同時に新たなセットアップタスクを得てもよい。ワーカーがクラッシュした場合、ワーカーは、開始計算タスクを完了したか否かにかかわらず、再始動時に新たなディスクをマウントし得る。また、ワーカーがいくつかのディスクを既にマウントしている場合には、再度のマウントは冪等となり得て、問題を生じさせない。同じディスクを保持するワーカーは、移行時にいつでも新たなセットアップタスクを与えられ得る。システムは、停止計算の時点、すなわち、既存のトポロジによっていくつかのワーカーが動作を停止しなければならない第1の時点で、これらのワーカーのための新たなセットアップタスクを生成し得る。
初期始動。初期始動時、システムは、もはや初期セットアップタスクを送出しない。代わりに、システムはディスクを装着し、次いで、すべての最終セットアップタスクを開始計算ステップの一部として送出する。これによって競合が調整され、スタートアップ時間が改善される。なぜなら、放棄するセットアップタスク、再要求するセットアップタスクがないからである。
サイズ変更(移行)。サイズ拡大時、システムは、ディスクを有効なワーカーから移行させる前に、新たな仮想マシンが使用可能になるまで待たなければならない。したがって、システムは、新たなワーカーのための初期セットアップタスクを、フラグセットとともに依然として送出する(割当てられていないディスクがないため、それらはその時点で実
際にはディスクを含まない)。新たなワーカーは最初は空のセットアップタスクを得てもよいが、そうすると、それらが使用可能になるまで待つことになる。
その後、ディスクを失う既存のワーカーのために、当該ワーカーの新たなセットアップタスク(および既存のセットアップタスクのキャンセル)とともに停止計算タスクが送出される。同時に、システムは、ディスクを得ることも失うこともないワーカーのために、すべてのセットアップタスクを送出し得る。すべての停止計算タスクが完了すると、ディスクが取外され、次いで装着される。最後に、ディスクを得るワーカーのために、新たなセットアップタスク(および既存のセットアップタスクのキャンセル)とともに、新たな開始計算タスクが送出される。
次いで、新たなワーカーは、最終的なディスク割当てを含む新たなセットアップタスク、または開始計算タスクをまず確認する。いずれの場合にも、ワーカーはその時点で有しているディスクをマウントし得る。その時間前後にワーカーがクラッシュした場合にも、ワーカーは当該新たな目標状態となり得る。
休止。休止時には、システムは、既存のセットアップタスクのキャンセル、およびディスク割当てを含まない新たなセットアップタスクとともに、停止計算タスクをすべての仮想マシンに送出する(したがって、クラッシュの場合には、ワーカーは、手放した可能性のあるディスクのマウントを試みない)。ディスクが取外される。
ワーカーから当該ワーカーのセットアップタスクまでのマップを計算することが有用であり得る。このマップは、独自の入れ子型トランザクションを有する停止計算ステップおよび開始計算ステップの際に修正されるため、ストリーミングロードバランサにおいて行なわれていたように一貫してこのマップを維持することはできない。その代わりに、これらのステップの結果キャッシュを用いて、オンデマンド式でマップを計算する。これにより、すべての打ち切られたタスクおよび完了したタスクに関する古い呼出し結果を削除する機会も提供される。
このマップは、新たなセットアップタスクを送出して、当該ワーカーのための既存のセットアップタスク(もしあれば)をキャンセルするたびに計算および参照され得る。これは、停止計算ステップ時または開始計算ステップ時、および、サイズ縮小または休止の後に行なわれる。
加えて、ジョブ処理の通信は、システムが利用可能な情報のうちのすべてではなく一部を用いて、ユーザに伝達され得る。以下は、使用されるいくつかの詳細例である。
図7は、本明細書に記載の技術を実現するために用いられ得るコンピューティングデバイス800およびモバイルコンピューティングデバイス850の例を示す。コンピューティングデバイス800は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの、さまざまな形態のデジタルコンピュータを表わすことを意図している。モバイルコンピューティングデバイス850は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスなどの、さまざまな形態のモバイルデバイスを表わすことを意図している。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であることが意図されているに過ぎず、限定することを意図していない。
コンピューティングデバイス800は、プロセッサ802、メモリ804、記憶装置806、メモリ804および複数の高速拡張ポート810に接続している高速インターフェ
イス808、ならびに低速拡張ポート814および記憶装置806に接続している低速インターフェイス812を含む。プロセッサ802、メモリ804、記憶装置806、高速インターフェイス808、高速拡張ポート810、および低速インターフェイス812の各々はさまざまなバスを用いて相互に接続されており、共通のマザーボード上にまたは他の態様で適宜搭載され得る。プロセッサ802は、コンピューティングデバイス800内で実行される命令を処理可能であり、この命令には、GUIのためのグラフィック情報を高速インターフェイス808に結合されているディスプレイ816などの外部入出力デバイス上に表示するためにメモリ804内または記憶装置806上に記憶されている命令が含まれる。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイスが接続され得て、各デバイスは(例えば、サーババンク、ブレードサーバ群、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
メモリ804は情報をコンピューティングデバイス800内に記憶する。いくつかの実現例では、メモリ804は1つまたは複数の揮発性メモリユニットである。いくつかの実現例では、メモリ804は1つまたは複数の不揮発性メモリユニットである。また、メモリ804は、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ読取可能媒体であってもよい。
記憶装置806は、コンピューティングデバイス800に大容量記憶を提供可能である。いくつかの実現例では、記憶装置806は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他のコンフィギュレーションにおけるデバイスを含む一連のデバイスなどの、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。命令が情報媒体内に記憶され得る。命令は、1つ以上の処理装置(例えば、プロセッサ802)によって実行されると、上述のような1つ以上の方法を実行する。また、命令は、コンピュータ読取可能媒体または機械読取可能媒体(例えば、メモリ804、記憶装置806、またはプロセッサ802上のメモリ)などの1つ以上の記憶装置によって記憶され得る。
高速インターフェイス808はコンピューティングデバイス800のための帯域幅集約的な動作を管理するのに対して、低速インターフェイス812はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。いくつかの実現例では、高速インターフェイス808はメモリ804、ディスプレイ816に(例えばグラフィックスプロセッサまたはアクセラレータを介して)、およびさまざまな拡張カード(図示せず)を受付け得る高速拡張ポート810に結合される。当該実現例では、低速インターフェイス812は記憶装置806および低速拡張ポート814に結合される。さまざまな通信ポート(例えばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート814は、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの1つ以上の入出力デバイスに、例えばネットワークアダプタを介して結合され得る。
コンピューティングデバイス800は、図に示すように多数の異なる形態で実現されてもよい。例えば、コンピューティングデバイス800は標準的なサーバ820として、またはそのようなサーバ群内で複数回実現されてもよい。さらに、コンピューティングデバイス800はラップトップコンピュータ822などのパーソナルコンピュータにおいて実現されてもよい。また、コンピューティングデバイス800はラックサーバシステム824の一部として実現されてもよい。あるいは、コンピューティングデバイス800からのコンポーネントは、モバイルコンピューティングデバイス850などのモバイルデバイス
(図示せず)内の他のコンポーネントと組み合わされてもよい。そのようなデバイスの各々が1つ以上のコンピューティングデバイス800およびモバイルコンピューティングデバイス850を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイスで構成されてもよい。
モバイルコンピューティングデバイス850は、数あるコンポーネントの中でも特に、プロセッサ852、メモリ864、ディスプレイ854などの入出力デバイス、通信インターフェイス866、およびトランシーバ868を含む。また、モバイルコンピューティングデバイス850には、マイクロドライブまたは他のデバイスなどの記憶装置が提供されて付加的なストレージが提供されてもよい。プロセッサ852、メモリ864、ディスプレイ854、通信インターフェイス866、およびトランシーバ868の各々はさまざまなバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
プロセッサ852は、メモリ864に記憶されている命令を含む、モバイルコンピューティングデバイス850内の命令を実行可能である。プロセッサ852は、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサ852は、例えば、ユーザインターフェイス、モバイルコンピューティングデバイス850が実行するアプリケーション、およびモバイルコンピューティングデバイス850による無線通信の制御などの、モバイルコンピューティングデバイス850の他のコンポーネントの協調を提供し得る。
プロセッサ852は、制御インターフェイス858と、ディスプレイ854に結合されたディスプレイインターフェイス856とを介してユーザと通信し得る。ディスプレイ854は、例えば、TFT(薄膜トランジスタ)液晶ディスプレイもしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス856は、ディスプレイ854を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイス858はユーザからコマンドを受信し、当該コマンドをプロセッサ852に提出するために変換し得る。さらに、外部インターフェイス862が、モバイルコンピューティングデバイス850と他のデバイスとの隣接通信を可能にするために、プロセッサ852との通信を提供してもよい。外部インターフェイス862は、例えば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
メモリ864は情報をモバイルコンピューティングデバイス850内に記憶する。メモリ864は、1つもしくは複数のコンピュータ読取可能媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つ以上として実現され得る。さらに、拡張メモリ874が提供され、例えばSIMM(Single In Line Memory Module)カードインターフェイスを含み得る拡張インターフェイス872を介してモバイルコンピューティングデバイス850に接続されてもよい。このような拡張メモリ874はモバイルコンピューティングデバイス850に余分のストレージスペースを提供し得るか、またはモバイルコンピューティングデバイス850のためのアプリケーションもしくは他の情報をさらに記憶し得る。具体的には、拡張メモリ874は上述のプロセスを実行または補足するための命令を含み得て、さらにセキュア情報を含み得る。ゆえに、例えば、拡張メモリ874はモバイルコンピューティングデバイス850のためのセキュリティモジュールとして提供されてもよく、モバイルコンピューティングデバイス850のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにSIMMカード上に識別情報を置くなどのように、セキュアなアプリケーションが付加的な情報とともにSIMMカードを介して提供されてもよい。
メモリは、以下に記載のように、例えばフラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。いくつかの実現例では、命令が情報媒体内に記憶される。命令は、1つ以上の処理装置(例えば、プロセッサ852)によって実行されると、上述のような1つ以上の方法を実行する。また、命令は、1つ以上のコンピュータ読取可能媒体または機械読取可能媒体(例えば、メモリ864、拡張メモリ874、またはプロセッサ852上のメモリ)などの1つ以上の記憶装置によって記憶され得る。いくつかの実現例では、命令は伝搬信号で、例えばトランシーバ868または外部インターフェイス862上で受信され得る。
モバイルコンピューティングデバイス850は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス866を介して無線通信し得る。通信インターフェイス866は、とりわけ、GSM(登録商標)音声通話(Global System for Mobile communications)、SMS(ショートメッセージサービス:Short Message Service)、EMS(Enhanced Messaging Service)、またはMMS(マルチメディア・メッセージングサービス:Multimedia Messaging Service)メッセージング、CDMA(符号分割多元接続:code
division multiple access)、TDMA(時分割多元接続:time division multiple access)、PDC(Personal Digital Cellular)、WCDMA(登録商標、Wideband Code
Division Multiple Access)、CDMA2000、またはGPRS(General Packet Radio Service)などの、さまざまなモードまたはプロトコル下の通信を提供し得る。その
ような通信は、例えば無線周波数トランシーバ868を介して起こり得る。さらに、ブルートゥース、Wi−Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が起こり得る。さらに、GPS(全地球測位システム)レシーバモジュール870が付加的なナビゲーション関連および位置関連の無線データをモバイルコンピューティングデバイス850に提供し得て、当該データはモバイルコンピューティングデバイス850上で実行されるアプリケーションによって適宜用いられ得る。
また、モバイルコンピューティングデバイス850は、ユーザから口頭情報を受信して当該情報を使用可能なデジタル情報に変換し得る音声コーデック860を用いて可聴的に通信し得る。音声コーデック860も同様に、例えばモバイルコンピューティングデバイス850のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音(例えば音声メッセージ、音楽ファイル等)を含んでいてもよく、さらに、モバイルコンピューティングデバイス850上で実行されるアプリケーションが生成する音を含んでいてもよい。
モバイルコンピューティングデバイス850は、図に示すように多数の異なる形態で実現されてもよい。例えば、モバイルコンピューティングデバイス850はセルラー電話880として実現されてもよい。また、モバイルコンピューティングデバイス850は、スマートフォン882、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現され得る。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)はプログラマブルプロセッサのための機械命令を含んでおり、高レベル手続き言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械言語で実現され得る。本明細書において使用する「機械読取可能媒体」および「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意のコンピュータプログラムプロダクト、装置および/またはデバイス(例えば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
ユーザとの対話を提供するために、本明細書に記載のシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供する際に使用可能なキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)とを有するコンピュータ上で実現され得る。他の種類のデバイスを用いてユーザとの対話を提供することもでき、例えば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得て、ユーザからの入力は、音響入力、スピーチ入力、または触覚入力を含む任意の形態で受信され得る。
本明細書に記載のシステムおよび技術は、バックエンドコンポーネントを(例えばデータサーバとして)含む、またはミドルウェアコンポーネント(例えばアプリケーションサーバ)を含む、またはフロントエンドコンポーネント(例えば、ユーザが上記のシステムおよび技術の実現例と対話する際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(例えば通信ネットワーク)によって相互に接続され得る。通信ネットワークの例として、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットが挙げられる。
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
その他の実現例を以下の例において要約する。
例1:コンピュータシステムにおいて実現される方法であって、複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを実行するステップを備え、データストリーム内のデータ量は、無限であり、ジョブについて、ジョブに入力される受信されたデータストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、ジョブに入力される受信されたデータストリームにおける未処理データの量であるバックログ量と、バックログ増大およびバックログ量に基づいて、ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップと、ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量を調整するステップと、ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量
を維持するステップとを含む、方法。
例2:例1の方法において、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標と等しいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標と等しいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。
例3:例1または例2の方法において、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標未満であると判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を削減するステップを含む。
例4:例1〜例3のうちの1つの例の方法において、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標よりも大きいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。
例5:例1〜例4のうちの1つの例の方法において、判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標未満であると判定され、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。
例6:例1〜例5のうちの1つの例の方法において、判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標以上であると判定され、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。
例7:例1〜例6のうちの1つの例の方法において、バックログ増大はデータサイズの大きさである。
例8:例7の方法において、データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。
例9:例1〜例6のうちの1つの例の方法において、バックログ増大は処理時間の長さである。
例10:例9の方法において、処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。
例11:例1〜例10のうちの1つの例の方法において、バックログ量はデータサイズの大きさである。
例12:例11の方法において、データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。
例13:例1〜例10のうちの1つの例の方法において、バックログ量は処理時間の長さである。
例14:例13の方法において、処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。
例15:例1〜例14のうちの1つの例の方法において、方法は、ジョブについて、プロセッサ使用率を繰り返し判定するステップをさらに含み、ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定するステップは、さらにプロセッサ使用率に基づく。
例16:例15の方法において、判定の繰り返しについて、プロセッサ使用率はある値未満であり、プロセッサ使用率がある値未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップを含む。
例17:例16の方法において、プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップは、ジョブに割当てるリソースの離散数を減少させるステップを含み、離散数はプロセッサ使用率に基づく。
例18:例17の方法において、離散数はコンピュータメモリディスクの数である。
例19:例1〜例18のうちの1つの例の方法において、バックログ増大およびバックログ量に基づいてジョブに割当てる処理リソースの量を調整するか否かを判定するステップは、ジョブに割当てる処理リソースの量の変動を生じさせる判定するステップを平滑化するステップを含む。
例20:例19の方法において、判定するステップを平滑化するステップは、第2の期間待つステップを含む。
例21:例19の方法において、判定するステップを平滑化するステップは、ジョブに割当てる処理リソースの量を調整するか否かの複数の判定を平均化するステップを含む。
例22:コンピュータプログラム命令を実行するように構成された1つ以上のプロセッサと、コンピュータプログラム命令が符号化されたコンピュータ記憶媒体とを備え、コンピュータプログラム命令は、1つ以上のプロセッサによって実行されると、コンピュータデバイスに、複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを含む演算を行わせ、データストリーム内のデータ量は、無限であり、ジョブについて、ジョブに入力される受信されたデータストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、ジョブに入力される受信されたデータストリームにおける未処理データの量であるバックログ量と、バックログ増大およびバックログ量に基づいて、ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップと、ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、ジョブに割当てる処理リソースの量を調整するステップと、ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、ジョブに割当てる処理リソースの量を維持するステップとを含む演算を行なわせる、システム。
例23:例22のシステムにおいて、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標と等しいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標と等しいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。
例24:例22または例23のシステムにおいて、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標未満であると判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を削減するステップを含む。
例25:例22〜例24のうちの1つの例のシステムにおいて、判定の繰り返しについて、バックログ増大はゼロまたは負であると判定され、バックログ量は目標よりも大きいと判定され、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大がゼロまたは負であると判定され、かつ、バックログ量が目標よりも大きいと判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。
例26:例22〜例25のうちの1つの例のシステムにおいて、判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標未満であると判定され、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整しないと判定される。
例27:例22〜例26のうちの1つの例のシステムにおいて、判定の繰り返しについて、バックログ増大は正であると判定され、バックログ量は目標以上であると判定され、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、バックログ増大が正であると判定され、かつ、バックログ量が目標未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を増加させるステップを含む。
例28:例22〜例27のうちの1つの例のシステムにおいて、バックログ増大はデータサイズの大きさである。
例29:例28のシステムにおいて、データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。
例30:例22〜例27のうちの1つの例のシステムにおいて、バックログ増大は処理時間の長さである。
例31:例30のシステムにおいて、処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。
例32:例22〜例31のうちの1つの例のシステムにおいて、バックログ量はデータサイズの大きさである。
例33:例32のシステムにおいて、データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである。
例34:例22〜例31のうちの1つの例のシステムにおいて、バックログ量は処理時間の長さである。
例35:例34のシステムにおいて、処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである。
例36:例22〜例35のうちの1つの例のシステムにおいて、演算は、ジョブについて、プロセッサ使用率を繰り返し判定するステップをさらに含み、ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定するステップは、さらにプロセッサ使用率に基づく。
例37:例36のシステムにおいて、判定の繰り返しについて、プロセッサ使用率はある値未満であり、プロセッサ使用率がある値未満であると判定されたことに応答して、ジョブに割当てる処理リソースの量を調整すると判定され、ジョブに割当てる処理リソースの量を調整するステップは、プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップを含む。
例38:例37のシステムにおいて、プロセッサ使用率がある値未満であると判定されたことに応答してジョブに割当てる処理リソースの量を削減するステップは、ジョブに割当てるリソースの離散数を減少させるステップを含み、離散数はプロセッサ使用率に基づく。
例39:例38のシステムにおいて、離散数はコンピュータメモリディスクの数である。
例40:例22〜例39のうちの1つの例のシステムにおいて、バックログ増大およびバックログ量に基づいてジョブに割当てる処理リソースの量を調整するか否かを判定するステップは、ジョブに割当てる処理リソースの量の変動を生じさせる判定するステップを平滑化するステップを含む。
例41:例40のシステムにおいて、判定するステップを平滑化するステップは、第2の期間待つステップを含む。
例42:例40または例41のシステムにおいて、判定するステップを平滑化するステップは、ジョブに割当てる処理リソースの量を調整するか否かの複数の判定を平均化するステップを含む。
いくつかの実現例を上記で詳細に説明してきたが、他の変更例も可能である。例えば、クライアントアプリケーションがデリゲートにアクセスするものとして説明したが、他の実現例では、デリゲートは、1つ以上のサーバ上で実行されるアプリケーションなどの、1つ以上のプロセッサによって実現される他のアプリケーションに用いられ得る。また、所望の結果を達成するために、図面に示す論理フローが、図示される特定の順序、または起こる順序を必要とするわけではない。また、記載のフローに他の動作が提供されてもよく、または記載のフローから動作が除去されてもよい。また、記載のシステムに他のコンポーネントが追加されてもよく、または記載のシステムからコンポーネントが除去されてもよい。したがって、他の実現例も以下の請求項の範囲内にある。

Claims (42)

  1. コンピュータシステムにおいて実現される方法であって、
    複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを実行するステップを備え、前記データストリーム内のデータ量は、無限であり、
    前記ジョブについて、
    前記ジョブに入力される受信された前記データストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、
    前記ジョブに入力される受信された前記データストリームにおける未処理データの量であるバックログ量と、
    前記バックログ増大および前記バックログ量に基づいて、前記ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップと、
    前記ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、前記ジョブに割当てる処理リソースの量を調整するステップと、
    前記ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、前記ジョブに割当てる処理リソースの量を維持するステップとを含む、方法。
  2. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標と等しいと判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標と等しいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整しないと判定される、請求項1に記載の方法。
  3. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標未満であると判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を削減するステップを含む、請求項1に記載の方法。
  4. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標よりも大きいと判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標よりも大きいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標よりも大きいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を増加させるステップを含む、請求項1に記載の方法。
  5. 前記判定の繰り返しについて、
    前記バックログ増大は正であると判定され、
    前記バックログ量は目標未満であると判定され、
    前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整しないと判定される、請求項1に記載の方法。
  6. 前記判定の繰り返しについて、
    前記バックログ増大は正であると判定され、
    前記バックログ量は目標以上であると判定され、
    前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を増加させるステップを含む、請求項1に記載の方法。
  7. 前記バックログ増大はデータサイズの大きさである、請求項1に記載の方法。
  8. 前記データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである、請求項7に記載の方法。
  9. 前記バックログ増大は処理時間の長さである、請求項1に記載の方法。
  10. 前記処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである、請求項9に記載の方法。
  11. 前記バックログ量はデータサイズの大きさである、請求項1に記載の方法。
  12. 前記データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである、請求項11に記載の方法。
  13. 前記バックログ量は処理時間の長さである、請求項1に記載の方法。
  14. 前記処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである、請求項13に記載の方法。
  15. 前記方法は、前記ジョブについて、プロセッサ使用率を繰り返し判定するステップをさらに含み、
    前記ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定するステップは、さらに前記プロセッサ使用率に基づく、請求項1に記載の方法。
  16. 前記判定の繰り返しについて、
    前記プロセッサ使用率はある値未満であり、
    前記プロセッサ使用率がある値未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記プロセッサ使用率がある値未満であると判定されたことに応答して前記ジョブに割当てる処理リソースの量を削減するステップを含む、請求項15に記載の方法。
  17. 前記プロセッサ使用率がある値未満であると判定されたことに応答して前記ジョブに割当てる処理リソースの量を削減するステップは、前記ジョブに割当てるリソースの離散数
    を減少させるステップを含み、前記離散数は前記プロセッサ使用率に基づく、請求項16に記載の方法。
  18. 前記離散数はコンピュータメモリディスクの数である、請求項17に記載の方法。
  19. 前記バックログ増大および前記バックログ量に基づいて前記ジョブに割当てる処理リソースの量を調整するか否かを判定するステップは、前記ジョブに割当てる処理リソースの量の変動を生じさせる前記判定するステップを平滑化するステップを含む、請求項1に記載の方法。
  20. 前記判定するステップを平滑化するステップは、第2の期間待つステップを含む、請求項19に記載の方法。
  21. 前記判定するステップを平滑化するステップは、前記ジョブに割当てる処理リソースの量を調整するか否かの複数の判定を平均化するステップを含む、請求項19に記載の方法。
  22. システムであって、
    コンピュータプログラム命令を実行するように構成された1つ以上のプロセッサと、
    コンピュータプログラム命令が符号化されたコンピュータ記憶媒体とを備え、前記コンピュータプログラム命令は、1つ以上のプロセッサによって実行されると、コンピュータデバイスに、
    複数の処理リソースを備えるコンピュータシステムにおいて、データストリームを入力として受信するジョブを含む演算を行わせ、前記データストリーム内のデータ量は、無限であり、
    前記ジョブについて、
    前記ジョブに入力される受信された前記データストリームにおける未処理データの増大量である、第1の期間にわたるバックログ増大と、
    前記ジョブに入力される受信された前記データストリームにおける未処理データの量であるバックログ量と、
    前記バックログ増大および前記バックログ量に基づいて、前記ジョブに割当てる処理リソースの量を調整するか否か、とを繰り返し判定するステップと、
    前記ジョブに割当てる処理リソースの量を調整すると判定された繰り返し毎に、前記ジョブに割当てる処理リソースの量を調整するステップと、
    前記ジョブに割当てる処理リソースの量を調整しないと判定された繰り返し毎に、前記ジョブに割当てる処理リソースの量を維持するステップとを含む演算を行なわせる、システム。
  23. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標と等しいと判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標と等しいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整しないと判定される、請求項22に記載のシステム。
  24. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標未満であると判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整
    すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を削減するステップを含む、請求項22に記載のシステム。
  25. 前記判定の繰り返しについて、
    前記バックログ増大はゼロまたは負であると判定され、
    前記バックログ量は目標よりも大きいと判定され、
    前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標よりも大きいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大がゼロまたは負であると判定され、かつ、前記バックログ量が目標よりも大きいと判定されたことに応答して、前記ジョブに割当てる処理リソースの量を増加させるステップを含む、請求項22に記載のシステム。
  26. 前記判定の繰り返しについて、
    前記バックログ増大は正であると判定され、
    前記バックログ量は目標未満であると判定され、
    前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整しないと判定される、請求項22に記載のシステム。
  27. 前記判定の繰り返しについて、
    前記バックログ増大は正であると判定され、
    前記バックログ量は目標以上であると判定され、
    前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記バックログ増大が正であると判定され、かつ、前記バックログ量が目標未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を増加させるステップを含む、請求項22に記載のシステム。
  28. 前記バックログ増大はデータサイズの大きさである、請求項22に記載のシステム。
  29. 前記データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである、請求項28に記載のシステム。
  30. 前記バックログ増大は処理時間の長さである、請求項22に記載のシステム。
  31. 前記処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである、請求項30に記載のシステム。
  32. 前記バックログ量はデータサイズの大きさである、請求項22に記載のシステム。
  33. 前記データサイズの単位は、ビット、バイト、メガバイト、ギガバイト、レコード、および基数からなる群のうちの少なくとも1つである、請求項32に記載のシステム。
  34. 前記バックログ量は処理時間の長さである、請求項22に記載のシステム。
  35. 前記処理時間の単位は、マイクロ秒、秒、分、時間、および日からなる群のうちの少なくとも1つである、請求項34に記載のシステム。
  36. 前記演算は、前記ジョブについて、プロセッサ使用率を繰り返し判定するステップをさらに含み、
    前記ジョブに割当てる処理リソースの量を調整するか否かを繰り返し判定するステップは、さらに前記プロセッサ使用率に基づく、請求項22に記載のシステム。
  37. 前記判定の繰り返しについて、
    前記プロセッサ使用率はある値未満であり、
    前記プロセッサ使用率がある値未満であると判定されたことに応答して、前記ジョブに割当てる処理リソースの量を調整すると判定され、
    前記ジョブに割当てる処理リソースの量を調整するステップは、前記プロセッサ使用率がある値未満であると判定されたことに応答して前記ジョブに割当てる処理リソースの量を削減するステップを含む、請求項36に記載のシステム。
  38. 前記プロセッサ使用率がある値未満であると判定されたことに応答して前記ジョブに割当てる処理リソースの量を削減するステップは、前記ジョブに割当てるリソースの離散数を減少させるステップを含み、前記離散数は前記プロセッサ使用率に基づく、請求項37に記載のシステム。
  39. 前記離散数はコンピュータメモリディスクの数である、請求項38に記載のシステム。
  40. 前記バックログ増大および前記バックログ量に基づいて前記ジョブに割当てる処理リソースの量を調整するか否かを判定するステップは、前記ジョブに割当てる処理リソースの量の変動を生じさせる前記判定するステップを平滑化するステップを含む、請求項22に記載のシステム。
  41. 前記判定するステップを平滑化するステップは、第2の期間待つステップを含む、請求項40に記載のシステム。
  42. 前記判定するステップを平滑化するステップは、前記ジョブに割当てる処理リソースの量を調整するか否かの複数の判定を平均化するステップを含む、請求項40に記載のシステム。
JP2019229115A 2016-03-04 2019-12-19 コンピュータ処理のためのリソース割当て Active JP6971294B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662303827P 2016-03-04 2016-03-04
US62/303,827 2016-03-04
JP2018536462A JP6637186B2 (ja) 2016-03-04 2016-12-19 コンピュータ処理のためのリソース割当て

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018536462A Division JP6637186B2 (ja) 2016-03-04 2016-12-19 コンピュータ処理のためのリソース割当て

Publications (2)

Publication Number Publication Date
JP2020074101A true JP2020074101A (ja) 2020-05-14
JP6971294B2 JP6971294B2 (ja) 2021-11-24

Family

ID=57799812

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018536462A Active JP6637186B2 (ja) 2016-03-04 2016-12-19 コンピュータ処理のためのリソース割当て
JP2019229115A Active JP6971294B2 (ja) 2016-03-04 2019-12-19 コンピュータ処理のためのリソース割当て

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018536462A Active JP6637186B2 (ja) 2016-03-04 2016-12-19 コンピュータ処理のためのリソース割当て

Country Status (8)

Country Link
US (2) US10558501B2 (ja)
EP (2) EP3394753A1 (ja)
JP (2) JP6637186B2 (ja)
KR (1) KR102003872B1 (ja)
CN (2) CN108885561B (ja)
AU (3) AU2016396079B2 (ja)
SG (1) SG11201805281YA (ja)
WO (1) WO2017151209A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331481B2 (en) * 2017-03-08 2019-06-25 International Business Machines Corporation Automatic reconfiguration of high performance computing job schedulers based on user behavior, user feedback, and job performance monitoring
US11334391B2 (en) * 2017-04-17 2022-05-17 Red Hat, Inc. Self-programmable and self-tunable resource scheduler for jobs in cloud computing
US10666703B2 (en) * 2017-05-09 2020-05-26 EMC IP Holding Company LLC De-multiplexing streaming data from a fast write ahead durable log into segments
CN110019944A (zh) * 2017-12-21 2019-07-16 飞狐信息技术(天津)有限公司 一种视频的推荐方法及***
EP3640800A1 (fr) * 2018-10-17 2020-04-22 Bull Sas Procédé d'amélioration de l'efficacité d'utilisation des ressources d'une infrastructure destinée a exécuter un plan d'ordonnancement
FR3087556B1 (fr) * 2018-10-17 2022-04-29 Bull Sas Procede d'amelioration de l'efficacite d'utlisation des ressources d'une infrastructure destinee a executer un plan d'ordonnancement
JP7145094B2 (ja) * 2019-02-05 2022-09-30 Kddi株式会社 制御装置、コンピュータプログラム及び情報処理方法
US11366697B2 (en) * 2019-05-01 2022-06-21 EMC IP Holding Company LLC Adaptive controller for online adaptation of resource allocation policies for iterative workloads using reinforcement learning
US11025711B2 (en) 2019-05-02 2021-06-01 EMC IP Holding Company LLC Data centric resource management for edge cloud systems
US11586474B2 (en) 2019-06-28 2023-02-21 EMC IP Holding Company LLC Adaptation of resource allocation for multiple workloads using interference effect of resource allocation of additional workloads on performance
US11327801B2 (en) 2019-08-29 2022-05-10 EMC IP Holding Company LLC Initialization of resource allocation for a workload characterized using a regression model
US11113171B2 (en) 2019-08-29 2021-09-07 EMC IP Holding Company LLC Early-convergence detection for online resource allocation policies for iterative workloads
US20210096927A1 (en) * 2019-09-27 2021-04-01 Citrix Systems, Inc. Auto-scaling a pool of virtual delivery agents
US11868810B2 (en) 2019-11-15 2024-01-09 EMC IP Holding Company LLC Resource adaptation using nonlinear relationship between system performance metric and resource usage
CA3165438A1 (en) * 2019-12-20 2021-06-24 Niantic, Inc. Sharded storage of geolocated data with predictable query response times
JP2021192189A (ja) * 2020-06-05 2021-12-16 富士通株式会社 パイプライン分割位置決定方法及びパイプライン分割位置決定プログラム
US11650858B2 (en) 2020-09-24 2023-05-16 International Business Machines Corporation Maintaining stream processing resource type versions in stream processing
CN113821336B (zh) * 2021-03-08 2024-04-05 北京京东乾石科技有限公司 资源分配方法和装置、存储介质、电子设备
US11665106B2 (en) * 2021-09-07 2023-05-30 Hewlett Packard Enterprise Development Lp Network-aware resource allocation
US11934673B2 (en) 2022-08-11 2024-03-19 Seagate Technology Llc Workload amplification metering and management

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591287B1 (en) * 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
JP3884427B2 (ja) * 2003-12-10 2007-02-21 東芝ソリューション株式会社 計算機システム及び資源割り当てプログラム
US20050213507A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Dynamically provisioning computer system resources
US7660955B2 (en) * 2005-12-01 2010-02-09 International Business Machines Corporation Node polling in consistency group formation
US8458720B2 (en) * 2007-08-17 2013-06-04 International Business Machines Corporation Methods and systems for assigning non-continual jobs to candidate processing nodes in a stream-oriented computer system
KR20100035394A (ko) * 2008-09-26 2010-04-05 삼성전자주식회사 멀티 프로세싱에서의 메모리 관리장치 및 그 방법
CN101533362A (zh) * 2009-04-15 2009-09-16 南京联创科技股份有限公司 进程间cpu资源平衡调度方法
US8639862B2 (en) * 2009-07-21 2014-01-28 Applied Micro Circuits Corporation System-on-chip queue status power management
JP2011118525A (ja) * 2009-12-01 2011-06-16 Hitachi Ltd サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
US8201820B2 (en) * 2010-07-27 2012-06-19 Foxlink Image Technology Co., Ltd. Document feeding mechanism
US8799916B2 (en) * 2011-02-02 2014-08-05 Hewlett-Packard Development Company, L. P. Determining an allocation of resources for a job
JP5843459B2 (ja) * 2011-03-30 2016-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体
KR20120122136A (ko) * 2011-04-28 2012-11-07 삼성전자주식회사 데이터 스트림 관리 시스템에서의 부하 경감을 조절하는 방법 및 장치
US20120296696A1 (en) * 2011-05-17 2012-11-22 International Business Machines Corporation Sustaining engineering and maintenance using sem patterns and the seminal dashboard
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US9069606B2 (en) * 2012-05-08 2015-06-30 Adobe Systems Incorporated Autonomous application-level auto-scaling in a cloud
CN104023042B (zh) * 2013-03-01 2017-05-24 清华大学 云平台资源调度方法
KR20150062634A (ko) * 2013-11-29 2015-06-08 고려대학교 산학협력단 클라우드 컴퓨팅 환경 내 오토 스케일링 시스템 및 방법
CN104951368B (zh) * 2014-03-28 2019-02-22 中国电信股份有限公司 资源动态分配装置和方法
US20170185456A1 (en) * 2014-05-01 2017-06-29 Longsand Limited Dynamically scaled web service deployments
US9542107B2 (en) * 2014-06-25 2017-01-10 International Business Machines Corporation Flash copy relationship management
US20160306416A1 (en) * 2015-04-16 2016-10-20 Intel Corporation Apparatus and Method for Adjusting Processor Power Usage Based On Network Load
US20160378545A1 (en) * 2015-05-10 2016-12-29 Apl Software Inc. Methods and architecture for enhanced computer performance
US10044632B2 (en) * 2016-10-20 2018-08-07 Dell Products Lp Systems and methods for adaptive credit-based flow

Also Published As

Publication number Publication date
JP6971294B2 (ja) 2021-11-24
US20200225991A1 (en) 2020-07-16
US10558501B2 (en) 2020-02-11
US20170255491A1 (en) 2017-09-07
CN108885561B (zh) 2022-04-08
EP3394753A1 (en) 2018-10-31
EP3971719A1 (en) 2022-03-23
KR102003872B1 (ko) 2019-10-17
AU2022200716A1 (en) 2022-02-24
JP2019508795A (ja) 2019-03-28
SG11201805281YA (en) 2018-07-30
AU2020201056B2 (en) 2021-11-04
AU2016396079A1 (en) 2018-07-26
WO2017151209A1 (en) 2017-09-08
AU2016396079B2 (en) 2019-11-21
JP6637186B2 (ja) 2020-01-29
KR20180085806A (ko) 2018-07-27
AU2022200716B2 (en) 2023-06-01
AU2020201056A1 (en) 2020-03-05
CN108885561A (zh) 2018-11-23
CN114756341A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
JP2020074101A (ja) コンピュータ処理のためのリソース割当て
US11487562B2 (en) Rolling resource credits for scheduling of virtual computer resources
US10223166B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
US10289183B2 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
US10430218B2 (en) Management of demand for virtual computing resources
US8972956B2 (en) Application deployment in heterogeneous environments
US20180144251A1 (en) Server and cloud computing resource optimization method thereof for cloud big data computing architecture
US11150951B2 (en) Releasable resource based preemptive scheduling
US9798584B1 (en) Methods and apparatus for IO sizing based task throttling
US11941456B2 (en) Computer system workload manager
JP2021504780A (ja) 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け
WO2020133408A1 (zh) 应用程序的优先级调整方法、装置、存储介质及电子设备
US11586475B2 (en) Application aware resource allocation for deep learning job scheduling
US20230409411A1 (en) Automated pattern generation for elasticity in cloud-based applications
US20230136226A1 (en) Techniques for auto-tuning compute load resources
US20230342200A1 (en) System and method for resource management in dynamic systems
US20240004693A1 (en) Batch workload control based on capacity consumption
JP2022189807A (ja) コンピュータ実装方法、システム、コンピュータプログラム(コンテナへのサービスの割り当て)
CN116909940A (zh) 一种自适应内存分配方法、装置及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210607

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: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R150 Certificate of patent or registration of utility model

Ref document number: 6971294

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150