JP6770396B2 - サービスの再活性化時間を短縮するための方法、システム、およびプログラム - Google Patents

サービスの再活性化時間を短縮するための方法、システム、およびプログラム Download PDF

Info

Publication number
JP6770396B2
JP6770396B2 JP2016202980A JP2016202980A JP6770396B2 JP 6770396 B2 JP6770396 B2 JP 6770396B2 JP 2016202980 A JP2016202980 A JP 2016202980A JP 2016202980 A JP2016202980 A JP 2016202980A JP 6770396 B2 JP6770396 B2 JP 6770396B2
Authority
JP
Japan
Prior art keywords
page
service
prefetch
fault
decision tree
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
JP2016202980A
Other languages
English (en)
Other versions
JP2017091512A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017091512A publication Critical patent/JP2017091512A/ja
Application granted granted Critical
Publication of JP6770396B2 publication Critical patent/JP6770396B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Description

本発明は、一般に、クラウド・ベースのサービスに関し、詳細には、長い不活動の後、クラウド・サービスの初期再活性化応答時間を強化することに関する。
近年、顧客が、コンピューティング・リソースを利用することを、そのようなコンピューティング・リソースを獲得する資本支出を行うことなしに可能にするクラウド・コンピューティング・サービスが開発されており、展開されている。通常、クラウド・コンピューティング・サービス・プロバイダは、少なくとも1つのプロセッサと、メモリ・ストレージと、1つまたは複数のコンピュータまたはコンピュータ・システムあるいはその両方に対するネットワーク・アクセスとを有する1つまたは複数のコンピュータまたはコンピュータ・システムあるいはその両方を構成する。これらのクラウド・コンピュータ・システムは、任意の数の顧客がコンピュータ・システムによって提供されるサービスにアクセスすることを可能にする任意の数のプロセッサ、メモリ、またはネットワーク・アクセス・デバイス(例えば、ネットワーク・インターフェース・カード(NIC))、あるいはこれらの組合せを含むことが可能である。サービスは、数値処理、商取引処理、またはウェブ・ホスティング、あるいはこれらの組合せを含むことが可能であるが、以上には限定されない。
本発明は、サービスの再活性化時間を短縮するための方法、システム、およびプログラムを提供する。
本原理の態様によれば、クラウド・ベースのサービスの再活性化時間を短縮するための方法が提供される。いくつかの実施形態において、この方法は、サービスが不活性になった後、サービスの処理中に生じたページ・フォールトを検査するステップを含むことが可能であり、前記検査するステップは、ページ・フォールトをもたらしたアドレスを解析するステップと、ページ・フォールトをもたらしたアドレスを少なくとも1つのプリフェッチ・グループの中にログ記録するステップとを含む。プリフェッチ決定ツリーが、その少なくとも1つのプリフェッチ・グループの中のページ・フォールト・データから作成される。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含む。この方法は、再活性化されたサービス要求の後にそのサービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較するステップを続けることが可能である。前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる。この方法は、以前にページアウトされたページを、一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入するステップを続けることが可能である。ページ・テーブルを使用してサービスを提供するプロセスが、ハードウェア・プロセッサで実行されることが可能であり、前記実行するステップは、ページ・フォールトを実質的に回避する。
本原理の別の態様によれば、サービスの再活性化時間を短縮するためのシステムが提供される。いくつかの実施形態において、このシステムは、サービスが不活性になった後、サービスの処理中のページ・フォールトのアドレスを検査するページ・フォールト・アナライザと、前記ページ・フォールトをもたらしたアドレスを少なくとも1つのプリフェッチ・グループの中にログ記録する追跡モジュールとを含むことが可能である。このシステムは、その少なくとも1つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成する決定ツリー・モジュールをさらに含むことが可能である。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。再活性化されたサービス要求の後に、ページ比較モジュールが、そのサービスに関するページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定し、プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる。ページ挿入モジュールが、ページアウトされたページを、一括復元を介してメモリの中に挿入する。ページ・テーブル更新モジュールが、前記ページインされたページを前記初期ページ・テーブルの中に挿入して、更新されたページ・テーブルをもたらす。このシステムは、更新されたページ・テーブルを使用してサービスを提供するようにプロセスを実行するプロセス実行モジュールをさらに含むことが可能であり、プロセスの実行は、ページ・フォールトを実質的に回避する。
本開示の別の態様によれば、コンピュータ可読プログラムを有形で具現化する非一時的な製造品が提供される。一実施形態において、クラウド・ベースのサービスに関する再活性化時間を短縮するためのプログラムを含むプログラムが提供される。このコンピュータ可読プログラムは、コンピュータ上で実行されると、そのコンピュータに、サービスが不活性になった後にサービスの処理中に生じたページ・フォールトを検査するステップであって、ページ・フォールトをもたらしたアドレスを解析することを含み得る、検査するステップを実行させる。ページ・フォールトをもたらしたアドレスは、少なくとも1つのプリフェッチ・グループの中にログ記録されることが可能である。コンピュータ可読プログラムによって実行されるステップは、その少なくとも1つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップをさらに含むことが可能である。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。コンピュータ可読プログラムは、再活性化されたサービス要求の後にサービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較することであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、比較することをさらに命令する。実行されるステップは、以前にページアウトされたページを、一括復元のためのイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入するステップをさらに含むことが可能である。次に、サービスを提供するプロセスが、ページ・テーブルを使用して実行され、実行するステップは、ページ・フォールトを実質的に回避する。
これら、およびその他の特徴および利点は、添付の図面に関連して読まれるべき、本発明の例示的な実施形態の以下の詳細な説明から明白となろう。
本開示は、以下の図を参照して、好ましい実施形態の後段の説明の詳細を与える。
本開示のいくつかの態様による、メモリ・ページからのサービスの不活動からもたらされるページ・フォールトを経験するメモリ・コンテナの待ち時間を示すプロットである。 本原理の実施形態による例示的なクラウド・コンピューティング・ノードを示す図である。 本原理の実施形態による例示的なクラウド・コンピューティング環境を示す図である。 本原理の実施形態による例示的な抽象モデル・レイヤを示す図である。 本開示の一実施形態によるクラウド・ベースのサービスの再活性化時間を短縮するための方法の一実施形態を示す流れ図またはブロック図あるいはその両方である。 本開示によるプリフェッチ決定ツリーの一実施形態を示す概略図である。 本原理の実施形態によるクラウド・ベースのサービスの再活性化時間を短縮するための例示的なシステムの一実施形態を例示するブロック図である。
本原理は、情報技術(IT)サービス、ならびにクラウド・ベースの消費モデルを介してますます提供されているマイクロ・サービスに関する。これらのサービスの多くは、これらのサービスに要求が向けられた場合に限って活性である。そのようなサービスの例が、稀にしかトラフィックを経験しない個人のウェブサイトである。このバースト性の活動の性質は、そのようなサービスの多くを同一の計算ホスト上に並置して、それにより、効果的なリソース利用をもたらすのに適している。仮想マシン、例えば、VMware、KVM、およびXenが、数十のサービスを並置する能力をもたらす。仮想マシン(VM)は、特定のコンピュータ・システムのエミュレーションである。仮想マシンは、現実の、または仮定のコンピュータのコンピュータ・アーキテクチャおよびコンピュータ機能に基づいて動作し、仮想マシンの実施様態は、専用のハードウェア、ソフトウェア、またはその両方の組合せを含むことが可能である。より最近には、オペレーティング・システム・コンテナが、数百のサービスから約千のサービスを配置する能力をもたらす。いくつかの例において、前記サービスの密度は、一貫性がない可能性がある平均中央処理装置(CPU)使用率に依存するが、各サービスは、サービスが活性であるか否かにかかわらず、いくらかのメモリ使用を要求する。一般に、これらのサービスの集合的なメモリ要件は、利用可能なメモリをはるかに上回る。
従来、オペレーティング・システムは、仮想メモリ技術を利用して、それらのサービスのうちのいくつかのサービスのメモリのいくらかを、そのメモリに活発にアクセスが行われるまでディスク上に一時的に記憶し、これは、ページングまたはスワッピングとして知られる技法である。メモリは、ますますコミット過剰となっていると判定されており、このことは、高い度合のサービス並置の自然な結果であり、応答時間が大幅に悪化する可能性がある。特に、サービスが、長い時間の不活動の後に初めて再活性化されると、そのサービスのメモリ・ページの多くは、スワップアウトされている。その結果、長く遅延されたサービスに関連するプロセスが実行される際、それらのプロセスは、ページアウトされたページがアクセスされて、サービス品質(QoS)違反につながり得るサービスの応答時間を大幅に増加させると、漸進的にトリガされる相当な数の初期ページ・フォールトを経験することになる。本明細書で使用される「ページ・フォールト」とは、実行中のプログラムが、仮想アドレス空間内にマップされているが、実際には、メイン・メモリの中にロードされていないメモリ・ページにアクセスすると、コンピュータ・ハードウェアによって生成される、例外と呼ばれる割込みの一種である。いくつかの例において、ページ・フォールトを解決するには、約100マイクロ秒(高価なソリッドステート・デバイス(SSD)ベースのスワップ・デバイスの場合)から約10ミリ秒(ハードディスク・デバイス(HDD)ベースのスワップ・デバイスの場合)までの範囲の時間がかかる可能性がある。これらの状況下で、サービス要求が、サーバに対する応答をもたらすまで10秒から100秒のページ・フォールトを経験する可能性があり、サービス要求を潜在的に秒単位で遅延させる。
図1は、この効果を実証する、コンテナの数に応じたメモリ・コンテナにおける待ち時間のプロットである。y軸は、待ち時間測定値を表し、x軸は、コンテナの数である。プロット線1は、POWER8プロセッサ(R)と、ソリッドステート・ドライブ(SSD)メモリとを含むシステムから測定された待ち時間のプロットである。プロット線2は、POWER8プロセッサ(R)と、ハードディスク・ドライブ(HDD)メモリとを含むシステムから測定された待ち時間のプロットである。プロット線3は、POWER8プロセッサ(R)と、raid0構成の2つのソリッドステート・ドライブ(SSD)メモリとを含むシステムから測定された待ち時間のプロット線である。図1に示されるとおり、いくつかの例において、ますます多くのコンテナがシステム上に配置されると、応答時間は、システムにメモリ・リソースが不足するにつれて指数関数的に増大する。この事例において、CPU使用率は、非常に低く、このため、待ち時間遅延は、スワップ・デバイスからのメモリの再ロードに概ね帰すると考えられることに留意されたい。この影響は、HDDからSDDに、SDDからraid型のSDD(アクセスすべき2つのディスクにより、より高いディスク並行性の)に移行することによって緩和されることが可能であるが、それでも、指数関数的である。
いくつかの実施形態において、本明細書で提供される方法、システム、およびコンピュータ・プログラム製品は、長い不活動の後、クラウド・サービスの初期再活性化応答時間を強化することを可能にする。いくつかの実施形態において、サービスを実行する際に漸進的に経験される多数のページ・フォールトに関連する費用を回避するため、本明細書で開示される方法、システム、およびコンピュータ・プログラム製品は、サービス要求の処理中に触れられる可能性の高いページのセットを予測し、これらのページがすべて、単一の、または少数のベクトル入出力動作を介してプリフェッチされて、存在することを確実にして、これにより、一連のオンデマンドの漸進的なページ・フォールトのオーバヘッドを大幅に低減する方法を作成する。
いくつかの例において、プリフェッチすることは、プロセッサが、命令またはデータが実際に必要とされるのに先立って、メイン・メモリから命令またはデータを要求すると、行われる。命令、例えば、データが、メモリから戻ってくると、その命令は、キャッシュの中に入れられる。命令が実際に必要とされる際、その命令、例えば、データは、メモリに要求しなければならないとした場合と比べて、キャッシュからはるかに迅速にアクセスされ得る。本明細書で使用される、スキャタ入出力またはギャザ入出力(scatter/gather I/O)としても知られる「ベクトル型の入出力(vectored I/O)」とは、単一のプロシージャ・コールが、複数のバッファからのデータを単一のデータ・ストリームに順次に書き込む、またはデータ・ストリームからのデータを複数のバッファに順次に読み出す入力および出力の方法である。それらのバッファは、バッファのベクトルにおいて与えられる。スキャタまたはギャザとは、バッファの所与のセットからデータを収集する、またはバッファの所与のセットの中にデータを分散するプロセスを指す。ベクトル型の入出力は、同期でも、非同期でも動作することが可能である。
いくつかの実施形態において、オペレーティング・システムは、何らかの長い不活性化の後にページ・フォールトをトリガするアドレスのセットを追跡し、このシーケンスをプロセスと一緒に記憶し、その後の再活性化において、これらのページを一括復元する能力を有するように強化される。いくつかの実施形態において、この方法は、そのアドレス・シーケンスの変動、およびそのシーケンスの有効性を追跡して、不要なページ復元を回避するようにする手段をさらにもたらす。いくつかの実施形態において、この方法は、応答挙動を継続的に学習する能力をさらにもたらす。次に、本開示の方法、システム、およびコンピュータ・プログラム製品について、図2〜図7を参照してより詳細に説明する。
本開示は、クラウド・コンピューティングに関する詳細な説明を含むものの、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことをあらかじめ理解されたい。むしろ、本発明の実施形態は、現在、知られている、または後に開発される他の任意のタイプのコンピューティング環境に関連して実施されることが可能である。
クラウド・コンピューティングは、迅速にプロビジョニングされ、最小限の管理作業またはサービスのプロバイダとのやりとりしか伴わずにリリースされることが可能である構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有されるプールに対する便利な、オンデマンドのネットワーク・アクセスを可能にするサービス・デリバリのモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとを含むことが可能である。
特徴は、以下のとおりである。
オンデマンドのセルフサービス:クラウド消費者が、サービスのプロバイダとの対人のやりとりを必要とすることなしに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:能力が、ネットワークを介して利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、モバイル電話、ラップトップ、PDA)による使用を促進する標準の機構を介してアクセスされる。
リソース・プール:プロバイダのコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者の役に立つようにプールされ、異なる物理リソースおよび仮想リソースのデマンドに応じた割当ておよび再割当てが動的に行われる。消費者が、一般に、提供されるリソースの正確なロケーションを管理することも、知ることもないが、より高いレベルの抽象性でロケーション(例えば、国、州、またはデータセンタ)を指定できる可能性があるという点でロケーション独立であると言える。
迅速な弾力性:能力は、迅速に、弾力的に、一部の事例においては自動的にプロビジョニングされて、急速にスケールアウトすること、および迅速にリリースされて急速にスケールインすることが可能である。消費者には、プロビジョニングに利用可能な能力は、しばしば、無限であるように見え、任意の時点で任意の量で購入され得る。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、および活性のユーザ・アカウント)に適切な何らかのレベルの抽象性で計測能力を活用することによってリソース使用を自動的に制御し、最適化する。リソース使用は、監視され、制御され、報告されて、利用されるサービスのプロバイダと消費者の両方に透明性をもたらすことが可能である。
サービス・モデルは、以下のとおりである。
Software as a Service(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ特有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力さえ含む、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしない。
Platform as a Service(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびプログラミング・ツールを使用して作成された消費者作成の、または獲得されたアプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、展開されたアプリケーション、および、場合により、アプリケーション・ホスティング環境構成を支配する。
Infrastructure as a Service(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開し、実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および、場合により、選定されたネットワーキング構成要素(例えば、ホスト・ファイアウォール)の限られた制御を支配する。
展開モデルは、以下のとおりである。
プライベート・クラウド:クラウド・インフラストラクチャが、組織のためにだけ運用される。クラウド・インフラストラクチャは、その組織または第三者によって管理されることが可能であり、敷地内に存在しても、敷地外に存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャが、いくつかの組織によって共有され、共有される関心事(例えば、任務、セキュリティ要件、ポリシー、および遵守配慮事項(compliance considerations))を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織または第三者によって管理されることが可能であり、敷地内に存在しても、敷地外に存在してもよい。
公共クラウド:クラウド・インフラストラクチャが、公衆または大規模な業界グループに提供され、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャが、固有のエンティティのままであるが、データ・ポータビリティおよびアプリケーション・ポータビリティを可能にする標準化された、または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング(cloud bursting))によって一緒に結び付けられた2つ以上のクラウド(プライベート、コミュニティ、または公共の)の複合体である。
クラウド・コンピューティング環境は、サービス指向であり、ステートレス(statelessness)である性質、低結合、モジュール性、および意味的相互運用性(semantic interoperability)に焦点を合わせている。クラウド・コンピューティングの中心には、互いに接続されたノードのネットワークを備えるインフラストラクチャがある。
次に、図2を参照すると、クラウド・コンピューティング・ノード1310の例の概略図が示されている。クラウド・コンピューティング・ノード1310は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書で説明される本発明の実施形態の用法または機能の範囲について限定を示唆することを意図するものではまったくない。いずれにしても、クラウド・コンピューティング・ノード1310は、実施されること、または前述した機能のいずれかと連携して実行すること、あるいはその両方が可能である。
クラウド・コンピューティング・ノード1310において、多数の他の汎用または専用のコンピューティング・システム環境またはコンピューティング・システム構成で動作可能なコンピュータ・システムまたはサーバ1312が存在する。コンピュータ・システムまたはサーバ1312と一緒に使用するのに適している可能性がある、よく知られたコンピューティング・システム、コンピューティング環境、またはコンピューティング構成、あるいはこれらの組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラマブル家庭用電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに前述のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、以上には限定されない。
コンピュータ・システムまたはサーバ1312は、コンピュータ・システムによって実行されている、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な脈絡で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含み得る。コンピュータ・システムまたはサーバ1312は、タスクが、通信ネットワークを介して結び付けられた遠隔処理デバイスによって実行される分散クラウド・コンピューティング環境において実施され得る。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル・コンピュータ・システム記憶媒体と遠隔コンピュータ・システム記憶媒体の両方の中に配置され得る。
図2に示されるとおり、クラウド・コンピューティング・ノード1310におけるコンピュータ・システムまたはサーバ1312は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システムまたはサーバ1312の構成要素は、1つまたは複数のプロセッサもしくは処理ユニット1316、システム・メモリ1328、ならびにシステム・メモリ1328を含む様々なシステム構成要素をプロセッサ1316に結合するバス1318を含むことが可能であるが、以上には限定されない。
バス1318は、様々なバス・アーキテクチャのいずれかを使用するメモリ・バスもしくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスもしくはローカル・バスを含め、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として、限定としてではなく、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、MicroChannel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)バスが含まれる。
コンピュータ・システムまたはサーバ1312は、通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システムまたはサーバ1312によってアクセス可能である任意の利用可能な媒体であることが可能であり、揮発性媒体と不揮発性媒体、取外し可能媒体と取外しができない媒体をともに含む。
システム・メモリ1328は、ランダム・アクセス・メモリ(RAM)1330またはキャッシュ・メモリ1332あるいはその両方などの揮発性メモリの形態でコンピュータ・システム可読媒体を含むことが可能である。コンピュータ・システムまたはサーバ1312は、他の取外し可能な、または取外しできない、揮発性または不揮発性のコンピュータ・システム記憶媒体をさらに含んでもよい。単に例として、ストレージ・システム1334が、取外しできない、不揮発性の磁気媒体(図示されず、通常、「ハードドライブ」と呼ばれる)から読取りを行うため、およびそのような媒体に書込みを行うために備えられることが可能である。図示されないものの、取外し可能な、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)から読取りを行うため、およびそのような磁気ディスクに書込みを行うための磁気ディスク・ドライブ、ならびにCD−ROM、DVD−ROM、または他の光媒体などの取外し可能な、不揮発性の光ディスクから読取りを行うため、およびそのような光ディスクに書込みを行うための光ディスク・ドライブが備えられることが可能である。そのような実例において、各媒体は、1つまたは複数のデータ媒体インターフェースによってバス1318に接続されることが可能である。さらに図示され、後段で説明されるとおり、メモリ1328は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの(例えば、少なくとも1つの)セットを有する少なくとも1つのプログラム製品を含むことが可能である。
例として、限定としてではなく、プログラム・モジュール1342の(少なくとも1つの)セットを有するプログラムまたはユーティリティ1340、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、メモリ1328の中に記憶されることが可能である。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、あるいは以上の何らかの組合せのそれぞれが、ネットワーキング環境の実施様態を含むことが可能である。プログラム・モジュール1342は、一般に、本明細書で説明される本発明の実施形態の機能または方法あるいはその両方を実行する。例えば、プログラム・モジュール1342は、図2を参照して説明されるモジュールを含むことが可能である。
コンピュータ・システムまたはサーバ1312は、キーボード、ポインティング・デバイス、ディスプレイ1324などの1つまたは複数の外部デバイス1314、ユーザがコンピュータ・システムまたはサーバ1312と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システムまたはサーバ1312が他の1つまたは複数のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはこれらの組合せと通信することも可能である。そのような通信は、入出力(I/O)インターフェース1322を介して行われることが可能である。さらに、コンピュータ・システムまたはサーバ1312は、ネットワーク・アダプタ1320を介してローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはこれらの組合せなどの1つまたは複数のネットワークと通信することが可能である。図示されるとおり、ネットワーク・アダプタ1320は、バス1318を介してコンピュータ・システムまたはサーバ1312の他の構成要素と通信する。図示されないものの、他のハードウェア構成要素または他のソフトウェア構成要素あるいはその両方が、コンピュータ・システムまたはサーバ1312と連携して使用されることも可能であることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、以上には限定されない。
次に、図3を参照すると、例示的なクラウド・コンピューティング環境1450が示されている。図示されるとおり、クラウド・コンピューティング環境1450は、例えば、携帯情報端末(PDA)もしくはセルラー電話1454a、デスクトップ・コンピュータ1454b、ラップトップ・コンピュータ1454c、または自動車コンピュータ・システム1454n、あるいはこれらの組合せなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することが可能な1つまたは複数のクラウド・コンピューティング・ノード1410を備える。ノード1410は、互いに通信することが可能である。ノード1410は、前述したとおり、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいは以上の組合せなどの1つまたは複数のネットワークにおいて、物理的に、または仮想的にグループ化される(図示せず)ことが可能である。このことは、クラウド・コンピューティング環境1450が、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持するのに必要としないインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはこれらの組合せをサービスとして提供することを可能にする。図3に示されるコンピューティング・デバイス1454a〜nのタイプは、単に例示的であることが意図されること、ならびにコンピューティング・ノード1410およびクラウド・コンピューティング環境1450は、任意のタイプのネットワークまたは任意のタイプのネットワーク・アドレス指定可能な接続あるいはその両方を介して(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信することが可能であることを理解されたい。
次に、図4を参照すると、クラウド・コンピューティング環境1450(図3)によって提供される機能抽象レイヤのセットが示されている。図4に示される構成要素、レイヤ、および機能は、単に例示的であることを意図しており、本発明の実施形態は、それらの構成要素、レイヤ、および機能に限定されないことをあらかじめ理解されたい。図示されるとおり、以下のレイヤ、および対応する機能が提供される。
ハードウェア・レイヤおよびソフトウェア・レイヤ1560が、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、一例において、IBM(R)zSeries(R)システムであるメインフレーム、一例において、IBM(R)pSeries(R)システム、IBM(R)xSeries(R)システム、IBM(R)BladeCenter(R)システムであるRISC(Reduced Instruction Set Computer)アーキテクチャ・ベースのサーバ、ストレージ・デバイス、ネットワーク、およびネットワーキング構成要素が含まれる。ソフトウェア構成要素の例には、一例において、IBM(R)WebSphere(R)アプリケーション・サーバ・ソフトウェアであるネットワーク・アプリケーション・サーバ・ソフトウェア、および一例において、IBM(R)DB2(R)データベース・ソフトウェアであるデータベース・ソフトウェアが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄区域において登録されているInternational Business Machines Corporationの商標である。)
仮想化レイヤ1562が、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよび仮想オペレーティング・システム、ならびに仮想クライアントを提供することが可能な抽象レイヤを提供する。
一例において、管理レイヤ1564が、以下に説明される機能を提供することが可能である。リソース・プロビジョニングが、クラウド・コンピューティング環境内でタスクを実行するのに利用されるコンピューティング・リソースおよび他のリソースの動的な調達をもたらす。計測および価格設定が、リソースがクラウド・コンピューティング環境内で利用されるにつれての費用追跡、およびこれらのリソースの消費に関する料金請求またはインボイス送付をもたらす。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを備えることが可能である。セキュリティが、クラウド消費者およびタスクに関するID検証、ならびにデータおよびその他のリソースに関する保護をもたらす。ユーザ・ポータルが、消費者およびシステム管理者のためのクラウド・コンピューティング環境に対するアクセスをもたらす。サービス・レベル管理が、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割当ておよびクラウド・コンピューティング・リソース管理をもたらす。サービス・レベル・アグリーメント(Service Level Agreement)(SLA)計画および履行が、将来の要件がSLAに準拠して予期されるクラウド・コンピューティング・リソースに関する事前の取決め、およびそのようなリソースの調達をもたらす。
作業負荷レイヤ1566が、クラウド・コンピューティング環境が利用され得る機能の例をもたらす。このレイヤからもたらされ得る作業負荷および機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびソフトウェア・ライフサイクル管理、仮想教室教育デリバリ、データ解析処理、トランザクション処理、およびクラウド・ベースのサービス処理の再活性化時間が含まれる。
図5は、クラウド・ベースのサービスの再活性化時間を短縮するための方法の一実施形態を示す。いくつかの実施形態において、本開示の方法は、プロセス・オブジェクトに関連付けられた1つまたは複数のプリフェッチ・グループ、アドレス追跡を可能にするプロセスに関連付けられたタグ、この方法が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定するプロセスに関連する(またはグローバルな)遅延パラメータ、および非参加モード、学習モード、または最適化モードを記述するモードを提供することが可能である。アドレス追跡は、最適化を求める要求に応答して、アドレスを追跡するようにプロセスにタグを付けることを含むことが可能である。
プリフェッチ・グループは、命令またはデータが実際に必要とされるのに先立ってメモリの中に存在することが確実にされる、命令またはデータのページのセットであることが可能である。プリフェッチ・グループの中の命令は、サービスに対応する。サービスは、クラウド環境を介してユーザにデリバリされ得るインフラストラクチャ、アプリケーション、およびビジネス・プロセスであることが可能である。プロセスは、ユーザにサービスを提供するようにクラウド環境によって行われる機能、例えば、コードまたは命令またはデータの使用である。プロセス目的は、ユーザにそのサービスを提供することの所望される結果である。
本明細書で開示される方法、システム、およびコンピュータ・プログラム製品で使用され得るサービスのいくつかの例には、ソーシャル・ネットワーク・サービス、電子メール・サービス、例えば、ウェブ・ベースの電子メール・サービス、文書またはスプレッドシート・ホスティング・サービス、ヘルスケア・サービス、行政機能サービス、データベース・サービス、メッセージング・サービス、データ解析サービス、および以上の組合せが含まれ得るが、以上には限定されない。
前述したとおり、この方法は、サービスに関する再活性化時間を短縮するために3つのモード、例えば、非参加モード、学習モード、および最適化モードを使用することができるシステム(以降、再活性化時間短縮システムと呼ぶ)を含む。いくつかの実施形態において、デフォルトで、このシステムにおけるプロセスは、非参加モードになっており、このため、本明細書で説明される最適化は、プロセスに適用されていない。いくつかの実施形態において、この方法は、ステップ10において、サービスをデリバリするためのプロセスの再活性化に応答して、再活性化時間短縮システムを非参加モードから学習モードに切り換えることから始まることが可能である。いくつかの例において、サービスは、以下の理由、すなわち、ヘルス・チェックPING、モニタリングPING(ヘルス・チェックとは異なるポート)、セキュリティPING、サイドカーPING(これらは、メイン・アプリケーション・プロセスではなく、メイン・アプリケーションの隣で実行されているエージェントである)、アプリケーション・エントリ・ポイント、および以上の組合せのうちの1つにより、起動されることが可能である。前述の例は、サービスを再活性化すること、したがって、再活性化時間短縮システムを非参加状態から学習状態に切り換えることが可能なイベントのいくつかの例に過ぎないこと、およびこれらの例が本開示を限定することは意図していないことに留意されたい。例えば、任意のコマンド、信号、または機能が、非参加モードから学習モードに切り換わるようシステムに合図するのに再活性化時間短縮システムによって使用され得ることが企図されている。前述の例示的なイベントのすべてが、異なるプリフェッチ・パターンをもたらすことも可能であり、したがって、いくつかの実施形態において、最適化された再活性化時間をもたらす際にそれらのパターンが検出され、学習され、適用されることが有利であり得る。
いくつかの実施形態において、再活性化時間短縮システムが、例えば、しばらくの間、システムが不活性になった後、学習モードにされた場合、サービスの再活性化時に、図5に示される方法のステップ15におけるプリフェッチ発見を介して、ページ・フォールトをもたらすあらゆるアドレスが検査される。実行中のプログラムが、仮想アドレス空間内にマップされているが、実際には、メイン・メモリの中にロードされていないメモリ・ページにアクセスすると、ページ・フォールトが、コンピュータ・ハードウェアによって生成される。いくつかの実施形態において、ページ・フォールトを検出することができるハードウェアは、プロセッサのメモリ管理ユニット(MMU)である一方で、ページ・フォールトを扱う例外処理ソフトウェアは、一般に、オペレーティング・システム・カーネルの一部分である。図5に示される方法のステップ15におけるプリフェッチ発見中に検出され、検査されるページ・フォールトには、マイナー・ページ・フォールト、ソフト・ページ・フォールト、メジャー・ページ・フォールトもしくはハード・ページ・フォールト、および無効ページ・フォールトが含まれることが可能である。Windows(R)およびUNIX(R)(および他のUNIX(R)様のシステム)などのオペレーティング・システムが、ページ・フォールトによってもたらされるエラーを報告するための異なる機構を提供する。いくつかの実施形態において、Windows(R)は、構造化された例外処理を使用して、ページ・フォールト・ベースの無効なアクセスをアクセス違反例外として報告し、UNIX(R)(およびUNIX(R)様のシステム)は、通常、SIGSEGVなどの信号を使用して、これらのエラー条件を報告する。
ページ・フォールトをもたらすあらゆるアドレスが、ステップ20においてプリフェッチ・グループのうちの1つの中にログ記録されることが可能である。例えば、ページ・フォールト、および関連するアドレスが、バッファの中にログ記録されて、記憶されることが可能である。いくつかの実施形態において、サービスが異なるパスをたどることが発見された場合、複数のプリフェッチ・グループが記憶されることが要求される。
いくつかの実施形態において、サービスに関する後の再活性化とともに、プロセスは、それらのサービスが、通常、メッセージまたはタイマの受取りから開始し、次に、特定のコードおよびデータ・パスをトリガする1つまたは複数のサービス・エントリ・ポイントを有するため、類似したページ・フォールトを経験する可能性が高い。いくつかの実施形態において、ステップ20においてプリフェッチ・グループを更新するのに先立って、ステップ15における解析が、以前に認識されているページ・フォールトを誘発するアドレスが飛ばされているかどうかを認識することが可能であり、その時点で、それらのアドレスは、プリフェッチ・グループの中に留まる。識別しない場合、プリフェッチ・グループ・ブランチが作成される。後のページ・フォールトにおいて、アドレスの新たなサブシーケンスが導入されていることが決定された場合、そのサブシーケンスが、その時点で挿入される。後にマージするように見える複数の同時のサブシーケンスが検出された場合、それらのサブシーケンスは、別々に保持されることが可能である。
続くステップにおいて、この方法は、ステップ25においてプリフェッチ決定ツリーを作成する。ステップ15および20におけるプリフェッチ・グループの解析およびログ記録の結果が、アプリケーションまたはサービスの異なるアクセス挙動を表すページ・グループの決定ツリーを作成するのに使用されることが可能である。決定ツリーを形成する1つの方法は、アドレスをログ記録し、アドレスの類似したシーケンスをクラスタ化し、そのようなクラスタ化における分岐(divergence)を識別することである。いくつかの実施形態において、分岐が検出されると、新たなプリフェッチ・グループが作成され、1つのプリフェッチ・グループをフロント部分、ブランチ、および後続の継続プリフェッチ・グループに細分することによってブランチが作成される。フロント部分と各継続グループは、論理的に接続され、いずれかのパスをたどる確率が、前記接続に関連付けられる。この確率は、トラバーサル(traversal)の頻度をカウントすることによって確立され得る。決定ツリーを作成することによって、この方法は、2つの原理、すなわち、1)メモリ使用の時空間表現、および2)ページのコンテキスト・インデックス可能なグループを、事実上、扱う。特に、各サービスに関するページをロードする初期段階中の、メモリ使用の時空間表現は、ロードされるべき適切な「ページのグループ」に「インデックスを付ける」ための「コンテキスト」および状態情報の簡潔な表現をもたらすことが可能である。ページのコンテキスト・インデックス可能なグループは、ページのトラバーサルが、マルコフ・モデルまたはベイジアン・ネット・モデルによって表現され得ることをもたらす。
いくつかの実施形態において、プリフェッチ決定ツリーは、ページの次のグループが、ページ・フォールト率を最小限に抑えることができるような様態でサービスの活性化イベント中、または再活性化イベント中にロードされるようにすることが可能である。プリフェッチ決定は、データ駆動型であることが可能であり、したがって、プリフェッチ決定ツリーは、サービスを活性化するアクセス・ポイントに関するコンテキストをキャプチャしなければならない。本明細書で使用される「コンテキスト」という用語は、サービスが活性化されるシナリオ、および要求されるサービスをデリバリするのに、ページ(命令およびデータ)のいずれのパスをそのシナリオがたどる可能性が高いかを表す。コンテナ・プロセスが渡り歩く時空間パターンに加えて、入力データも、その状態情報の一部でなければならない。
図6は、プリフェッチ決定ツリーの一実施形態を示す。エッジλij、エッジλik、エッジλim、エッジλkm、エッジλknに確率がタグ付けされること、または検査されたデータ・コンテキストがタグ付けされることさえ可能である。一実施形態において、これらのタグは、例えば、学習段階中の観察されたトラバーサルの数によって確立される、前記フロント・プリフェッチ・グループから後続のプリフェッチ・グループに渡り歩く尤度を表す。別の実施形態において、タグは、データ(例えば、受信されたメッセージの特定の変数または内容)を検査して、いずれのエッジをたどるべきかを決定することに関連付けられることが可能である。例えば、電子メールを求めるウェブ要求を受信することが、ビデオ・ストリームを求めるウェブ要求を受信することとは異なるプリフェッチ・グループをトリガする可能性がある。各プリフェッチ・グループ、例えば、プリフェッチ・グループ−i、プリフェッチ・グループ−j、プリフェッチ・グループ−k、プリフェッチ・グループ−m、およびプリフェッチ・グループ−nは、サービス要求の処理中に触れられる可能性の高いページのセットまたはシーケンスを含む。エッジに確率またはデータ・コンテキストでタグを付けることによって、1つまたは複数のプリフェッチ・グループが、プロセス目的に関連付けられることが可能である。一実施形態において、最も可能性の高いエッジがプリフェッチされる。一実施形態において、ページ・フォールトが生じ、それらがいずれかのページ・グループとマッチさせられ得る場合、そのページ・グループがプリフェッチされる。
プリフェッチ決定ツリーは、長期間にわたって活性化が行われなかった後にサービスが再活性化された場合、プリフェッチ・グループの中のページがすべてプリフェッチされ、メモリ上に存在することが可能であることを確実にする。ある形態のメモリの中に存在するプリフェッチされたグループの中に、ある期間の不活動の後に活性化され得るサービスに関するページが入っているようにすることにより、再活性化時間短縮システムは、一連のオンデマンドの漸進的なページ・フォールトのオーバヘッドを低減することが可能である。再活性化時間短縮システムは、決定ツリーにより、サービス要求に応答してプロセス目的の一連のページをプリフェッチされた様態で提供することによってオーバヘッドを低減し、サービス要求に応答して、生じ得るページ・フォールトが生じた場合にページ・アドレスを含むプリフェッチされた一連のページを提供する。
再活性化は、予測されることが可能であり(例えば、周期的再活性化に関して)、予期されるコンテナまたはプロセスを優先させるプリフェッチ・キューが作成されることが可能である。例えば、サービスが、ヘルス・チェックを行うように毎分、起動される場合、この事実が、学習されて、プリフェッチ・グループに関連付けられることが可能である。したがって、その挙動は、予測されることが可能であり、プリフェッチすることは、大きな遅延を回避するのに間に合うように開始されることが可能である。
図5を参照すると、このシステムが、再活性化後のプロセスの挙動が概ね学習されて、理解されることが可能であると決定した後、このシステムは、ステップ30においてそのプロセスを最適化モードにする。いくつかの実施形態において、プロセスの挙動が学習されていると決定することは、サービス要求に応答して特定の数のプリフェッチ・グループを作成することを含む。
いくつかの実施形態において、再活性化時間短縮システムが最適化モードになっている場合、長期間の不活動の後に続く次の再活性化時点で、図5に例示される方法のステップ35において、オペレーティング・システムが、プリフェッチ・グループを利用し、エントリ・ポイントを決定し、第1のページ・グループを予測する。エントリ・ポイントは、要求が着信すると即時に実行されるコードである。
図6を参照すると、第1のページ・グループがプリフェッチ・グループ−iとして識別される。第1のページ・グループは、エントリ・ポイント・データ、例えば、エントリ・ポイント・アドレス、ならびにそのエントリ・ポイントにおいてユーザによって要求されているサービスのタイプを解析することによって予測されることが可能である。
次に、再活性化時間短縮システムは、ステップ40において、プリフェッチ決定ツリーによって規定されるプリフェッチされたページにより、(図6において例が与えられる、方法のステップ25において説明されるとおり)これらのページのうちのいずれのページがメモリの中に存在するか、およびいずれのページがページアウトされているかについてページ・テーブルを点検することが可能である。仮想メモリ・システムにおいて、ページ・テーブルと呼ばれるデータ構造を用いて、仮想アドレスと物理アドレスの間でマップすることが一般的である。アドレスのページ番号は、通常、アドレスの最上位ビットから見出され、残りのビットは、そのページ内のメモリ・ロケーションのオフセットを与える。ページ・テーブルは、通常、ページ番号でインデックスが付けられ、そのページが現在、メイン・メモリの中にあるかどうか、およびそのページがメイン・メモリの中の、またはディスク上のどこにあるかに関する情報を包含する。物理メモリの中で利用可能であるページは、ページインされていると言われることが可能である一方で、物理メモリの中で利用可能でないページは、ページアウトされていると言われることが可能である。
図5に示される方法のステップ45において、ページアウトされたページが、入出力ベクトル(イン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトル)に挿入され、一括復元のために入出力サブシステムにサブミットされる。イン・パラメータは、サービスのための関数、すなわち、プロセスからデータを受け取るように呼び出し元、すなわち、ユーザに関するロケーションを指し示す関数パラメータである。アウト・パラメータは、関数からデータを受け取るように呼び出し元に関するロケーションを指し示す関数パラメータである。イン・パラメータは、呼び出し元から、サービスのための関数、すなわち、プロセスにデータを供給する関数パラメータである。ベクトル型の入出力は、単一のプロシージャ・コールが、複数のバッファからのデータを単一のデータ・ストリームに順次に書き込む、またはデータ・ストリームからのデータを複数のバッファに順次に読み出す入力および出力の方法である。バッファは、バッファのベクトルにおいて与えられる。入出力が完了し、ページが存在すると、ページ・テーブルが更新され、プロセスは、ページ・フォールトを概ね回避して実行されるようにスケジュールされる。
ステップ50において、再活性化時間短縮システムは、非参加モードに、または学習モードに戻るように、すなわち、ステップ15においてプリフェッチ発見を行うことに戻るように切り換わることが可能である。いくつかの実施形態において、学習段階と最適化段階は連続的であり、統合される。エッジ確率が閾値を下回ると決定された場合、そのエッジおよびフォロー・グループは、ドロップされ得る(プリフェッチ・グループに至る異なるパスが存在するのでない限り)。再活性化時間短縮システムを最適化モードから学習モードに切り換えることは、サービス要求のパラメータが別のプリフェッチ発見解析を要求するように変化すると、行われることが可能である。例えば、決定ツリーにおける分岐点に到達し、かつその後のページ・フォールトが、以前に形成されたプリフェッチ・グループがページ・フォールトの現在のセットを範囲に含まないことを示す場合、方法は、学習モードに戻るように切り換わり、決定ツリーを更新することを続けることが可能である。一実施形態において、学習段階と最適化段階は、同時に活性であることが可能であり、すなわち、システムは、最適化する(プリフェッチする)一方、それと同時に、知られていないコンテキストおよびページ・アクセス・パターンを学習もする。
図5に示される方法のステップ55において、再活性化時間短縮システムは、サービス要求のパラメータが別のプリフェッチ発見解析を要求するように変化しない場合、最適化モードから非参加モードに切り換わることが可能である。例えば、サービスが、長期間にわたって不活性になった場合、以前に学習された決定ツリーは、もはや有効でない可能性がある。この問合せが行われる期間は、サービスが再活性化されることなく不活性化にされてから数時間内、または数日内であることが可能である。非参加モードに入ると、プロセスに関連付けられた(またはグローバルな)遅延パラメータが、ステップ10においてこの方法が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定することが可能である。
プリフェッチ・グループの代替の表現が可能である。例えば、完全なアドレスを記憶するのではなく、前のアドレスからの距離が記憶されることが可能である。
図7は、本原理の実施形態による、クラウド環境においてサービスに関する再活性化時間を短縮するための例示的なシステム200、すなわち、再活性化時間短縮システムを示す。図7に示されるシステム200は、図2に示されるコンピュータ・サービス・システム1312に組み込まれることが可能である。例えば、このシステムは、プログラム・モジュール1342の(少なくとも1つの)セットを有するプログラムまたはユーティリティ1340を提供することが可能であり、プログラムまたはユーティリティ1340は、図2に示されるコンピュータ・サービス・システム1312のメモリ1328の中に記憶されることが可能である。さらに、システム200は、例えば、図5の方法の少なくとも一部を含む、本明細書で説明される方法の少なくとも一部を実行することが可能であることを認識されたい。
図7を参照すると、ページ・フォールト・アナライザ201と、追跡モジュール202と、決定ツリー・モジュール203と、ページ比較モジュール204と、ページ挿入モジュール205と、ページ・テーブル更新モジュール206と、プロセス実行モジュール207と、モード切換えモジュール208と、タグ・モジュール209とを含む、クラウド・ベースのサービスの再活性化時間を短縮するための再活性化時間短縮システム200が提供されることが可能である。前述したモジュールのそれぞれは、バス102に接続されることが可能である。ページ・フォールト・アナライザ201、追跡モジュール202、決定ツリー・モジュール203、ページ比較モジュール204、ページ挿入モジュール205、ページ・テーブル更新モジュール206、プロセス実行モジュール207、モード切換えモジュール208、およびタグ・モジュール209のそれぞれは、ある形態のメモリ上に具現化され得る、指定された論理機能を実施するための1つまたは複数の実行可能命令またはデータを備える命令またはデータのモジュール、セグメント、または部分を含むことが可能である。バス102は、ページ・フォールト・アナライザ201、追跡モジュール202、決定ツリー・モジュール203、ページ比較モジュール204、ページ挿入モジュール205、ページ・テーブル更新モジュール206、プロセス実行モジュール207、モード切換えモジュール208、およびタグ・モジュール209を含むことが可能な様々なシステム構成要素を、これらの構成要素によって提供される命令またはデータを実行するためのプロセッサ、例えば、ハードウェア・プロセッサに結合する。例えば、図7に示されるバス102は、図2に示されるコンピュータ・サーバ・システム1312のバス1318に接続されて、これらの構成要素を、参照符号1316によって識別されるコンピュータ・サーバ・システム1312のハードウェア・プロセッサに接続することが可能である。
いくつかの実施形態において、ページ・フォールト・アナライザ201は、サービスが不活性になった後のサービスの処理中のページ・フォールトのアドレスを検査する。ページ・フォールト・アナライザについてのさらなる詳細は、図5に示される方法のステップ15の説明によって与えられる。
いくつかの実施形態において、追跡モジュール202は、ページ・フォールトをもたらしたアドレスを少なくとも1つのプリフェッチ・グループの中にログ記録する。追跡モジュール202についてのさらなる詳細は、図5に示される方法のステップ20の説明によって与えられる。
決定ツリー・モジュール203は、例えば、図6に示されるとおり、プリフェッチ決定ツリーを作成する。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。決定ツリー・モジュール203の機能は、図5に示される方法のステップ25、および図6に示される決定ツリーの説明において前述されている。
いくつかの実施形態において、再活性化されたサービス要求の後に活性化されるページ比較モジュール204は、図5に例示される方法のステップ35および40を参照してさらに説明される。例えば、ページ比較モジュール204は、サービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較する。
ページ挿入モジュール205は、以前にページアウトされたページを、一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入する。ページ・テーブル更新モジュール206は、ページインされたページを初期ページ・テーブルの中に挿入して、実行のために更新されたページ・テーブルをもたらす。ページ挿入モジュール205およびページ・テーブル更新モジュール206の機能に関するさらなる詳細は、図5を参照して説明される方法のステップ45の説明において前段で与えられている。
図7を参照すると、再活性化時間短縮システム200は、前述したとおり実行されて、ページ・フォールトを実質的に回避する、更新されたページ・テーブルを使用するサービスを提供する、すなわち、実行するプロセス実行モジュール207も含む。再活性化時間短縮システム200は、モード切換えモジュール208と、タグ・モジュール209とをさらに含む。モード切換えモジュール208は、非参加モード、学習モード、および最適化モードの間で再活性化時間短縮システム200のモードを切り換えることができる。モード切換えモジュール208に関するさらなる詳細は、図5を参照して説明される方法のステップ10、30、および50に関連して前段で説明されている。モード切換えモジュール208は、再活性化時間短縮システム200が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定するプロセスに関連する(またはグローバルな)遅延パラメータをもたらすサブモジュールを含むことが可能である。タグ・モジュール209は、追跡を可能にするプロセスに関連付けられたタグをもたらすことが可能である。
もちろん、処理システム200は、当業者には容易に企図されるとおり、他の要素(図示せず)を含むことも、いくつかの要素を省くことも可能である。例えば、当業者には容易に理解されるとおり、処理システム200の特定の実施様態に依存して、他の様々な入力デバイスまたは出力デバイスあるいはその両方が処理システム200に含められることが可能である。例えば、様々なタイプの無線入力デバイスおよび無線出力デバイス、または様々なタイプの有線入力デバイスおよび有線出力デバイス、あるいはこれらの組合せが使用されることが可能である。さらに、当業者には容易に認識されるとおり、様々な構成におけるさらなるプロセッサ、コントローラ、メモリなどが利用されることも可能である。処理システム200のこれら、およびその他の変形形態は、本明細書で提供される本原理の教示を所与として、当業者によって容易に企図される。
前述したモジュールのそれぞれは、ハードウェアとして実装されなくてもよいことにも留意されたい。例えば、ページ・フォールト・アナライザ201、追跡モジュール202、決定ツリー・モジュール203、ページ比較モジュール204、ページ挿入モジュール205、ページ・テーブル更新モジュール206、プロセス実行モジュール207、モード切換えモジュール208、およびタグ・モジュール209のそれぞれは、ソフトウェア命令として提供されてもよい。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはこれらの組合せであることが可能である。コンピュータ・プログラムは、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含むことが可能である。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持し、記憶することができる有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであることが可能であるが、以上には限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EERPOMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スタック、フロッピー(R)・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起した構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体の中を伝播する電磁波(例えば、光ファイバ・ケーブルの中を通る光パルス)、または配線を介して伝送される電気信号などの、一時的信号そのものと解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータプログラムからそれぞれのコンピューティング・デバイスまたは処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、またはエッジサーバ、あるいはこれらの組合せを含むことが可能である。各コンピューティング・デバイスまたは各処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング・デバイスまたは処理デバイスの内部のコンピュータ可読記憶媒体の中に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似したプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはソース・コードもしくはオブジェクト・コードであることが可能である。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、スタンドアロンのソフトウェア・パッケージとして実行されること、部分的にはユーザのコンピュータ上で、部分的には遠隔コンピュータ上で実行されること、あるいは完全に遠隔コンピュータまたは遠隔サーバ上で実行されることが可能である。完全に遠隔コンピュータまたは遠隔サーバ上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されることが可能であり、あるいはその接続は、外部コンピュータに対して行われることも可能である(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、その電子回路を個人用設定とすることが可能である。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能または動作を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに与えられて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能または動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するよう指示するものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能または動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施様態のアーキテクチャ、機能、および動作を例示する。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える命令のモジュール、セグメント、または部分を表すことが可能である。いくつかの代替の実施様態において、ブロックに記載される機能は、図に記載される順序を外れて行われてもよい。例えば、関与する機能に依存して、連続して示される2つのブロックが、実際には、実質的に並行して実行されてもよく、またはそれらのブロックが、時には逆の順序で実行されてもよい。また、ブロック図または流れ図あるいはその両方の各ブロック、ならびにブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェア命令とコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
本明細書において、本原理の「一実施形態」または「実施形態」、およびそれらの他の変形形態について述べることは、その実施形態に関連して説明される特定の特徴、構造、特性などが、本原理の少なくとも1つの実施形態に含まれることを意味する。本明細書全体の様々な箇所において現れる「一実施形態」または「実施形態」という句、およびそれらの他の任意の変形の出現は、必ずしもすべて同一の実施形態を指すわけではない。
例えば、「AまたはB」、「AまたはBあるいはその両方」、および「AおよびBのうちの少なくとも1つ」という事例における、「〜または〜」、「〜または〜あるいはその両方」、および「少なくとも1つの〜」のいずれの使用も、最初にリストアップされるオプション(A)だけの選択、または2番目にリストアップされるオプション(B)だけの選択、あるいは両方のオプション(AおよびB)の選択を包含することを意図していることを認識されたい。さらなる例として、「A、B、またはC、あるいはこれらの組合せ」および「A、B、およびCのうちの少なくとも1つ」という事例において、そのような言い回しは、最初にリストアップされるオプション(A)だけの選択、または2番目にリストアップされるオプション(B)だけの選択、または3番目にリストアップされるオプション(C)だけの選択、または最初にリストアップされるオプションと2番目にリストアップされるオプション(AおよびB)だけの選択、または最初にリストアップされるオプションと3番目にリストアップされるオプション(AおよびC)だけの選択、または2番目にリストアップされるオプションと3番目にリストアップされるオプション(BおよびC)だけの選択、あるいは3つすべてのオプション(AおよびBおよびC)の選択を包含することを意図している。このことは、当業者および関連する分野の業者には容易に明らかになるとおり、リストアップされる限りのアイテムに拡張され得る。
システムおよび方法の好ましい実施形態(限定的ではなく、例示的であることが意図される)を説明してきたので、以上の教示に鑑みて、当業者によって変更形態および変形形態が行われ得ることに留意されたい。したがって、添付の特許請求の範囲によって概要が述べられるとおり、本発明の範囲に含まれる変更が、開示される特定の実施形態において行われ得ることを理解されたい。本発明の態様を、特許法によって要求される詳細および細目とともに説明してきたので、特許証によって保護されることが主張され、所望される内容が、添付の特許請求の範囲に記載される。
102 バス
201 ページ・フォールト・アナライザ
202 追跡モジュール
203 決定ツリー・モジュール
204 ページ比較モジュール
205 ページ挿入モジュール
206 ページ・テーブル更新モジュール
207 プロセス実行モジュール
208 モード切換えモジュール
209 タグ・モジュール
1312 コンピュータ・システム・サーバ
1314 外部デバイス
1316 処理ユニット
1320 ネットワーク・アダプタ
1322 入出力インターフェース
1324 ディスプレイ
1328 メモリ
1332 キャッシュ
1334 ストレージ・システム
1410 クラウド・コンピューティング・ノード
1450 クラウド・コンピューティング環境
1454a、1454b、1454c、1454n コンピューティング・デバイス
1560 ハードウェア・レイヤおよびソフトウェア・レイヤ
1562 仮想化レイヤ
1564 管理レイヤ
1566 作業負荷レイヤ

Claims (16)

  1. サービスの再活性化時間を短縮するための方法であって、
    サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを検査するステップであって、前記ページ・フォールトをもたらしたアドレスを解析するステップを含む、前記検査するステップと、
    前記ページ・フォールトをもたらした前記アドレスを少なくとも1つのプリフェッチ・グループの中にログ記録するステップと、
    前記少なくとも1つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップであって、前記プリフェッチ決定ツリーは、前記サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記作成するステップと、
    再活性化されたサービス要求の後に前記サービスに関する初期ページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを比較するステップであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、前記比較するステップと、
    前記ページ・テーブルを使用して前記サービスを提供するようにハードウェア・プロセッサでプロセスを実行するステップであって、前記ページ・フォールトを実質的に回避する、前記実行するステップと
    を備える方法。
  2. サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを前記検査するステップは、再活性化イベントによって非参加モードから学習モードに切り換えられる再活性化時間短縮システムによって提供される、請求項1に記載の方法。
  3. 前記再活性化イベントは、ヘルス・チェックPING、モニタリングPING、セキュリティPING、サイドカーPING、アプリケーション・エントリ・ポイント、あるいはこれらの組合せを備える、請求項2に記載の方法。
  4. 一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に以前にページアウトされたページを挿入するステップをさらに備える、請求項1に記載の方法。
  5. 前記ページ・フォールトは、マイナー・ページ・フォールト、ソフト・ページ・フォールト、メジャー・ページ・フォールト、ハード・ページ・フォールト、無効ページ・フォールト、またはこれらの組合せを備える、請求項1に記載の方法。
  6. 前記サービスは、クラウド・コンピューティング環境において提供される、請求項1に記載の方法。
  7. 前記再活性化されたサービス要求の後に前記サービスに関する前記初期ページ・テーブルからのページが、プリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを前記比較するステップは、
    前記再活性化時間短縮システムを前記学習モードから最適化モードに切り換えるステップと、
    エントリ・ポイントを決定するステップと、
    前記プリフェッチ決定ツリーにおいて使用するための第1のページ・グループを予測するステップとを備える、請求項2に記載の方法。
  8. 前記第1のページ・グループを前記予測するステップは、エントリ・ポイント・アドレス、ならびに前記エントリ・アドレスにおいて前記ユーザによって要求されている前記サービスのタイプを解析するステップを備える、請求項7に記載の方法。
  9. 一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に前記以前にページアウトされたページを前記挿入するステップは、前記イン・パラメータ・ベクトルまたは前記アウト・パラメータ・ベクトルを入力サブシステムまたは出力サブシステムにサブミットするステップを備える、請求項4に記載の方法。
  10. サービスの再活性化時間を短縮するためのシステムであって、
    サービスが不活性になった後、前記サービスの処理中のページ・フォールトのアドレスを検査するページ・フォールト・アナライザと、
    前記ページ・フォールトをもたらした前記アドレスを少なくとも1つのプリフェッチ・グループの中にログ記録する追跡モジュールと、
    前記少なくとも1つのプリフェッチ・グループの中の前記ページ・フォールト・データからプリフェッチ決定ツリーを作成する決定ツリー・モジュールであって、前記プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記決定ツリー・モジュールと、
    再活性化されたサービス要求の後に、前記サービスに関するページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記ページ・テーブルからのページを比較するページ比較モジュールであって、前記プリフェッチされたページの中に含められていない前記ページ・テーブルの中のページは、ページインされる、前記ページ比較モジュールと、
    前記ページアウトされたページを、一括復元を介してメモリの中に挿入するページ挿入モジュールと、
    前記ページアウトされたページを前記初期ページ・テーブルの中に挿入して、更新されたページ・テーブルをもたらすページ・テーブル更新モジュールと、
    前記更新されたページ・テーブルを使用して前記サービスを提供するようにプロセスを実行するプロセス実行モジュールであって、前記実行は、前記ページ・フォールトを実質的に回避する、前記プロセス実行モジュールと
    を備えるシステム。
  11. 前記システムに関して非参加モード、学習モード、および最適化モードを選択するためのモード切換え器をさらに備え、前記ページ・フォールト・アナライザは、前記システムが前記学習モードに入っていることに応答してページ・フォールトのアドレスを検査し、前記ページ比較モジュールは、前記システムが前記最適化モードに入っていることに応答して前記初期ページ・テーブルを解析し、前記システムは、不活性化イベントに応答して前記非参加モードに入る、請求項10に記載のシステム。
  12. 前記学習モードは、ヘルス・チェックPING、モニタリングPING、セキュリティPING、サイドカーPING、アプリケーション・エントリ・ポイント、あるいはこれらの組合せを備える再活性化イベントによって活性化される、請求項11に記載のシステム。
  13. アドレス追跡を可能にするようにプロセスにタグを割り当てるタグ・モジュールをさらに備える、請求項11に記載のシステム。
  14. プリフェッチは、前記サービスを提供するために前記プロセスによって必要とされるのに先立ってメイン・メモリから取得される命令のセットである、請求項10に記載のシステム。
  15. バッテリ・チャージャ・デバイスを貸与するためのプログラムであって、
    サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを検査するステップであって、前記ページ・フォールトをもたらしたアドレスを解析するステップを含む、前記検査するステップと、
    前記ページ・フォールトをもたらした前記アドレスを少なくとも1つのプリフェッチ・グループの中にログ記録するステップと、
    前記少なくとも1つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップであって、前記プリフェッチ決定ツリーは、前記サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記作成するステップと、
    再活性化されたサービス要求の後に前記サービスに関する初期ページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを比較するステップであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、前記比較するステップと、
    一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に以前にページアウトされたページを挿入するステップと、
    前記ページ・テーブルを使用して前記サービスを提供するプロセスを実行するステップであって、前記ページ・フォールトを実質的に回避する、前記実行するステップと、をコンピュータに実行させる、プログラム。
  16. 前記サービスは、クラウド・コンピューティング環境において提供される、請求項19に記載のプログラム。
JP2016202980A 2015-11-06 2016-10-14 サービスの再活性化時間を短縮するための方法、システム、およびプログラム Active JP6770396B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/934,879 US10397365B2 (en) 2015-11-06 2015-11-06 Method to reduce reactivation time of cloud based services
US14/934879 2015-11-06

Publications (2)

Publication Number Publication Date
JP2017091512A JP2017091512A (ja) 2017-05-25
JP6770396B2 true JP6770396B2 (ja) 2020-10-14

Family

ID=57738234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016202980A Active JP6770396B2 (ja) 2015-11-06 2016-10-14 サービスの再活性化時間を短縮するための方法、システム、およびプログラム

Country Status (4)

Country Link
US (2) US10397365B2 (ja)
JP (1) JP6770396B2 (ja)
CN (1) CN107025256B (ja)
GB (1) GB2545068B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107919987B (zh) * 2017-11-16 2021-06-22 国云科技股份有限公司 一种微服务云部署的实现方法
EP3746897A1 (en) * 2018-01-29 2020-12-09 Telefonaktiebolaget LM Ericsson (publ) Faas in-memory checkpoint restore
JP6872507B2 (ja) * 2018-03-12 2021-05-19 株式会社日立ビルシステム 管理サーバ及び管理システム
CN109067597A (zh) * 2018-09-21 2018-12-21 杭州安恒信息技术股份有限公司 一种分布式系统动态智能服务治理方法
CN111610992B (zh) * 2020-05-06 2023-04-07 咪咕文化科技有限公司 部署组件更新处理方法、装置及存储介质
CN112351106B (zh) * 2020-11-12 2021-08-27 四川长虹电器股份有限公司 一种含事件网格的服务网格平台及其通信方法
US11689625B1 (en) * 2022-04-25 2023-06-27 Rovi Guides, Inc. Systems and methods for fast start of applications in a cloud computing environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868743A (en) * 1986-11-25 1989-09-19 Hitachi, Ltd. Traversal method of processing tree structure information and apparatus using the same
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
JPH08161230A (ja) * 1994-12-05 1996-06-21 Oki Electric Ind Co Ltd オンデマンドページングにおける先読み方法
US5966735A (en) * 1996-11-22 1999-10-12 Digital Equipment Corporation Array index chaining for tree structure save and restore in a process swapping system
US6247042B1 (en) * 1997-09-24 2001-06-12 Microsoft Corporation Method and system for restoring the state of physical memory as the focus changes among application programs in a computer
US6633968B2 (en) * 1999-03-30 2003-10-14 Microsoft Corporation Pre-fetching of pages prior to a hard page fault sequence
JP3555523B2 (ja) * 1999-10-20 2004-08-18 日本電気株式会社 メモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体
US7099999B2 (en) * 2003-09-30 2006-08-29 International Business Machines Corporation Apparatus and method for pre-fetching data to cached memory using persistent historical page table data
US7089370B2 (en) 2003-09-30 2006-08-08 International Business Machines Corporation Apparatus and method for pre-fetching page data using segment table data
CN100547595C (zh) * 2007-12-03 2009-10-07 福建星网锐捷网络有限公司 一种共享链表错误检测方法和系统
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
US8850123B2 (en) 2010-10-19 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Cache prefetch learning
CN102012870B (zh) * 2010-11-18 2012-05-23 清华大学 内存分配方法
US9358460B2 (en) 2011-04-28 2016-06-07 Numecent Holdings, Inc. Adaptive cloud-based application streaming
US9250969B2 (en) 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
CN102707966B (zh) 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
US9639471B2 (en) 2012-11-27 2017-05-02 Nvidia Corporation Prefetching according to attributes of access requests
JP2014178913A (ja) * 2013-03-15 2014-09-25 Sony Corp 電子機器、スナップショットイメージの作成方法及びプログラム

Also Published As

Publication number Publication date
JP2017091512A (ja) 2017-05-25
GB2545068A (en) 2017-06-07
US10834228B2 (en) 2020-11-10
CN107025256A (zh) 2017-08-08
US10397365B2 (en) 2019-08-27
GB2545068B (en) 2020-05-27
US20190327335A1 (en) 2019-10-24
US20170134518A1 (en) 2017-05-11
CN107025256B (zh) 2020-05-19
GB201617773D0 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
JP6770396B2 (ja) サービスの再活性化時間を短縮するための方法、システム、およびプログラム
US11144474B2 (en) Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US10210054B1 (en) Backup optimization in hybrid storage environment
US10382264B2 (en) Fog computing for machine translation
US10409658B2 (en) Batch processing of messages
US10223164B2 (en) Execution of critical tasks based on the number of available processing entities
US11010307B2 (en) Cache management
US10613986B2 (en) Adjustment of the number of tasks for a cache storage scan and destage application based on the type of elements to be destaged from the cache storage
US10346424B2 (en) Object processing
US11656781B2 (en) Distributing sequential read streams across synchronous mirror pairs
US10802882B2 (en) Accelerating memory access in a network using thread progress based arbitration
US10789008B2 (en) Reducing write collisions in data copy
US20200310867A1 (en) Application migration management
US20200134071A1 (en) Performance for query execution
US11074194B2 (en) Managing direct memory access
US11693779B2 (en) Prefetch of random data using application tags
US20230014344A1 (en) Determining optimal data access for deep learning applications on a cluster
US11418539B2 (en) Denial of service attack mitigation through direct address connection
US20230214221A1 (en) Miss-driven instruction prefetching
US20230079199A1 (en) Utilizing federation relationship settings among different systems
US20210209028A1 (en) Controlling processor instruction execution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200414

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20200502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200505

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200806

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200925

R150 Certificate of patent or registration of utility model

Ref document number: 6770396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150