JP7210713B2 - オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス - Google Patents

オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス Download PDF

Info

Publication number
JP7210713B2
JP7210713B2 JP2021517335A JP2021517335A JP7210713B2 JP 7210713 B2 JP7210713 B2 JP 7210713B2 JP 2021517335 A JP2021517335 A JP 2021517335A JP 2021517335 A JP2021517335 A JP 2021517335A JP 7210713 B2 JP7210713 B2 JP 7210713B2
Authority
JP
Japan
Prior art keywords
message
state information
computer
processing
stream
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
JP2021517335A
Other languages
English (en)
Other versions
JP2022501736A (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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2022501736A publication Critical patent/JP2022501736A/ja
Application granted granted Critical
Publication of JP7210713B2 publication Critical patent/JP7210713B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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
    • G06F9/5072Grid computing
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

コンピューティングデバイスは、データを交換するために通信ネットワークを利用することができる。企業および組織は、いくつかのコンピューティングデバイスを相互接続して、運用を支援するか、または第三者にサービスを提供する、コンピュータネットワークを運用する。コンピューティングシステムは、単一の地理的位置に配置することもできるし、または複数の別個の地理的位置に配置することもできる(例えば、プライベートまたはパブリック通信ネットワークを介して相互接続されている)。具体的には、本明細書では一般に「データセンター」と称されるデータセンターまたはデータ処理センタは、コンピューティングリソースをデータセンターのユーザに提供するために、複数の相互接続されたコンピューティングシステムを含んでもよい。データセンターは、組織の代わりに運営されるプライベートデータセンター、または一般大衆の代わりにもしくは一般大衆の利益のために運営されるパブリックデータセンターであり得る。
データセンターリソースの利用度を向上させるために、仮想化技術により、単一の物理コンピューティングデバイスが、データセンターのユーザに対して独立したコンピューティングデバイスとして表示され、かつ動作する仮想マシンの1つ以上のインスタンスをホストすることができる。仮想化に伴い、単一の物理コンピューティングデバイスは、仮想マシンの作成、維持、削除、またはその他の方法による管理を動的に行い得る。結果として、ユーザは、単一のコンピューティングデバイス、またはネットワーク接続されたコンピューティングデバイスの構成を含むコンピュータリソースをデータセンターに要求することができ、ユーザにはさまざまな数の仮想マシンリソースが提供され得る。
いくつかのシナリオでは、仮想マシンインスタンスは、特定の機能性を提供するように、いくらかの仮想マシンインスタンスによって構成されてもよい。例えば、さまざまなコンピューティングデバイスは、コンピューティングデバイスが、異なる所望の機能性を提供すること、または同様の機能性をより効率的に提供することを可能にするために、オペレーティングシステムまたはオペレーティングシステム構成、仮想ハードウェアリソース、およびソフトウェアアプリケーションの異なる組み合わせに関連付けられてもよい。これらの仮想マシンインスタンスタイプの構成は、多くの場合、デバイスイメージ内に含有され、そのデバイスイメージは、開始すると仮想マシンが起動するソフトウェア(例えば、それらの構成およびデータファイルと一体のOSおよびアプリケーション等)を含有する静的データを含む。デバイスイメージは、通常、インスタンスを作成または初期化するために使用されるディスク上に記憶される。したがって、コンピューティングデバイスは、所望のソフトウェア構成を実装するために、デバイスイメージを処理してもよい。
データセンターの使用の一例は、大規模なデータセットを処理する、または解析することであり、これらの大規模なデータセットを、単一のコンピューティングデバイスを使用して解析することは非実用的である場合がある。複数のコンピューティングデバイス(または場合によっては単一のコンピューティングデバイス内の複数のプロセッサ)がデータを同時に処理することを可能にするために、さまざまな技法が開発されている。この同時データ処理は、時には「並列化」と称される。データセットを処理する際に並列化を可能にする1つの技法は、「MapReduce」プログラミングモデルである。このプログラミングモデルは、デバイスセット内の個別のコンピューティングデバイスによる2つの関数の実行を制御する、集中型「インフラストラクチャ」または「フレームワーク」を一般に必要とする。第一関数である「map」関数の実行により、複数のデバイスに、完全な生データセットの部分(または「チャンク」)を処理させて、テキストのコーパス内の個々の単語のカウントなどの中間結果セットを生成させる。第二関数である「reduce」関数の実行により、1つ以上のデバイスに、複数の中間結果セット(複数のmap関数からの)を組み合わせて、集計結果セットを生成させる。reduce関数を複数回実行することができ、実行するたびに、単一の集計結果記録が作成されるまで、集計結果数をさらにreduce処理させる。MapReduceプログラミングモデルの従来の実装では、インフラストラクチャまたはフレームワークは、通常、結果が提供されるまでmap関数およびreduce関数の実行を調整するために、連続して実行する必要がある。
オンデマンドコード実行システム内の個別の実行環境が、状態情報を維持することを必要としないように、オンデマンドコード実行システムが、データセットを処理するためにポーリングデバイスを利用して状態情報を維持することによってデータセットを処理するように動作することができる、例示的な環境を示すブロック図である。 図1のワーカーマネージャを提供するコンピューティングデバイスの一般的なアーキテクチャを示す。 図1のオンデマンドコード実行システムの実行環境内でのコードの実行を介してデータセットを処理するために、ポーリングデバイスを利用して状態情報を維持するための例示的なインタラクションを示す流れ図である。 データセットを処理する、具体的には、独立して各処理されることができる複数のサブセットにデータ項目セットを分割することを可能にする、デバイスの再分散中に、図1のポーラーデバイス間の状態情報の転送をグラフィックで示す図解である。 データセットを処理する、具体的には、複数のデータ項目セットを単一のスーパーセットにマージすることを可能にする、デバイスの再分散中に、図1のポーラーデバイス間の状態情報の転送をグラフィックで示す図解である。 図1のオンデマンドコード実行システムの実行環境内でのコードの実行を介してデータセットを処理するために、ポーリングデバイスを利用して状態情報を維持するための例示的なルーティンである。
一般的に説明すれば、本開示の態様は、クライアントがデータセットを処理するためにユーザ定義コードの実行を要求することを可能にするオンデマンドコード実行環境に関する。より具体的には、本開示の態様は、コードを実行する実行環境に状態情報を維持することを必要とせずに、データセットをステートフルに処理することを可能にする。データセットの処理との関連で、ステートフル処理は、動作が保持された状態情報に依存しないステートレス処理とは対照的に、一般に、セット内のより後のデータ項目の処理結果が以前に処理されたデータ項目に関連する、保持された状態情報に少なくとも部分的に依存する処理を指す。ステートフル処理を利用して、例えば、セット内の特定のデータ項目の出現回数をカウントすることなどによって、MapReduceプログラミングモデルを実装することができる。ステートフル処理はエンドユーザにとって望ましいことが多いが、ステートフル処理の正常でレジリエンスのある実装は、分散システムに課題を提示する可能性がある。通常、このような処理は、状態情報をローカルに格納するコードによって実装されるため、より後のデータ項目の処理は、ローカルに格納された状態情報に基づくことができる。ただし、状態情報のローカルストレージは、正しい状態情報を含む環境にデータセット内の各データ項目をルーティングする必要があるため、コード実行の移植性を阻害する。また、状態情報のローカルストレージは、状態情報の損失がデータセットの解析を非決定状態にする可能性があるため、実行環境のレジリエンスに関する追加要件を作成する。これらの理由、そして他の理由のために、本来であればオンデマンドコード実行システム(時には「サーバーレス」計算システムと称される)のような、ステートフル処理に使用することが望ましいかもしれない多くのシステムは、一般に、ステートフルコード実行をサポートしない。本明細書に開示される実施形態は、実行環境内での状態情報のローカルストレージを必要とせずに、実行環境内でのステートフル処理に提供することによって、これらの問題に対処する。
説明を容易にするために、本開示の実施形態は、MapReduceプログラミングモデルの実装を参照して説明され、このMapReduceプログラミングモデルは、大規模なデータセットを解析するために使用されることができ、一般に、ステートフルコードに少なくとも部分的に依存して、モデルの最初の「map」段階の出力を「reduce」処理する。当該技術分野で知られているように、MapReduceプログラミングモデルは、分散コンピューティングシステム(例えば、互いに通信する複数の別個のデバイスを含む)がデータセット、そして特に大規模なデータセット(例えば、ギガバイト、テラバイト、ペタバイトなどのオーダーで)を処理することを可能にするために使用される論理データ処理モデルである。一般に、MapReduceプログラミングモデルは、少なくとも2つのデータ処理段階(map段階とreduce段階)を含む。map段階中に、分散コンピューティングシステム内の個別のデバイスは、データセットの一部分(例えば、nギガバイトのチャンク)を収集し、その部分のコンテンツを出力セットに「map」処理する。次に、各出力セットを「reduce」関数によって処理し、出力セット内のコンテンツの処理結果を集計する、または組み合わせる、またはその他の方法により決定する。MapReduceパラダイムの一般的な例は、コーパス内の単語の出現をカウントすることである。例えば、ユーザがマルチテラバイトのテキストデータセットを取得することをサポートし、このデータセット内に存在する単語と、各単語が出現する頻度を決定したい。単一のデバイスを利用すると、このデータセットを処理するには、過度の時間がかかる場合がある。ただし、MapReduceモデル下では、分散システム内の各デバイスは、map関数に従ってデータセットの制限された部分(または「チャンク」)を処理することができる。この例では、map関数は、データセットの部分内の各単語の出現をカウントすることに対応することができる。このシステム内のデバイスの数を増やすことにより、処理速度を上げることができる。このような処理の制限は、各デバイスがデータセットの制限された部分のみを処理することであるため、その部分内の単語カウントのみを認識している。デバイス間でカウントを集計するために、reduce関数を使用する。単一のデバイスを使用して各map関数で生成される単語カウントを集計することができるかもしれないが、このコンフィグレーションは、処理のボトルネックも作り出す。これに対処するために、MapReduceモデルは、複数のreduce関数が分散システム全体に実装されることを可能にし、各関数は、出力の属性に従って、map関数の出力サブセットを処理する。例えば、単語カウントの例では、26個のreduce関数を実装して、それぞれが英語のアルファベットの特定の文字で始まる単語のカウントを作成することができる。例示的に、第一reduce関数はmap関数からアルファベット「a」で始まる単語のすべてのカウントを取得することができ、第二reduce関数は「b」で始まる単語のすべてのカウントを取得することができるなど、である。したがって、各reduce関数は、コーパス内の単語のある特定の部分についての全体的な単語カウントを得ることができる。reduce関数の出力を組み合わせて、合計単語カウントを取得することができる。多くの場合、reduce関数の出力を組み合わせることは、それらの出力が明確に異なり重複しないため、比較的低コストの操作である。したがって、MapReduceプログラミングモデルを利用して、データセットの迅速な分散処理を容易にすることができる。
上記に照らして理解されるように、MapReduceモデルのreduce段階は、データセット内のn番目のデータ項目の処理結果が(n-1)番目のデータ項目の処理結果に一般に依存するため、ステートフルに実装されることが多い。ステートフルなreduce段階に提供するために、MapReduceモデルは、専用の分散システムに従来実装されており、このシステム内のワーカーコンピュータノードの生成およびコンフィグレーションを処理するようにフレームワークソフトウェアで構成されている。専用のワーカーノードの使用は、他の潜在的な利点の中でも、ワーカーノードと、それらがreduce段階を実装するデータセットの部分との間にアフィニティを提供する。各ワーカーノードには、map段階の出力の適切な部分を提供することができるため、その部分に関してreduce段階の正確な実装を確保することができる。ただし、従来のMapReduce実装もまた不利な点がある。例えば、ワーカーノードは、通常、MapReduceモデルの実装のみに専用であり、それらの機能が他のコンピューティングタスクを行うことを制限する。したがって、このような分散システムを確立することは、特にユーザがMapReduceモデルの実装に継続的な専用システムを必要としない場合、時間がかかり、非効率的である可能性がある。
本開示の実施形態は、オンデマンドコード実行システムによって提供されるようなステートレスな実行環境内に実装される、MapReduceプログラミングモデルのreduce段階などの典型的なステートフル処理を可能にすることによって、上記の問題に対処する。以下でより詳細に説明されるように、本開示の実施形態は、中間デバイスが、反復データ処理(例えば、MapReduceモデルのreduce段階)に関連する状態情報を維持し、オンデマンドコード実行システム上でコードを実行する各要求に状態情報をサブミットすることを可能にする。中間デバイスは、各呼び出しに応答して更新された状態情報を取得し、更新された状態情報を次の呼び出しに含むことができる。このようにして、オンデマンドコード実行システム上の実行環境は、状態情報を維持する義務から解放され、ステートレスに動作し続けることができる。ただし、それにもかかわらず、データセットの処理中に状態情報を維持することができるため、データセットの正常なステートフル解析を可能にする。以下に説明されるように、中間デバイスは、データセットを処理するシステム内の不具合を識別して訂正することができるように、動作のレジリエンスを確保するように構成されることができる。さらに、中間デバイスは、効率的なレジリエンスを確保するように構成されることができるため、レジリエンスを提供することは、データセットを処理するシステムの機能に実質的な悪影響を及ぼさない。
一実施形態では、中間デバイスは、ポーラーデバイスであり、このポーラーデバイスは、オンデマンドコード実行システム上でコードを呼び出すための呼び出しセットを取得し(例えば、呼び出しに含まれるか参照されるデータ項目を処理するために)、そして各呼び出しをオンデマンドコード実行システムに渡すように動作する。呼び出しセットは、ストリームデータ処理システム上のメッセージキューなどのキューとして例示的に維持されることができる。例示的に、本開示の実施形態によるポーラーデバイスは、キュー上のデータ項目を処理するための初期状態情報を決定し(例えば、ヌル状態として)、キューから呼び出しの初期バッチを取得し、キューの処理状態を表す現在の状態情報に加えて各呼び出しを、オンデマンドコード実行システムに繰り返しサブミットすることができる。ポーラーデバイスは、各呼び出しに応答して更新された状態情報を受信するように構成されることができ、この情報は、後続の呼び出しに含まれることができる。キューについての状態情報を各呼び出しに渡すため、オンデマンドコード実行システム上の環境自体は、状態情報を維持するために必要とされない。このため、アフィニティは、ポーラーデバイスと、呼び出しが処理される環境との間に一般に必要とされない。むしろ、オンデマンドコード実行システムは、ポーラーデバイスから任意の適切な環境に呼び出しをルーティングすることができ、呼び出しに対応するコードを実行する際のオンデマンドコード実行システムの柔軟性を向上させる。ポーラーデバイスは、レジリエンスのあるストレージシステム(例えば、ビルトイン冗長性を有するネットワークストレージ位置)に状態情報を定期的に保存し、その保存された状態情報に基づいて不具合イベント中に処理を再開するように構成されることができる。したがって、ポーラーデバイスに状態情報を維持することは、オンデマンドコード実行システムでのステートフルなデータ処理を可能にする効率的なメカニズムを提供する。
オンデマンドコード実行システムでステートフルなデータ処理を可能にする他のメカニズムが本明細書で企図されているが、これらの他のメカニズムは、中間(例えば、ポーラー)デバイスに状態情報を維持することよりも一般に望ましくない。例えば、各呼び出しが同じ実行環境にルーティングされるように、オンデマンドコード実行システムが、所与のコードセットを実行するために複数の呼び出しにアフィニティを提供するように構成されることが考えられる。さらに、オンデマンドコード実行システムによって、そのような各環境がローカル状態情報を維持することが可能であることで、この環境内でコードのステートフル実行が可能であることが考えられる。ただし、このアプローチは、オンデマンドコード実行システムの操作の柔軟性を大幅に低下させるため、システムが実行環境を長期間維持することを要求する。さらに、このアプローチは、動作のレジリエンスを提供する必要性、または動作負荷の変化に応答して多数の環境をスケールアップもしくはスケールダウンする必要性など、分散処理システムで頻繁に発生する問題に対処するにはあまり適していない可能性がある。例えば、これらの問題に対処するために、オンデマンドコード実行システムは、各環境の状態情報を頻繁に保存することが要求される場合があり、システムのリソース使用量が大幅に増加する。また、システムは、スケールアップまたはスケールダウンイベント中に環境間で状態情報の転送のために提供することが要求される場合があり、それらのような環境の管理の複雑さが増す。呼び出しの処理間で状態情報を保持するための別の可能なメカニズムは、呼び出しの処理中に、その状態情報をネットワークデータストレージなどの永続的な外部位置に書き込むように各実行環境を設定することである。したがって、後続の実行は、永続的な位置から状態情報を取得して、後続の呼び出しの処理を容易にすることができる。ただし、分散システムでは、外部ストレージ位置への書き込みは、呼び出しを処理するために使用されるコンピューティングリソースを大幅に増加させる可能性があるため、一般に「重い」操作とみなされる。例えば、ネットワーク位置への書き込みは、ネットワーク位置とのトランスポート制御プロトコル(TCP)セッション、およびかなりの時間とリソースを必要とする可能性がある(本来であれば単一の呼び出しを処理することが要求されるリソースの観点から)プロセスの開始を要求する場合がある。呼び出しの数が多い場合(例えば、マルチテラバイトのデータセットを処理する場合)、このような重い操作に要求される追加のオーバーヘッドは相当になる可能性がある。
本開示の実施形態は、これらの不利な点なしで、呼び出しの処理間で状態情報を維持することを可能にする。例えば、中間デバイスは、呼び出しをオンデマンドコード実行システムにサブミットすると同時に、呼び出しについての状態情報を渡すことができ、その呼び出しへの応答として更新された状態情報を受信することができる。したがって、追加のネットワーク通信は、オンデマンドコード実行システムでは要求されない。さらに、中間デバイスは、このデバイスに利用可能なリソースと、不具合イベント中に動作を再開するために要求されるオーバーヘッドとに基づいて調整されることができる周期で、状態情報を定期的に保存することによってレジリエンスを提供することを実装することができる。具体的には、中間デバイスは「長期」ビューの呼び出しキューを処理することが可能であるため、このデバイスは、各呼び出し後に状態情報を、オンデマンドコード実行システムまたは外部データストアが保存することができる場合、保存することを確保することが要求されない。
本明細書で詳細に説明されるように、オンデマンドコード実行システムは、オンデマンドコード実行システム上で仮想マシンインスタンスによって実行されるコンピュータ実行可能コードをユーザがサブミットする、または指定することを可能にするネットワークアクセス可能なサービスを提供することができる。オンデマンドコード実行システム上の各コードセットは、「タスク」を定義し、オンデマンドコード実行システムの仮想マシンインスタンス上で実行されるときに、そのタスクに対応する特定の機能を実装することができる。オンデマンドコード実行システム上でのタスクの個別の実装は、タスクの「実行」(または「タスク実行」)と称されることができる。さらに、オンデマンドコード実行システムによって、ユーザは、ネットワークベースのストレージシステムでの新しいデータの検出、オンデマンドコード実行システムへのアプリケーションプログラミングインタフェース(「API」)呼び出しの送信、または特別にフォーマットされたハイパーテキスト転送プロトコル(「HTTP」)パケットのオンデマンドコード実行システムへの送信のような、さまざまな潜在的なイベントに基づいてタスクの実行をトリガすることができる。したがって、コードが実行される、基盤となるハードウェアまたはインフラストラクチャのコンフィグレーションまたはメンテナンスを必要とせずに、ユーザは、オンデマンドコード実行システムを利用して、いずれかの指定された実行可能コードを「オンデマンド」で実行することができる。さらに、オンデマンドコード実行システムは、タスクを迅速な方式で(例えば、100ミリ秒[ms]未満で)実行するように構成されることができることで、タスク実行を「リアルタイム」で(例えば、エンドユーザに認知可能な遅延がほとんどない、またはまったくない状態で)可能にする。
オンデマンドコード実行システムが、コードを実行する基盤となるデバイスのコンフィグレーションなしで、タスクをオンデマンドで実行する機能を提供することができるため、オンデマンドコード実行システムは、MapReduceプログラミングモデルを実装するための優れたプラットフォームを提供することができる。例えば、「MAPREDUCE IMPLEMENTATION IN AN ON-DEMAND NETWORK CODE EXECUTION SYSTEM AND STREAM DATA PROCESSING SYSTEM」と題され、2018年9月27日に出願された米国特許出願第16/144,997号(「’997出願」)に記載されているように、この出願は、その全体が参照により本明細書に援用され、オンデマンドコード実行システムをストリームデータ処理システムと組み合わせて使用して、集中型コントローラを必要とせずにMapReduceプログラミングモデルを実装することができる。本開示は、MapReduceプログラミングモデルまたは他のデータ解析を実装するオンデマンドコード実行システムの動作を、そのようなデータ解析のために状態情報を維持する効率的な方法を提供することによって、そのような状態情報をオンデマンドコード実行システムの環境内に維持すること、またはそのような環境によって追加の外部位置に永続化することを必要とせずに、さらに改善することができる。
本開示に照らして当業者に理解されるように、本明細書に開示される実施形態は、並列化可能な方法でデータセットを処理して解析する、オンデマンドコード実行システムなどのコンピューティングシステムの機能を改善する。より具体的には、本開示の実施形態は、そのような状態情報がシステムの実行環境に維持されることを必要とせずに、オンデマンドコード実行システム上でのコード実行間に状態情報を効率的に維持することを可能にする。さらに、現在開示されている実施形態は、コンピューティングシステム内に固有の技術的問題、具体的には、データセットをステートフルに処理するときに状態情報を維持する必要性と、そのような情報を、データセットを処理するために使用されるコンピューティングリソースを増加させることなく、またはそのような処理が発生する位置の柔軟性を低下させることなく維持することの困難とに対処する。これらの技術的問題は、キューからオンデマンドコード実行システムへの呼び出しを取得し、これらの呼び出しによって渡される状態情報を維持しながらオンデマンドコード実行システムに呼び出しを繰り返しサブミットするための中間デバイスの使用を含む、本明細書に記載されるさまざまな技術的解決策によって対処される。よって、本開示は、概して、既存のデータ処理システムおよびコンピューティングシステムに対する改善を表す。
次に、オンデマンドコード実行環境上でのタスクの一般的な実行を考察する。具体的には、タスクを実行するために、本明細書に記載されるオンデマンドコード実行環境は、ユーザ要求を受信するとすぐに使える状態である、事前に初期化された仮想マシンインスタンスのプールを維持することができる。これらの仮想マシンは、事前に初期化されているために、ユーザコードの実行に伴う(レイテンシと呼ばれることもある)遅延(例えば、インスタンスおよび言語ランタイムの起動時間)を、多くの場合は100ミリ秒より下のレベルまで、大幅に減らすことができる。実例として、オンデマンドコード実行環境は、1つ以上の物理コンピューティングデバイス上で仮想マシンインスタンスのプールを維持してもよく、そこでそれぞれの仮想マシンインスタンスは、そのデバイス上にロードされた1つ以上のソフトウェア構成要素(例えば、オペレーティングシステム、言語ランタイム、ライブラリなど)を有する。オンデマンドコード実行環境が、ユーザのプログラムコードを実行する要求(タスク)であって、そのユーザのプログラムコードを実行するための1つ以上の計算制約を指定する要求を受信した際に、オンデマンドコード実行環境では、要求によって指定された1つ以上の計算制約に基づいてユーザのプログラムコードを実行するための仮想マシンインスタンスが選択され、選択された仮想マシンインスタンス上でユーザのプログラムコードが実行されるようにしてもよい。プログラムコードは、仮想マシンインスタンス上に作成される隔離されたコンテナ内で実行させることができる。プール内の仮想マシンインスタンスは、要求が受信されるときまでに、特定のオペレーティングシステムおよび言語ランタイムとともに既にブートされてロードされているので、要求を(例えば、仮想マシンインスタンス上に作成された1つ以上のコンテナ内でユーザコードを実行することによって)処理することができる算出能力を検出するのに伴う遅延は大幅に減少する。
オンデマンドコード実行環境には、仮想マシンインスタンスマネージャであって、仮想マシンインスタンスのユーザ構成を必要とすることなく、ユーザコード(スレッド、プログラムなど、種々のプログラミング言語のいずれかで構成されている)を受け取って、高度に拡張可能で低遅延な方法でコードを実行するように構成されている仮想マシンインスタンスマネージャが含まれていてもよい。具体的には、仮想マシンインスタンスマネージャは、ユーザコードを受け取る前に、またユーザから何らかの特定の仮想マシンインスタンス構成に関する何らかの情報を受け取る前に、所定の構成のセットに従って仮想マシンインスタンスを生成および構成することができる。各構成は種々のランタイム環境のいずれか1つ以上に対応する。その後、仮想マシンインスタンスマネージャは、コードを実行するユーザ起動の要求を受信し、この要求に関連付けられた構成情報に基づいて、コードを実行する事前構成された仮想マシンインスタンスを識別する。仮想マシンインスタンスマネージャは、さらに、識別した仮想マシンインスタンスを確保して、確保した仮想マシンインスタンス内にコンテナを作成して構成することにより、ユーザのコードを少なくとも部分的に実行することができる。仮想マシンインスタンスマネージャを実装するための、および仮想マシンインスタンスでユーザコードを実行するための種々の実施形態が、以下の文献により詳細に説明されている。米国特許第9,323,556号、発明の名称「PROGRAMMATIC EVENT DETECTION AND MESSAGE GENERATION FOR REQUESTS TO EXECUTE PROGRAM CODE」(2014年9月30日に出願)(以下、「’556特許」という)。この文献の全体が参照により本明細書に組み込まれている。
本明細書で用いる場合、用語「仮想マシンインスタンス」は、ソフトウェアを実行し得る環境またはプラットフォーム(「実行環境」)を提供するハードウェアをエミュレートするソフトウェアまたは他の実行可能コードの実行を指すことが意図されている。仮想マシンインスタンスは一般的に、ハードウェアデバイスによって実行される。ハードウェアデバイスは、仮想マシンインスタンスがエミュレートする物理ハードウェアとは異なる場合がある。例えば、仮想マシンは、第二タイプのプロセッサおよびメモリ上で実行されている間に、第一タイプのプロセッサおよびメモリをエミュレートすることができる。したがって、仮想マシンを利用して、第一実行環境(例えば、第一オペレーティングシステム)を対象とするソフトウェアを、第二実行環境(例えば、第二オペレーティングシステム)を実行している物理デバイス上で実行することができる。場合によっては、仮想マシンインスタンスによってエミュレートされるハードウェアは、基盤となるデバイスのハードウェアと同じである、または類似している可能性がある。例えば、第一タイプのプロセッサを備えたデバイスは、複数の仮想マシンインスタンスを実装し、それぞれがその第一タイプのプロセッサのインスタンスをエミュレートすることができる。したがって、仮想マシンインスタンスを使用して、デバイスを複数の論理サブデバイス(それぞれ「仮想マシンインスタンス」と称される)に分割することができる。仮想マシンインスタンスが基盤となる物理デバイスのハードウェアから離れたレベルの抽象化を一般に提供することができるが、この抽象化を必要としない。例えば、デバイスが複数の仮想マシンインスタンスを実装し、それぞれがデバイスによって提供されるものと同一のハードウェアをエミュレートすると仮定する。このようなシナリオでは、各仮想マシンインスタンスにより、ソフトウェアアプリケーションは、他の仮想マシンインスタンス上で実行しているソフトウェアアプリケーション間の論理的な分離を維持しながら、変換なしで基盤となるハードウェア上でコードを実行することが可能であってもよい。一般に「ネイティブ実行」と称される、このプロセスは、仮想マシンインスタンスの速度またはパフォーマンスを向上させるために利用されることができる。基盤となるハードウェアの直接利用を可能にする他の技法(例えば、ハードウェアパススルー技法)を用いてもよい。
本明細書では、実行環境の一例として、オペレーティングシステムを実行する仮想マシンを説明しているが、他の実行環境も可能である。例えば、タスクまたは他のプロセスをソフトウェア「コンテナ」内で実行してもよい。「コンテナ」はランタイム環境を提供するが、それ自体はハードウェアの仮想化を提供しない。コンテナは、さらなるセキュリティを提供するために、仮想マシンの中に実装されてもよいし、仮想マシンインスタンスの外で実行されてもよい。
本開示の上に述べた態様と付随する利点の多くとは、添付の図面と併用されると、以下の説明を参照することにより、それらが一層よく理解されるようになるので、さらに容易に認識されるようになる。
図1は、例示的な動作環境100のブロック図である。動作環境100では、オンデマンドコード実行システム110が、ユーザコンピューティングデバイス102、補助サービス106、およびネットワークベースのデータストレージサービス108との通信に基づいて動作してもよい。例として、種々のユーザコンピューティングデバイス102が、図示では、オンデマンドコード実行システム110と通信している。ユーザコンピューティングデバイス102としては、デスクトップコンピュータ、ラップトップ、および携帯電話が挙げられる。一般に、ユーザコンピューティングデバイス102は、デスクトップ、ラップトップまたはタブレットコンピュータ、パーソナルコンピュータ、ウェアラブルコンピュータ、サーバ、パーソナルデジタルアシスタント(PDA)、ハイブリッドPDA/携帯電話、携帯電話、電子ブックリーダ、セットトップボックス、音声コマンドデバイス、カメラおよびデジタルメディアプレーヤなどの、任意のコンピューティングデバイスとすることができる。オンデマンドコード実行システム110は、1つ以上のユーザインタフェース、コマンドラインインタフェース(CLI)、アプリケーションプログラミングインタフェース(API)、および/または他のプログラマティックインタフェースを含むユーザコンピューティングデバイス102を提供し、これらは、ユーザ実行可能コードを生成してアップロードすること、ユーザ提供コードを呼び出す(例えば、オンデマンドコード実行システム110上でユーザコードを実行する要求をサブミットする)こと、イベントベースのジョブまたは時限ジョブをスケジュールすること、ユーザ提供コードを追跡すること、および/またはそれらの要求および/またはユーザコードに関連する他のロギングまたは監視情報を表示することができる。1つ以上の実施形態がユーザインタフェースを使用して本明細書に説明され得るが、そのように実施形態が、付加的または代替的に、CLI、API、または他のプログラマティックインタフェースを使用し得ることを理解されたい。
さらに、例示的な環境100は、1つ以上の補助サービス106を含み、これらの補助サービス106は、オンデマンドコード実行システム110とインタラクトして、ユーザの代わりに所望の機能を実装することができる。補助サービス106は、サーバなどのネットワーク接続したコンピューティングデバイスに対応することができ、これらのコンピューティングデバイスは、オンデマンドコード実行システム110にアクセス可能なデータを生成する、またはその他の方法によりオンデマンドコード実行システム110に通信する。例えば、補助サービス106は、ウェブサービス(例えば、ユーザコンピューティングデバイス102、オンデマンドコード実行システム110、または第三者らに関連する)、データベース、リアリーシンプルシンジケーション(「RSS」)リーダー、ソーシャルネットワーキングサイト、またはネットワークにアクセス可能なサービスもしくはデータソースのいずれかの他のソースを含むことができる。場合によっては、補助サービス106は、オンデマンドコード実行システム110に関連付けられることができ、例えば、ビリングまたはロギングサービスをオンデマンドコード実行システム110に提供する。場合によっては、補助サービス106は、API呼び出し、または他のタスクトリガ情報などの情報をオンデマンドコード実行システム110にアクティブに送信する。他の例では、補助サービス106は、データをオンデマンドコード実行システム110によってアクセス可能にするように、パッシブであることができる。以下に説明されるように、オンデマンドコード実行システム110のコンポーネントは、それらのようなパッシブデータソースを定期的にポーリングし、提供されるデータに基づいてオンデマンドコード実行システム110内でタスクの実行をトリガすることができる。図1では、ユーザコンピューティングデバイス102およびオンデマンドコード実行システム110とは別個であると示しているが、いくつかの実施形態では、種々の補助サービス106をユーザコンピューティングデバイス102またはオンデマンドコード実行システム110のいずれかが実装してもよい。
例示的な環境100にはさらに、1つ以上のネットワークベースのデータストレージサービス108(オンデマンドコード実行システム110が1つ以上の永続的なまたは実質的に永続的なデータソースにデータを記憶して取り出すことができるように構成されている)が含まれている。例示的に、ネットワークベースのデータストレージサービス108は、オンデマンドコード実行システム110が、解析されるデータセットを取得し、その解析に関する情報(例えば、結果)を格納することを可能とし得る。ネットワークベースのデータストレージサービス108は、例えば、リレーショナルデータベースまたは非リレーショナルデータベースを表すことができる。別の例では、ネットワークベースのデータストレージサービス108は、ファイルシステムとして配列されるデータへのアクセスを提供するように構成される、ネットワークアタッチドストレージ(NAS)を表すことができる。本開示の実施形態内で使用可能なネットワークベースのデータストレージサービス108内に、さまざまな他の機能を含むことができる。さらに、ネットワークベースのデータストレージサービス108は、オンデマンドコード実行システム110が、複数の関連するファイルまたは記録、それらのファイルまたは記録のサイズ、ファイルまたは記録名、ファイルまたは記録の作成時間などについてのクエリを行うことなどによって、オンデマンドコード実行システム110内に格納されるデータに関する情報にクエリを行い、この情報を取得することを可能にしてもよい。場合によっては、ネットワークベースのデータストレージサービス108は、データを論理グループ(例えば、個別のアカウントに関連するグループなど)に分離する機能などの追加機能を提供することができる。補助サービス106とは異なるように示されるが、ネットワークベースのデータストレージサービス108は、ある場合には、補助サービス106のタイプも表すことができる。
例示的な環境100は、ストリームデータ処理システム170をさらに含む。上記に考察されるように、ストリームデータ処理システムは、特定の「トピック」に基づいて指定されることができる、「メッセージ」をストリーム172上に公開することなどによって、アップストリームデバイスがデータをメッセージストリーム172上に置く機能を提供することができる。単一のストリーム172が図1に示されているが、システム170は、複数の当事者らに代わって複数のストリームを提供することができる。システム170は、ストリーム172内のメッセージを、しばしば「先入れ先出し」(「FIFO」)またはほぼFIFOの順序で、ダウンストリームデバイスに利用可能にすることができる。いくつかの例では、ストリームデータ処理システム170は、メッセージをダウンストリームデバイスに「プッシュ」する。他の例では、ダウンストリームデバイスは、要求に応じてメッセージストリーム172からメッセージを「プル」する。一般に、ストリームに正常に公開されたデータが、ストリームデータ処理システム170のデバイスの不具合のために失われる可能性が低いように、ストリームデータ処理システム170は、レジリエンスを提供するように構成される。例えば、システム170は、ストリーム172上に置かれているメッセージを、このストリームを実装するために使用される複数のコンピューティングデバイス(例えば、物理コンピューティングデバイス、または物理ホストに実装される仮想デバイス)上に複製することができる。さらに、ストリームデータ処理システム170は、メッセージストリーム172を維持するデバイスの並列化を提供するように構成されることができる。例えば、メッセージストリームを構成するユーザは、ストリームについてのパーティションキーを指定し、このパーティションキーを使用して、ストリームをサブストリームに分割し、各サブストリームを1つ以上の並列化されたデバイスによって処理することを可能にする。サブストリームをメッセージシャード174A~Nとして図1に示す。各メッセージシャード174は、1つ以上のコンピューティングデバイスを一般的に表すことができ、これらのコンピューティングデバイスは、パーティションキーに従ってシステム170が選択するメッセージストリーム上のメッセージのサブセットと、ストリーム172上のメッセージのボリュームとを取得して利用可能にするように構成される(例えば、ストリーム172上のメッセージにサービスを提供するためのシャード174の容量に基づいて、追加のシャードが作成される、または余分なシャードが破棄されるように)。当該技術分野で知られているストリームデータ処理システムの例は、AMAZON(商標)KINESIS(商標)ネットワークサービス、およびAPACHE(商標)KAFKA(商標)システムを含む。
ユーザコンピューティングデバイス102、補助サービス106、ネットワークベースのデータストレージサービス108、およびストリームデータ処理システム170は、ネットワーク104を介してオンデマンドコード実行システム110と通信することができる。このネットワーク104は、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせを含むことができる。例えば、ネットワーク104は、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、オーバージエアブロードキャストネットワーク(例えば、ラジオまたはテレビジョン用)、ケーブルネットワーク、衛星ネットワーク、セルラー電話ネットワーク、またはそれらの組み合わせであってよい。さらなる例として、ネットワーク104は、インターネット等のさまざまな異なった関係者によって運営される可能性がある、リンクされたネットワークの公然にアクセス可能なネットワークであり得る。いくつかの実施形態では、ネットワーク104は、企業または大学のイントラネット等のプライベートまたはセミプライベートネットワークであり得る。ネットワーク104は、グローバルシステムフォーモバイルコミュニケーションズ(GSM)ネットワーク、符号分割多元接続(CDMA)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、または他の種類の無線ネットワークを含み得る。ネットワーク104は、インターネットまたは他の前に述べたタイプのいずれかのネットワークを介して通信するためのプロトコルおよび構成要素を使用することができる。例えば、ネットワーク104に使用されるプルトコルは、ハイパーテキスト転送プロトコル(HTTP)、ハイパーテキスト転送プロトコル保全(HTTPS)、メッセージ待ち行列テレメトリートランスポート(MQTT)、制約アプリケーションプルトコル(CoAP)、および同等物を含んでもよい。インターネット、または他の上に述べたタイプのいずれかの通信ネットワークを介して通信するためのプロトコルおよび構成要素は当業者にとって周知であり、したがって本明細書では、さらに詳細には記載していない。
オンデマンドコード実行システム110およびストリームデータ処理システム170は、図1では、1つ以上のコンピュータネットワーク(図1に示さず)を用いて相互接続される、いくつかのコンピュータシステムを含む分散コンピューティング環境において動作するように示される。オンデマンドコード実行システム110およびストリームデータ処理システム170のいずれか、または両方は、図1に例示されるものよりも数が少ないかまたは多いデバイスを有するコンピューティング環境内で動作することもできる。したがって、図1のオンデマンドコード実行システム110およびストリームデータ処理システム170の表現は例示的なものであって本開示を限定すると考えてはならない。例えば、オンデマンドコード実行システム110およびストリームデータ処理システム170またはその種々の構成要素は、種々のウェブサービスコンポーネント、ホストされたまたは「クラウド」コンピューティング環境、および/またはピアトゥピアネットワーク構成を実装して、本明細書で説明するプロセスの少なくとも一部を実装することができる。
さらに、オンデマンドコード実行システム110およびストリームデータ処理システム170は、直接ハードウェアでまたはハードウェアデバイスが実行するソフトウェアで実装してもよく、また、例えば、本明細書で説明する種々の特徴を実装するためのコンピュータ実行可能命令を実行するように構成された物理コンピュータハードウェアで実装される1つ以上の物理または仮想サーバが含まれていてもよい。1つ以上のサーバは、例えば、1つ以上のデータセンター内に、地理的に分散しているか、または地理的に同じ場所に配置されている場合がある。ある例では、1つ以上のサーバは、多くの場合、「クラウドコンピューティング環境」と呼ばれる、迅速にプロビジョニングおよび解放が行われるコンピューティングリソースのシステムの一部として動作し得る。
図1の例では、オンデマンドコード実行システム110およびストリームデータ処理システム170は、ネットワーク104に接続されているものとして示されている。いくつかの実施形態では、オンデマンドコード実行システム110およびストリームデータ処理システム170内のコンポーネントのいずれかは、オンデマンドコード実行システム110およびストリームデータ処理システム170の他のコンポーネントとネットワーク104を介して通信することができる。他の実施形態では、別のネットワーク(図1に示されていないプライベートネットワークなど)は、オンデマンドコード実行システム110およびストリームデータ処理システム170のそれぞれの内のコンポーネント間、またはそれらのシステム間の通信を可能にすることができる。
図1では、ユーザは、ユーザコンピューティングデバイス102によって、オンデマンドコード実行システム110と相互に対話して、実行可能コードを提供し、またこのようなコードをいつどのようにオンデマンドコード実行システム110で実行すべきかを規定するルールまたはロジックを設定することによって、「タスク」を設定してもよい。例えば、ユーザは、コードの一部を、ユーザが開発したウェブまたはモバイルアプリケーションとともに実行することを望む場合がある。コードを起動する1つの方法は、仮想マシンインスタンスを、サービスとしてインフラストラクチャを提供するサービスプロバイダから獲得し、ユーザの要望に合わせるように仮想マシンインスタンスを構成し、コードを起動するように構成された仮想マシンインスタンスを使用するためのものであろう。このプロセスの複雑さを回避するために、ユーザは、代わりに、オンデマンドコード実行システム110にコードを提供し、オンデマンドコード実行システム110が1つ以上の事前に確立された仮想マシンインスタンスを使用してコードを実行することを要求することができる。オンデマンドコード実行システム110は、コード実行要求に基づいて、算出能力(例えば、下記により詳細に説明される、コンテナ、インスタンス等)の取得およびコンフィグレーションを処理し、算出能力を使用してコードを実行することができる。オンデマンドコード実行システム110は、ボリュームに基づいて、自動的にスケールアップおよびスケールダウンすることによって、過度の使用率(例えば、取得するコンピューティングリソースがかなり少なく、パフォーマンス問題を被る)、または少ない使用率(例えば、コードを実行するために必要なものよりも多いコンピューティングリソースを取得することによる過払い)について心配しなければならない負担から、ユーザを解放することができる。本開示の実施形態によれば、ユーザによって確立されるタスクは、データセットに関して「reduce」関数、または全体としてデータセットに基づいて結果を集計する、もしくは組み合わせる、もしくはその他の方法で決定する他の関数を実装するために実行可能なコードに対応することができる。
オンデマンドコード実行システム110とのインタラクションを可能にするために、システム110は、1つ以上のフロントエンド120を含む。フロントエンド120は、オンデマンドコード実行システム110とのインタラクションを可能にする。例示的な実施形態では、フロントエンド120は、オンデマンドコード実行システム110が提供する他のサービスに対する「フロントドア」として機能し、ユーザが(ユーザコンピューティングデバイス102を介して)コンピュータ実行可能コードのリクエスト実行を提供してその結果を表示することができるようにする。フロントエンド120は、オンデマンドコード実行システム110と他のコンピューティングデバイスとの間のインタラクションを可能にするためのさまざまなコンポーネントを含む。例えば、各フロントエンド120は、ユーザ指定コードをオンデマンドコード実行システム110にアップロードした、またはその他の方法により通信した後、そのコードの実行を要求する機能を、ユーザコンピューティングデバイス102に提供する要求インタフェースを含むことができる。一実施形態では、要求インタフェースは、グラフィカルユーザインタフェース(GUI)、CLI、またはAPIを介して外部コンピューティングデバイス(例えば、ユーザコンピューティングデバイス102、補助サービス106など)と通信する。フロントエンド120は、要求を処理し、これらの要求が適切に認可されていることを確認する。例えば、フロントエンド120は、リクエストに対応付けられるユーザが、リクエストにおいて指定されるユーザコードにアクセスすることが認証されているか否かを判定してもよい。
本明細書で使用されるユーザコードへの言及は、特定のプログラム言語で記述された任意のプログラムコード(例えば、プログラム、ルーティン、サブルーティン、スレッド等)を指し得る。本開示では、用語「コード」、「ユーザコード」、および「プログラムコード」は、互換的に使用されてもよい。このようなユーザコードは、例えば、ユーザによって開発された特定のウェブアプリケーションまたはモバイルアプリケーションに関連して、特定の機能を実現するように実行され得る。上記のように、ユーザコードの個別のコレクション(例えば、特定の機能を達成するための)は、本明細書では「タスク」と称され、そのコードの特定の実行は、「タスク実行」または単に「実行」と称される。タスクは、非限定的な例として、JavaScript(例えば、node.js)、Java、Python、および/またはRuby(および/または別のプログラミング言語)で記述され得る。タスクは、さまざまな方式で、オンデマンドコード実行システム110上での実行のために「トリガ」されることができる。一実施形態では、ユーザまたは他のコンピューティングデバイスは、タスクを実行する要求を送信することができ、この要求は、一般的にはタスクを実行する「呼び出し」と称されることができる。それらのような呼び出しは、実行されるユーザコード(または、その位置)およびユーザコードを実行するために使用される1つ以上の引数を含むことができる。例えば、呼び出しは、タスクを実行する要求と併せてタスクのユーザコードを提供し得る。別の例では、呼び出しは、その名前または識別子によって、以前にアップロードされたタスクを識別し得る。さらなる別の例では、タスクに対応するコードは、タスクに関する呼び出しに含まれることができ、オンデマンドコード実行システム110が要求を受信する前に、別個の位置(例えば、補助サービス106のストレージ、またはオンデマンドコード実行システム110の内部のストレージシステム)にアップロードされる。オンデマンドコード実行システム110は、タスクについての呼び出しが処理されるときにタスクのコードが利用可能である位置に基づいて、タスクについてのその実行戦略を変えることができる。フロントエンド120の要求インタフェースは、ユーザから、ハイパーテキスト転送プロトコルセキュア(HTTPS)要求としてタスクを実行する呼び出しを受信することができる。また、HTTPS要求に含まれる任意の情報(例えば、ヘッダおよびパラメータ)も、タスクを実行するときに処理され利用され得る。上記で考察されるように、例えば、HTTP、MQTT、およびCoAPを含む任意の他のプロトコルを使用して、タスク呼び出しを含むメッセージを要求インタフェースに転送することができる。
タスクを実行する呼び出しは、タスクに対応するユーザコードとともに使用される1つ以上の第三者ライブラリ(ネイティブライブラリを含む)を指定することができる。一実施形態では、呼び出しは、ユーザコードと、実行のために要求されるタスクに対応する任意のライブラリ(および/またはそのストレージ位置の識別)とを含むZIPファイルをオンデマンドコード実行システム110に提供してよい。いくつかの実施形態では、呼び出しは、実行されるタスクのプログラムコード、プログラムコードを書き込む言語、呼び出しに関連するユーザ、および/またはプログラムコードを実行するために予約されるコンピューティングリソース(例えば、メモリなど)を示すメタデータを含む。例えば、タスクのプログラムコードは、呼び出しを提供されること、ユーザによって事前にアップロードされること、オンデマンドコード実行システム110(例えば、標準ルーティン)によって提供されること、および/または第三者によって提供されることができる。いくつかの実施形態では、そのようなリソースレベルの制約(例えば、特定のユーザコードを実行するために、どれだけのメモリが割り当てられるべきか)は、特定のタスクに対して指定され、タスクの各実行にわたり変えなくてもよい。それらのような場合、オンデマンドコード実行システム110は、個々の呼び出しを受信する前に、そのようなリソースレベルの制約にアクセスすることができ、個々の呼び出しは、そのようなリソースレベルの制約を指定しなくてよい。いくつかの実施形態では、呼び出しは、パーミッションデータなどの他の制約を指定することができ、このパーミッションデータは、呼び出しがタスクを実行するために講じるのはどの種類のパーミッションまたは権限かを示す。そのようなパーミッションデータは、プライベートリソース(例えば、プライベートネットワーク上の)にアクセスするためにオンデマンドコード実行システム110によって使用されてもよい。
いくつかの実施形態では、呼び出しは、呼び出しを処理するために採用されるビヘイビアを指定してよい。そのような実施形態では、呼び出しは、呼び出しで参照されるタスクを実行するための1つ以上の実行モードを有効にするためのインジケータを含んでもよい。例えば、呼び出しは、タスクの実行に関連して生成され得るデバッグおよび/またはログの出力が(例えば、コンソールユーザインタフェースを介して)ユーザに返されるデバッグモードでタスクが実行される必要があるかどうかを示すフラグまたはヘッダを含んでもよい。このような例では、オンデマンドコード実行システム110は、呼び出しにインスペクションを実行し、フラグまたはヘッダを探してよく、フラグまたはヘッダが存在する場合には、オンデマンドコード実行システム110は、タスクが実行されるコンテナのビヘイビア(例えば、ロギング機能)を変更し、出力データがユーザに返されるようにしてもよい。いくつかの実施形態では、ビヘイビア/モードインジケータは、オンデマンドコード実行システム110によってユーザに提供されるユーザインタフェースによって呼び出しに追加される。ソースコードプロファイリング、リモートデバッギングなどの他の特徴も、呼び出しにおいて提供されるインジケーションに基づいて、有効または無効にされてもよい。
本開示の実施形態によれば、ユーザがサブミットしたコードは、データセットについての解析関数に対応することができる。この関数は、オンデマンドコード実行システム110上の1つ以上の解析タスク164によって表される、コンピュータ実行可能コードに具現化されることができる。一実施形態では、解析タスク164は、MapReduceプログラミングモデルのreduce段階を実装する。このようなモデルでのreduce段階の特定の機能は、処理されるデータによって異なる場合がある。ただし、一般的には、reduce関数は、複数の中間結果を集計結果に「reduce」処理する、または集計するコードに対応する。例えば、初期map関数は、単語のコーパス(例えば、本または本のコレクション)を処理し、このコーパス内の個別の単語(または、場合によっては、姓などの特定のクラスの単語)のカウントを生成するコードに対応することができる。対応するreduce関数は、map関数の個別の実行によって生成されるような、個別の単語のカウントを集計するコードに対応することができる。実例として、reduce関数は、map関数の1000個のインスタンスによって生成されるような、1000個の中間カウントデータファイルを取り、1000個の中間カウントデータファイル内の各単語のカウントを集計する単一のデータファイルを生成することができる。単一のreduce関数のみが実行される場合、単一のデータファイルは解析の結果を表すことができる。複数のreduce関数が実行された結果、複数の出力(入力セット内の単語のカウントを各集計する)になる場合、追加のreduce関数は、それらの複数の出力を処理して、単語のカウントをさらに集計することができる。このプロセスを、単一のreduce関数が呼び出されるまで続行することができ、解析の結果として単一の出力ファイルをもたらす。あるいは、複数のreduce関数のそれぞれは、解析の最終出力として、出力を共通の位置(データベースなど)に書き込むことができる。
解析関数は処理されるデータに特有であることが多いため、これらの関数に対応するコードは、対応するデータセットの解析を要求するエンドユーザによって提供されることができる。場合によっては、オンデマンドコード実行システム110は、対応する解析関数の1つ以上のセットをも提供することができる(例えば、一般的に望まれている解析タイプに対応し、所期のフォーマット内でデータを処理するように構成される)。
これらのタスクのストレージを可能にするために、オンデマンドコード実行システム110は、タスクデータストア160を含むことができ、このタスクデータストア160は、ハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワークアタッチドストレージ(NAS)、テープドライブ、またはそれらの任意の組み合わせなど、永続的な、または実質的に永続的なデータストアに対応することができる。本開示の実施形態によれば、タスクデータストアは、1つ以上の解析タスク164を含み得る。
コード実行に対するリクエストを管理するために、フロントエンド120に実行キュー(図1に示さず)を含めることができる。実行キューは、リクエストされたタスク実行の記録を保持することができる。例示的に、オンデマンドコード実行システム110による同時のタスク実行の数は限定されている。したがって、オンデマンドコード実行システム110において開始される新しいタスク実行(例えば、API呼び出しを介して、実行済みまたは実行中タスクからの呼び出しを介して等)を、実行キュー124に配置して、例えば、先入れ先出しの順番で処理してもよい。いくつかの実施形態では、オンデマンドコード実行システム110は、ユーザアカウントごとに個別の実行キューのような、複数の実行キューを含むことができる。例えば、オンデマンドコード実行システム110のユーザは、オンデマンドコード実行システム110上でのタスク実行の速度を制限することを望む場合がある(例えば、コスト上の理由で)。したがって、オンデマンドコード実行システム110は、アカウント固有の実行キューを利用して、固有のユーザアカウントによる同時タスク実行の速度を抑制することができる。場合によっては、オンデマンドコード実行システム110は、固有のアカウントの、または指定された優先順位のタスク実行が実行キュー内でバイパスされる、または優先されるように、タスク実行に優先順位付けすることができる。他の場合では、オンデマンドコード実行システム110は、タスクの実行を、そのタスクに対する呼び出しを受け取った直後または実質的に直後に行ってもよく、したがって実行キューを省略してもよい。
補助サービス106からの明示的なユーザ呼び出しおよびデータに基づいて実行されるタスクに加えて、オンデマンドコード実行システム110は、ある場合には、タスクの実行を独立にトリガするように動作してもよい。例えば、オンデマンドコード実行システム110は、多くの指定の時間間隔ごと(例えば、10分ごと)にタスクの実行をトリガするように動作してもよい(ユーザからの命令に基づいて)。
フロントエンド120にはさらに、オンデマンドコード実行システム110でのタスクの実行に関する情報を出力するように構成された出力インタフェース(図1に示さず)を含めることができる。例示的に、出力インタフェースは、タスク実行に関するデータ(例えば、タスクの結果、タスク実行に関するエラー、またはタスク実行の詳細、例えば、実行を終了するのに必要な合計時間、実行によって処理された合計データなど)を、ユーザコンピューティングデバイス102または補助サービス106(例えば、ビリングサービスまたはロギングサービスが含まれていてもよい)に送信してもよい。さらに、出力インタフェースは、サービス呼び出しなどのデータの補助サービス106への送信を可能にすることができる。例えば、出力インタフェースをタスクの実行中に用いて、APIリクエストを補助サービス106に送信してもよい(例えば、タスクの実行中に生成されたデータを記憶するため)。
いくつかの実施形態では、オンデマンドコード実行システム110には複数のフロントエンド120が含まれていてもよい。このような実施形態では、ロードバランサ(図1に示さず)を提供して、複数のフロントエンド120に入力呼び出しを、例えばラウンドロビン方式で分配してもよい。いくつかの実施形態では、ロードバランサが着信呼び出しを複数のフロントエンド120に分散する方法は、オンデマンドコード実行システム110の他のコンポーネントの位置または状態に基づくことができる。例えば、ロードバランサは、地理的に近くのフロントエンド120に、または呼び出しにサービスを提供する容量を有するフロントエンドに呼び出しを分散することができる。各フロントエンド120が、以下に説明されるアクティブプール140Aなどのオンデマンドコード実行環境の別のコンポーネントの個々のインスタンスに対応する例では、ロードバランサは、それらの他のコンポーネントの容量または負荷に従って呼び出しを分散することができる。以下でより詳細に説明されるように、場合によっては、タスクを実行する所与の呼び出しが常に(またはほとんど常に)同じフロントエンド120にルーティングされるように、呼び出しをフロントエンド120間で決定的に分散することができる。これは、例えば、タスクについての正確な実行記録を維持することを支援し、タスクが所望の回数だけ実行されることを確保することができる。ロードバランサを介して呼び出しを分散することについて例示的に説明しているが、エニーキャストルーティングなどの他の分散技術も当業者には明らかである。
オンデマンドコード実行システム110は、1つ以上のワーカーマネージャ140をさらに含み、1つ以上のワーカーマネージャ140は、着信呼び出しにタスクを実行するサービスを提供するために使用される、仮想マシンインスタンス150(VMインスタンス150Aおよび150Bとして示され、一般に「VM」と称される)などの実行環境を管理し、実行環境のメモリ状態を管理する。以下は、それらのような環境の例として仮想マシンインスタンス150を参照して説明されるが、本開示の実施形態は、ソフトウェアコンテナなどの他の環境を利用することができる。図1に示される例では、各ワーカーマネージャ140は、アクティブプール140Aを管理し、このアクティブプール140Aは、所与のタスクを実行するために初期化される(インスタンスにロードされるタスクコードおよび依存関係データオブジェクトを含むことによって)1つ以上の物理ホストコンピューティングデバイス上で実行される仮想マシンインスタンス150のグループ(時にはプールと称される)である。アクティブプール140Aは、例示的に、ワーカーマネージャ140を実装する、またはその制御下にあるホストデバイスのプライマリメモリ(例えば、RAM)を使用して実装される。
仮想マシンインスタンス150が特定のタスクに割り当てられるように本明細書に説明されるが、いくつかの実施形態では、インスタンスをタスクグループに関係付け、グループのいずれかのタスクをインスタンス内で実行することができるように、インスタンスをタスクグループに割り当てることができる。例えば、1つのタスクが特定のインスタンス150上の1つのコンテナ内で実行された後に同じインスタンス上の別のコンテナ内で別のタスクを実行することによって、セキュリティリスクをもたらさないように、同じグループ内のタスクは、同じセキュリティグループに属する(例えば、そのセキュリティクレデンシャルに基づいて)ことができる。別の例として、グループの1つのタスクを実行するために使用される環境を迅速に変更して、グループ内の別のタスクの実行をサポートすることができるように、グループのタスクは、共通の依存関係を共有することができる。
タスクを実行するトリガイベントがフロントエンド120によって正常に処理されると、フロントエンド120は、タスクを実行する要求をワーカーマネージャ140に渡す。一実施形態では、各フロントエンド120は、対応するワーカーマネージャ140(例えば、フロントエンド120と同じ位置にある、または地理的に近いワーカーマネージャ140)に関連付けられていてもよく、したがって、フロントエンド120は、ほとんど、またはすべての要求をそのワーカーマネージャ140に渡すことができる。別の実施形態では、フロントエンド120は、実行要求を渡すワーカーマネージャ140を決定するように構成されるロケーションセレクタを含むことができる。一実施形態では、ロケーションセレクタは、呼び出しをハッシュ化することと、ハッシュ化した値に基づいて(例えば、ハッシュリングを介して)選択したワーカーマネージャ140に呼び出しを分散することとに基づいて、呼び出しを受信するワーカーマネージャ140を決定してもよい。ワーカーマネージャ140間で呼び出しを分散するさまざまな他のメカニズムは当業者に明らかであろう。
その後、ワーカーマネージャ140は、仮想マシンインスタンス150を変更し(必要に応じて)、インスタンス150内でタスクのコードを実行することができる。図1に示されるように、それぞれのインスタンス150は、オペレーティングシステム(OS)152(OS152Aおよび152Bとして示される)、言語ランタイム154(ランタイム154Aおよび154Bとして示される)、およびユーザコード156(ユーザコード156Aおよび156Bとして示される)を含むことができる。OS152、ランタイム154、およびユーザコード156は、合わせて、ユーザコードの実行がタスクを実装することを可能にしてもよい。場合によっては、各VM150は、タスクの個々の実行にわたって維持される状態情報などの追加情報に関連付けられることができる。例えば、最初に作成されたとき、VM150はOS152を初期化することができ、ユーザコード156がVM150で実行されるたびに、VM150の状態は変化することができる。VM150の状態は、例えば、VM150の仮想CPUのレジスタ内、VM150のRAM内、VM150の仮想ディスクドライブ内などで維持されることができる。本開示の実施形態によれば、解析タスク164は、VM150がそのような状態情報を維持することができるように構成される場合でも、VM150で維持される状態を必要とせずにデータセット全体で実行されることができる。有利なことに、これにより、解析タスク164を実行するための呼び出しは、適切な状態情報が格納されているVM150ではなく、いずれかの利用可能なVM150にルーティングされることが可能となり得る。
前述したように、ユーザコンピューティングデバイス102からの明示的呼び出しに基づいて(例えば、リクエストインタフェース122において受け取ったときに)、タスクをオンデマンドコード実行システム110において実行するようにトリガしてもよい。代替に、または追加で、1つ以上の補助サービス106、ネットワークベースのデータストレージサービス108、またはストリームデータ処理システム170から取得されるデータに基づいて、オンデマンドコード実行システム110での実行のためにタスクをトリガしてよい。
補助サービス106とのインタラクションを容易にするために、システム110は、ポーリングフリート130を含み、このポーリングフリート130は、データについて補助サービス106、データストレージサービス108、またはストリームデータ処理システム170をポーリングするように動作する。例示的に、ポーリングフリート130は、1つ以上のコンピューティングデバイス(図1にポーラーデバイス132A~Nとして示される)を含むことができる。これらのコンピューティングデバイスは、いずれかの新たに利用可能なデータ(例えば、ソーシャルネットワークの「投稿」、ニュース記事、ファイル、記録など)を取得し、そのデータがオンデマンドコード実行システム110上でタスクの実行をトリガするユーザが確立した基準に対応するかどうかを決定する要求を、補助サービス106、データストレージサービス108、またはストリームデータ処理システム170に定期的に送信するように構成される。例示的に、タスクの実行についての基準は、新しいデータが、補助サービス106、データストレージサービス108、もしくはストリームデータ処理システム170において利用可能かどうか、データのタイプもしくはコンテンツ、またはデータに対応するタイミング情報を含むことができるが、これらに限定されない。場合によっては、補助サービス106、データストレージサービス108、またはストリームデータ処理システム170は、フロントエンド120に新しいデータの可用性を通知するように機能することができてもよく、したがって、それらのようなサービスに対して、ポーリングフリート130は不要であってもよい。
本開示の実施形態によれば、メッセージストリーム172は、データセット内のデータ項目を処理する呼び出しを格納するように構成されることができる。例示的に、メッセージストリーム上の各メッセージは、データセット内の個々のデータ項目に関して解析タスク164を実行する呼び出しに対応することができる。メッセージは、メッセージストリーム172についてのパーティションキーに基づいてシャード174A~N間に分散されることができ、このキーは、メッセージのデータ項目によって表されることができる、またはそのデータ項目中に含まれることができる。一実施形態では、メッセージは、MapReduecモデルのmap段階の動作を介してメッセージストリーム172上に置かれる。そのようなmap段階の動作についての例示的な実施形態は、上記に参照によって援用されている、’997出願において考察されている。別の実施形態では、メッセージは、解析されるデータを生成するデバイスの動作中(例えば、「リアルタイム」)などに、他のメカニズムを介してストリーム172に置かれる。
図1に示されるように、ポーラーフリート130は、メッセージストリーム172内のメッセージシャード174の数に基づいて、動的な数のポーラーデバイス132A~N(例えば、基礎となるコンピューティングシステム上の仮想マシンインスタンスとして実装される)を含むように構成されることができる。例えば、図1の点線で示されるように、メッセージシャード174Aはポーラーデバイス132Aに対応することができ、メッセージシャード174Bはポーラーデバイス132Bに対応することができるなど。したがって、メッセージシャード174の数が変化するにつれて(例えば、メッセージストリームのボリュームが原因で)、ポーラーデバイス132の数もまた変化することができる。そのようなものとして、ポーラーフリート130は、ストリームデータ処理システム170と通信することができ、システム170は、メッセージシャード174に対する変化をポーラーフリート130に通知することができる。そのようなコンフィグレーションでは、各ポーラーデバイス132Aは、メッセージシャード174をポーリングして、メッセージシャードに対応するサブストリーム内のメッセージを取得するように構成されることができる。メッセージを個別に、またはバッチ(例えば、10個のメッセージ、50個のメッセージ、100個のメッセージ、500個のメッセージなどのバッチ)で取得することができる。その後、ポーラーデバイス132は、各メッセージを処理する呼び出しを解析タスク164に呼び出すことができ、この呼び出しは、ポーラーデバイス132に対応するシャード174内のメッセージの現在の処理状態についての状態情報を含む。メッセージを処理する解析タスク164の実行の結果を受信すると、デバイス132は、その状態情報を更新することができ、次に、その情報を後続の呼び出しとともにデバイス132がサブミットすることができる。一実施形態では、解析タスク164への呼び出しを、個々のメッセージごとに行うことができる。別の実施形態では、解析タスク164への呼び出しは、メッセージシャードからのメッセージの取得のためのバッチサイズにマッチングするバッチサイズで、または異なるバッチサイズで、メッセージのバッチごとに行うことができる。場合によっては、各ポーラーデバイス132から解析タスク164への呼び出しの実行は、ポーラーデバイス132が次の呼び出しを行う前に、実行が成功したことの確認を待機するように、同期して行われることができる。同期呼び出しの使用は、ポーラーデバイス132の数と解析タスク164の実行数との間に一般に1対1の対応関係が維持されるように、reduceタスクへの呼び出しを有利に速度制限することができる。
本明細書では、いくつかの機能について、オンデマンドコード実行システム110またはストリームデータ処理システム170の個々のコンポーネントを参照して概略的に述べているが、それに加えて、またはその代わりに、他のコンポーネント、またはコンポーネントの組み合わせがこのような機能を実装してもよい。例えば、ポーラーデバイス132Aは、メッセージについてのメッセージシャード174をポーリングするように動作することができるが、追加で、または代替に、メッセージシャード174は、シャード174上の新しいメッセージをオンデマンドコード実行システム110(例えば、フロントエンド)に通知するように構成されることができる。
図2は、オンデマンドコード実行システム110内の仮想マシンインスタンスを管理するコンピューティングシステム(ワーカーマネージャ140として参照される)の一般的なアーキテクチャを示す。図2に示されるワーカーマネージャ140の一般的なアーキテクチャは、本開示の態様を実装するために使用され得るコンピュータハードウェアおよびソフトウェアモジュールの配置を含む。ハードウェアモジュールは物理的な電子デバイスを用いて実装してもよい。これについては後で詳述する。ワーカーマネージャ140は、図2に示されるものよりもはるかに多い(または少ない)要素を含む場合がある。しかしながら、開示を可能にするために、これらの一般的な従来の要素のすべてを示す必要はない。さらに、図2に例示した一般的なアーキテクチャを用いて、図1に例示したその他のコンポーネントのうちの1つ以上を実装してもよい。例示するように、ワーカーマネージャ140には、処理ユニット190、ネットワークインタフェース192、コンピュータ可読媒体ドライブ194、および入出力デバイスインタフェース196が含まれている。これらはすべて、通信バスによって互いに通信してもよい。ネットワークインタフェース192は、1つ以上のネットワークまたはコンピューティングシステムへの接続性を提供してもよい。したがって、処理ユニット190は、ネットワーク104を介して、情報および命令を他のコンピューティングシステムまたはサービスから受信してもよい。処理ユニット190は、また、メモリ180に往復するように通信し、さらに、入出力デバイスインタフェース196を介して、選択式ディスプレイ(図示しない)用の出力情報を提供してもよい。入出力デバイスインタフェース196は、また、入力を選択式入力デバイス(図示しない)から受け取ってもよい。
メモリ180は、処理ユニット190が本開示の1つ以上の態様を実装するために実行する、コンピュータプログラム命令(いくつかの実施形態では、モジュールとしてグループ化される)を含有してもよい。メモリ180には一般的に、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、および/または他の永続的な補助または非一時的なコンピュータ可読媒体が含まれている。メモリ180は、ワーカーマネージャ140の一般管理および動作における処理ユニット190による使用のために、コンピュータプログラム命令を提供するオペレーティングシステム184を格納してもよい。メモリ180は、さらに、コンピュータプログラム命令と、本開示の態様を実装するための他の情報とを含んでもよい。例えば、一実施形態では、メモリ180は、例えば、ナビゲーションを介して、コンピューティングデバイス上の表示のためのユーザインタフェース(および/または、そのための命令)、および/またはコンピューティングデバイス上にインストールされたブラウザもしくはアプリケーション等のブラウジングインタフェースを生成する、ユーザインタフェースユニット182を含む。加えて、メモリ180は、1つ以上のデータリポジトリ(図示しない)を含み、および/またはそれと通信し、例えば、ユーザプログラムコードおよび/またはライブラリにアクセスしてもよい。
ユーザインタフェースユニット182に加えて、および/またはそれと組み合わせて、メモリ180は、処理ユニット190によって実行されることができる、インスタンス割り振りユニット186およびユーザコード実行ユニット188を含んでもよい。一実施形態では、ユーザインタフェースユニット182、インスタンス割り振りユニット186、およびユーザコード実行ユニット188は、個別に、または合わせて、本開示のさまざまな態様、例えば、以下でさらに説明されるような、ユーザコードを実行するために使用される算出能力(例えば、コンテナ)を見つけること、およびユーザコードをコンテナにロードさせて実行させることなどを実装する。
インスタンス割り振りユニット186は、ユーザコードを実行する要求にサービスするために使用される算出能力を見つける。例えば、インスタンス割り振りユニット186は、要求によって指定されるいずれかの制約を満たす仮想マシンインスタンスおよび/またはコンテナを識別し、識別された仮想マシンインスタンスおよび/またはコンテナをユーザまたは要求自体に割り当てる。インスタンス割り振りユニット186は、ユーザコードを書き込むプログラミング言語に基づいて、そのような識別を実行することができる。例えば、ユーザコードがPythonで書き込まれる場合、インスタンス割り振りユニット186は、その上にプリロードされるPythonランタイムを有するn個の仮想マシンインスタンス(例えば、図1のアクティブプール140A内の)を見つけて、仮想マシンインスタンスをユーザに割り当てることができる。別の例では、ユーザの要求に指定されるプログラムコードが、既存のコンテナ上に、またはユーザに割り当てられる別の仮想マシンインスタンス(例えば、図1のアクティブプール140A内の)上に、既にロードされている場合、インスタンス割り振りユニット186は、コンテナ内で、または仮想マシンインスタンス上の新しいコンテナ内で要求を処理させることができる。いくつかの実施形態では、仮想マシンインスタンスがその上にロードされる複数の言語ランタイムを有する場合、インスタンス割り振りユニット186は、仮想マシンインスタンス上に新しいコンテナを作成し、要求で指定されるコンピューティング制約に基づいてコンテナ上に適切な言語ランタイムをロードすることができる。
特定の仮想マシンインスタンスが要求に関連するユーザに割り当てられており、特定の仮想マシンインスタンス上のコンテナが要求に割り当てられていると、ユーザコード実行ユニット188は、ユーザの要求によって指定されるプログラムコードの実行を管理する。ユーザに割り当てられる仮想マシンインスタンス上のコンテナにコードがプリロードされている場合、コードはコンテナ内で単純に実行される。コードがネットワークストレージ(例えば、図1のストレージサービス108)を介して利用可能である場合、ユーザコード実行ユニット188は、コードを仮想マシンインスタンス上のコンテナ内にダウンロードし、それをダウンロードすると、コードを実行させる(例えば、図1のフロントエンド120と通信することによって)。
インスタンス割り振りユニット186およびユーザコード実行ユニット188がワーカーマネージャ140の一部分として図2に示されているが、他の実施形態では、インスタンス割り振りユニット186およびユーザコード実行ユニット188の全部または一部分は、オンデマンドコード実行システム110および/または別のコンピューティングデバイスの他のコンポーネントによって実装されることができる。例えば、本開示のある実施形態では、オンデマンドコード実行システム110と通信している別のコンピューティングデバイスは、ワーカーマネージャ140の一部分として示されるモジュールおよびコンポーネントに対して同様に動作するいくつかのモジュールまたはコンポーネントを含むことができる。
いくつかの実施形態では、ワーカーマネージャ140は、図2に示されているもの以外のコンポーネントをさらに含むことができる。例えば、メモリ180は、仮想マシンインスタンス内のコンテナの作成、準備、およびコンフィグレーションを管理するためのコンテナマネージャをさらに含むことができる。
図3を参照して、ポーラーデバイス132でのそのような解析のために状態情報を維持しながら、オンデマンドコード実行システム110上で解析タスク164の実行を介してデータ項目セットを解析するための例示的なインタラクションを示す。一実施形態では、図3のインタラクションは、MapReduceプログラミングモデルのreduce段階を実装するためにシステム110によって行われることができるものの例示である。
図3のインタラクションは、(1)から始まり、(1)では、サブミットするデバイス301はメッセージストリーム172上に解析タスク164への呼び出しをエンキューする。サブミットするデバイス301は、一般に、任意のデバイスに対応することができ、任意のデバイスは、ユーザデバイス102、補助サービス106のデバイス、オンデマンドコード実行システム110のデバイスなどを含むことができる。例えば、サブミットするデバイス301は、map関数を実行したオンデマンドコード実行システム110のデバイスであることができる。別の例として、サブミットするデバイス301は、解析関数を介して解析されるデータをサブミットするエンドユーザデバイスであることができる。エンキューされた呼び出しは、一般に、データセットの一部分として解析されるデータ項目を含み、そのデータセットは、メッセージストリーム172上に呼び出しによって表される。場合によっては、エンキューされた呼び出しは、解析タスク164を識別することなどによって、解析タスク164を呼び出すための明示的な呼び出しであることができる。他の例では、エンキューされた呼び出しは明示的な呼び出しでなくてもよいが、代わりにデータ項目を単純に渡すことができるにもかかわらず、ストリーム172、オンデマンドコード実行システム110、または両方のコンフィグレーションが原因で、データ項目を処理する、解析タスク164への呼び出しをもたらす。
(2)では、メッセージストリーム172(例えば、メッセージストリーム172をホストするストリームデータ処理システム170)は、ストリーム172の適切なシャード174上に呼び出しをエンキューする。上記に考察されるように、呼び出しが置かれている特定のシャードは、例えば、呼び出しのデータ項目に適用されるようなストリーム172についてのパーティションキーに依存することができる。例えば、ストリームデータ処理システム170は、コンシステントハッシュメカニズム(その例は当該技術分野で知られている)を実装して、ストリーム172についてのパーティションキーとして指定されたデータ項目の属性に基づいて呼び出しを置くべきシャード174を選択することができる。(3)では、ストリーム172は、呼び出しがエンキューされたことをサブミットするデバイス301に肯定応答する。
図3では、インタラクション(1)から(3)は、非同期呼び出しループ302を表し、この非同期呼び出しループ302は、ストリーム172上に追加の呼び出しをエンキューするために任意の回数繰り返されることができる。各エンキューへの肯定応答が呼び出しの実際の実装に関して非同期で渡されるため、ループ302は、非同期呼び出しに関連するものとして指定される。したがって、非同期呼び出しループ302のインタラクションは、他のインタラクションから独立して発生することができる。例えば、ループ302のインタラクションは、他のインタラクションより前のものとして図3に示されているが、これらのインタラクションは、他のインタラクションと少なくとも部分的に同時に繰り返されることができる。さらに、これらのインタラクションは、複数の異なるサブミットするデバイス301によって繰り返されることができる。したがって、インタラクション(1)~(3)の繰り返しにより、複数の呼び出し(例えば、解析されるデータセットのデータ項目に各関係する)をメッセージストリーム172上にエンキューすることができる。
インタラクション(4)から(10)は、オンデマンドコード実行システム110へのそれらの呼び出しのサブミッションを介して、メッセージストリーム172の個々のシャード174からの呼び出しを処理するために生じることができるそれらのインタラクションの例示である。インタラクション(4)から(10)が特定のシャード174およびポーラーデバイス132に関して説明されているが、これらのインタラクションは、各シャード174の呼び出しを処理するために繰り返されることができる(例えば、少なくとも部分的に並列して動作する異なるポーラーデバイス132によって)。
具体的には、(4)において、ポーラーデバイス132は、ストリーム172のシャード174から1つ以上の次の呼び出しを取得する。場合によっては、ポーラーデバイス132は、シャード174から単一の呼び出しを取得することができる。他の例では、ポーラーデバイス132は、シャード174の次の10、100、または500回の呼び出しなど、複数の呼び出しを取得することができる。参照を容易にするために、1つ以上の次の呼び出しは、本明細書では呼び出しの「バッチ」と称される。したがって、インタラクション(4)から(10)は、図3にバッチループ304として指定される。これらのインタラクションは、例えば、所与のシャード174内に呼び出しが存在する間、繰り返されることができる。
上記のように、シャード174は、一般的に(そして潜在的に厳密に)先入れ先出し(「FIFO」)方式で例示的に動作した。したがって、インタラクション(1)から(3)はシャード174の「バック」に呼び出しを概念的にエンキューし、インタラクション(4)はシャード174の「フロント」から呼び出しを取得する。
その後、ポーラーデバイス132は、同期呼び出しループ306に入り、その間、処理のために受信したバッチからの個々の呼び出しをオンデマンドコード実行システム100に渡し、その処理を反映する状態情報をポーラーデバイス132に維持する。具体的には、(5)において、ポーラーデバイス132は、現在のバッチ内の次のまだ処理されていない呼び出しをオンデマンドコード実行システム(例えば、フロントエンド120)にサブミットする。例示的には、ループ306の第一インスタンスにおいて、サブミットされた呼び出しは、シャード174にエンキューされる第一呼び出しであることができる。この呼び出しは、API呼び出しなどを介して、システム110によって受け入れられる任意のサブミッションプロセスを介してサブミットされることができる。その後、(6)において、システム110は、図3にVMインスタンス150として示される実行環境に呼び出しを分散し、この実行環境中で、呼び出しを処理するために解析タスク164のコードを実行する。次に、(7)では、この環境内で解析タスク164を実行し、(8)では、その実行の結果をポーラーデバイス132に返す。
解析タスク164の実行を容易にするために、インタラクション(5)において、ポーラーデバイス132は、呼び出しに加えて、シャード174内のデータ項目の現在の処理状態を反映する状態情報を、オンデマンドコード実行システム110にサブミットする。ポーラーデバイス132は、状態情報をヌル値に初期化することができる。したがって、オンデマンドコード実行システム110への第一呼び出しは、ヌル値を含むことができる、または状態情報を除外することができる。(8)において返されるタスク実行の結果は、タスク実行を反映するために更新された新しい状態情報を含むことができる。(9)では、ポーラーデバイス132は、その現在の状態情報を新しい状態情報によって更新する(例えば、それ自体の状態情報を新しい状態情報と置き換えることによって)ことに続き、この更新された状態情報を、インタラクション(5)が繰り返される場合、次の呼び出しに渡すことができる。
インタラクション(5)から(10)の具体例として、コーパス内の単語をカウントすることが意図されるMapReduceモデルの実装を検討する。そのようなシナリオでは、特定のシャード174内の各呼び出しは、データ項目としてコーパスの単語を含むことができる。ポーラーデバイス132は、シャード174についての単語がカウントされていないことを示すヌル値に、状態情報を最初に設定することができる。各呼び出しをオンデマンドコード実行システム110にサブミットする場合、実行環境は、現在の呼び出し内の単語に基づいてインクリメントされる現在のカウント値(例えば、最初はヌル)を反映する状態情報を返すことができる。したがって、「apple」のデータ項目を用いる第一呼び出しは、「apple」という単語の現在のカウントが「1」であることを示す、「{apple:1}」の状態情報をもたらすことができる。第二呼び出しは、その状態情報、および「ball」という単語の処理のための呼び出しを含むことができる。この呼び出しに関する解析タスク164の実行は、「{apple:1;ball:1}」の状態情報をもたらすことができる。このプロセスは、各タスクの実行によって返される状態情報が、ストリームのシャード174内の各呼び出しを処理することを表すように継続することができる。単純化された単語カウントの例が本明細書に提供されているが、当業者は、データ解析アプリケーションが実際には、さまざまな非常に複雑な解析を網羅することができることを理解するであろう。
図3では、ループ306は、同期呼び出しループとして指定され、この同期呼び出しループは、これらの例示的なインタラクションでは、解析タスク164の実行が完了した後にのみ、システム110への各呼び出しに対する応答が受信され、その実行の結果を含むことを示す。例えば、インタラクション(5)および(8)は、それぞれHTTP呼び出しおよび応答を表すことができるため、「同期HTTP要求」と称されることができる。同期要求の使用は、ポーラーデバイス132と実行環境との間で状態情報を渡すために必要なコンピューティングリソースを有利にreduce処理することができる。なぜなら、そのような状態情報は、オンデマンドコード実行システム110がいかなる場合でも提供する要求および応答内で渡されることができるからである。したがって、例えば、タスク実行の状態情報をポーラーデバイス132に渡すために、追加のネットワーク接続を実行環境に必要としない。ただし、いくつかの実施形態では、非同期呼び出しがポーラーデバイス132によっても利用されることができることが企図される。例えば、ポーラーデバイス132は、シャード174からの呼び出しを処理する非同期要求をシステム110にサブミットすることができ、タスク実行は、実行環境にポーラーデバイス132との通信を開始させて、タスク実行についての状態情報を返させることができる。
データ解析がメッセージストリーム172の呼び出しの順序に依存する場合などのいくつかの実施形態では、ポーラーデバイス132がシステム110に次の呼び出しをサブミットする前に、呼び出しループ360は、各呼び出しをシステム110にサブミットして結果を受信する必要があるため、厳密に反復して発生する場合がある。他の例では、ポーラーデバイス132は、システム110に複数の呼び出しを同時にサブミットすることなどによって、少なくとも部分的に並列して呼び出しループ306を実装することができる。
上記を考慮して理解されるように、インタラクション(5)から(9)は、一般に、オンデマンドコード実行システム110による特定の実行環境への呼び出しのいかなる特定の分散にも依存しない。例えば、呼び出しループ306の各インスタンスは、呼び出しが異なる実行環境に分散される結果となる可能性がある。有利には、このコンフィグレーションは、メッセージストリーム172の処理状態に関するいかなる情報も維持する必要がないように、環境がステートレスに動作することを可能にする。ステートレス動作は、環境が適切な状態情報を含むかどうかに基づくのではなく、そのような環境に利用可能なコンピューティングリソースなどに基づいて環境に呼び出しを分散することによって、オンデマンドコード実行システム110がより効率的に動作することを可能にすることができる。このようにして、代替の状態メンテナンス解決策と比較して、全体的な効率が向上する。
上記に考察されるように、分散システム内の1つ以上のデバイスの不具合がシステム全体の動作に著しく影響しないように、分散システムがレジリエンスで動作することが一般的に望ましい。本発明のモデルでは、メッセージストリーム上にエンキューされるメッセージの冗長ストレージを提供することなどによって、メッセージストリーム172がほとんどの不具合のシナリオの下にレジリエンスで動作すると仮定する。同様に、異なる物理デバイス上に複数の実行環境を提供することなどによって、システム110全体がほとんどの不具合のシナリオの下にレジリエンスで動作すると仮定する。システム110が異なる(不具合のない)環境に例示的に分散することができる、解析タスク164を実行するためのいずれかの不具合のある呼び出しを再試行するようにポーラーデバイス132が構成されることができるので、各実行環境がレジリエンスを保証する必要は一般にない。実際には、レジリエンスを提供することがそのような環境を提供するために必要なコンピューティングリソースを一般に増加させるので、システム110上の個々の実行環境のレジリエンスを提供する努力をほとんど、または全く行わないことが望ましい場合がある。
メッセージストリーム172およびオンデマンドコード実行システムの仮定されているレジリエンスを考慮すると、データ解析タスクが多種多様な不具合のシナリオの下でさえ進行することができるように、ポーラーデバイス132もレジリエンスで動作することが望ましい場合がある。そのようなレジリエンスを提供するために、ポーラーデバイス132は、ストリーム172のシャード174の処理状態を反映する現在の状態情報を、ネットワークデータストレージサービス108などのレジリエンスのあるデータストアに定期的に、または時折書き込むことができる。これらの書き込みが「重い」動作であることが多いため、これらのような書き込みが実行可能な限り頻繁に発生しないことが一般的に望ましい。図3の例示的なインタラクションでは、書き込みは、バッチループ304の終了時にインタラクション(10)で発生することが示されている。したがって、ポーラーデバイス132が呼び出しの各バッチを処理するときに、そのバッチ(および任意の以前のバッチ)の処理を反映する状態情報をデータストレージサービス108に書き込むことができる。状態情報は、例示的に、ポーラーデバイス132によって処理された最後の呼び出しも反映する。最後の呼び出しは、例えば、ストリーム172のシャード174内の位置を参照して指定されることができる。
ポーラーフリート130は、ポーラーデバイス132に不具合があることを検出した場合、新しいポーラーデバイス132を作成し、最新の状態情報をデータストレージサービス108に書き込むことによって初期化することができる。次に、新しいポーラーデバイス132は、呼び出しの次のバッチ(例えば、処理された状態情報に反映されていないシャード174の次のメッセージ)を取得し、不具合のあるポーラーデバイス132の動作を効率的に再開して、ポーラーデバイス132のレジリエンスのある動作を提供することができる。バッチループ304の各インスタンス中の呼び出しの数(「バッチサイズ」)に基づいて、データストレージサービス108への書き込みの頻度を制御することができるので、所望の動作に基づいてポーラーデバイス132の動作をチューニングすることができる(例えば、管理者またはエンドユーザによって)。例えば、バッチサイズが大きい結果、外部書き込みの頻度が低くなり、ポーラーデバイス132のコンピューティングリソース使用量が減少する可能性があるが、不具合のあるシナリオの下で繰り返される必要のある呼び出しの量が増加する可能性がある。逆に、バッチサイズが小さい結果、外部書き込みの頻度が高くなる可能性があるが、不具合のある中で繰り返される呼び出しが減少する可能性がある。いずれの場合でも、本開示の実施形態は、オンデマンドコード実行システム110などの他のコンポーネントの動作から独立して、このトレードオフを選択することを可能にする。
本明細書に記載のストリームデータ処理システム170の有利な態様は、その中のメッセージのボリュームに基づいてメッセージストリーム172の容量をスケーリングする機能であるため、データ解析動作中でさえ、データ解析タスクについての並列化の量での変動性を可能にする。例えば、メッセージストリーム172にエンキューされる呼び出しの量が増加することが原因で、ストリームのシャード174の数が増加するため、ストリーム172の容量が増加することができる。逆に、呼び出しの量が減少することが原因で、シャード174の数が減少することができる。ポーラーデバイス132がシャード174と1対1の対応関係によって構成されることができるので、ポーラーデバイス132は、これらの条件下で適切に状態情報を転送してデータ解析の中断を防ぐように構成されることができる。状態情報をポーラーデバイス132間で渡すことができる方法の例示的な例を図4および図5に示す。
具体的には、図4は、第一シャード174Aを2つの新しいシャード、それぞれシャード174Bおよび174Cに「分割」する場合に、第一シャード174Aに対応する第一ポーラーデバイス132Aから状態情報を転送することができる方法を示す。説明を容易にするために、図4のシャード174A~Cがデータセット内のデータ項目の頻度をカウントする、データ解析タスクへの呼び出しを反映すると仮定する。さらに、データセットが「a、b、a、b、a、b」などの繰り返しパターン内の文字「a」および「b」からなると仮定する(単純さのために)。最初のシャード174Aは、ストリーム172を2つのシャード174Bおよび174Cに分割するまで、最初はストリーム172の唯一のシャードであると仮定される。この例示的な例では、データセットの文字をストリーム172についてのパーティションキーとして選択する。したがって、シャード174Bは一連の文字「a」を含み、シャード174Cは一連の文字「b」を含む。ストリーム172が処理されるときに、これらの文字の正確なカウントを維持することが、データセットの解析にとって例示的に望ましい。したがって、例えば、ストリーム172の第一メッセージ(シャード174Aのメッセージ番号1)は、文字「a」について1のカウントをもたらすはずである。ストリーム172の第二メッセージ(シャード174Aのメッセージ番号2)は、文字「a」については1、文字「b」については1などのカウントをもたらすはずである。
図4では、ポーラーデバイス132ごとの状態情報402は、状態情報によって示されるそれぞれのシャード174内のメッセージの処理(例えば、解析タスク164を介して)に続いて、それぞれのポーラーデバイス132より上に示される。したがって、状態情報402Aは、シャード174A上のメッセージ番号2の処理後に、ポーラーデバイス132Aで維持される状態情報を示す。図4の状態情報は、解析されているデータ項目の識別子(「I」)、データ項目の値(例えば、カウント)、およびデータ項目の値が最後に変更されたメッセージストリーム172内の位置を含む3つの値のタプルとして示されている。したがって、図4では、シャード174のメッセージ2を処理した後のポーラーデバイス132の状態402Aは、最後のカウントがシャード174Aの第一メッセージを表す「A1」で行われているので、データ項目「a」が「1」回カウントされた状態と、最後のカウントがシャード174Aの第一メッセージを表す「A2」で行われているので、データ項目「b」が「1」回カウントされた状態とである。
図4では、シャード174Aのメッセージ番号2の処理後、このシャードをシャード174Bおよび174Cに分割すると仮定する。したがって、シャード174Bのメッセージ1はシャード174Aの最初はメッセージ3であったものを表し、シャード174Cのメッセージ1はシャード174Aの最初はメッセージ4であったものを表すなど。各ポーラーデバイス132がシャード174と1対1の対応関係を有すると仮定する。したがって、ポーラーデバイス132Bおよび132Cがヌル状態情報によって初期化した場合、それらの現在の状態情報は、それらの関連するシャード174に含まれるそれらのデータ値に関してストリーム172の状態を正確に反映しない。すなわち、ポーラーデバイス132Bは、シャード174Bのメッセージ1上の「a」が、実際には第二であるのに、ストリーム172の第一「a」であることを示す状態情報を保持することができる。
このシナリオに対処するために、各ポーラーデバイス132は、このデバイスに対応するシャード174のホルト状態時に、それらの現在の状態情報を「子」シャード174に対応するポーラーデバイス132に利用可能にするように構成されることができる。例示的に、各ポーラーデバイス132は、それらの状態情報をデータストレージサービス108に書き込むように構成されることができる。初期化時に、各ポーラーデバイス132は、対応するシャード174が前のシャード174の子であるかどうかを決定するように構成されることができる。例示的には、ストリームデータ処理システム170は、この情報をポーラーフリート130に利用可能にすることができる。ポーラーデバイス132が子シャード174に対応する場合、ポーラーデバイス132は、その状態情報として、親シャード174に対応するポーラーデバイス132の保存された状態情報を初期化するように構成されることができる。したがって、図4では、ポーラーデバイス132Bおよび132Cのそれぞれは、それらのそれぞれのシャード174Bおよび174Cのメッセージを処理する前に、ポーラーデバイス132Aの動作がストリーム172のメッセージを最後に処理したときに、ポーラーデバイス132Aの状態情報402Aが存在した場合、このポーラーデバイス132Aの状態情報402Aによって初期化された。そのため、ポーラーデバイス132Bの状態情報402Bは、シャード174Bのメッセージ1の時点で、合計2のカウントを文字「a」に割り当てることを反映する。同様に、ポーラーデバイス132Cの状態情報402Cは、シャード174Cのメッセージ1の時点で、合計2のカウントを文字「b」に割り当てることを反映する。したがって、それぞれのデバイス132BおよびCの状態情報は、それらが対応するシャード174にパーティション化されるそれらのデータ項目に関する正確な状態を反映する。
図4に見られるように、それぞれのシャード174にパーティション化されるデータ項目についての正確な値に加えて、ポーラーデバイス132BおよびCについての状態情報は、それぞれのシャード174にパーティション化されていないそれらのデータ項目に関する期限切れの状態情報も含む。例えば、状態情報402Bは、データ項目「b」がシャード174B内に含まれていないようにシャード174Bがストリーム172からパーティション化されたとしても、データ項目「b」に値「1」を反映する。同様に、状態情報402Cは、データ項目「a」がシャード174C内に含まれていないようにシャード174Cがストリーム172からパーティション化されたとしても、データ項目「a」に値「1」を反映する。
この冗長性は、さまざまなポーラーデバイス132の状態情報に反映される値を重複排除するように、ポーラーデバイス132を設定すること、またはストリーム172内の呼び出しの全体的な処理結果を取得したいいずれかの他のデバイスを構成することによって対処される。具体的には、データ項目についての値を更新したストリーム172内の最後の位置を各データ項目タプルが含むため、最新の位置タプルをデータ項目についての権限として指定することによって重複排除が発生することができる。
状態情報を重複排除する例示的な一例を図5に示す。図4と同様に、図5は、ストリーム172内のデータ項目に各対応する、それぞれのシャード174BおよびCでの呼び出しの処理を反映する、ポーラーデバイス132Bおよび132Cについての例示的な状態情報を示す。図5では、ポーラーデバイス132Bおよび132Cのそれぞれは、それらのそれぞれのシャード174上の追加メッセージの処理を容易にしたと想定されるため、状態情報402BおよびCは、それらのそれぞれのシャード174上で第三メッセージを処理することを反映している。
図5の図解は、2つのシャード174を単一のシャード174にマージする場合に、複数のデバイス132からの状態情報を組み合わせることができる方法を示す。具体的には、図5において、シャード174Aおよび174Bは、シャード174Dにマージされるように描かれ、このシャード174Dは、シャード174Aおよび174Bの子とみなされることができる。図4に記述されているように、それらのそれぞれのシャード174のホルト状態時に、ポーラーデバイス132Bおよび132Cのそれぞれは、それらの状態情報を、子シャード174Dに対応するポーラーデバイス132Dに渡すように構成されることができる。ただし、上記のインタラクションが原因で、状態情報402Bおよび402Cは、各データ項目「a」および「b」について2つの潜在的な値を有する冗長な情報を含む。
冗長な情報を除去するために、ポーラーデバイス132Dは、各親シャードについて受信する状態情報を、各データ項目タプルの第三値によって図5に反映されるように、メッセージストリーム172内の最新の位置の値を含む、権限のある状態情報として取得することによって、重複排除するように構成される。したがって、位置の値「B3」(またはシャードBのメッセージ3)を有する状態情報402Bからのもの、および位置の値「A1」を有する状態情報402Cからのものという、データ項目「a」についての2つのタプルを比較する場合、ポーラーデバイス132Dは、シャード174Bがシャード174Aの子であり、したがって、ストリーム172内のより後の位置であるため、状態情報402Bがデータ項目「a」について権限があると決定する。ポーラーデバイス132Dは、ストリーム172のシャード174間の関係を決定するために、必要に応じて、ストリームデータ処理システム170から祖先データを例示的に受信することができる。同様のプロセスを通じて、ポーラーデバイス132Dは、状態情報402Cがデータ項目「b」についての値を表すと決定することができる。したがって、状態情報402Dは、シャード174Dの初期化の時点での両方のデータ項目についてのカウントの重複排除された正確な記録を反映する。
簡略化された例が上述されているが、当業者は、本開示を考慮して、ポーリングデバイス132間の状態情報の共有、およびそのような情報の重複排除によって、ポーリングデバイス132がそれらの対応するシャード174にパーティション化されるデータ項目に少なくとも関連して正確な値を維持することが可能でありながら、ストリーム172のシャード174の数に対する任意の数の変更が容易にされることができることを理解するであろう。さらに、状態情報を重複排除するための1つの技法が上記に考察されているが、他のものが本開示内で企図されている。例えば、データ項目の値が一方向にのみ変化することがわかっている状況(例えば、増加することしかできないカウント)では、データ項目について重複している値は、その方向の中で最も遠い値(例えば、最大カウント)を権限のあるものとみなすことによって重複排除されることができる。このようにして、重複排除は、維持される値ごとの位置を必要とせずに発生することができる。別の例として、シャード内の位置情報に加えて、またはその代替として、処理されている個々のデータ項目について他の順序付け情報を含むことができる。例えば、状態情報は、メッセージストリーム全体(例えば、複数のシャード全体)の絶対位置識別子を含むことができる、または順序付きメッセージに対応するタイムスタンプ情報を含むことができる。タイムスタンプ情報は、例えば、メッセージがメッセージストリームにエンキューされた時刻を含むことができる。したがって、状態情報についてのタイムスタンプ値が高いほど、メッセージストリーム内でより後のメッセージを処理する状態を状態情報が表すことを識別することができ、またメッセージストリーム内でより初期のメッセージを処理する状態を表す状態情報にわたって権限があるとみなされることができる。
図6を参照して、データセットを表すメッセージストリーム172上のメッセージ(例えば、データ項目を識別する呼び出し)の処理状態を反映する状態情報をポーラーデバイス132に維持するための、例示的なルーティン600を示すブロック図を記述する。ルーティン600は、メッセージストリーム172のシャード174に対応するポーラーデバイス132に例示的に実装されることができる。
ルーティン600は、ブロック602で始まり、ブロック602では、ポーラーデバイス132は、シャード174に関連する、関連のある以前の状態情報を取得する。例示的に、以前のポーラーデバイス132がシャード174を処理していて不具合があった場合、現在のポーラーデバイス132は、以前のポーラーデバイス132の状態情報を取得し、シャード174の処理を、以前のポーラーデバイス132の状態情報に反映された最後の位置から再開することができる。さらなる例示として、シャード174が1つ以上の以前のシャード174の子である場合、ポーラーデバイス132は、シャード174の親に対応するポーラーデバイス132の状態情報を取得して採用することができる。例示的に、初期化時に、ポーラーデバイス132は、ストリームデータ処理システム170にクエリを行い、シャード174がいずれかの親シャード174を含むかどうかを識別することができる。そうである場合、ポーラーデバイス132は、データストレージサービス108などから、それらの親シャード174についての状態情報を取得することができる。親シャード174が存在しない場合、ポーラーデバイス132は、状態情報を、デバイス132のコンフィグレーション上に確立されているヌル値または所定の値に初期化することができる。
ブロック604では、ポーラーデバイス132は、いずれかの重複している情報が存在する場合、親シャードの状態情報を重複排除する。上記のように、重複排除は、所与のデータ項目について権限のあるものとして、メッセージストリーム172内の最も遠い位置に関連する値を取得することを含むことができる。
ブロック606では、ポーラーデバイス132は、図3を参照して上述されるように、バッチループ304に入り、ブロック606では、シャード174から呼び出しのバッチを取得する。各呼び出しは、シャード174にエンキューされるメッセージに対応し、解析されるデータセットからデータ項目を識別する、またはそのデータ項目を含むことができる。ブロック606において取得される呼び出しの数は、バッチループ304の所望の頻度に従って変えることができる。例示的に、呼び出しのバッチは、500回の呼び出しを含むことができる。
ブロック608では、ポーラーデバイス132は、同期呼び出しループ306に入り、ポーラーデバイス132に維持されている現在の状態情報とともに、現在のバッチからの次の呼び出しをオンデマンドコード実行システム110にサブミットする。上記のように、状態情報を渡すことにより、システム110によって任意の適切な実行環境に呼び出しをルーティングすることができる。この呼び出しを、例えば、同期HTTP要求としてサブミットすることができる。
ブロック610では、ポーラーデバイス132は、新しい状態情報を含む、呼び出しへの応答を取得する。新しい状態情報は、オンデマンドコード実行システム110上での解析タスク164の実行によって更新された、呼び出し内に渡される状態情報を例示的に表す。したがって、ポーラーデバイス132は、シャード内で識別されるデータ項目の処理状態を反映するものとして、新しい状態情報を権限のあるものとみなすことができる。
ブロック612では、オンデマンドコード実行システムにサブミットされていない追加の呼び出しがバッチ内に存在する場合、ルーティン600はブロック608に戻る。あるいは、ルーティン600はブロック614に進む。ブロック614では、ポーラーデバイス132は、現在の状態情報をレジリエンスのあるネットワークデータストレージサービスに書き込むことなどによって、その状態をチェックポイントする。上記のように、ルーティン600の実装中にポーラーデバイス132が不具合を起こした場合、後続のポーラーデバイス132は、状態情報を利用して、シャード174の処理を再開することができる。
ブロック616では、シャード174内に追加の呼び出しが存在する場合、ルーティン600はブロック606に戻る。あるいは、シャード内のすべての呼び出しが処理された場合、シャードの処理は完了したとみなされることができ、ポーラーデバイス132の最後に書き込まれた状態情報は、シャード174上のすべてのデータ項目の処理を表す。したがって、ルーティン600は、ブロック618で終了することができる。
上述の方法およびプロセスのすべては、1つ以上のコンピュータまたはプロセッサで実装されてよく、1つ以上のコンピュータまたはプロセッサによって実行されるソフトウェアコードモジュールを介して完全に自動化されてよい。コードモジュールは、任意の種類の非一過性のコンピュータ可読媒体または他のコンピュータストレージデバイス内に記憶され得る。本方法の一部またはすべては、代わりに専用コンピュータハードウェアで実装され得る。
特に明記しない限り、とりわけ、「できる(can)」、「できるであろう(could)」、「可能性がある(might)」、または「してよい(may)」等の条件的言語は、他の実施形態が特定の特徴、要素および/またはステップを含まない一方で、特定の実施形態が特定の特徴、要素および/またはステップを含むことを提示するために一般的に使用される文脈内で別様に理解される。したがって、そのような条件的言語は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に任意の方法で要求されるか、または1つ以上の実施形態が、ユーザ入力もしくはプロンプトを用いて、もしくは用いずに、これらの特徴、要素、および/またはステップが含まれるか、もしくは任意の特定の実施形態で行われるべきであるかを決定するための論理を必ず含むことを含意することは意図していない。
特に明記しない限り、句「X、Y、またはZのうちの少なくとも1つ」などの選言的言語は、項目、用語などが、X、Y、もしくはZのいずれか、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)であり得ることを提示するために一般に使用される文脈の中で別様に理解される。したがって、そのような選言的言語は、ある実施形態がXの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在することを必要とすることを含意することを一般的に意図しておらず、意味するべきではない。
特に明記しない限り、「a」または「an」等の冠詞は、概して、1つ以上の記載された項目を含むと解釈すべきである。したがって、「~するように構成された装置」等の語句は、1つ以上の列挙された装置を含むことを意図している。そのような1つまたは複数の列挙された装置は、記載された列挙を実行するように集合的に構成されることもできる。例えば、「列挙A、BおよびCを実行するように構成されたプロセッサ」は、列挙BおよびCを実行するように構成された第2のプロセッサと連動して機能し、列挙Aを実行するように構成された第1のプロセッサを含む場合がある。
本明細書に説明する、および/または添付の図面に図示するフロー図のいずれのルーティンの記述、要素、またはブロックも、ルーティンにおける特定の論理的機能または要素を実装するための1つまたは複数の実行可能な命令を含む、モジュール、セグメント、またはコードの部分を潜在的に表すものとして理解されるべきである。代替の実施態様は、本明細書に説明される実施形態の範囲内に含まれ、その中で要素または機能は、当業者によって理解されるであろうように、関係する機能性に応じて、実質的に同時または逆の順序を含む、示されるものまたは説明されるものとは異なる順序で削除または実行され得る。
多くの変形形態および変更形態が上記の実施形態に対して行われ得、それらの要素が他の許容される実施例中にあるものとして理解されることが強調されるべきである。すべてのこのような変更形態および変形形態は、本明細書において、本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることが意図される。
本開示の実施形態の例は、以下の条項を鑑みて説明できる。
条項1.メッセージストリーム内にエンキューされるメッセージの処理状態を表す状態情報を維持するシステムであって、
前記メッセージストリームを維持するストリームデータ処理システムであって、前記メッセージストリーム内の個別のメッセージはデータセット内の個別のデータ項目を処理するユーザ指定コードを呼び出す要求に対応する、前記ストリームデータ処理システムと、
前記ユーザ指定コードを呼び出す前記要求を取得するように、そして個別の要求について、前記ユーザ指定コードを実行するオンデマンドコード実行システムの実行環境を選択するように構成される、前記オンデマンドコード実行システムと、
ポーラーデバイスであって、前記ポーラーデバイスはコンピュータ実行可能命令によって、
前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報を初期化することと、
前記メッセージストリームからメッセージセットを取得することと、
前記メッセージセット内のメッセージごとに、
前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報と、前記メッセージに対応する前記要求とを前記オンデマンドコード実行システムに送信することであって、前記要求は前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しを要求する、前記送信することと、
前記個別のデータ項目の処理結果を含む呼び出しへの応答を受信することであって、前記個別のデータ項目の前記処理結果は前記メッセージストリーム内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づく、前記受信することと、
前記応答に少なくとも部分的に基づいて前記状態情報を更新することと、
を行うように構成される、前記ポーラーデバイスと、
を含む、前記システム。
条項2.前記オンデマンドコード実行システムは、MapReduceプログラミングモデルのmap段階として前記メッセージストリーム内に前記個別のメッセージをエンキューするmapタスクの複数の実行を実装するようにさらに構成され、前記ユーザ指定コードは、前記MapReduceプログラミングモデルのreduce段階を実装する、条項1に記載のシステム。
条項3.前記メッセージストリームは、複数のメッセージシャードに分割され、前記メッセージストリーム内の前記個別のメッセージは、前記データ項目に従って前記複数のメッセージシャード間に分散され、前記ポーラーデバイスは、前記メッセージセットが取得される前記複数のシャードのうちの第一シャードに対応し、前記状態情報は、前記第一シャード内のメッセージの処理状態を表す、条項1に記載のシステム。
条項4.コンピュータ実行可能命令によって、
前記複数のシャードのうちの第二メッセージシャード内にエンキューされるメッセージの処理状態を表す第二状態情報を初期化することと、
前記第二メッセージシャードから第二メッセージセットを取得することと、
前記第二メッセージセット内のメッセージごとに、
前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態を表す前記状態情報と、前記メッセージに対応する前記要求とを前記オンデマンドコード実行システムに送信することであって、前記要求は前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの前記呼び出しを要求する、前記送信することと、
前記個別のデータ項目の処理結果を含む前記要求への応答を受信することであって、前記個別のデータ項目の前記処理結果は前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づく、前記受信することと、
前記応答に少なくとも部分的に基づいて前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態を表す前記状態情報を更新することと、
を行うように構成される、
第二ポーラーデバイスをさらに含む、条項3に記載のシステム。
条項5.
メッセージストリーム内にエンキューされるメッセージの処理状態を表す状態情報を初期化することであって、前記メッセージストリーム内の個別のメッセージは、データセット内の個別のデータ項目を処理するユーザ指定コードをオンデマンドコード実行システムで実行する要求に対応する、前記初期化することと、
前記メッセージストリームからメッセージセットを取得することと、
前記メッセージセット内のメッセージごとに、
前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報と、前記メッセージに対応する前記要求とを前記オンデマンドコード実行システムに送信することであって、前記要求は前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しを要求する、前記送信することと、
前記個別のデータ項目の処理結果を含む前記要求への応答を受信することであって、前記個別のデータ項目の前記処理結果は前記メッセージストリーム内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づく、前記受信することと、
前記応答に少なくとも部分的に基づいて前記状態情報を更新することと、
を含む、コンピュータ実装方法。
条項6.前記状態情報を初期化することは、データストアから1つ以上の過去の状態情報インスタンスを取得すること、および前記1つ以上の過去の状態情報インスタンスに少なくとも部分的に基づいて前記状態情報を初期化することを含む、条項5に記載のコンピュータ実装方法。
条項7.前記メッセージストリームは、複数のメッセージシャードに分割され、前記1つ以上の過去の状態情報インスタンスは、不具合のあるデバイスからの状態情報を含む、条項6に記載のコンピュータ実装方法。
条項8.前記メッセージストリームは、複数のメッセージシャードに分割され、前記メッセージセットは、前記複数のメッセージシャードのうちの第一シャードから取得され、前記1つ以上の過去の状態情報インスタンスは、前記第一シャードに対する1つ以上の親シャード内にエンキューされるメッセージを処理するデバイスからの状態情報を含む、条項6に記載のコンピュータ実装方法。
条項9.前記1つ以上の親シャードは、少なくとも2つの親シャードを含み、前記コンピュータ実装方法は、前記少なくとも2つの親シャードの状態情報を重複排除することをさらに含む、条項8に記載のコンピュータ実装方法。
条項10.前記少なくとも2つの親シャードの前記状態情報は、前記少なくとも2つの親シャードの前記状態情報内の個別のデータ項目について、前記個別のデータ項目についての値が変更された、前記メッセージストリーム内の最後の位置を示す、条項9に記載のコンピュータ実装方法。
条項11.前記メッセージセット内の各メッセージに対応する呼び出しごとに応答を受信することに続いて、前記状態情報をデータストアに書き込むことをさらに含む、条項5に記載のコンピュータ実装方法。
条項12.前記コンピュータ実装方法の少なくとも一部分を実装するデバイスに不具合を検出すること、および前記状態情報を前記データストアから取得して前記コンピュータ実装方法の前記少なくとも一部分の実装を再開することをさらに含む、条項11に記載のコンピュータ実装方法。
条項13.コンピュータ実行可能命令を含む非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムによって実行されるとき、前記コンピューティングシステムに、
メッセージストリーム内にエンキューされるメッセージの処理状態を表す状態情報を初期化することであって、前記メッセージストリーム内の個別のメッセージは、データセット内の個別のデータ項目を処理するユーザ指定コードをオンデマンドコード実行システムで実行する要求に対応する、前記初期化することと、
前記メッセージストリームからメッセージセットを取得することと、
前記メッセージセット内のメッセージごとに、
前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報と、前記メッセージに対応する前記要求とを前記オンデマンドコード実行システムに送信することであって、前記要求は前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しを要求する、前記送信することと、
前記個別のデータ項目の処理結果を含む前記要求への応答を受信することであって、前記個別のデータ項目の前記処理結果は前記メッセージストリーム内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づく、前記受信することと、
前記応答に少なくとも部分的に基づいて前記状態情報を更新することと、
を引き起こす、前記非一時的なコンピュータ可読媒体。
条項14.同期ハイパーテキスト転送プロトコル(HTTP)要求は、前記状態情報および前記呼び出しを前記オンデマンドコード実行システムに送信するために使用される、条項13に記載の非一時的なコンピュータ可読媒体。
条項15.前記応答は前記HTTP要求へのHTTP応答である、条項14に記載の非一時的なコンピュータ可読媒体。
条項16.前記ユーザ指定コードは、前記ユーザ指定コードを実行する呼び出しから独立して前記オンデマンドコード実行システムに維持される状態情報を参照することなく、ステートレスに前記オンデマンドコード実行システムで実行する、条項14に記載の非一時的なコンピュータ可読媒体。
条項17.前記状態情報を初期化するために、前記コンピュータ実行可能命令は、前記システムに、データストアから1つ以上の過去の状態情報インスタンスを取得すること、および前記1つ以上の過去のインスタンスに少なくとも部分的に基づいて前記状態情報を初期化することを引き起こす、条項13に記載の非一時的なコンピュータ可読媒体。
条項18.前記メッセージストリームは、複数のメッセージシャードに分割され、前記1つ以上の過去の状態情報インスタンスは、不具合のあるデバイスからの状態情報を含む、条項13に記載の非一時的なコンピュータ可読媒体。
条項19.前記メッセージストリームは、複数のメッセージシャードに分割され、前記メッセージセットは、前記複数のメッセージシャードのうちの第一シャードから取得され、前記1つ以上の過去の状態情報インスタンスは、前記第一シャードに対する1つ以上の親シャード内にエンキューされるメッセージを処理するデバイスからの状態情報を含む、条項13に記載の非一時的なコンピュータ可読媒体。
条項20.前記1つ以上の親シャードは、少なくとも2つの親シャードを含み、前記非一時的なコンピュータ可読媒体は、前記少なくとも2つの親シャードの前記状態情報を重複排除する、前記コンピューティングシステムによって実行可能なコンピュータ実行可能命令をさらに含む、条項19に記載の非一時的なコンピュータ可読媒体。
条項21.前記コンピュータ実行可能命令は、前記システムに、前記メッセージセット内の第一メッセージに対応する第一要求と、前記メッセージセット内の第二メッセージに対応する第二要求とを、前記オンデマンドコード実行システムに同時に送信することを引き起こす、条項19に記載の非一時的なコンピュータ可読媒体。

Claims (15)

  1. メッセージストリーム内にエンキューされるメッセージの処理状態を表す状態情報を維持するシステムであって、前記システムは、
    ストリームデータ処理システムと、
    オンデマンドコード実行システムと、
    ポーラーデバイスと、
    を含み、
    前記ストリームデータ処理システムは、前記メッセージストリームを維持し、前記メッセージストリーム内の個別のメッセージは、データセット内の個別のデータ項目を処理するユーザ指定コードを呼び出す呼び出しに対応し、
    前記オンデマンドコード実行システムは、前呼び出しを取得するように構成され、
    前記ポーラーデバイスは、コンピュータ実行可能命令によって、
    前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報を初期化し、
    前記メッセージストリームからメッセージセットを取得し、
    前記メッセージセット内のメッセージごとに、
    前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報と前記メッセージに対応する前記呼び出しとを前記オンデマンドコード実行システムに送信し、前記呼び出しは、前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しに対応し、
    前記個別のデータ項目の処理結果を含む呼び出しへの応答を受信し、前記個別のデータ項目の前記処理結果は、前記メッセージストリーム内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づき、
    前記応答に少なくとも部分的に基づいて前記状態情報を更新する、
    ように構成される、
    システム。
  2. 前記オンデマンドコード実行システムは、MapReduceプログラミングモデルのmap段階として前記メッセージストリーム内に前記個別のメッセージをエンキューするmapタスクの複数の実行を実装するようにさらに構成され、
    前記ユーザ指定コードは、前記MapReduceプログラミングモデルのreduce段階を実装する、
    請求項1に記載のシステム。
  3. 前記メッセージストリームは、複数のメッセージシャードに分割され、
    前記メッセージストリーム内の前記個別のメッセージは、前記データ項目に従って前記複数のメッセージシャード間に分散され、
    前記ポーラーデバイスは、前記メッセージセットが取得される前記複数のメッセージシャードのうちの第一シャードに対応し、
    前記状態情報は、前記第一シャード内のメッセージの処理状態を表す、
    請求項1に記載のシステム。
  4. 前記システムは、第二ポーラーデバイスをさらに含み、前記第二ポーラーデバイスは、コンピュータ実行可能命令によって、
    前記複数のメッセージシャードのうちの第二メッセージシャード内にエンキューされるメッセージの処理状態を表す第二状態情報を初期化し、
    前記第二メッセージシャードから第二メッセージセットを取得し、
    前記第二メッセージセット内のメッセージごとに、
    前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態を表す前記状態情報と前記メッセージに対応する前記呼び出しとを前記オンデマンドコード実行システムに送信し、前記呼び出しは、前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しに対応し、
    前記個別のデータ項目の処理結果を含む前記呼び出しへの応答を受信し、前記個別のデータ項目の前記処理結果は、前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づき、
    前記応答に少なくとも部分的に基づいて前記第二メッセージシャード内にエンキューされる前記メッセージの処理状態を表す前記状態情報を更新する、
    ように構成される、
    請求項3に記載のシステム。
  5. コンピュータにより実装されるコンピュータ実装方法において、
    メッセージストリーム内にエンキューされるメッセージの処理状態を表す状態情報を前記コンピュータにより初期化するステップであって、前記メッセージストリーム内の個別のメッセージは、データセット内の個別のデータ項目を処理するユーザ指定コードをオンデマンドコード実行システムで実行する呼び出しに対応するステップと、
    前記メッセージストリームからメッセージセットを前記コンピュータにより取得するステップと、
    前記メッセージセット内のメッセージごとに、
    前記メッセージストリーム内にエンキューされる前記メッセージの処理状態を表す前記状態情報と前記メッセージに対応する前記呼び出しとを前記オンデマンドコード実行システムに前記コンピュータにより送信するステップであって、前記呼び出しは、前記メッセージによって識別される前記個別のデータ項目を処理する前記ユーザ指定コードの呼び出しに対応するステップと、
    前記個別のデータ項目の処理結果を含む前記呼び出しへの応答を前記コンピュータにより受信するステップであって、前記個別のデータ項目の前記処理結果は、前記メッセージストリーム内にエンキューされる前記メッセージの処理状態に少なくとも部分的に基づくステップと、
    前記応答に少なくとも部分的に基づいて前記状態情報を前記コンピュータにより更新するステップと、
    を含むコンピュータ実装方法。
  6. 前記状態情報を初期化するステップは、
    データストアから1つ以上の過去の状態情報インスタンスを前記コンピュータにより取得するステップと、
    前記1つ以上の過去の状態情報インスタンスに少なくとも部分的に基づいて前記状態情報を前記コンピュータにより初期化するステップと、
    を含む、
    請求項5に記載のコンピュータ実装方法。
  7. 前記メッセージストリームは、複数のメッセージシャードに分割され、
    前記1つ以上の過去の状態情報インスタンスは、不具合のあるデバイスからの状態情報を含む、
    請求項6に記載のコンピュータ実装方法。
  8. 前記メッセージストリームは、複数のメッセージシャードに分割され、
    前記メッセージセットは、前記複数のメッセージシャードのうちの第一シャードから取得され、
    前記1つ以上の過去の状態情報インスタンスは、前記第一シャードに対する1つ以上の親シャード内にエンキューされるメッセージを処理するデバイスからの状態情報を含む、
    請求項6に記載のコンピュータ実装方法。
  9. 前記1つ以上の親シャードは、少なくとも2つの親シャードを含み、
    前記コンピュータ実装方法は、前記少なくとも2つの親シャードの状態情報を前記コンピュータにより重複排除するステップをさらに含む、
    請求項8に記載のコンピュータ実装方法。
  10. 前記少なくとも2つの親シャードの前記状態情報は、前記少なくとも2つの親シャードの前記状態情報内の個別のデータ項目について、前記個別のデータ項目についての値が変更された、前記メッセージストリーム内の最後の位置を示す、
    請求項9に記載のコンピュータ実装方法。
  11. 前記コンピュータ実装方法は、前記メッセージセット内の各メッセージに対応する呼び出しごとに応答を前記コンピュータにより受信するステップに続いて、前記状態情報をデータストアに前記コンピュータにより書き込むステップをさらに含む、
    請求項5に記載のコンピュータ実装方法。
  12. 前記コンピュータ実装方法は、
    前記コンピュータ実装方法の少なくとも一部分を実装するデバイスに不具合を前記コンピュータにより検出するステップと、
    前記状態情報を前記データストアから取得して前記コンピュータ実装方法の前記少なくとも一部分の実装を前記コンピュータにより再開するステップと、
    をさらに含む、
    請求項11に記載のコンピュータ実装方法。
  13. 前記オンデマンドコード実行システムに前記状態情報および前記呼び出しを送信するステップは、同期ハイパーテキスト転送プロトコル(HTTP)要求を前記オンデマンドコード実行システムに前記コンピュータにより送信するステップを含む、
    請求項5に記載のコンピュータ実装方法。
  14. 前記応答は、前記HTTP要求へのHTTP応答である、
    請求項13に記載のコンピュータ実装方法。
  15. 前記ユーザ指定コードは、前記ユーザ指定コードを実行する呼び出しから独立して前記オンデマンドコード実行システムに維持される状態情報を参照することなく、ステートレスに前記オンデマンドコード実行システムで実行する、
    請求項5に記載のコンピュータ実装方法。
JP2021517335A 2018-09-27 2019-09-26 オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス Active JP7210713B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/144,905 US11099917B2 (en) 2018-09-27 2018-09-27 Efficient state maintenance for execution environments in an on-demand code execution system
US16/144,905 2018-09-27
PCT/US2019/053123 WO2020069104A1 (en) 2018-09-27 2019-09-26 Efficient state maintenance for execution environments in an on-demand code execution system

Publications (2)

Publication Number Publication Date
JP2022501736A JP2022501736A (ja) 2022-01-06
JP7210713B2 true JP7210713B2 (ja) 2023-01-23

Family

ID=68165869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021517335A Active JP7210713B2 (ja) 2018-09-27 2019-09-26 オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス

Country Status (5)

Country Link
US (1) US11099917B2 (ja)
EP (1) EP3857375A1 (ja)
JP (1) JP7210713B2 (ja)
CN (1) CN112753019A (ja)
WO (1) WO2020069104A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11875173B2 (en) 2018-06-25 2024-01-16 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11327814B2 (en) * 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11055156B2 (en) * 2019-08-20 2021-07-06 International Business Machines Corporation Processing of a message stream
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11474868B1 (en) * 2019-11-27 2022-10-18 Amazon Technologies, Inc. Sharded polling system
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
CN113238853B (zh) * 2021-06-15 2021-11-12 上海交通大学 基于函数中间表达的无服务器计算调度系统及方法
US11388210B1 (en) * 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN113282377B (zh) * 2021-07-23 2022-01-04 阿里云计算有限公司 无服务器架构下的代码加载方法、设备、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372489A1 (en) 2013-06-12 2014-12-18 Oracle International Corporation In-database sharded queue for a shared-disk database
US20160092251A1 (en) 2014-09-30 2016-03-31 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
WO2017172440A1 (en) 2016-03-30 2017-10-05 Amazon Technologies, Inc. Processing pre-existing data sets at an on-demand code execution environment
US20170286143A1 (en) 2016-03-30 2017-10-05 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US20200073987A1 (en) 2018-09-04 2020-03-05 Salesforce.Com, Inc. Technologies for runtime selection of query execution engines

Family Cites Families (708)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949254A (en) 1988-09-29 1990-08-14 Ibm Corp. Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
US5283888A (en) 1991-08-27 1994-02-01 International Business Machines Corporation Voice processing interface unit employing virtual screen communications for accessing a plurality of primed applications
DE19500957A1 (de) 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen
GB2302966A (en) 1995-06-30 1997-02-05 Ibm Transaction processing with a reduced-kernel operating system
JPH10255112A (ja) 1997-03-12 1998-09-25 Oki Electric Ind Co Ltd 自動取引装置の監視方法と監視システム
US5970488A (en) 1997-05-05 1999-10-19 Northrop Grumman Corporation Real-time distributed database system and method
JPH1153326A (ja) 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
US6237005B1 (en) 1998-06-29 2001-05-22 Compaq Computer Corporation Web server mechanism for processing multiple transactions in an interpreted language execution environment
US6463509B1 (en) 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6501736B1 (en) 1999-03-19 2002-12-31 Lucent Technologies Inc. System for increasing the call capacity of a wireless communication system
JP2000305796A (ja) 1999-04-22 2000-11-02 Hitachi Ltd 電子計算機間のジョブ転送方法およびジョブ転送システム
US6523035B1 (en) 1999-05-20 2003-02-18 Bmc Software, Inc. System and method for integrating a plurality of disparate database utilities into a single graphical user interface
US7472349B1 (en) 1999-06-01 2008-12-30 Oracle International Corporation Dynamic services infrastructure for allowing programmatic access to internet and other resources
US6708276B1 (en) 1999-08-03 2004-03-16 International Business Machines Corporation Architecture for denied permissions in Java
US20050027611A1 (en) 1999-08-26 2005-02-03 Wharton Brian K. Electronic commerce systems and methods providing multiple-vendor searches
US6854114B1 (en) 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
FR2801118B1 (fr) 1999-11-17 2001-12-21 Bull Cp8 Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque
DE10048942B4 (de) 1999-12-01 2008-07-03 International Business Machines Corp. Verfahren und System zur Wartung von Software über ein Netz
JP2001331333A (ja) 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム及び計算機システムの制御方法
US20040098154A1 (en) 2000-10-04 2004-05-20 Mccarthy Brendan Method and apparatus for computer system engineering
US8719326B2 (en) 2003-08-18 2014-05-06 S.F. Ip Properties 14 Llc Adaptive data transformation engine
JP2002287974A (ja) 2001-03-26 2002-10-04 Ricoh Co Ltd アプリケーションプログラムの登録制御及び起動制御に係る方法及び該制御装置
US7009939B2 (en) 2001-05-21 2006-03-07 Lucent Technologies Inc. Adaptive resource management in a communication system
US6760908B2 (en) 2001-07-16 2004-07-06 Namodigit Corporation Embedded software update system
US20040205493A1 (en) 2001-08-08 2004-10-14 Simpson Shell S. Web based imaging application that creates customized content based on user selections
US7028030B2 (en) 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US7594182B2 (en) 2001-10-12 2009-09-22 National Insturments Corporation Dynamic and user-defined events for a graphical program
US7269833B2 (en) 2001-12-12 2007-09-11 Sun Microsystems, Inc. Scriptable plug-in application programming interface
US7174566B2 (en) 2002-02-01 2007-02-06 Intel Corporation Integrated network intrusion detection
US7093004B2 (en) 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US8527408B2 (en) 2002-05-06 2013-09-03 Bottom Line Technologies (De), Inc. Integrated payment system
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7308463B2 (en) 2002-06-26 2007-12-11 Hewlett-Packard Development Company, L.P. Providing requested file mapping information for a file on a storage device
US7228354B2 (en) 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7107585B2 (en) 2002-07-29 2006-09-12 Arm Limited Compilation of application code in a data processing apparatus
US7747989B1 (en) 2002-08-12 2010-06-29 Mips Technologies, Inc. Virtual machine coprocessor facilitating dynamic compilation
US7386855B2 (en) 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
JP2004102597A (ja) 2002-09-09 2004-04-02 Fujitsu Ltd コンパイル処理プログラム、コンパイル処理方法、およびコンパイル処理プログラム記録媒体
WO2004068367A2 (en) 2002-12-02 2004-08-12 Sap Aktiengesellschaft Session-return enabling stateful web applications
US7031958B2 (en) 2003-02-06 2006-04-18 International Business Machines Corporation Patterned based query optimization
US7774191B2 (en) 2003-04-09 2010-08-10 Gary Charles Berkowitz Virtual supercomputer
US20050193113A1 (en) 2003-04-14 2005-09-01 Fujitsu Limited Server allocation control method
US20040249947A1 (en) 2003-05-22 2004-12-09 Hewlett-Packard Development Company, L.P. Concurrent cluster environment
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7340522B1 (en) 2003-07-31 2008-03-04 Hewlett-Packard Development Company, L.P. Method and system for pinning a resource having an affinity to a user for resource allocation
US7937493B2 (en) 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7441244B2 (en) 2003-12-10 2008-10-21 International Business Machines Corporation Workload scheduler with cumulative weighting indexes
US7743029B2 (en) 2003-12-30 2010-06-22 Sap Ag Log configuration and online deployment services
US20050193283A1 (en) 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
JP2005198201A (ja) 2004-01-09 2005-07-21 Ntt Docomo Inc ネットワークトポロジー構成方法及びノード
US7665090B1 (en) 2004-03-08 2010-02-16 Swsoft Holdings, Ltd. System, method, and computer program product for group scheduling of computer resources
US7565661B2 (en) 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7587721B2 (en) 2004-05-20 2009-09-08 Sap Ag Sharing objects in runtime systems
US20050268308A1 (en) 2004-05-28 2005-12-01 Nokia Corporation System and method for implementing a general application program interface
US7587755B2 (en) 2004-07-02 2009-09-08 Citrix Systems, Inc. System and method for executing interactive applications with minimal privileges
US7886293B2 (en) 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7359834B2 (en) 2004-08-13 2008-04-15 Sun Microsystems, Inc. Monitoring system-calls to identify runaway processes within a computer system
US20060080678A1 (en) 2004-09-07 2006-04-13 Bailey Mark W Task distribution method for protecting servers and tasks in a distributed system
US8146073B2 (en) 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
JP2006107599A (ja) 2004-10-04 2006-04-20 Sekisui Chem Co Ltd 光ディスク
US20060129684A1 (en) 2004-11-10 2006-06-15 Chutney Technologies, Inc. Apparatus and method for distributing requests across a cluster of application servers
JP4191672B2 (ja) 2004-12-14 2008-12-03 ザイオソフト株式会社 ボリュームレンダリング等の画像処理システム
US8321554B2 (en) 2004-12-17 2012-11-27 International Business Machines Corporation System and program to automatically identify a server on which to deploy an application
US7793290B2 (en) 2004-12-20 2010-09-07 Sap Ag Grip application acceleration by executing grid application based on application usage history prior to user request for application execution
FR2881854B1 (fr) 2005-02-04 2008-01-11 Radiotelephone Sfr Procede de gestion securisee de l'execution d'une application
CN100337218C (zh) 2005-02-23 2007-09-12 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
US7860013B2 (en) 2005-03-09 2010-12-28 Comcast Cable Holdings, Llc Methods and systems for using in-stream data within an on demand content delivery path
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US8631130B2 (en) 2005-03-16 2014-01-14 Adaptive Computing Enterprises, Inc. Reserving resources in an on-demand compute environment from a local compute environment
US7558719B1 (en) 2005-04-14 2009-07-07 Xilinx, Inc. System and method for runtime analysis of system models for variable fidelity performance analysis
US20060242647A1 (en) 2005-04-21 2006-10-26 Kimbrel Tracy J Dynamic application placement under service and memory constraints
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
JP4690767B2 (ja) 2005-05-11 2011-06-01 株式会社日立製作所 ネットワークシステム、サーバ装置および通信方法
US7707579B2 (en) 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US8571913B2 (en) 2005-08-04 2013-10-29 Jeffrey K. Johnson System and method for managing data within a calendaring framework
US8407785B2 (en) 2005-08-18 2013-03-26 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
JP4580845B2 (ja) 2005-08-24 2010-11-17 パナソニック株式会社 タスク実行装置
US7730464B2 (en) 2005-09-14 2010-06-01 Microsoft Corporation Code compilation management service
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20070101325A1 (en) 2005-10-19 2007-05-03 Juraj Bystricky System and method for utilizing a remote memory to perform an interface save/restore procedure
JP4650203B2 (ja) 2005-10-20 2011-03-16 株式会社日立製作所 情報システム及び管理計算機
US7933923B2 (en) 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
US7756972B2 (en) 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
US8099726B2 (en) 2005-12-07 2012-01-17 Microsoft Corporation Implementing strong atomicity in software transactional memory
US7739239B1 (en) 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
US7725574B2 (en) 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7818798B2 (en) 2006-02-03 2010-10-19 Microsoft Corporation Software system with controlled access to objects
US20070192082A1 (en) 2006-02-13 2007-08-16 Maria Gaos System and method for generating and executing a platform emulation based on a selected application
WO2007095642A2 (en) 2006-02-16 2007-08-23 The Regents Of The University Of California Dynamic incremental compiler and method
US20070220009A1 (en) 2006-03-15 2007-09-20 Morris Robert P Methods, systems, and computer program products for controlling access to application data
US7792944B2 (en) 2006-03-31 2010-09-07 Amazon Technologies, Inc. Executing programs based on user-specified constraints
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8190682B2 (en) 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7831464B1 (en) 2006-04-06 2010-11-09 ClearPoint Metrics, Inc. Method and system for dynamically representing distributed information
US8095931B1 (en) 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
US9754265B2 (en) 2006-05-01 2017-09-05 At&T Intellectual Property I, L.P. Systems and methods to automatically activate distribution channels provided by business partners
US8046765B2 (en) 2006-07-25 2011-10-25 Hewlett-Packard Development Company, L.P. System and method for determining allocation of resource access demands to different classes of service based at least in part on permitted degraded performance
US8209695B1 (en) 2006-07-28 2012-06-26 Hewlett-Packard Development Company, L.P. Reserving resources in a resource-on-demand system for user desktop utility demand
US8015294B2 (en) 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US7823186B2 (en) 2006-08-24 2010-10-26 Novell, Inc. System and method for applying security policies on multiple assembly caches
CA2557343C (en) 2006-08-28 2015-09-22 Ibm Canada Limited-Ibm Canada Limitee Runtime code modification in a multi-threaded environment
US7996855B2 (en) 2006-09-15 2011-08-09 Oracle International Corporation Personal messaging application programming interface for integrating an application with groupware systems
US20150052258A1 (en) 2014-09-29 2015-02-19 Weaved, Inc. Direct map proxy system and protocol
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
US8010990B2 (en) 2006-10-26 2011-08-30 Intel Corporation Acceleration of packet flow classification in a virtualized system
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8185893B2 (en) 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US7644204B2 (en) 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
US8315171B2 (en) 2006-10-31 2012-11-20 Oracle America, Inc. Adaptive management of computing resources
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8112747B2 (en) 2006-11-27 2012-02-07 Sap Ag Integrated software support for a distributed business application with seamless backend communications
CN101196974B (zh) 2006-12-06 2011-08-24 国际商业机器公司 用于软件应用程序的自动配置的方法和系统
US8996864B2 (en) 2006-12-22 2015-03-31 Virtuallogix Sa System for enabling multiple execution environments to share a device
US8677353B2 (en) 2007-01-11 2014-03-18 Nec Corporation Provisioning a standby virtual machine based on the prediction of a provisioning request being generated
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8655623B2 (en) 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method
US8793676B2 (en) 2007-02-15 2014-07-29 Microsoft Corporation Version-resilient loader for custom code runtimes
US20080201455A1 (en) 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
US8065682B2 (en) 2007-02-27 2011-11-22 Microsoft Corporation Enforcing system resource usage limits on query requests based on grouping query requests into workgroups and assigning workload groups to resource pools
JP5018133B2 (ja) 2007-02-27 2012-09-05 富士通株式会社 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
WO2008114454A1 (ja) 2007-03-20 2008-09-25 Fujitsu Limited 更新システム、プログラム実行装置及びコンピュータプログラム
US8667471B2 (en) 2007-03-30 2014-03-04 Sap Ag Method and system for customizing profiling sessions
US8522209B2 (en) 2007-03-30 2013-08-27 Sap Ag Method and system for integrating profiling and debugging
US8065676B1 (en) 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
US8219987B1 (en) 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US8479195B2 (en) 2007-05-16 2013-07-02 Vmware, Inc. Dynamic selection and application of multiple virtualization techniques
US8051266B2 (en) 2007-06-11 2011-11-01 International Business Machines Corporation Automatic memory management (AMM)
US9495152B2 (en) 2007-06-22 2016-11-15 Red Hat, Inc. Automatic baselining of business application service groups comprised of virtual machines
US20090006897A1 (en) 2007-06-27 2009-01-01 Microsoft Corporation Automated service testing
US8161476B2 (en) 2007-07-04 2012-04-17 International Business Machines Corporation Processor exclusivity in a partitioned system
EP2015179A1 (en) 2007-07-13 2009-01-14 Alcatel Lucent A remote management system and method for service objects
US8074229B2 (en) 2007-07-18 2011-12-06 Sap Ag Co-execution of objects from divergent runtime environments
US8391295B2 (en) 2007-07-31 2013-03-05 Oracle International Corporation Temporal affinity-based routing of workloads
US20090055810A1 (en) 2007-08-21 2009-02-26 Nce Technologies Inc. Method And System For Compilation And Execution Of Software Codes
US8397236B2 (en) 2007-08-24 2013-03-12 Virtualmetrix, Inc. Credit based performance managment of computer systems
US8171473B2 (en) 2007-08-31 2012-05-01 International Business Machines Corporation Method and apparatus for determining a service cluster topology based on static analysis
US7827299B2 (en) 2007-09-11 2010-11-02 International Business Machines Corporation Transitioning between historical and real time data streams in the processing of data change messages
US8402472B2 (en) 2007-09-14 2013-03-19 International Business Machines Corporation Network management system event notification shortcut
WO2009043037A2 (en) 2007-09-28 2009-04-02 Xcerion Aktiebolag Network operating system
US8166304B2 (en) 2007-10-02 2012-04-24 International Business Machines Corporation Support for multiple security policies on a unified authentication architecture
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8127284B2 (en) 2007-10-16 2012-02-28 Microsoft Corporation On-demand loading of types of software code of a program executing on a computing device
US8566835B2 (en) 2007-12-13 2013-10-22 Hewlett-Packard Development Company, L.P. Dynamically resizing a virtual machine container
US20090158407A1 (en) 2007-12-13 2009-06-18 Fiberlink Communications Corporation Api translation for network access control (nac) agent
US20110040812A1 (en) 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US8473956B2 (en) 2008-01-15 2013-06-25 Microsoft Corporation Priority based scheduling system for server
US8560694B2 (en) 2008-02-01 2013-10-15 Microsoft Corporation Virtual application server with version control
US9928260B2 (en) 2008-02-11 2018-03-27 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
US8156503B2 (en) 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
CN101534418A (zh) 2008-03-11 2009-09-16 深圳华为通信技术有限公司 数字电视节目预订播放方法、机顶盒设备及播放系统
US8387075B1 (en) 2008-03-28 2013-02-26 Emc Corporation Common scheduling and synchronization primitives
US9086924B2 (en) 2008-04-24 2015-07-21 International Business Machines Corporation Executing a distributed java application on a plurality of compute nodes
US7886021B2 (en) 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US8473594B2 (en) 2008-05-02 2013-06-25 Skytap Multitenant hosted virtual machine infrastructure
US8424082B2 (en) 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US20090300599A1 (en) 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems
US8543998B2 (en) 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
JP5120121B2 (ja) 2008-07-15 2013-01-16 コニカミノルタビジネステクノロジーズ株式会社 中継サーバ、中継方法および中継プログラム
JP5157717B2 (ja) 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
US20100036925A1 (en) 2008-08-07 2010-02-11 Tactara, Llc Alias management platforms
US8725967B2 (en) 2008-08-08 2014-05-13 Amazon Technologies, Inc. Providing executing programs with access to stored block data of others
JP5215779B2 (ja) 2008-09-01 2013-06-19 キヤノン株式会社 情報処理装置及び情報処理方法
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US20100094816A1 (en) 2008-09-09 2010-04-15 Lockheed Martin Corporation Safety-Critical Data Checking In Object-Oriented Systems
DE112009002168A5 (de) 2008-09-09 2012-03-15 Kace Networks, Inc. Auslieferung und Management von virtuellen Containern
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US20100070678A1 (en) 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
US8417723B1 (en) 2008-09-12 2013-04-09 Salesforce.Com, Inc. System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token
US9798560B1 (en) 2008-09-23 2017-10-24 Gogrid, LLC Automated system and method for extracting and adapting system configurations
US7937625B2 (en) 2008-09-26 2011-05-03 Microsoft Corporation Evaluating effectiveness of memory management techniques selectively using mitigations to reduce errors
US8180604B2 (en) 2008-09-30 2012-05-15 Hewlett-Packard Development Company, L.P. Optimizing a prediction of resource usage of multiple applications in a virtual environment
US20100106926A1 (en) 2008-10-25 2010-04-29 International Business Machines Corporation Second failure data capture problem determination using user selective memory protection to trace application failures
US9141381B2 (en) 2008-10-27 2015-09-22 Vmware, Inc. Version control environment for virtual machines
US9176786B2 (en) 2008-11-04 2015-11-03 Novell, Inc. Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function
US20100131959A1 (en) 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US8214795B2 (en) 2008-11-26 2012-07-03 Optumsoft, Inc. Efficient automated translation of procedures in constraint-based language
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8769206B2 (en) 2009-01-20 2014-07-01 Oracle International Corporation Methods and systems for implementing transcendent page caching
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8336049B2 (en) 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
JP5419500B2 (ja) 2009-03-12 2014-02-19 キヤノン株式会社 プログラムおよび情報処理装置
WO2010116676A1 (ja) 2009-03-30 2010-10-14 日本電気株式会社 サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
US8321558B1 (en) 2009-03-31 2012-11-27 Amazon Technologies, Inc. Dynamically monitoring and modifying distributed execution of programs
US9817695B2 (en) 2009-04-01 2017-11-14 Vmware, Inc. Method and system for migrating processes between virtual machines
US9563866B2 (en) 2009-04-06 2017-02-07 Accenture Global Services Limited Estimating a computing job complexity
US8291416B2 (en) 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
JP5091912B2 (ja) 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
US10768611B2 (en) 2009-06-16 2020-09-08 Applied Materials, Inc. Counter and timer constraints
US8955108B2 (en) 2009-06-17 2015-02-10 Microsoft Corporation Security virtual machine for advanced auditing
US8140668B2 (en) 2009-06-24 2012-03-20 Red Hat Israel, Ltd. Pre-scheduling the timelines of virtual machines
WO2011002785A1 (en) 2009-06-29 2011-01-06 Fiberlink Communications Corporation Universal connections data collection
US8799879B2 (en) 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
US20110010690A1 (en) 2009-07-07 2011-01-13 Howard Robert S System and Method of Automatically Transforming Serial Streaming Programs Into Parallel Streaming Programs
US8769529B2 (en) 2009-07-24 2014-07-01 Novell, Inc. Generating and automatically loading reduced operating system based on usage pattern of applications
CA2674402C (en) 2009-07-31 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Optimizing on demand allocation of virtual machines using a stateless preallocation pool
US8832778B2 (en) 2009-08-04 2014-09-09 Carnegie Mellon University Methods and apparatuses for user-verifiable trusted path in the presence of malware
US8271653B2 (en) 2009-08-31 2012-09-18 Red Hat, Inc. Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
US20110055683A1 (en) 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages
JP5069730B2 (ja) 2009-09-15 2012-11-07 ヤフー株式会社 イベント通知機能提供装置、イベント通知機能提供方法及びイベント通知機能提供プログラム
US8448165B1 (en) 2009-09-15 2013-05-21 Symantec Corporation System and method for logging operations of virtual machines
US8276139B2 (en) 2009-09-30 2012-09-25 International Business Machines Corporation Provisioning virtual machine placement
US9086922B2 (en) 2009-10-26 2015-07-21 Microsoft Technology Licensing, Llc Opportunistically scheduling and adjusting time slices
US8412856B2 (en) 2009-10-26 2013-04-02 Sony Computer Entertainment America Llc. File input/output scheduler using immediate data chunking
US8875128B2 (en) 2009-11-30 2014-10-28 Red Hat Israel, Ltd. Controlling permissions in virtualization environment using hierarchical labeling
US8311032B2 (en) 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
EP3001326B1 (en) 2009-12-14 2017-07-26 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US8683465B2 (en) 2009-12-18 2014-03-25 International Business Machines Corporation Virtual image deployment with a warm cache
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US20110154353A1 (en) 2009-12-22 2011-06-23 Bmc Software, Inc. Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
US20110153541A1 (en) 2009-12-22 2011-06-23 Caterpillar Inc. Systems and methods for machine control in designated areas
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
JP5282046B2 (ja) 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
US8924982B2 (en) 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
US8346935B2 (en) 2010-01-15 2013-01-01 Joyent, Inc. Managing hardware resources by sending messages amongst servers in a data center
US9274821B2 (en) 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8478878B2 (en) 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
US8271814B2 (en) 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
US20130132780A1 (en) 2010-03-26 2013-05-23 Software Diagnostics Technology Gmbh Method for Automatically Detecting and Excluding a Tracing Instruction from Further Trace Data Generation for a Software System, a Computer System, and a Computer Program Product
US8413142B2 (en) 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US9229783B2 (en) 2010-03-31 2016-01-05 International Business Machines Corporation Methods and apparatus for resource capacity evaluation in a system of virtual containers
US9111031B2 (en) 2010-04-16 2015-08-18 Salesforce.Com, Inc. Method and system for simulating and analyzing code execution in an on-demand service environment
US8996611B2 (en) 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US8959496B2 (en) 2010-04-21 2015-02-17 Microsoft Corporation Automatic parallelization in a tracing just-in-time compiler system
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8713565B2 (en) 2010-04-28 2014-04-29 International Business Machines Corporation Automated tuning in a virtual machine computing environment
US20110276963A1 (en) 2010-05-04 2011-11-10 Riverbed Technology, Inc. Virtual Data Storage Devices and Applications Over Wide Area Networks
US9461996B2 (en) 2010-05-07 2016-10-04 Citrix Systems, Inc. Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application
US8566792B2 (en) 2010-05-07 2013-10-22 Salesforce, Inc. Validating visual components
CN102971706B (zh) 2010-05-10 2016-08-10 思杰系统有限公司 将信息从安全虚拟机重定向到不安全虚拟机
US8972980B2 (en) 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
JP5513997B2 (ja) 2010-06-07 2014-06-04 日本電信電話株式会社 通信システムおよび通信システム更新方法
US8656387B2 (en) 2010-06-17 2014-02-18 Gridcentric Inc. Method and system for workload distributing and processing across a network of replicated virtual machines
US8887163B2 (en) 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
US8739170B1 (en) 2010-06-30 2014-05-27 Amazon Technologies, Inc. Managing requests for computing capacity
US8473949B2 (en) 2010-07-08 2013-06-25 Microsoft Corporation Methods for supporting users with task continuity and completion across devices and time
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US20120016721A1 (en) 2010-07-15 2012-01-19 Joseph Weinman Price and Utility Optimization for Cloud Computing Resources
US8612413B2 (en) 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US9239996B2 (en) 2010-08-24 2016-01-19 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US8359496B1 (en) 2010-08-31 2013-01-22 Google Inc. Fault-resistant just-in-time compiler
US8490088B2 (en) 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8694400B1 (en) 2010-09-14 2014-04-08 Amazon Technologies, Inc. Managing operational throughput for shared resources
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
JP5653151B2 (ja) 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
JP5644307B2 (ja) 2010-09-17 2014-12-24 富士通株式会社 情報処理装置、情報処理装置の制御方法及び制御プログラム
US8661120B2 (en) 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8661076B2 (en) 2010-09-23 2014-02-25 Salesforce.Com, Inc. Business networking information feed alerts
SG188455A1 (en) 2010-09-30 2013-04-30 Amazon Tech Inc Virtual resource cost tracking with dedicated implementation resources
CN103154890B (zh) 2010-10-12 2016-04-13 富士通株式会社 模拟装置、方法以及程序
US9069610B2 (en) 2010-10-13 2015-06-30 Microsoft Technology Licensing, Llc Compute cluster with balanced resources
US8607054B2 (en) 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US8375389B2 (en) 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US9753713B2 (en) 2010-10-22 2017-09-05 Microsoft Technology Licensing, Llc Coordinated upgrades in distributed systems
US9645839B2 (en) 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US8756696B1 (en) 2010-10-30 2014-06-17 Sra International, Inc. System and method for providing a virtualized secure data containment service with a networked environment
US9081613B2 (en) 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
RO127693A2 (ro) 2010-12-02 2012-07-30 Adobe Systems Incorporated Transmitere html nativă integrată
US20120151479A1 (en) 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US8601323B2 (en) 2010-12-13 2013-12-03 Sap Ag Advanced management of runtime errors
EP2659395A2 (en) 2010-12-28 2013-11-06 Citrix Systems, Inc. Systems and methods for database proxy request switching
US8560699B1 (en) 2010-12-28 2013-10-15 Amazon Technologies, Inc. Enforceable launch configurations
US8745734B1 (en) 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8713566B2 (en) 2011-01-31 2014-04-29 International Business Machines Corporation Method and system for delivering and executing virtual container on logical partition of target computing device
US8756581B2 (en) 2011-02-03 2014-06-17 International Business Machines Corporation Adaptive next-executing-cycle trace selection for trace-driven code optimizers
US9967318B2 (en) 2011-02-09 2018-05-08 Cisco Technology, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
US8903943B2 (en) 2011-02-15 2014-12-02 Salesforce.Com, Inc. Integrating cloud applications and remote jobs
US8555281B1 (en) 2011-02-16 2013-10-08 Google Inc. Scheduling of tasks based upon historical execution times
US8495648B1 (en) 2011-02-28 2013-07-23 Amazon Technologies, Inc. Managing allocation of computing capacity
US9015709B2 (en) 2011-03-08 2015-04-21 Rackspace Us, Inc. Hypervisor-agnostic method of configuring a virtual machine
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
WO2012125564A1 (en) 2011-03-11 2012-09-20 Resource Interactive, Llc Payment card industry data security standard compliant proxy service
US8429282B1 (en) 2011-03-22 2013-04-23 Amazon Technologies, Inc. System and method for avoiding system overload by maintaining an ideal request rate
US8392558B1 (en) 2011-03-22 2013-03-05 Amazon Technologies, Inc. System and method for determining overload state for service requests
US8910156B1 (en) 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency
WO2012173175A1 (ja) 2011-06-14 2012-12-20 日本電気株式会社 コンテンツ配信システム、制御装置およびコンテンツ配信方法
US8756322B1 (en) 2011-06-16 2014-06-17 Amazon Technologies, Inc Fulfillment of requests for computing capacity
US20120324236A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Trusted Snapshot Generation
FR2977116A1 (fr) 2011-06-27 2012-12-28 France Telecom Procede de fourniture de service d'execution de logiciel a la demande
US9450838B2 (en) 2011-06-27 2016-09-20 Microsoft Technology Licensing, Llc Resource management for cloud computing platforms
US8615589B1 (en) 2011-06-27 2013-12-24 Amazon Technologies, Inc. Resource optimization recommendations
EP2726980A1 (en) 2011-06-29 2014-05-07 Hewlett-Packard Development Company, L.P. Application migration with dynamic operating system containers
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US8671407B2 (en) 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US8819679B2 (en) 2011-07-28 2014-08-26 International Business Machines Corporation Methods and systems for on-boarding applications to a cloud
US8813074B2 (en) 2011-08-05 2014-08-19 Vmware, Inc. Detecting and correcting network interruptions using network address translation
US8533715B2 (en) 2011-08-09 2013-09-10 International Business Machines Corporation Virtual machine management
US9152405B2 (en) 2011-08-22 2015-10-06 International Business Machines Corporation Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud
WO2013029051A2 (en) 2011-08-25 2013-02-28 to fuVIRTUSTREAM, INC. Systems and methods of host-aware resource management involving cluster-based resource pools
US9516368B2 (en) 2011-08-25 2016-12-06 At&T Intellectual Property I, L.P. System for consolidating heterogeneous data centers through virtualization of services
US8898676B2 (en) 2011-08-26 2014-11-25 Vmware, Inc. Management of software updates for software components in a virtualized environment of a datacenter using dependency relationships
US8832035B2 (en) 2011-08-30 2014-09-09 Netapp, Inc. System and method for retaining deduplication in a storage object after a clone split operation
US8635607B2 (en) 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US8621439B2 (en) 2011-09-06 2013-12-31 Microsoft Corporation Modern application tracing
US20130061220A1 (en) 2011-09-06 2013-03-07 Xerox Corporation Method for on-demand inter-cloud load provisioning for transient bursts of computing needs
US8863082B2 (en) 2011-09-07 2014-10-14 Microsoft Corporation Transformational context-aware data source management
JP5740257B2 (ja) 2011-09-08 2015-06-24 株式会社日立ソリューションズ OSGiプログラム、OSGiシステム
US8578394B2 (en) 2011-09-09 2013-11-05 Microsoft Corporation Exempting applications from suspension
JP2013061700A (ja) 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム
US8839035B1 (en) 2011-09-14 2014-09-16 Amazon Technologies, Inc. Cloud-based test execution
US8825863B2 (en) 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US8825964B1 (en) 2011-09-26 2014-09-02 Emc Corporation Adaptive integration of cloud data services with a data storage system
WO2013048986A1 (en) 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US9497136B1 (en) 2011-09-28 2016-11-15 Emc Corporation Method and system for providing usage metrics to manage utilzation of cloud computing resources
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US8914515B2 (en) 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
US9213503B2 (en) 2011-10-30 2015-12-15 Hewlett-Packard Development Company, L.P. Service provider management of virtual instances corresponding to hardware resources managed by other service providers
JP5624973B2 (ja) 2011-11-04 2014-11-12 株式会社日立製作所 フィルタリング装置
US9003141B2 (en) 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
CN103930898B (zh) 2011-11-15 2016-10-12 国立研究开发法人科学技术振兴机构 程序分析/验证服务提供系统及其控制方法、程序分析/验证装置、程序分析/验证工具管理装置
TWI478063B (zh) 2011-11-21 2015-03-21 Inst Information Industry 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US9898393B2 (en) 2011-11-22 2018-02-20 Solano Labs, Inc. System for distributed software quality improvement
US8924954B2 (en) 2011-11-22 2014-12-30 Huawei Technologies Co., Ltd. Application software installation method and application software installation apparatus
TW201322022A (zh) 2011-11-24 2013-06-01 Alibaba Group Holding Ltd 分散式資料流處理方法及其系統
US8826277B2 (en) 2011-11-29 2014-09-02 International Business Machines Corporation Cloud provisioning accelerator
US9208123B2 (en) 2011-12-07 2015-12-08 Seven Networks, Llc Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
US8769519B2 (en) 2011-12-08 2014-07-01 Microsoft Corporation Personal and pooled virtual machine update
US9363099B2 (en) 2011-12-13 2016-06-07 Ericsson Ab UPnP/DLNA with RADA hive
US8694995B2 (en) 2011-12-14 2014-04-08 International Business Machines Corporation Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
US9635132B1 (en) 2011-12-15 2017-04-25 Amazon Technologies, Inc. Service and APIs for remote volume-based block storage
US10310878B2 (en) 2011-12-16 2019-06-04 Vmware, Inc. Execution of an application in a runtime environment installed in a virtual appliance
US9609020B2 (en) 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US9170849B2 (en) 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US20130179894A1 (en) 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US9122595B2 (en) * 2012-01-13 2015-09-01 NetSuite Inc. Fault tolerance for complex distributed computing operations
US20130185729A1 (en) 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures
US9223607B2 (en) 2012-01-17 2015-12-29 Microsoft Technology Licensing, Llc System for replicating or migrating virtual machine operations log by throttling guest write iOS based on destination throughput
US9208007B2 (en) 2012-01-18 2015-12-08 International Business Machines Corporation Open resilience framework for simplified and coordinated orchestration of multiple availability managers
US8789047B2 (en) 2012-01-26 2014-07-22 Empire Technology Development Llc Allowing world switches between virtual machines via hypervisor world switch security setting
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9110728B2 (en) 2012-01-31 2015-08-18 Vmware, Inc. Elastic allocation of computing resources to software applications
KR101629879B1 (ko) 2012-02-06 2016-06-13 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
TWI459296B (zh) 2012-02-21 2014-11-01 Hon Hai Prec Ind Co Ltd 增加伺服器的虛擬機配置數量的方法
US20130227710A1 (en) 2012-02-27 2013-08-29 Computer Associates Think, Inc. System and method for securing leased images in a cloud environment
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
CN103294554A (zh) 2012-03-05 2013-09-11 中兴通讯股份有限公司 片上系统soc的多处理器的调度方法及装置
US9112935B2 (en) 2012-03-05 2015-08-18 Microsoft Technology Licensing, Llc Manipulating binary large objects
US9009734B2 (en) 2012-03-06 2015-04-14 Autodesk, Inc. Application level speculative processing
US8725702B1 (en) 2012-03-15 2014-05-13 Symantec Corporation Systems and methods for repairing system files
US10222926B2 (en) 2012-03-19 2019-03-05 Citrix Systems, Inc. Systems and methods for providing user interfaces for management applications
US20130263117A1 (en) 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio
US9026658B2 (en) 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
CN104321782B (zh) 2012-03-30 2018-01-12 爱迪德技术有限公司 web应用的安全执行
US9053603B2 (en) 2012-04-17 2015-06-09 Igt Cloud based virtual environment authentication
US9462081B2 (en) 2012-04-17 2016-10-04 Igt Cloud based virtual environment validation
US8997093B2 (en) 2012-04-17 2015-03-31 Sap Se Application installation management by selectively reuse or terminate virtual machines based on a process status
US9256413B2 (en) 2012-04-17 2016-02-09 Sap Se Automatic identification of services
US20130283141A1 (en) 2012-04-20 2013-10-24 Latitude Geographics Group Ltd. Client Agnostic Spatial Workflow Form Definition and Rendering
WO2013162548A1 (en) 2012-04-25 2013-10-31 Empire Technology Development, Llc Certification for flexible resource demand applications
US8918510B2 (en) 2012-04-27 2014-12-23 Hewlett-Packard Development Company, L. P. Evaluation of cloud computing services
BR112014018142A8 (pt) 2012-04-30 2017-07-11 Hewlett Packard Development Co Sistema de gestão automática de eventos para uma rede na nuvem, método para administrar eventos para serviços na nuvem e sistema de gerenciamento de eventos em nuvem
US8955091B2 (en) 2012-04-30 2015-02-10 Zscaler, Inc. Systems and methods for integrating cloud services with information management systems
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US8843935B2 (en) 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
GB2501757A (en) 2012-05-04 2013-11-06 Ibm Instrumentation of software applications for configuration thereof
DK2663052T3 (da) 2012-05-09 2021-04-12 Netflix Inc API Platform, der indbefatter serverudført, klientbaseret kode
WO2013171787A2 (en) 2012-05-15 2013-11-21 Hitachi, Ltd. File storage system and load distribution method
US8806644B1 (en) 2012-05-25 2014-08-12 Symantec Corporation Using expectation measures to identify relevant application analysis results
US8904402B2 (en) 2012-05-30 2014-12-02 Red Hat, Inc. Controlling capacity in a multi-tenant platform-as-a-service environment in a cloud computing system
US8850432B2 (en) 2012-05-30 2014-09-30 Red Hat, Inc. Controlling utilization in a multi-tenant platform-as-a-service (PaaS) environment in a cloud computing system
US9317689B2 (en) 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US8799236B1 (en) 2012-06-15 2014-08-05 Amazon Technologies, Inc. Detecting duplicated content among digital items
US8782632B1 (en) 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
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
US9141432B2 (en) 2012-06-20 2015-09-22 International Business Machines Corporation Dynamic pending job queue length for job distribution within a grid environment
US8869157B2 (en) 2012-06-21 2014-10-21 Breakingpoint Systems, Inc. Systems and methods for distributing tasks and/or processing recources in a system
US8959484B2 (en) 2012-06-21 2015-02-17 Microsoft Corporation System for hosted, shared, source control build
US8832820B2 (en) 2012-06-25 2014-09-09 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment
US9098308B2 (en) 2012-06-26 2015-08-04 Marvell World Trade Ltd. Method and apparatus for code performance analysis based on execution trace information
US10031782B2 (en) 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US20140007097A1 (en) 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US20150095822A1 (en) 2012-07-02 2015-04-02 eScoreMusic, Inc. Systems and methods for music display, collaboration, annotation, composition, and editing
US9152443B2 (en) 2012-07-13 2015-10-06 Ca, Inc. System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing
US9298497B2 (en) 2012-07-13 2016-03-29 Wisconsin Alumni Research Foundation Computer processor providing exception handling with reduced state storage
US9396008B2 (en) 2012-07-13 2016-07-19 Ca, Inc. System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts
US8972956B2 (en) 2012-08-02 2015-03-03 International Business Machines Corporation Application deployment in heterogeneous environments
US9563480B2 (en) 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
US8825550B2 (en) 2012-08-23 2014-09-02 Amazon Technologies, Inc. Scaling a virtual machine instance
US20140059552A1 (en) 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
US9110844B2 (en) 2012-08-27 2015-08-18 Microsoft Technology Licensing, Llc State maintenance as a service
US9575871B2 (en) 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
US8966495B2 (en) 2012-09-05 2015-02-24 Cisco Technology, Inc. Dynamic virtual machine consolidation
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US20140073300A1 (en) 2012-09-10 2014-03-13 Genband Us Llc Managing Telecommunication Services using Proximity-based Technologies
US9379995B2 (en) 2012-09-11 2016-06-28 Vmware, Inc. Resource allocation diagnosis on distributed computer systems based on resource hierarchy
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9116680B2 (en) 2012-09-26 2015-08-25 International Business Machines Corporation Dynamically building locale objects or subsections of locale objects based on historical data
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
JP2014075046A (ja) 2012-10-04 2014-04-24 International Business Maschines Corporation トレース生成方法、装置、プログラム、及び該方法を利用したマルチレベルのコンパイレーション
US9507586B2 (en) 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US8613070B1 (en) 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9081682B2 (en) 2012-10-15 2015-07-14 Red Hat Israel, Ltd. Virtual machine installation image caching
US20160019536A1 (en) 2012-10-17 2016-01-21 Royal Bank Of Canada Secure processing of data
US9600316B2 (en) 2012-10-17 2017-03-21 Microsoft Technology Licensing, Llc Augmented allocation of virtual machines for application
US9229759B2 (en) 2012-10-17 2016-01-05 Microsoft Technology Licensing, Llc Virtual machine provisioning using replicated containers
US9262212B2 (en) 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines
KR20150082218A (ko) 2012-11-05 2015-07-15 엘지전자 주식회사 초고주파 대역을 지원하는 무선 접속 시스템에서 동기 신호 생성 방법 및 장치
US9038068B2 (en) 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
US9578098B2 (en) 2012-11-19 2017-02-21 Hitachi, Ltd. Management system and management method
US9052935B1 (en) 2012-11-27 2015-06-09 Symantec Corporation Systems and methods for managing affinity rules in virtual-machine environments
US9092837B2 (en) 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9363367B2 (en) 2012-12-05 2016-06-07 Future Dial, Inc. Using automatically collected device problem information to route and guide users' requests
US9052932B2 (en) 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9086902B2 (en) 2012-12-18 2015-07-21 International Business Machines Corporation Sending tasks between virtual machines based on expiration times
US9063795B2 (en) 2012-12-19 2015-06-23 International Business Machines Corporation Adaptive resource usage limits for workload management
US9329900B2 (en) 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US9459856B2 (en) 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US9384517B2 (en) 2013-03-14 2016-07-05 Google Inc. Rendering
US9304793B2 (en) 2013-01-16 2016-04-05 Vce Company, Llc Master automation service
US8886769B2 (en) 2013-01-18 2014-11-11 Limelight Networks, Inc. Selective content pre-warming in content delivery networks based on user actions and content categorizations
US9329888B2 (en) 2013-01-28 2016-05-03 International Business Machines Corporation Computing optimized virtual machine allocations using equivalence combinations
US10223431B2 (en) 2013-01-31 2019-03-05 Facebook, Inc. Data stream splitting for low-latency data access
US10552774B2 (en) 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
JP5953421B2 (ja) 2013-02-25 2016-07-20 株式会社日立製作所 仮想サーバおよび非仮想サーバ混在環境におけるテナントネットワーク構成の管理方法
US9336031B2 (en) 2013-02-27 2016-05-10 International Business Machines Corporation Managing allocation of hardware resources in a virtualized environment
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9524489B2 (en) 2013-03-14 2016-12-20 Samsung Electronics Co., Ltd. Computing system with task transfer mechanism and method of operation thereof
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US9910896B2 (en) 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US9311221B2 (en) 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution
US10430332B2 (en) 2013-03-25 2019-10-01 Salesforce.Com, Inc. System and method for performance tuning of garbage collection algorithms
US8893088B2 (en) 2013-04-02 2014-11-18 Apple Inc. Dynamic program evaluation for system adaptation
US10019297B2 (en) 2013-04-03 2018-07-10 Salesforce.Com, Inc. Systems and methods for implementing bulk handling in asynchronous processing
EP2984590A4 (en) 2013-04-13 2017-01-04 Kiss Digital Media Pty. Ltd. Methods, systems, apparatus, products, articles and data structures for cross-platform digital content
US9329881B2 (en) 2013-04-23 2016-05-03 Sap Se Optimized deployment of data services on the cloud
US9929916B1 (en) 2013-05-02 2018-03-27 Aspen Technology, Inc. Achieving stateful application software service behavior in distributed stateless systems
US9104848B2 (en) 2013-05-08 2015-08-11 International Business Machines Corporation Cross-platform authentication from within a rich client
US10572124B2 (en) 2013-05-20 2020-02-25 Citrix Systems, Inc. Bound based contextual zoom
US9628332B2 (en) 2013-05-20 2017-04-18 Microsoft Technology Licensing, Llc Resource allocation to game titles in a remote gaming environment
US9110732B1 (en) 2013-06-07 2015-08-18 Amazon Technologies, Inc. Proxy for injecting configuration information
US9489227B2 (en) 2013-06-10 2016-11-08 Electronics And Telecommunications Research Institute Apparatus and method for virtual desktop service
US9141461B2 (en) 2013-06-23 2015-09-22 Intel Corporation Machine check architecture execution environment for non-microcoded processor
US9652617B1 (en) 2013-06-25 2017-05-16 Amazon Technologies, Inc. Analyzing security of applications
WO2015015473A1 (en) 2013-08-02 2015-02-05 Ologn Technologies Ag A secure server on a system with virtual machines
US9990499B2 (en) 2013-08-05 2018-06-05 Netflix, Inc. Dynamic security testing
US9111037B1 (en) 2013-08-21 2015-08-18 Ca, Inc. Method and apparatus to enable mainframe computer testing for software testing management platform
US9591003B2 (en) 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
US20150067019A1 (en) 2013-08-28 2015-03-05 Soeren Balko Method and system for using arbitrary computing devices for distributed data processing
US20150074659A1 (en) 2013-09-06 2015-03-12 Vmware, Inc. Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software
US9680772B2 (en) 2013-09-09 2017-06-13 Vmware, Inc. System and method for managing configuration of virtual switches in a virtual machine network
US10339236B2 (en) 2013-09-10 2019-07-02 Vmware, Inc. Techniques for improving computational throughput by using virtual machines
US9298633B1 (en) 2013-09-18 2016-03-29 Emc Corporation Adaptive prefecth for predicted write requests
US20150106805A1 (en) 2013-10-15 2015-04-16 Cisco Technology, Inc. Accelerated instantiation of cloud resource
US10193963B2 (en) 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
EP3069231B1 (en) 2013-11-13 2020-11-04 Palo Alto Networks, Inc. Automated sdk ingestion
US9298485B2 (en) 2013-11-19 2016-03-29 International Business Machines Corporation Maintaining virtual machines for cloud-based operators in a streaming application in a ready state
CN103946807B (zh) 2013-11-20 2016-03-09 华为技术有限公司 一种生成快照的方法、系统和装置
US9417918B2 (en) 2013-11-20 2016-08-16 International Business Machines Corporation Computing session workload scheduling and management of parent-child tasks
GB201320770D0 (en) * 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
CN104142858B (zh) 2013-11-29 2016-09-28 腾讯科技(深圳)有限公司 阻塞任务调度方法及装置
US9213572B2 (en) 2013-12-02 2015-12-15 Vmware, Inc. Interdependent virtual machine management
US20160306613A1 (en) 2013-12-03 2016-10-20 Hewlett Packard Enterprise Development Lp Code routine performance prediction using test results from code integration tool
RU2571723C2 (ru) 2013-12-05 2015-12-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
US9164754B1 (en) 2013-12-18 2015-10-20 Amazon Technologies, Inc. Runtime patching of native-code programs
US9477507B2 (en) 2013-12-20 2016-10-25 Vmware, Inc. State customization of forked virtual machines
US9501345B1 (en) 2013-12-23 2016-11-22 Intuit Inc. Method and system for creating enriched log data
US10459594B2 (en) 2013-12-31 2019-10-29 Vmware, Inc. Management of a pre-configured hyper-converged computing device
CN104765620B (zh) 2014-01-02 2018-01-26 国际商业机器公司 一种程序模块部署的方法和系统
EP2894564A1 (en) 2014-01-10 2015-07-15 Fujitsu Limited Job scheduling based on historical job data
EP3097486A4 (en) 2014-01-20 2018-04-04 Hewlett-Packard Development Company, L.P. Determining a permission of a first tenant with respect to a second tenant
US9935959B2 (en) 2014-02-07 2018-04-03 Oracle International Corporation Cloud service custom execution environment
US10133741B2 (en) 2014-02-13 2018-11-20 Amazon Technologies, Inc. Log data service in a virtual environment
WO2015130262A1 (en) 2014-02-25 2015-09-03 Hewlett-Packard Development Company, L.P. Multiple pools in a multi-core system
US10296362B2 (en) 2014-02-26 2019-05-21 Red Hat Israel, Ltd. Execution of a script based on properties of a virtual device associated with a virtual machine
US9110770B1 (en) 2014-03-04 2015-08-18 Amazon Technologies, Inc. Assessing quality of code in an open platform environment
US20150254248A1 (en) 2014-03-07 2015-09-10 Printeron Inc. System for suggesting network resource for use by a network terminal based on network resource ranking
US9479481B2 (en) 2014-03-14 2016-10-25 Soha Systems, Inc. Secure scalable multi-tenant application delivery system and associated method
US9632835B2 (en) 2014-03-17 2017-04-25 Ca, Inc. Deployment of virtual machines to physical host machines based on infrastructure utilization decisions
WO2015140531A1 (en) 2014-03-18 2015-09-24 British Telecommunications Public Limited Company User authentication
US10572817B2 (en) 2014-03-19 2020-02-25 Peopleconnect, Inc. Graph-based organization entity resolution
US9720661B2 (en) 2014-03-31 2017-08-01 International Businesss Machines Corporation Selectively controlling use of extended mode features
JP2015210718A (ja) 2014-04-28 2015-11-24 富士通株式会社 記憶制御装置、ストレージシステム、および記憶制御プログラム
US9459860B2 (en) 2014-04-30 2016-10-04 Paypal, Inc. Mixed mode session management
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9678778B1 (en) 2014-05-07 2017-06-13 Google Inc. Virtual cluster as a service (VCIaaS)
US20150324229A1 (en) 2014-05-09 2015-11-12 International Business Machines Corporation Propagation of task progress through the use of coalesced time intervals
US9858060B2 (en) 2014-05-09 2018-01-02 International Business Machines Corporation Automated deployment of a private modular cloud-computing environment
US20150332195A1 (en) 2014-05-13 2015-11-19 Linkedln Corporation Facilitating performance monitoring for periodically scheduled workflows
US9250893B2 (en) 2014-05-14 2016-02-02 Western Digital Technologies, Inc. Virtualized and automated software build system
CA2969422A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
WO2015175942A1 (en) 2014-05-15 2015-11-19 Carnegie Mellon University Method and apparatus for on-demand i/o channels for secure applications
FR3021108B1 (fr) 2014-05-16 2016-05-06 Thales Sa Procede d'execution de services en temps reel, notamment de gestion de vol et systeme temps reel mettant en oeuvre un tel procede
US9525893B2 (en) 2014-05-28 2016-12-20 Verizon Patent And Licensing Inc. Methods and systems for managing storage of media program copies within a network digital video recording system
US9703681B2 (en) 2014-05-29 2017-07-11 Microsoft Technology Licensing, Llc Performance optimization tip presentation during debugging
US9390260B2 (en) 2014-06-09 2016-07-12 Lehigh University Methods for enforcing control flow of a computer program
US9361102B2 (en) 2014-06-09 2016-06-07 Lehigh University Methods for enforcing control flow of a computer program
US9218176B1 (en) 2014-06-13 2015-12-22 International Business Machines Corporation Software deployment in a distributed virtual machine environment
US10061687B2 (en) 2014-06-17 2018-08-28 Paypal, Inc. Self-learning and self-validating declarative testing
US20150371244A1 (en) 2014-06-23 2015-12-24 Ca, Inc. Forecasting information technology workload demand
US10162655B2 (en) 2014-06-23 2018-12-25 Vmware, Inc. Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
US10255090B2 (en) 2014-06-23 2019-04-09 Vmware, Inc. Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US10432699B2 (en) 2014-06-26 2019-10-01 Vmware, Inc. Crowd-sourced operational metric analysis of virtual appliances
US9424065B2 (en) 2014-06-26 2016-08-23 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools
US9361145B1 (en) 2014-06-27 2016-06-07 Amazon Technologies, Inc. Virtual machine state replication using DMA write records
US9760443B2 (en) 2014-06-28 2017-09-12 Vmware, Inc. Using a recovery snapshot during live migration
US9613127B1 (en) 2014-06-30 2017-04-04 Quantcast Corporation Automated load-balancing of partitions in arbitrarily imbalanced distributed mapreduce computations
US9483299B2 (en) 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
US20150378762A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Monitoring and dynamic configuration of virtual-machine memory-management
US20160294614A1 (en) 2014-07-07 2016-10-06 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
US9983901B2 (en) 2014-07-09 2018-05-29 Google Llc Dynamic shard allocation adjustment
US10545947B2 (en) 2014-07-14 2020-01-28 Oracle International Corporation Message personalization over multiple internet messaging campaigns
US20160019081A1 (en) 2014-07-21 2016-01-21 Vmware,Inc. Viewing a snapshot of a virtual machine
US9612859B2 (en) 2014-07-21 2017-04-04 Vmware, Inc. Comparing states of a virtual machine
US20160026486A1 (en) 2014-07-25 2016-01-28 Soft Machines, Inc. An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture
US20160070714A1 (en) 2014-09-10 2016-03-10 Netapp, Inc. Low-overhead restartable merge operation with efficient crash recovery
US9513941B2 (en) 2014-09-17 2016-12-06 International Business Machines Corporation Codeless generation of APIs
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US9823983B2 (en) 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
US20160092493A1 (en) 2014-09-29 2016-03-31 International Business Machines Corporation Executing map-reduce jobs with named data
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9652273B2 (en) 2014-10-02 2017-05-16 Vmware, Inc. Method and system for creating a hierarchy of virtual machine templates in a virtualized computing system
TWI537827B (zh) 2014-10-06 2016-06-11 第五代虛擬科技股份有限公司 應用軟體試用系統、方法及其伺服器與使用者裝置
US9563513B2 (en) 2014-10-09 2017-02-07 International Business Machines Corporation O(1) virtual machine (VM) snapshot management
US9501420B2 (en) 2014-10-22 2016-11-22 Netapp, Inc. Cache optimization technique for large working data sets
US9930133B2 (en) 2014-10-23 2018-03-27 Netapp, Inc. System and method for managing application performance
JP5904514B1 (ja) 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US10007445B2 (en) 2014-11-04 2018-06-26 Rubrik, Inc. Identification of virtual machines using a distributed job scheduler
US10516733B2 (en) 2014-11-25 2019-12-24 Auth0, Inc. Multi-tenancy via code encapsulated in server requests
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
WO2016094840A2 (en) 2014-12-11 2016-06-16 Ghosh Sudeep System, method & computer readable medium for software protection via composable process-level virtual machines
US9661011B1 (en) 2014-12-17 2017-05-23 Amazon Technologies, Inc. Techniques for data routing and management using risk classification and data sampling
CN104459306B (zh) 2014-12-18 2017-02-22 东北大学 一种电熔镁群炉用电需量远程监控系统及方法
US20160191420A1 (en) 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
US11494447B2 (en) 2015-01-13 2022-11-08 Google Llc Distributed file system for virtualized computing clusters
US10033570B2 (en) 2015-01-15 2018-07-24 International Business Machines Corporation Distributed map reduce network
US9563613B1 (en) 2015-01-23 2017-02-07 Sprint Communications Company L.P. System and method for dynamic portable document file generation
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9921864B2 (en) 2015-02-26 2018-03-20 Vmware, Inc. Dynamic host performance tuning of a network stack
US9965309B2 (en) 2015-03-23 2018-05-08 Empire Technology Development Llc Virtual machine placement
US9625984B2 (en) 2015-03-27 2017-04-18 Intel Corporation Technologies for managing power during an activation cycle
US9632846B2 (en) 2015-04-02 2017-04-25 Microsoft Technology Licensing, Llc Complex event processor for historic/live/replayed data
US9658942B2 (en) 2015-04-02 2017-05-23 International Business Machines Corporation Dynamic tracing framework for debugging in virtualized environments
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
EP3082038A1 (en) 2015-04-15 2016-10-19 Hybridserver Tec AG Method, device and system for creating a massively parallelized executable object
US9756020B2 (en) 2015-04-27 2017-09-05 Microsoft Technology Licensing, Llc Persistent uniform resource locators (URLs) for client applications acting as web services
US20160350099A1 (en) 2015-05-29 2016-12-01 Hewlett Packard Enterprise Development Lp Application deployment to virtual machines
US9715416B2 (en) 2015-06-03 2017-07-25 Intel Corporation Adaptive queued locking for control of speculative execution
US9785424B2 (en) 2015-06-05 2017-10-10 Apple Inc. Capability attributes based application packaging
US9612865B2 (en) 2015-06-15 2017-04-04 International Business Machines Corporation Managed services coordinator
US10481982B2 (en) 2015-06-16 2019-11-19 Mongodb, Inc. System and method for facilitating replication in a distributed database
US9921885B2 (en) 2015-06-19 2018-03-20 Vmware, Inc. Resource management for containers in a virtualized environment
US9880837B2 (en) 2015-06-24 2018-01-30 Vmware, Inc. Artifact manager for release automation
US11429442B2 (en) 2015-06-29 2022-08-30 Vmware, Inc. Parallel and distributed computing using multiple virtual machines
US20160378547A1 (en) 2015-06-29 2016-12-29 Amazon Technologies, Inc. Preserving state during virtual machine instance migration
US10146635B1 (en) 2015-06-30 2018-12-04 EMC IP Holding Company LLC Virtual machine backup
US9720953B2 (en) 2015-07-01 2017-08-01 Zestfinance, Inc. Systems and methods for type coercion
US10531226B1 (en) 2015-07-10 2020-01-07 WeWork Companies Inc. Determining qualified devices using zone information
US9946874B2 (en) 2015-08-06 2018-04-17 International Business Machines Corporation Authenticating application legitimacy
US9660809B2 (en) 2015-08-07 2017-05-23 Adobe Systems Incorporated Cross-site request forgery defense
US10198281B2 (en) 2015-08-28 2019-02-05 Vmware, Inc. Hybrid infrastructure provisioning framework tethering remote datacenters
US10235209B2 (en) 2015-08-28 2019-03-19 Vmware, Inc. Hybrid task framework
US10083073B2 (en) 2015-09-14 2018-09-25 Dynatrace Llc Method and system for real-time causality and root cause determination of transaction and infrastructure related events provided by multiple, heterogeneous agents
US10007710B2 (en) 2015-09-21 2018-06-26 Splunk Inc. Adaptive control of data collection requests sent to external data sources
CN106548262B (zh) 2015-09-21 2020-11-06 阿里巴巴集团控股有限公司 用于处理任务的资源的调度方法、装置和系统
US10361972B2 (en) 2015-09-23 2019-07-23 Citrix Systems, Inc. Systems and methods to support VXLAN in partition environment where a single system acts as multiple logical systems to support multitenancy
US10104123B2 (en) 2015-09-23 2018-10-16 Ca, Inc. Fetching a policy definition library from a policy server at mobile device runtime of an application package to control access to mobile device resources
IN2015CH05184A (ja) 2015-09-28 2015-10-16 Wipro Ltd
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US10356206B2 (en) 2015-11-08 2019-07-16 Vmware, Inc. Deploying an application in multiple cloud computing environments
US10382409B2 (en) 2015-11-25 2019-08-13 Visa International Service Association Secure multi-party protocol
US20170161059A1 (en) 2015-12-08 2017-06-08 Paypal, Inc. Management of multiple application programming interface versions for development environments
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9514037B1 (en) 2015-12-16 2016-12-06 International Business Machines Corporation Test program scheduling based on analysis of test data sets
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9787779B2 (en) 2015-12-21 2017-10-10 Amazon Technologies, Inc. Analyzing deployment pipelines used to update production computing services using a live pipeline template process
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
WO2017107091A1 (en) 2015-12-23 2017-06-29 Intel IP Corporation Virtual cpu consolidation to avoid physical cpu contention between virtual machines
EP3341836A4 (en) 2015-12-29 2018-07-18 Samsung Electronics Co., Ltd. Message based application state and card sharing methods for user devices
US11089152B2 (en) 2016-02-08 2021-08-10 Aawaaz Inc. Placement of a missed call
US10608908B2 (en) 2016-02-10 2020-03-31 Nicira, Inc. On-demand connection ping
US10379824B2 (en) 2016-02-26 2019-08-13 Oracle International Corporation Method for static security enforcement of a DSL
US10182460B2 (en) 2016-03-14 2019-01-15 Zynga Inc. Multitenancy gaming services platform
CA3017941A1 (en) 2016-03-15 2017-09-21 Carbon Black, Inc. System and method for process hollowing detection
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11106705B2 (en) 2016-04-20 2021-08-31 Zestfinance, Inc. Systems and methods for parsing opaque data
US10310820B2 (en) 2016-05-12 2019-06-04 Basal Nuclei Inc Programming model and interpreted runtime environment for high performance services with implicit concurrency control
JP6719079B2 (ja) 2016-05-31 2020-07-08 パナソニックIpマネジメント株式会社 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム
US9900765B2 (en) 2016-06-02 2018-02-20 Apple Inc. Method and apparatus for creating and using a roaming list based on a user roaming plan
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10592279B2 (en) 2016-06-23 2020-03-17 Advanced Micro Devices, Inc. Multi-processor apparatus and method of detection and acceleration of lagging tasks
US10139876B2 (en) 2016-06-23 2018-11-27 Vmware Inc. Efficient reboot of an operating system executed in a virtual machine
US20170371963A1 (en) 2016-06-27 2017-12-28 Facebook, Inc. Systems and methods for identifying matching content
US20190020913A9 (en) 2016-06-27 2019-01-17 Facebook, Inc. Systems and methods for identifying matching content
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11625257B2 (en) 2016-06-29 2023-04-11 Vmware, Inc. Provisioning executable managed objects of a virtualized computing environment from non-executable managed objects
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
WO2018005829A1 (en) 2016-06-30 2018-01-04 Amazon Technologies, Inc. On-demand code execution using cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US9596350B1 (en) 2016-07-21 2017-03-14 Genesys Telecommunications Laboratories, Inc. Virtual interactions in contact center operations
US10089135B2 (en) 2016-08-09 2018-10-02 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template
US9977670B2 (en) 2016-08-10 2018-05-22 Bank Of America Corporation Application programming interface for providing access to computing platform definitions
US10296498B2 (en) 2016-08-23 2019-05-21 Oracle International Corporation Coordinated hash table indexes to facilitate reducing database reconfiguration time
US20180060221A1 (en) 2016-08-24 2018-03-01 Google Inc. Multi-layer test suite generation
US20180060132A1 (en) * 2016-09-01 2018-03-01 Amazon Technologies, Inc. Stateful resource pool management for job execution
US10831641B2 (en) 2016-09-08 2020-11-10 At&T Intellectual Property I, L.P. Method and apparatus for determining a performance impact by a software upgrade of a mobile user endpoint device
US10545792B2 (en) 2016-09-12 2020-01-28 Seven Bridges Genomics Inc. Hashing data-processing steps in workflow environments
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11151097B2 (en) 2016-09-25 2021-10-19 Microsoft Technology Licensing, Llc Dynamic schema inference and enforcement
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US10346625B2 (en) 2016-10-31 2019-07-09 International Business Machines Corporation Automated mechanism to analyze elevated authority usage and capability
US10102229B2 (en) 2016-11-09 2018-10-16 Palantir Technologies Inc. Validating data integrations using a secondary data store
US10417049B2 (en) 2016-11-28 2019-09-17 Amazon Technologies, Inc. Intra-code communication in a localized device coordinator
JP6935496B2 (ja) 2016-11-28 2021-09-15 アマゾン テクノロジーズ インコーポレイテッド メッセージングプロトコル通信の管理
US9983982B1 (en) 2017-01-04 2018-05-29 Visa International Service Association Testing software code in a production environment
US10209962B2 (en) 2017-02-06 2019-02-19 International Business Machines Corporation Reconstructing a high level compilable program from an instruction trace
US20180239636A1 (en) 2017-02-22 2018-08-23 Nutanix, Inc. Task execution framework using idempotent subtasks
US10754685B2 (en) 2017-03-03 2020-08-25 Microsoft Technology Licensing Llc Cross-device task registration and resumption
EP3379413A1 (en) 2017-03-21 2018-09-26 Nokia Solutions and Networks Oy Optimization of a software image layer stack
US10360067B1 (en) 2017-03-28 2019-07-23 Amazon Technologies, Inc. Dynamic function calls in an on-demand network code execution system
US10514909B2 (en) 2017-03-29 2019-12-24 Technion Research & Development Foundation Limited Similarity of binaries
US20180300109A1 (en) 2017-04-17 2018-10-18 International Business Machines Corporation Preserving dynamic trace purity
US10650156B2 (en) 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
US10423158B1 (en) 2017-05-03 2019-09-24 Amazon Technologies, Inc. Multi-core processor with independently executing flight control programs
US10459822B1 (en) 2017-05-04 2019-10-29 Amazon Technologies, Inc. Iterative static analysis using stored partial results
US10725826B1 (en) 2017-06-21 2020-07-28 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10445140B1 (en) 2017-06-21 2019-10-15 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10742750B2 (en) 2017-07-20 2020-08-11 Cisco Technology, Inc. Managing a distributed network of function execution environments
US10325392B2 (en) 2017-08-01 2019-06-18 Cimpress Schweiz Gmbh Content replacement system using visual design object models
US11047837B2 (en) 2017-09-06 2021-06-29 Green Ocean Sciences, Inc. Mobile integrated device and electronic data platform for chemical analysis
US10360025B2 (en) 2017-09-08 2019-07-23 Accenture Global Solutions Limited Infrastructure instantiation, collaboration, and validation architecture for serverless execution frameworks
US10764051B2 (en) 2017-10-25 2020-09-01 Google Llc Privacy-preserving identity verification
US10587412B2 (en) 2017-11-07 2020-03-10 International Business Machines Corporation Virtual machine structure
US10565083B2 (en) 2017-12-08 2020-02-18 Cisco Technology, Inc. Simulating hosted application performance
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10803180B2 (en) 2017-12-13 2020-10-13 Jayant Shukla Deterministic method for detecting and blocking of exploits on interpreted code
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10803029B2 (en) 2017-12-19 2020-10-13 Salesforce.Com, Inc. Generating javascript object notation (JSON) schema from JSON payloads
US10402178B2 (en) 2018-01-26 2019-09-03 Accenture Global Solutions Limited Cross platform content management and distribution system
US10503626B2 (en) 2018-01-29 2019-12-10 Oracle International Corporation Hybrid instrumentation framework for multicore low power processors
US10924511B2 (en) 2018-01-30 2021-02-16 EMC IP Holding Company LLC Systems and methods of chunking data for secure data storage across multiple cloud providers
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10649792B1 (en) 2018-02-09 2020-05-12 American Megatrends International, Llc Cloning of firmware configuration settings using rest over IPMI interface
US11157300B2 (en) 2018-02-13 2021-10-26 Sophos Limited Managing virtual machine security resources
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10860367B2 (en) 2018-03-14 2020-12-08 Microsoft Technology Licensing, Llc Opportunistic virtual machine migration
US10466986B2 (en) 2018-03-30 2019-11-05 Oracle International Corporation Optimized recompilation using hardware tracing
US10503634B1 (en) 2018-05-25 2019-12-10 Microsoft Technology Licensing, Llc Semantic comparison of computer compiler traces
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10817331B2 (en) 2018-06-25 2020-10-27 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
JP7197612B2 (ja) 2018-06-25 2022-12-27 アマゾン テクノロジーズ インコーポレイテッド オンデマンドネットワークコード実行システム上での補助機能の実行
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US10719367B1 (en) 2018-06-27 2020-07-21 Amazon Technologies, Inc. Management of workers executing program code functions
US10911367B2 (en) 2018-06-27 2021-02-02 Oracle International Corporation Computerized methods and systems for managing cloud computer services
US10877774B2 (en) 2018-07-17 2020-12-29 Sap Se Cloud integration of application runtime
US10715630B2 (en) 2018-07-20 2020-07-14 Dell Products L.P. Common information model interoperability system
US10713080B1 (en) 2018-07-25 2020-07-14 Amazon Technologies, Inc. Request-based virtual machine memory transitioning in an on-demand network code execution system
US10705928B2 (en) 2018-08-28 2020-07-07 Salesforce.Com, Inc. Systems, methods, and apparatuses for tenant-to-tenant failover in a multi-tenant cloud computing environment
US20200081745A1 (en) 2018-09-10 2020-03-12 Nuweba Labs Ltd. System and method for reducing cold start latency of serverless functions
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US10740208B2 (en) 2018-10-03 2020-08-11 Capital One Services, Llc Cloud infrastructure optimization
US20200120112A1 (en) 2018-10-10 2020-04-16 Nuweba Labs Ltd. Techniques for detecting known vulnerabilities in serverless functions as a service (faas) platform
US10331462B1 (en) 2018-11-06 2019-06-25 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network
US11327814B2 (en) 2018-11-28 2022-05-10 International Business Machines Corporation Semaphores for serverless computing
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11044117B2 (en) 2018-12-26 2021-06-22 Citrix Systems, Inc. Intelligent and dynamic overlay tunnel formation via automatic discovery of citrivity/SDWAN peer in the datapath in a pure plug and play environment with zero networking
US11323348B2 (en) 2019-05-17 2022-05-03 Citrix Systems, Inc. API dependency error and latency injection
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372489A1 (en) 2013-06-12 2014-12-18 Oracle International Corporation In-database sharded queue for a shared-disk database
US20160092251A1 (en) 2014-09-30 2016-03-31 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
WO2017172440A1 (en) 2016-03-30 2017-10-05 Amazon Technologies, Inc. Processing pre-existing data sets at an on-demand code execution environment
US20170286143A1 (en) 2016-03-30 2017-10-05 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US20200073987A1 (en) 2018-09-04 2020-03-05 Salesforce.Com, Inc. Technologies for runtime selection of query execution engines

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875173B2 (en) 2018-06-25 2024-01-16 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions

Also Published As

Publication number Publication date
US11099917B2 (en) 2021-08-24
US20200104198A1 (en) 2020-04-02
EP3857375A1 (en) 2021-08-04
WO2020069104A1 (en) 2020-04-02
JP2022501736A (ja) 2022-01-06
CN112753019A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
JP7210713B2 (ja) オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス
US11243953B2 (en) Mapreduce implementation in an on-demand network code execution system and stream data processing system
JP7275171B2 (ja) オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション
US11714675B2 (en) Virtualization-based transaction handling in an on-demand network code execution system
US11119813B1 (en) Mapreduce implementation using an on-demand network code execution system
US10061613B1 (en) Idempotent task execution in on-demand network code execution systems
US11099870B1 (en) Reducing execution times in an on-demand network code execution system using saved machine states
US20210406068A1 (en) Method and system for stream computation based on directed acyclic graph (dag) interaction
US10795662B2 (en) Scalable artifact distribution
US9762672B2 (en) Dynamic node group allocation
CN114586011B (zh) 将所有者指定的数据处理流水线插入到对象存储服务的输入/输出路径
US20220318647A1 (en) Single framework for both streaming and on-demand inference
US20230083701A1 (en) Automatically controlling resource partitions in advance of predicted bottlenecks for log streaming messages
WO2019153880A1 (zh) 集群中镜像文件下载的方法、节点、查询服务器
US20230055511A1 (en) Optimizing clustered filesystem lock ordering in multi-gateway supported hybrid cloud environment
US11388210B1 (en) Streaming analytics using a serverless compute system
Chohan et al. Hybrid cloud support for large scale analytics and web processing
US11861386B1 (en) Application gateways in an on-demand network code execution system
US10528400B2 (en) Detecting deadlock in a cluster environment using big data analytics
US11968280B1 (en) Controlling ingestion of streaming data to serverless function executions
US11520781B2 (en) Efficient bulk loading multiple rows or partitions for a single target table
US20240103942A1 (en) On-demand code execution data management
US11526490B1 (en) Database log performance
Balasubramanian et al. FASTPS: A Fast Publish-Subscribe service using RDMA

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230111

R150 Certificate of patent or registration of utility model

Ref document number: 7210713

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150