JP5984918B2 - サービスの第2場所でのジョブの再生 - Google Patents

サービスの第2場所でのジョブの再生 Download PDF

Info

Publication number
JP5984918B2
JP5984918B2 JP2014513629A JP2014513629A JP5984918B2 JP 5984918 B2 JP5984918 B2 JP 5984918B2 JP 2014513629 A JP2014513629 A JP 2014513629A JP 2014513629 A JP2014513629 A JP 2014513629A JP 5984918 B2 JP5984918 B2 JP 5984918B2
Authority
JP
Japan
Prior art keywords
location
service
job
network
computer
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
JP2014513629A
Other languages
English (en)
Other versions
JP2015507229A5 (ja
JP2015507229A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015507229A publication Critical patent/JP2015507229A/ja
Publication of JP2015507229A5 publication Critical patent/JP2015507229A5/ja
Application granted granted Critical
Publication of JP5984918B2 publication Critical patent/JP5984918B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Computer And Data Communications (AREA)

Description

[0001] ウェブ・ベースのサービスは、データベースに格納されたデータと共に、ウェブ・サーバーに位置するファイルを含む。例えば、サービスへ向けられたトラフィックを処理するための多数のサーバーがある。時には、サービスが大失敗し、それにより作業が失われることがある。新たなサービスへオペレーションを移行するプロセスは、費用よび時間がかかり得る。
[0002] この概要は、以下の詳細な説明で更に説明するものを簡素化した形で、選択した概念を紹介するものである。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
[0003] フェールオーバー・イベント(fail-over event)の前および/または後の期間内にサービスの第1場所へ提出されたジョブが決定され、サービスの第2場所へ再提出される。例えば、フェールオーバー・イベントの15分前に提出されたジョブと、第2場所に対してのフェールオーバーが完了する前に第1ネットワークへ提出されたジョブとは、第2場所で再提出される。フェールオーバー・イベントが発生した後、ジョブは、サービスの第1場所に代わる第2ネットワークにより更新される。第1場所から第2場所へのジョブ入力パラメーター(例えば、識別子や秘密)のマッピングは、ジョブが第2場所へ提出されたときに、それらのジョブにより用いられる。各ジョブは、ジョブ・リクエストに対してどのような変更が行われるかを、フェールオーバー・イベントの発生に起因して再提出されたジョブに基づいて決定する。例えば、幾つかのジョブは、再提出される必要がないことを決定し、別の幾つかのジョブは、単に、同じジョブを第2場所へ提出する。
図1は、サービスの第2場所でジョブを再生するためのクラウド管理システムを示す。 図2は、サービスの第2場所でジョブを再生するためのシステムを示す。 図3は、例示的なジョブ・レコードを示す。 図4は、第2ネットワークにおいてジョブを再生するプロセスを示す。 図5は、例示的なコンピューター・アーキテクチャーを示す。
[0009] ここで図面を参照すると、様々な実施形態が説明されており、これらの図面では、同じ番号は同じエレメントを表す。
[0010] 一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のジョブを行ったり特定の抽象データ型を実施したりする他のタイプの構造を含む。他のコンピューター・システム構成(configuration)も使用することができ、それらは、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者用電子機器、マイクロコンピューター、メインフレーム・コンピューターなどを含む。分散型コンピューティング環境を使用することもでき、その場合、ジョブは、通信ネットワークを通じてリンクされるリモート・プロセッシング・デバイスにより行われる。分散型コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモートの双方のメモリ・ストレージ・デバイスに配されることができる。
[0011] 図1は、サービスの第2場所でジョブを再生するためのクラウド管理システムを示す。システム100はクラウド・マネージャー105を示し、クラウド・マネージャー105は、可能性としては世界中に分散された様々なネットワークへ接続され、それらを管理する。ネットワークのそれぞれは、1以上のテナント(例えば、クライアント、顧客)へコンテンツ・サービスを提供するように構成される。ネットワークは、クラウド・サービス内および/または社内データ・センターにおいて、ホストされることができる。クラウド・マネージャー105は、ネットワークの配置(deploying)、構成(configuring)、および管理(managing)において用いられる。クラウド・マネージャーは、ベキ等(idempotent)および非同期のアプリケーションのウェブ・サービス・アプリケーション・プログラミング・インターフェイス(API)150を通じてリクエストを受信するように構成され、このAPIは間欠的なネットワーク障害を許容することができる。
[0012] 示されているように、クラウド・マネージャー105は、ワーク・マネージャー110と、マシン・マネージャー115と、アプリケーション固有マネージャー120と、スクリプト130と、再生マネージャー26と、データ・ストア(1以上)140(例えば、データベース)などのような中央リポジトリとを含む。示したマネージャーのうちの1つのものに含まれていない機能は、クラウド・マネージャーの他の幾つかの位置に在るようにできる。1つの実施形態に従うと、アプリケーション・マネージャー120は、SharePoint(登録商標)テナント・マネージャーであり、SharePoint(登録商標)固有ロジックを含む。
[0013] 一般に、クラウド・マネージャー105は、オンライン・コンテンツ管理サービスなどのようなオンライン・サービスのためのネットワークの配置および管理の援助を行う。クラウド管理システムは、中央調整サービスであり、オンライン・サービスの提供に使用されるネットワークにおけるジョブの構成、更新、および実行と関連するオペレーションを行うためのリクエストを受信する。例えば、クラウド・マネージャーは、1以上のネットワーク内の資産(例えば、サーバー、ファーム、ユーザー・プロパティなど)を管理するために呼び出される。資産の管理は、サーバーや仮想マシン(VM)でのマシンの配置、マシンの更新、マシンの除去、構成変更の実行や、管理に関する他のジョブを行うことを含み得る。クラウド・マネージャーは、クラウド・マネージャーに対しての更新中であっても、接続されたネットワークに対してのサービスを提供するように構成される。クラウド・マネージャーは、信頼性のあるネットワークをあてにできない、ベキ等および非同期のアプリケーション・プログラミング・インターフェイス(API)を通じて、リクエストを受信するように構成される。
[0014] 示されているように、ネットワーク1およびネットワーク2は、ユーザに対してアクティブにサービスを行っている生きたネットワークである。第2ネットワーク1および第2ネットワーク2は、対応する生きたネットワークのコンテンツおよび構成をミラーする第2ネットワークである。第2ネットワークは、ユーザーに対してアクティブにサービスを行っていないが、第1ネットワークはアクティブである。1つの実施形態によると、第2ネットワークは「ウォーム(warm)」に維持され、停止や災害やフェールオーバーの場合に、第1ネットワークからのユーザー・ロードを、第2ネットワークへ迅速に切り換えることができる。
[0015] 第1ネットワークは、バックアップ(全体的、増分的)を行うように構成され、バックアップはSQLトランザクション・ログ・バックアップを含み、これは、定期的および頻繁に行われる(例えば、少なくとも1時間に数回)。第1ネットワーク(例えば、ネットワーク1および2)からのバックアップは、それを作った後に第2ネットワーク(例えば、第2ネットワーク1および2)へコピーされる。1つの実施形態によると、第2ネットワークは、対応する第1ネットワークからトランザクション・ログを受信すると、それらのトランザクション・ログを再生する。生きた第1ネットワークで生じる管理操作は、対応するウォームな第2ネットワークで自動的に再生され、第1ネットワークと第2ネットワークとが同期した状態にとどまる。
[0016] ワーク・マネージャー110は、ジョブの実行を管理し、実行の長いジョブのスケジューリングと再試行とを可能とする。ワーク・マネージャー110は、ジョブ・キュー112に格納されたジョブを開始し、ジョブの実行を追跡する。所定の時間が経過すると、ワーク・マネージャー110は、タスクを自動的にキャンセルし、そのタスクと関連する何らかの他の処理を行う。1つの実施形態によると、ジョブ・キュー112内のジョブは、ワーク・マネージャー110により、1以上のスクリプト130を呼び出すことにより、実行される。例えば、マイクロソフト(登録商標)のPowerShell(登録商標)のようなスクリプト言語を、ワーク・マネージャー110により実行されるジョブをプログラムするために用いることができる。各スクリプトは、新たなプロセスとして実行することができる。各スクリプトを新たなプロセスとして実行することは、CPUのオーバーヘッドをかなり高くすることになり得るが、このシステムは、スケーラブルであり、各スクリプトの実行のためのクリーンな環境と、スクリプトが完了したときの完全なクリーンアップとを保証することを手助けする。
[0017] ジョブが第2場所で再提出されるとき(例えば、第2場所に対してのフェールオーバーに応答して)、ワーク・マネージャー110は、再提出するジョブを決定する際に用いられる。例えば、ワーク・マネージャー110は、フェールオーバー・イベントの前から、ジョブ・リクエストが第2場所で処理されるまでの時間窓内で、サービスの第1場所で行われるように提出されたジョブを決定することができる。
[0018] マシン・マネージャー115は、ネットワーク内(例えば、ネットワーク1、ネットワーク2、第2ネットワーク1、第2ネットワーク2)の物理マシンを管理するように構成される。一般に、マシン・マネージャー115は、ネットワーク、物理マシン、仮想マシン(VM)、VMイメージ(VHD)などを理解する。マシン・マネージャーは、ネットワーク内で実行される特定のサービスに対しての強いバインドを有さないが、「役割」に関してネットワーク内の様々なコンポーネントを追跡する。例えば、マシン・マネージャー115は、API150を通じて、ネットワーク2でバージョン12.34.56.78の「Foo」型のVMを配置することを、要求され得る。クラウド・マネージャー105へのリクエストに応答して、マシン・マネージャー115は、ネットワーク2に配置されている適切な物理マシンを見つけ、VMの役割と関連するVMイメージに従ってVMを構成する。物理マシンは、データ・ストア140などのようなデータ・ストア内に格納されているバージョン12.34.56.78のFoo型のVHDを用いて構成される。第2ネットワーク2に対して、対応する変更が行われる。また、ネットワーク内で使用されたイメージは、1以上のネットワークに対してのローカル・データシェアなどのような、他の位置へ格納することもできる。スクリプトは、物理マシンへのVHDのインストレーションを行うように、および配置後の構成を行うように、実行することができる。マシン・マネージャー115は、各ネットワークのマシンの構成を追跡する。例えば、マシン・マネージャー115は、VMの役割(VMのタイプ)、VMの状態(プロビジョニング、実行、停止、失敗)、バージョン、および(それらのネットワークを暗示する)VMが所与のファームに存在するかを追跡することができる。
[0019] 構成データベース116は、各ネットワークのマップを含む。例えば、構成データベース116は、ネットワークのファーム、データベース、サイト・コレクション(site collections)などのそれぞれと関連する情報を含むことができる。構成データベース116は、各ネットワークについてのそれぞれの物理マシン、VM、ファームなどの行を含むことができる。1つの実施形態によると、ネットワーク内のそれぞれのVHD、ファーム、およびVMは、関連するバージョン文字列を有する。
[0020] スクリプト130は、クラウド・マネージャー105のためにローカルで、および1以上のネットワークにおいてリモートでの双方で作業を行うために実行されるスクリプトを格納するように、構成される。また、1以上のスクリプト130を別の位置に格納することもできる。例えば、ネットワーク(例えば、ネットワーク1、ネットワーク2)で実行されるスクリプトは、そのネットワークへローカルに格納することができる。スクリプトは、多くの様々な目的に使用することができる。例えば、スクリプトは、1以上のネットワーク内のマシンの構成、以前に構成されたマシンの設定の変更、新たなVMの付加、新たなデータベースの付加、或るマシンから別のマシンへのデータの移動、テナントの移動、スキーマの変更などを行うために使用することができる。1つの実施形態によると、スクリプトは、マイクロソフト(登録商標)のPowerShell(登録商標)スクリプトである。他のプログラミング実装を用いることもできる。例えば、コンパイルされたおよび/または初期にバインドされたプログラミング言語を用いて、機能を実装することがでる。しかしながら、スクリプティングは、行われる多くのジョブを表すためのかなり簡潔な言語である。同等のものをC#などのようなプログラミング言語でプログラミングするには、より多くの詳細の実装を必要とする場合が多い。また、スクリプトは遅延バインディング(late-bound)であり、これは、様々なインターフェイスDLLへ常にリンクすることを必要とせずに、基になるコードベースの複数のバージョンのものがターゲットにされることを、意味する。PowerShell(登録商標)スクリプトを用いることにより、クラウド・マネージャー105によりローカルにプロセスを開始することが可能とされ、クラウド・マネージャー105は、次に、リモート・マシン(即ち、接続されたネットワークの1つにおける物理マシン)でプロセスを開始させる。また、Secure Shell(SSH)などのような他の技術を用いて、リモート・マシンでプロセスを開始することもできる。スクリプトが第1場所(例えば、ネットワーク1)で実行されるとき、そのスクリプトはまた、第2場所(例えば、第2ネットワーク2)で実施され、第1場所と第2場所とは同様に構成される。
[0021] クラウド・マネージャー105が管理しているアプリケーション固有情報は、アプリケーション・マネージャー120により実行される。1つの実施形態によると、アプリケーション固有情報は、マイクロソフト(登録商標)SharePoint(登録商標)と関連する。従って、アプリケーション・マネージャー120は、SharePoint(登録商標)テナント、サイト・コレクションなどについて知るように、構成される。
[0022] 各ネットワークは、テナントのための専用ネットワーク、および/または1より多くのクライアントに対してサービスを行うマルチテナント・ネットワークとして構成することができる。ネットワークは、数が変わる物理/仮想マシンと、配置後に代わるそれらの構成とを含むことができる。1つの実施形態によると、サービスの第1場所と第2場所とは、同様に構成される。
[0023] 一般に、ネットワークは、ネットワークの制限(例えば、ロード・バランサーおよびネットワーク・スイッチ)を超えないかぎり、成長を続ける。例えば、ネットワークは、10個のサーバーから開始して、後に、100個以上のサーバーへと拡張する。第1ネットワークが変更されると、対応する第2ネットワークは、自動的に変更されて、第1ネットワークに対してなされた変更を反映する。ネットワーク内の物理マシンには、クラスまたはタイプが割り当てられる。例えば、マシンの幾つかは、計算マシン(ウェブ・のフロント・エンドおよびアプリケーション・サーバーで使用される)であり、別のマシンは、計算マシンよりも多くのストレージを与えられるストレージ・マシンである。1つの実施形態によると、クラウド・マネージャー105は、複数のバージョンのイメージ・ファイルを用いてネットワーク内のマシンを構成する。1つの実施形態によると、ファームは、通常、同じバージョンのイメージ・ファイルを有する。
[0024] 1つの実施形態によると、ソフトウェアの制限は、ネットワーク内のクラウド・マネージャー・システム100により、マシンを仮想化し、ネットワーク内の独立的に動作する「ファーム」を管理することにより、管理される。各ネットワークは、1以上のファームを含むことができる(例えば、ネットワーク1を参照)。1つの実施形態によると、ネットワークは、ネットワーク負荷分散マシン(network load balanced machines)の1クラスタとして考慮され、ネットワーク負荷分散マシンは、1以上のVIP(Virtual IP)を外の世界へ露出させるものであり、そのトラフィックをネットワーク内の何れのマシンへもルーティングできるものである。ネットワーク内のマシンは、一般に、密に結合され、レイテンシは最小(即ち、<1ミリ秒pingの待ち時間)である。
[0025] ファームは、密にバインドされた関係を必要とするアプリケーションを調整するために使用されるマシンの基本的なグループである。例えば、コンテンツ・ファームは、マイクロソフト(登録商標)のSharePoint(登録商標)などのようなコンテンツ管理アプリケーションのために各ネットワーク内に配置することができる。一般に、各ファーム内のマシンの組は、ウェブ・サービスとアプリケーション・サーバー機能とを共に提供する。典型的には、ファーム内のマシンは、特定のテナントおよびサイト・コレクションへのサービスを行うために、アプリケーション(即ち、SharePoint(登録商標))の同じビルドを実行しており、共通の構成データベースを共有している。
[0026] ファームは、仮想マシンの異種の組を含むことができる。クラウド・マネージャー105は、データ・ストア140内に「ファーム・ゴール」を維持しており、これは、各ファームについての各役割のマシンのターゲット数である。幾つかの役割は、コンテンツ・フロント・エンド(Content Front End)、コンテンツ全体管理(Content Central Admin)、コンテンツ・タイマー・サーバー(Content Timer Server)、フェデレーション全体管理(Federated Central Admin)、フェデレーション・アプリケーション・サーバー(Federated App Server)などを含む。例えば、コンテンツ・ファームは、入来する顧客リクエストに対処する基本的なSharePoint(登録商標)ファームである。フェデレーション・サービス・ファームは、サーチやプロフィール・ストアなどのような、ファーム間で動作できるSharePoint(登録商標)サービスを含む。ファームは、大容量のパブリック・インターネット・サイトをホストするために使用できる。幾つかのファームは、アクティブ・ディレクトリ・サーバーのグループとプロビジョニング・デーモンとを含むことができる。クラウド・マネージャー105は、定められたターゲットに会うことの助けとなるように、ネットワーク内の仮想マシンを自動的に配置および/または使用停止する。これらのファーム・ゴールは、自動および/または手動で構成することができる。例えば、ファーム・ゴールは、活動および容量の要求における変更に応答するように、変更することができる。ネットワーク・ファーム − ネットワーク全体に対するリソースとして、容易にスケール・アウトするVM役割の全てを含む、1つのネットワークに対して1つのネットワーク・ファームがある。
[0027] クラウド・マネージャー・ウェブ・サービスAPI150は、大規模なスケーラブルなグローバル・サービスのコンテキストにおいて働くように設計される。APIは、何れのネットワーク・リクエストも輸送中に失敗および/またはハングし得る、ということを仮定している。クラウド・マネージャー105へのコールは、ベキ等となるように構成される。換言すると、結果を変更することなく、複数回の同じコールがクラウド・マネージャー105に対して行われる(パラメータが同一であるかぎり)。
[0028] クラウド・マネージャー105は、サービスに対する現在のリクエストを追跡するためにレコードを維持する。例えば、クラウド・マネージャー105は、ローカル・データベースのレコードを更新し、必要であれば、後に長い活動を行うために「ジョブ」のスケジュールを行う。
[0029] クラウド・マネージャー105は、ネットワーク内で新たなマシンを配置するために使用されるテンプレートであるイメージ(バーチャル・ディスク・イメージなど)を追跡する。イメージのリファレンスは、データベース140などのようなデータベースに、および/または別の場所に格納することができる。イメージは、それらイメージが配置されるネットワーク(1以上)に位置する1以上の共有データ・ストアに格納することもできる。1つの実施形態によると、各イメージは、配置できる仮想マシン(VM)のタイプを指定する仮想マシン役割タイプ、使用すべきプロセッサーの数、割り当てられるRAMの量、近くのインストール・ポイントを見つけるために使用されるネットワークID(これにより、データセンター・リンク間で反復してコピーがなされない)、および配置コードがVHDへアクセスするために使用できる共有パス(share path)とを含む。
[0030] 一般に、クラウド・システム100により管理されているネットワーク内のマシンは、データをダウンロードしてそのデータをマシンに存在するソフトウェアへ組み込むことによる従来の様式でアップグレードされない。それに代えて、マシンは、VHDを、更新されたVHDと置換することにより更新される。例えば、ファームが新たなバージョンのソフトウェアを必要とするとき、その新たなバージョンがインストールされた新たなファームが配置される。新たなファームが配置されると、テナントは、古いファームから新たなファームへ移動する。このようにして、アップグレードに起因するダウンタイムは最小化され、ファーム内の各マシンは、テスト済みの同じバージョンを有する。仮想マシンをアップグレードする必要があるとき、マシン上のVMを削除して、望まれるサービスを実行するように構成されたVMと置換することができる。
[0031] 存在しているソフトウェアに対するアップグレードは最適ではないが、ネットワーク内の幾つかのサーバーは、インプレース(in-place)・アップグレードの従来の更新手順を用いる。例えば、アクティブ・ディレクトリー・ドメイン・コントローラーは、マシン上のイメージを完全に置換せずに、サービスの現在のソフトウェアを更新することによりアップグレードされる。クラウド・マネージャーもまた、幾つかの場合にはインプレースでアップグレードされ得る。
[0032] 1つの実施形態によると、クラウド・マネージャーは、各ウェブ・サービス・コールに対するログ・エントリを記録するように構成されるロギング・システムを含む。ロギング・システムは、説明した機能の多数/少数のものを含むものとして実装できる。
[0033] 再生マネージャー26は、ジョブを第2ネットワークへ再提出するように構成される。フェールオーバー・イベントが発生したとき、フェールオーバー・イベントの前および/または後の期間内のサービスの第1場所でのジョブが、再生マネージャー26により決定され、サービスの第2場所で再提出される。例えば、フェールオーバー・イベントの15分前にネットワーク1へ提出されたジョブと、第2ネットワークに対してのフェールオーバーが完了する前に第1ネットワークへ提出された任意のジョブとは、第2場所で再提出される。フェールオーバー・イベントが発生した後、再生マネージャー26は、第2ネットワークが第1ネットワークの代わりとなっていることを、ジョブに伝える。
[0034] また、再生マネージャー26は、マッピング・テーブル114を維持するように構成される。マッピング・テーブル114は、識別子および/または秘密などのようなジョブ入力パラメーターのマッピングを含み、それらのパラメーターは第1ネットワークと第2ネットワークとで関連付けられている。例えば、サービスの第1場所(例えば、第1ネットワーク1および2)と関連するデータベース、ファーム、およびネットワークと、サービスの第2場所(例えば、第2ネットワーク1および2)と関連する対応するデータベース、ファーム、およびネットワークとの間でのマッピングがある。
[0035] 1つの実施形態によると、各ジョブは、第2ネットワークへのジョブ・リクエストに対してどのような変更が行われるかを決定し、それは、第1場所で生じるフェールオーバー・イベントに基づくものである。例えば、幾つかのジョブは、それらが再提出される必要がないことを決定し、別のジョブは、単に、第2場所へ同じジョブを再提出する。
[0036] 図2は、サービスの第2場所でジョブを再生するシステムを示す。示されているように、システム200は、第1サービス210、第2サービス220、クラウド・マネージャー230、およびコンピューティング・デバイス(1以上)240を含む。
[0037] 使用されるコンピューティング・デバイスは、コンピューティング・デバイスの使用と関連する動作を行うように構成された任意のタイプのコンピューティング・デバイスとすることができる。例えば、幾つかのコンピューティング・デバイスとしてモバイル・コンピューティング・デバイス(例えば、セルラ電話、タブレット、スマートフォン、ラップトップなど)があり、幾つかはデスクトップ・コンピューティング・デバイスとすることができ、別のコンピューティング・デバイスはサーバーとして構成することができる。幾つかのコンピューティング・デバイスは、オンラインのクラウド・ベースのサービス(例えば、サービス210およびサービス220)を提供するように配することができ、幾つかは、データ・ストレージ・サービスを提供するデータ・シェアとして配することができ、幾つかは、ローカル・ネットワークに配することができ、幾つかは、インターネットなどを通じてアクセスできるネットワークに配することができる。
[0038] コンピューティング・デバイスはインターネット18を通じて結合される。一般に、インターネット18は、サービス210、サービス220、クラウド・マネージャー230、およびコンピューティング・デバイス(1以上)240などのようなコンピューティング・デバイス間でデータを送るために用いられる。
[0039] コンピューティング・デバイス(1以上)240は、アプリケーション242、ウェブ・ブラウザー244、およびユーザー・インターフェイス246を含む。示されているように、コンピューティング・デバイス240は、サービス210などのようなオンライン・サービスと対話するために、ユーザにより使用される。1つの実施形態によると、サービス210およびサービス220は、マルチテナント・サービスである。一般に、マルチテナントは、顧客間でのデータ(バックアップを含む場合もある)、使用、および管理(administration)の分離と関連している。言い換えると、たとえそれぞれのテナントからのデータが同じデータ・ストア内の同じデータベース内に格納されているとしても、1つの顧客(テナント1)からのデータに、別の顧客(テナント2)はアクセスできない。
[0040] ユーザー・インターフェイス(UI)246は、コンピューティング・デバイス240から見てローカルのおよび/またはローカルではない様々なアプリケーションと対話するために用いられる。1以上のタイプの1以上のユーザー・インターフェイスを用いて、コンテンツと対話することができる。例えば、UI246は、コンテキスト・メニュー、メニュー・バー内のメニュー、リボン・ユーザー・インターフェイスから選択されたメニュー・アイテム、グラフィカル・メニューなどの使用を含むことができる。一般に、UI246は、ユーザーがアプリケーションの機能と容易に対話できるように構成される。例えば、ユーザーは、クラウド・マネージャー230へジョブを提出するために、単に、UI246内のオプションを選択する。
[0041] 示されているように、データ・ストア212および212’は、様々なテナントに対して、対応するバックアップ・データを含むテナント・データを含む。データ・ストアは、テナントのデータの全部/一部を格納することができる。例えば、幾つかのテナントは1より多くのデータ・ストアを用い、別のテナントは多くの他のテナントとデータ・ストアを共有する。テナントに関して対応するバックアップ・データが、同じデータ・ストア内に示されているが、バックアップ・データは、別の場所へ格納することもできる。例えば、1つのデータ・ストアを、テナント・データを格納するために使用し、1以上の他のデータ・ストアを、対応するバックアップ・データを格納するために使用することができる。一般に、データ・ストア212’内のデータはデータ・ストア212内のデータのミラーである。第1サービス210と関連するデータ(即ち、管理用の変更およびテナント・データと関連するデータ)に対して行われた変更は、第2サービス220へミラーされる。1つの実施形態によると、行われた変更を維持する際に、完全バックアップ(例えば、週毎)、増分型バックアップ(例えば、時間毎、日毎)、およびトランザクション・ログが用いられる。1つの実施形態によると、第1サービスに対してなされた変更は第2サービスへコピーされ、第2サービスは第1サービスと実質的に同期した状態にとどまる(例えば、5分内、10分内)。周期的に、第2サービスへコピーされたデータは検証され、この検証は、そのデータが正しくコピーされたことを保証する助けとなる。検証を行うために様々な方法(例えば、チェックサム、ハッシュ関数など)を用いることができる。データ・ストア236は、サービス(例えば、サービス210、サービス220)の演算および/または構成と関連するデータを含む。例えば、データ・ストア236は、ジョブ・キュー、マッピング・テーブル、および/または構成データベースを含むことができる。
[0042] サービス210は、オンライン・サービスのための第1場所として構成され、これは、複数のテナントからのデータとの対話を表示することと関連するサービスを提供するように構成される。サービス210は、複数のテナントに対しての共有インフラストラクチャを提供する。1つの実施形態によると、サービス210は、マイクロソフト(登録商標)のSHAREPOINT ONLINEサービスである。様々なテナントが、サービス210を用いて、それらのウェブ・アプリケーション/サイト・コレクションをホストすることができる。また、テナントは、専用の単独のものを用いるか、またはサービス210により提供されるサービスと組み合わせて用いる。サービス220は、サービスのための第2場所として構成され、これは実質的にはサービス210のミラーである。
[0043] 第1サービス210で生じるフェールオーバー・イベントの後、失敗した第1サービス・ネットワークで以前に作業していた各ジョブは、再生マネージャー26により第2ネットワークへ向けられ、そのジョブが、第1ネットワーク内で作業していたタスクを完了できるようにする。1つの実施形態によると、第2場所で再生される各ジョブは、そのジョブが第2場所で行うオペレーションを決める。一般に、3つのカテゴリーのジョブがあり、それらは、第2ネットワークに対する無演算命令(no-op)であるジョブと、ベキ等であり、単に開始点から開始できるジョブと、クリーンアップを計算し、新たなクリーンアップされた入力パラメーターを用いてジョブ自体のインスタンス再作成(reinstantiate)を行うジョブとを含む。
[0044] サービスにより実行できる多くの異なるタイプのジョブがある。1つの実施形態によると、ジョブのタイプは、無演算命令ジョブ、アップグレード・ジョブ、テナント・プロビジョニング、サイト・ プロビジョニング、ベキ等ジョブ、およびデータ移行ジョブを含む。無演算命令ジョブは、失敗したネットワークに対して非常に固有なアクションを行うジョブのタイプであり、一般に、それらのアクションは、第2ネットワークでは再生されない。アップグレード・ジョブは、長いプロセスであり得、アップグレードのロールバックをトリガすることができ、アップグレードが信頼性をもって行われるようにする。テナント・プロビジョニングは、テナントを準備するためのジョブである。サイト・プロビジョニング・ジョブは、システムの状態を検査し、基になるオブジェクトの状態を開始時へ戻すようにセットし、ジョブを、フェールオーバー・イベントの直前の点から再試行/再実行する。ベキ乗ジョブは、ジョブが何回実行されようとも状態が変更されないので、再実行されることができる。データ移行ジョブは、移行が完了したか否かを決定するために、再実行および/またはチェックする。
[0045] 再生マネージャー26は、何れのジョブが第2ネットワークで再生されるかを決定するために、ジョブ・ログ232内のジョブを検査するように構成される。例えば、第1場所へ送られているが実行されていない何れのジョブも、第2場所で再生されるように選択される。フェールオーバー・イベントの所定の時間内(例えば、5分、10分、15分、30分、1時間、・・・)に第1場所をターゲットとしたジョブも、再生されるものとして選択される。1つの実施形態によると、フェールオーバー・イベントの時間は協定世界時間(UTC)を用いて決定され、各ネットワークは同じ時間を参照する。
[0046] 再生マネージャー26は、第2場所において再生されたジョブにフェールオーバー・フラグを含むように構成され、これは、フェールオーバー・イベントに起因してジョブが再提出されていることを識別する。フェールオーバー・フラグを用い、ジョブは、フェールオーバー・イベントに応答して行うアクションを決定することができる。例えば、フェールオーバー・フラグの検査に応答して、ジョブは、第1ネットワーク・パラメーターに固有であった何れのパラメーターも、新たな第2ネットワークへ再マップすることができる。1つの実施形態によると、ジョブは、クラウド・マネージャーに対してコールを行い、新たなマッピング情報を決定する。例えば、再生マネージャー26は、マッピング・テーブル234へアクセスし、第2ネットワークへのジョブの移動の影響を受けるパラメーター(例えば、データベース、ファーム、および任意のネットワークのID)を決定する。ジョブは、マッピングを得るために、失敗したネットワークの識別子および要求されたパラメーターのタイプを提供することができる(例えば、Get−GridFailOverMapping −FailingNetworkID # −SourceID”−Type <Network|Farm|Database>)。幾つかのジョブは、実行されるときには毎回同じように動作するので、フェールオーバー・フラグを検査しない。
[0047] また、再生マネージャー26は、第2ネットワークにおいてファームへ適用される何れの秘密も更新することができ、秘密(例えば、パスワード)が関係するオペレーションが第2場所で行われるようにする。
[0048] 以下は、フェールオーバー・イベントが生じる前に第1ネットワークで実行されているジョブの例である。説明のため(限定を意図するものではない)、ジョブが、第1ネットワークへ提出されたときに以下のパラメーター(JobType:DeploySite;NetworkID:12;JobData:ID=234;Secrets:15;State:Executing;Step:2;Fail−Over:Null(ジョブタイプ:配置サイト;ネットワークID:12;ジョブデータ:ID=234;秘密:15;状態:実行中;ステップ:2;フェールオーバー:ヌル))を有すると仮定する。フェールオーバーが生じると、ジョブは、クラウド・マネージャーにより中断状態に置かれ、次に、以下の情報(JobType:DeploySite;NetworkID:22;JobData:ID;Secrets:25;State:Executing;Step:2;Fail−Over:12(ジョブタイプ:配置サイト;ネットワークID:22;ジョブデータ:ID;秘密:25;状態:実行中;ステップ:2;フェールオーバー:12))とともに第2ネットワークへ再提出される。ここに見られるように、ネットワークIDパラメーターは12から22へと更新され、秘密パラメーターは15から25へと変更され、フェールオーバー・フラグはNull(ヌル)から12へと変更されている。
[0049] 一般に、ジョブが再提出されるとき、そのジョブは様々なアクションを行う。1つの実施形態によると、第2ネットワークで再生される各ジョブは、フェールオーバーが発生したかを見るために、チェックを行うことができる(例えば、Fail−Over!=Null)。フェールオーバーが発生していた場合、ジョブは、以下の、現在のジョブを終了させる(クリアする)アクション、ジョブ・コマンド・ラインを翻訳するアクション、次の実行するステップを決定するアクション、基になるオブジェクトの状態を変更するアクション、および新たなジョブを作るアクションのうちのゼロ以上のアクションを行う。
[0050] 一般に、現在のジョブを終了させる(クリアする)ことは、ジョブが、失敗したネットワークと対話することに非常に集中しており、そのジョブが、第2ネットワークにおいて無演算命令であるときに、そのジョブにより行われる。これらの場合、ジョブは、更なるアクションを行わず、そのジョブ自体をキューからクリアする。
[0051] ジョブは、ジョブ・コマンド・ラインを翻訳することができる。1つの実施形態によると、各ジョブは一意のコマンド・ラインを有する。このコマンド・ラインは、データベース、ネットワーク、およびファームに対する特定のIDを含む。各ジョブは、様々なパラメーターの使用および命名を行うことができる(例えば、ID=12は、様々な異なるアイテムと関連し得る)。
[0052] ジョブは、次の実行するステップを決定することができる。ジョブは、フェールオーバーの前にそのジョブが作業を行っていたステップを知っているが、フェールオーバー・イベントが生じる前にその作業が第2ネットワークへ複製された確信はない。従って、ジョブは、現在のジョブ・ステップまでに行われた作業の現在の状態を検査し、それに従って次のステップの値を設定する。ジョブ・ステップは、1以上のステップを戻して設定され得る。幾つかの場合には、ジョブは、このケースに対処するためにベキ乗に依存して、次のステップを1に戻すようにリセットし、作業を再実行する。
[0053] ジョブは、基になるオブジェクトの状態を変更することができる。多くのジョブは実装された性能最適化を有し、それにより、オブジェクトが特定の状態にある場合にジョブが作業をスキップすることを可能とする。幾つかの場合(例えば、DeploySite)、オブジェクトの状態は、「開始(starting)」状態へ戻るようにセットされ、それにより何れの最適化もスキップされる。従って、基になるオブジェクトは、全状態遷移サイクル(full state transition cycle)を通っていくことになる。
[0054] ジョブは、新たなジョブを作ることができる。多くの場合、ジョブにとっては、単に、翻訳されたパラメーターを持ち第2ネットワークをターゲットとする新たなジョブを生成し、存在しているジョブを終了(クリア)するほうが容易である。
[0055] 再生マネージャー26はまた、同期点を適切な時点へロール・バックする。同期点を適切な時点へとロール・バックすることは、災害の時のあたりの新たなテナント・プロビジョニングのための全てのジョブを再び生成する。これは、フェールオーバー中に作られた新たなテナントがスタック状態(stuck state)に入らないことを確実にすることの助けとなる。しかし、これは、新たなサイト(エンド・ユーザによりトリガされる)および他のOPのトリガしたジョブを配置するためのかなりの量の他の作業をカバーしない。1つの実施形態によると、同期は、ジョブが第2ネットワークで再生された後に、適切な時点へ戻してセットされる。
[0056] 図3は、例示的なジョブ・レコードを示す。示されているように、レコード300は、ジョブ識別子302、タイプ304、データ306、オーナー308、ステップ310、最後の実行312、有効期限切れ時間314、次回316、状態318、ステータス320、秘密322、フェールオーバー324、フェールオーバー時間326、およびネットワークID328を含む。
[0057] 一般に、行うことを要求された各ジョブ/タスクに対して、クラウド・マネージャーはデータベース350にレコードを作る(例えば、図1のジョブ・キュー)。
[0058] ジョブ識別子302は、要求されたタスクに対する一意の識別子を指定するために使用される。
[0059] タイプ304は、行うタスクを指定する。例えば、タイプは、実行されるスクリプトの名前を含むことができる。例えば、タスクが、「DeployVN.ps1」という名前のスクリプトを実行するものであるとき、データ306は識別子(例えば、「−VMID 123」)を含むことができる。これにより、システムのコンパイルされた部分または他のバイナリ部分への変更を必要とせずに、システムへ新たなタスク・タイプが付加されることが可能となる。
[0060] データ306は、タスクと関連するデータを格納するために用いられる。例えば、データは、タスクが行われるテナント、マシン、ネットワーク、VMなどに対してセットされる。また、データ306は1以上の値を格納し、それに対してはデータベース内の値がセットされている。タスクを実行するプロセスは、ジョブ・レコードを見て、望まれるマシンの数がどの値にセットされているかを調べる。スクリプトは、データベース内の値を用いてオペレーションを行う。
[0061] オーナー308は、プロセスを実行しているプロセス/マシンを指定する。例えば、クラウド・マネージャー・マシンがジョブの実行を開始すると、そのマシンは、レコードのオーナー308の部分を、そのマシンのIDを用いて更新する。
[0062] ステップ310は、現在のスクリプトのステップの表示(indication)を提供する。例えば、スクリプトは、タスクを任意の数のステップに分割する。プロセスがスクリプトの1つのステップを完了すると、ステップ310は更新される。また、プロセスはステップ310を見て、スクリプトにおいて実行するステップを決定し、以前に完了したステップを再実行することを避ける。
[0063] 最後の実行312は、スクリプトが最後に開始された時間を提供する。スクリプトが開始される毎に、最後の実行の時間は更新される。
[0064] 有効期限切れ時間314は、プロセスを終了すべきときを示す時間である。1つの実施形態によると、有効期限切れ時間は、プロセスが開始されてからの予め定めた時間量(例えば、5分、10分、・・・)である。有効期限切れ時間は、ウェブ・サービスAPIを通じて、要求を行うプロセスにより更新することができる。
[0065] 次回316は、タスクが次に実行されるべきときを示す時間である。例えば、プロセスは、1つのステップの完了後に停止され、処理を再開するために指定された次回316まで待つことを命令される。
[0066] 状態318は、現在の状態を示す。
[0067] ステータス320は、ジョブのステータスを示す(例えば、生成された、中断された、再開された、実行中、削除された)。
[0068] 秘密322は、マシン/ネットワーク上でオペレーションを行う際に用いられる情報を含む。例えば、秘密322は、パスワード情報、マシン情報などを含むことができる。
[0069] フェールオーバー・フラグ324は、ネットワークでフェールオーバー・イベントが生じたときを示す。1つの実施形態によると、フェールオーバー・フラグがNull(ヌル)のとき、失敗は起きていない。フェールオーバー・フラグがNetworkID(ネットワークID)にセットされているとき、そのフェールオーバー・フラグは、失敗したネットワークを識別する。この情報は、ジョブ・リクエストが第2ネットワークで再生されるときにそのジョブ・リクエストで用いられるマッピングを決定するために、用いることができる。
[0070] フェールオーバー時間326は、失敗の時間である。1つの実施形態によると、失敗の時間はUTC時刻である。
[0071] ネットワークID328は、ジョブが提出されたネットワークを識別する。
[0072] データベース内の重複する行は、同じタスク・タイプおよびデータ値を有する場合には、それらが行われる前に除去することができる。例えば、データベースの複数の行に格納されている同じタスクを行うために、複数のリクエストが行われる場合がある。
[0073] ジョブは、それと関連する1以上のロック355を有することができる。ロックが使用可能ではない場合、ジョブは、ロックが使用可能になるまで、実行するようにスケジュールされない。ロックは、多くの異なる方法で構成することができる。例えば、ロックは、ミューテックス、セマフォなどに基づくことができる。一般に、ミューテックスは、コードが1より多くのスレッドにより同時に実行されないようにし、セマフォは、共有リソースの同時使用の数を最大数までに制限する。1つの実施形態によると、ロックは、リソースを表す文字列である。リソースは、任意のタイプのリソースとすることができる。例えば、ロックは、ファーム、マシン、テナントなどである。一般に、ロックは、1以上のジョブの実行を遅延させるために用いられる。各ジョブは、実行の前に必要な1以上のロックを指定することができる。ジョブは、動作中の任意の時にロックを解放することができる。ロックがあるとき、ジョブはスケジュールされない。1より多くのロックを必要とするジョブは、必要とする全てのロックを一度に要求する。例えば、1つのロックを既に有するジョブは、更なるロックを要求しない場合がある。このようなスキームは、複数のジョブ間での循環ロック依存(circular lock dependencies)により生じる、考えられ得るデッドロック状況を避けることの助力となる。
[0074] 様々なジョブは、そのジョブの必要に応じて様々なフィールドを用いることができる。
[0075] ここで図4を参照し、第2ネットワークでジョブを再生するプロセスを説明する。
[0076] ここで提示するルーチンの説明を読むとき、様々な実施形態の論理演算は、(1)コンピューターで実施される行為のシーケンスまたはコンピューティング・システムで実行されるプログラム・モジュールとして、および/または(2)コンピューティング・システム内の相互接続されたマシン・ロジック回路または回路モジュールとして実施されることを、理解すべきである。実装は、本発明を実装するコンピューティング・システムの性能の要求に応じた選択の問題である。従って、例示され、ここで説明される実施形態を構成する論理演算は、オペレーション、構造デバイス、行為、モジュールなどのように様々に呼ばれる。これらのオペレーション、構造デバイス、行為、およびモジュールは、ソフトウェア、ファームウェア、特定用途向けデジタル・ロジック、およびこれらの任意の組み合わせにより実装できる。
[0077] スタート・オペレーションの後、プロセス400はオペレーション410へ進み、そこで、フェールオーバー・イベントが検出される。フェールオーバー・イベントは、計画された/計画されていないイベントに応答して検出することができる。例えば、フェールオーバー・イベントは、第1ネットワークでの破滅的な失敗や、第1ネットワークの使用を停止する決定が原因である場合がある。フェールオーバー・イベントは、手動/自動で開始され得る。例えば、許可されたユーザーが第1ネットワークから第2ネットワークへフェールオーバーをトリガするようにでき、また、1以上の状態(例えば、1以上のマシンの失敗)の検出に基づいてフェールオーバーが自動的にトリガされるようにできる。
[0078] オペレーション420へ進むと、失敗したネットワークから、第2ネットワークで再生するジョブが得られる。1つの実施形態によると、第1ネットワークから得たジョブは、フェールオーバー・イベントの前の期間(例えば、15分)に提出されたジョブ、および第2ネットワークに対するフェールオーバーが完了するまで第1ネットワークへ提出されたジョブを含む。
[0079] オペレーション430へ進むと、得られたジョブは、第2ネットワークと、第1ネットワークでのフェールオーバーの発生とを反映するように、更新される。1つの実施形態によると、ジョブは、失敗したネットワークのID、フェールオーバー・イベントの時間、第2ネットワークのID、および新たなジョブにより使用される秘密を用いて、更新される。
[0080] オペレーション440へ移行すると、ジョブが実行されているネットワークに固有のパラメーター(例えば、識別子)が更新される。例えば、ジョブは、第1ネットワークにおいて12というIDを有し、第2ネットワークにおいて26というIDを有する特定のデータベースをターゲットにしている場合がある。1つの実施形態によると、ジョブは、そのジョブのための望ましいマッピング情報を受け取るために、クラウド・マネージャーへクエリを提出する。
[0081] オペレーション450へ進むと、ジョブが第2ネットワークで提出される。ジョブは、第2ネットワークで提出されると、様々なアクションを行うことができる。例えば、ジョブは、それ自体を終了させること、そのコマンド・ラインのパラメーターを翻訳すること、次の実行するステップを決定すること、オブジェクトの状態を変更すること、新たなジョブを作ることなどのアクションを行うことができる。1つの実施形態によると、ジョブは、スクリプトを実行することにより開始される。スクリプトを実行することは、スクリプトを開始するためにリモート・コールを呼び出す、および/またはリモート・マシンで他のタスクを行う。
[0082] 次に、プロセスはエンド・オペレーションへ進み、他のアクションの処理に戻る。
[0083] ここで図5を参照し、様々な実施形態で使用されるコンピューター500の例示的なコンピューター・アーキテクチャーを説明する。図5に示すコンピューター・アーキテクチャーは、サーバーやデスクトップやモバイル・コンピューターとして構成することができ、中央処理装置(CPU)5と、ランダム・アクセス・メモリ(RAM)9およびリード・オンリ・メモリ(ROM)11を含むシステム・メモリ7と、メモリと中央処理装置(CPU)5とを結合するシステム・バス12とを含む。
[0084] スタートアップのときなどにコンピューター内のエレメント間での情報の転送を手助けする基本ルーチンを含むベーシック入出力システムは、ROM11に格納される。コンピューター500は、更に、オペレーティング・システム16を格納する大容量記憶装置14と、アプリケーション・プログラム10と、データ・ストア24と、ファイルと、クラウド・システム100との対話の実行と関連するクラウド・プログラム25とを含む。
[0085] 大容量記憶装置14は、バス12へ接続された大容量記憶装置コントローラー(示さず)を介してCPU5と接続される。大容量記憶装置14およびそれと関連するコンピューター読取可能媒体は、コンピューター500のための不揮発性ストレージを提供する。ここに含まれるコンピューター読取可能媒体の説明は、ハード・ディスクやCD−ROMなどのような大容量記憶装置に言及するが、コンピューター読取可能媒体は、コンピューター100がアクセスできる任意の使用可能な媒体とすることができる。
[0086] 限定ではなく、コンピューター読取可能媒体は、例えば、コンピューター・ストレージ媒体および通信媒体を含むことができる。コンピューター・ストレージ媒体は、コンピューター読取可能命令やデータ構造やプログラム・モジュールや他のデータなどのような情報を格納するための、任意の方法や技術で実現される揮発性および不揮発性の、取り外し可能および取り外し不可能な媒体を含む。コンピューター・ストレージ媒体は、RAM、ROM、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、フラッシュ・メモリまたは他のソリッド・ステート・メモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(DVD)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用でき且つコンピュータ500によりアクセスできる他の任意の媒体を含むが、これらには限定されない。
[0087] 様々な実施形態によると、コンピューター500は、ネットワーク化された環境において、インターネット18などのようなネットワークを通じてのリモート・コンピューターへの論理接続を用いて動作することができる。コンピューター500は、バス12と接続されたネットワーク・インターフェイス・ユニット20を通じて、インターネット18へ接続することができる。ネットワーク接続は、無線および/または有線とすることができる。また、ネットワーク・インターフェイス・ユニット20は、他のタイプのネットワークやリモート・コンピューター・システムへ接続するために使用されることもできる。また、コンピューター500は、キーボードやマウスや電子スタイラス(図5に示さず)を含む多数の他のデバイスからの入力を受信および処理するための入力/出力コントローラー22を含む。同様に、入力/出力コントローラー22は、ディスプレイ・スクリーン28やプリンターや他のタイプの出力デバイスへ、出力を提供することができる。
[0088] 上記で簡単に述べたように、多数のプログラム・モジュールやデータ・ファイルを、コンピューター500の大容量記憶装置14およびRAM9に格納することができ、格納されるものには、ネットワーク化されたコンピューターの動作の制御に適切なオペレーティング・システム16、例えば、ワシントン州レドモンドのマイクロソフト(登録商標)・コーポレーションのWINDOWS(登録商標)オペレーティング・システムが含まれる。また、大容量記憶装置14およびRAM9は、1以上のプログラム・モジュールを格納する。特に、大容量記憶装置14およびRAM9は、クラウド・システムと関連するジョブを行うクラウド・プログラム25などのような、1以上のアプリケーション・プログラムを格納する。
[0089] 上記の仕様、例、およびデータは、本発明の構成物の製造および使用のための完全な説明を提供する。本発明の精神および範囲から離れずに本発明の多くの実施形態を作成することができ、本発明は添付の特許請求の範囲の中にある。

Claims (20)

  1. サービスのネットワークにおいてジョブを再生するコンピューターによって実行される方法であって、該方法は、
    前記サービスの第1場所から、前記サービスの前記第1場所と実質的に同じ構成とされる前記サービスの第2場所へ、オペレーションを移動するために、フェールオーバー・イベントが生じたときに検出を行うステップと、
    前記サービスの第2場所が、前記サービスの第1場所と同期した状態にとどまるよう前記フェールオーバー・イベントの前に、前記サービスの前記第1場所からのトランザクションログを前記サービスの前記第2場所で再生するステップと、
    前記サービスの前記第1場所からジョブを得るステップと、
    得られた前記ジョブを前記サービスの前記第2場所で投入するステップと、
    第1場所パラメーターの第2場所パラメーターへのマッピングを得ることにより、得られた前記ジョブを第2場所パラメーターと適合するよう更新するステップと
    を含み、前記第2場所は前記フェールオーバー・イベントの後にサービスの第1場所になる方法。
  2. 請求項1に記載の方法であって、前記サービスの前記第1場所からジョブを得る前記ステップは、前記フェールオーバー・イベントから所定時間内に前記第1場所へ投入されたジョブのそれぞれを得るステップを含む、方法。
  3. 請求項2に記載の方法であって、得られた前記ジョブは、前記フェールオーバー・イベントの前及び後でサービスの前記第1場所へ投入されたジョブを含む、方法。
  4. 請求項1に記載の方法であって、得られた前記ジョブを前記サービスの前記第2場所で投入する前記ステップは、各ジョブが、フェールオーバー・フラグを設定するステップを含む、方法。
  5. 請求項1に記載の方法であって、各ジョブは、前記第1場所と前記第2場所との間でのマッピングを決定するために中央サービスへクエリを行う、方法。
  6. 請求項1に記載の方法であって、前記第1場所の同期時間を所定の時間だけロールバックし、前記第1場所を前記第2場所と再同期させるステップを更に含む方法。
  7. 請求項1に記載の方法であって、得られた前記ジョブを前記サービスの前記第2場所で投入する前記ステップは、投入されたジョブのネットワーク識別子を、前記サービスの前記第2場所を反映するように変更するステップを含む、方法。
  8. 請求項1に記載の方法であって、得られた前記ジョブを前記サービスの前記第2場所で投入する前記ステップは、各ジョブが、そのジョブのリクエストを投入するステップを含む、方法。
  9. 請求項1に記載の方法であって、中央サービスから前記マッピングを得るステップをさらに含む、方法。
  10. サービスのネットワークにおいてジョブを再生するためのコンピューター実行可能命令を有するコンピューター読取可能記録媒体であって、
    前記サービスの第1場所から、前記サービスの前記第1場所と実質的に同じ構成とされる前記サービスの第2場所へ、オペレーションを移動するために、フェールオーバー・イベントが生じたときに決定を行うことと、
    前記サービスの第2場所が、前記サービスの第1場所と同期した状態にとどまるよう前記フェールオーバー・イベントの前に、前記サービスの前記第1場所からのトランザクションログを前記サービスの前記第2場所で再生することと、
    前記サービスの前記第1場所からジョブを得ることと、
    第1場所パラメーターの第2場所パラメーターへのマッピングを用いて、前記サービスの前記第1場所の物理的特性に依存するジョブ内でパラメーターをサービスの第2場所に変更することにより、第2場所パラメーターと適合するよう得られた前記ジョブを更新することと
    得られた前記ジョブを前記サービスの第2場所で投入することと、
    のコンピューター実行可能命令を含む、
    コンピューター読取可能記録媒体。
  11. 請求項10記載のコンピューター読取可能記録媒体であって、前記サービスの第1場所から前記ジョブを得ることは、前記フェールオーバー・イベントから所定の時間内に実行されるべき投入されたジョブの各々を得ることを含む、コンピューター読取可能記録媒体。
  12. 請求項11記載のコンピューター読取可能記録媒体であって、前第2の場所で投入されたジョブは、何れのオペレーションも実行されるべきではないことを判定することに応答して自動的に終了する、コンピューター読取可能記録媒体。
  13. 請求項10記載のコンピューター読取可能記録媒体であって、前記サービスの第2場所において前記得られたジョブを投入することは、前記ジョブのそれぞれにおいてフェールオーバー・フラグを設定することを含む、コンピューター読取可能記録媒体。
  14. 請求項10記載のコンピューター読取可能記録媒体であって、第1場所における識別子、前記第2場所における対応する識別子とのマッピングを提供することをさらに含む、コンピューター読取可能記録媒体。
  15. 請求項10記載のコンピューター読取可能記録媒体であって、同期時間を所定の時間だけロールバックすることを更に含むコンピューター読取可能記録媒体。
  16. サービスのネットワークにおいてジョブを再生するためのシステムであって、
    プロセッサおよびコンピューター読取可能媒体と、
    前記コンピューター読取可能媒体に格納され、前記プロセッサで実行される動作環境と、
    アクションを行うように動作するクラウド・マネージャーと
    を含み、前記アクションは、
    前記サービスの第1場所から、前記サービスの前記第1場所と実質的に同じ構成とされる前記サービスの第2場所へ、オペレーションを移動するために、フェールオーバー・イベントが生じたときに決定を行うことと、
    前記サービスの第2場所が、前記サービスの第1場所と同期した状態にとどまるよう前記フェールオーバー・イベントの前に、前記サービスの前記第1場所からのトランザクションログを前記サービスの前記第2場所で再生することと、
    前記サービスの前記第1場所からジョブを得ることと、
    前記サービスの前記第1場所の物理的特性に依存するジョブ内の識別子を、前記サービスの前記第2場所に変更することを含む、第1場所パラメーターの第2場所パラメーターへのマッピングを得ることにより、第2場所パラメーターと適合するよう得られた前記ジョブを更新することと、
    得られた前記ジョブを前記サービスの前記第2場所で投入することと
    を含む、
    システム。
  17. 請求項16記載のシステムであって、前記サービスの第1場所からジョブを得ることは、前記フェールオーバー・イベントから所定の時間内に実行されるべき投入された前記ジョブの各々を得ることを含む、システム。
  18. 請求項16記載のシステムであって、前記サービスの第2場所において前記得られたジョブを投入することは、前記ジョブのそれぞれにおいてフェールオーバ−・フラグを設定することを含む、システム。
  19. 請求項16記載のシステムであって、第1場所における識別子と第2場所における対応する識別子とのマッピングを提供することをさらに含む、システム。
  20. 請求項16に記載のシステムであって、同期時間を所定の時間だけロールバックさせることを更に含むシステム。
JP2014513629A 2011-06-01 2012-05-28 サービスの第2場所でのジョブの再生 Active JP5984918B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/151,114 US8850261B2 (en) 2011-06-01 2011-06-01 Replaying jobs at a secondary location of a service
US13/151,114 2011-06-01
PCT/US2012/039788 WO2012166689A2 (en) 2011-06-01 2012-05-28 Replaying jobs at a secondary location of a service

Publications (3)

Publication Number Publication Date
JP2015507229A JP2015507229A (ja) 2015-03-05
JP2015507229A5 JP2015507229A5 (ja) 2015-07-16
JP5984918B2 true JP5984918B2 (ja) 2016-09-06

Family

ID=47260238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014513629A Active JP5984918B2 (ja) 2011-06-01 2012-05-28 サービスの第2場所でのジョブの再生

Country Status (6)

Country Link
US (3) US8850261B2 (ja)
EP (1) EP2715558A4 (ja)
JP (1) JP5984918B2 (ja)
KR (2) KR101970839B1 (ja)
CN (3) CN103562904B (ja)
WO (1) WO2012166689A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850261B2 (en) 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8745445B1 (en) * 2012-02-10 2014-06-03 Pivotal Software, Inc. Mirrored database upgrade using state machine
JP5948933B2 (ja) * 2012-02-17 2016-07-06 日本電気株式会社 ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US9274824B2 (en) * 2013-06-27 2016-03-01 Verizon Patent And Licensing Inc. Network technology standard operating environment
US9430306B2 (en) * 2013-10-08 2016-08-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Anticipatory protection of critical jobs in a computing system
US9846618B2 (en) 2013-12-27 2017-12-19 Oracle International Corporation System and method for supporting flow control in a distributed data grid
CN105446827B (zh) * 2014-08-08 2018-12-14 阿里巴巴集团控股有限公司 一种数据库故障时的数据存储方法和设备
US9514010B2 (en) * 2014-09-19 2016-12-06 Netapp, Inc Cluster-wide service agents
US9954949B2 (en) * 2015-04-30 2018-04-24 Hewlett Packard Enterprise Development Lp Cloud images
US11226985B2 (en) 2015-12-15 2022-01-18 Microsoft Technology Licensing, Llc Replication of structured data records among partitioned data storage spaces
US10248709B2 (en) 2015-12-15 2019-04-02 Microsoft Technology Licensing, Llc Promoted properties in relational structured data
US10235406B2 (en) 2015-12-15 2019-03-19 Microsoft Technology Licensing, Llc Reminder processing of structured data records among partitioned data storage spaces
US10599676B2 (en) 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
US9996432B2 (en) * 2016-02-03 2018-06-12 International Business Machines Corporation Automated local database connection affinity and failover
CN106022007B (zh) * 2016-06-14 2019-03-26 中国科学院北京基因组研究所 面向生物组学大数据计算的云平台系统及方法
US10917469B2 (en) * 2017-03-22 2021-02-09 Western Digital Technologies, Inc. Read performance enhancement by enabling read from secondary in highly available cluster setup
KR101807806B1 (ko) * 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
WO2019030698A1 (en) * 2017-08-08 2019-02-14 Perry + Currier Inc. METHOD, SYSTEM AND APPARATUS FOR PROCESSING DATABASE UPDATES
US10931780B2 (en) 2018-02-28 2021-02-23 International Business Machines Corporation Resource pre-caching and tenant workflow recognition using cloud audit records
US11321183B2 (en) * 2018-05-02 2022-05-03 Commvault Systems, Inc. Multi-tiered backup indexing
US10673943B2 (en) 2018-05-02 2020-06-02 Commvault Systems, Inc. Network storage backup using distributed media agents
US11249863B2 (en) 2018-05-02 2022-02-15 Commvault Systems, Inc. Backup-based media agent configuration
US11263173B2 (en) 2019-07-30 2022-03-01 Commvault Systems, Inc. Transaction log index generation in an enterprise backup system
US11762743B2 (en) * 2021-06-28 2023-09-19 International Business Machines Corporation Transferring task data between edge devices in edge computing

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307481A (en) 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5734373A (en) * 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US6898727B1 (en) 2000-03-22 2005-05-24 Emc Corporation Method and apparatus for providing host resources for an electronic commerce site
US7281031B1 (en) 2000-03-22 2007-10-09 Emc Corporation Method and apparatus for providing additional resources for a host computer
US7219260B1 (en) 2000-05-26 2007-05-15 Emc Corporation Fault tolerant system shared system resource with state machine logging
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US6820218B1 (en) 2001-09-04 2004-11-16 Microsoft Corporation Persistent stateful component-based applications via automatic recovery
US7003694B1 (en) 2002-05-22 2006-02-21 Oracle International Corporation Reliable standby database failover
JP2004032103A (ja) 2002-06-21 2004-01-29 Ntt Docomo Tokai Inc ネットワークシステム及びサーバ切り替え方法
US6947940B2 (en) 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
US8554843B2 (en) 2002-09-06 2013-10-08 Dell Marketing Usa L.P. Method and system for processing email during an unplanned outage
WO2004023620A1 (en) 2002-09-09 2004-03-18 Evergreen Assurance, Inc. System and method for application monitoring and automatic disaster recovery for high-availability
US7107483B2 (en) 2002-11-15 2006-09-12 Lsi Logic Corporation Apparatus and method for enhancing data availability by leveraging primary/backup data storage volumes
WO2004086191A2 (en) 2003-03-20 2004-10-07 Rosenfelt Michael I Method and system for providing backup messages to wireless devices during outages
US7178059B2 (en) 2003-05-07 2007-02-13 Egenera, Inc. Disaster recovery for processing resources using configurable deployment platform
US7617369B1 (en) 2003-06-30 2009-11-10 Symantec Operating Corporation Fast failover with multiple secondary nodes
US7330859B2 (en) 2003-09-10 2008-02-12 International Business Machines Corporation Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
JP2005250626A (ja) 2004-03-02 2005-09-15 Hitachi Ltd コンピュータシステム及びそのプログラム。
US7376078B1 (en) * 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
US7822741B2 (en) * 2004-06-21 2010-10-26 Microsoft Corporation API for programmatic retrieval and replay of database trace
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7325156B1 (en) 2004-10-07 2008-01-29 Hewlett-Packard Development Company, L.P. Methods and apparatus for backing up data in a data center
US7349903B2 (en) 2004-11-17 2008-03-25 International Business Machines Corporation Apparatus, system, and method for an alternate lock facility connection path
US7668962B2 (en) 2005-02-07 2010-02-23 Symantec Operating Corporation System and method for connection failover using redirection
US7483929B2 (en) 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
US7720820B2 (en) 2005-07-12 2010-05-18 Microsoft Corporation Logless persistent components for enterprise applications
US7823153B1 (en) * 2005-09-30 2010-10-26 Symantec Corporation System and method for detecting and logging in-line synchronization primitives in application program code
JP4668763B2 (ja) * 2005-10-20 2011-04-13 株式会社日立製作所 ストレージ装置のリストア方法及びストレージ装置
EP1780940B1 (en) 2005-10-31 2009-06-17 PacketFront Systems AB High availability network systems
US7549079B2 (en) 2005-11-30 2009-06-16 Oracle International Corporation System and method of configuring a database system with replicated data and automatic failover and recovery
US7634679B2 (en) 2005-11-30 2009-12-15 Microsoft Corporation Remote location failover server application
US8156083B2 (en) 2005-12-01 2012-04-10 Oracle International Corporation Database system that provides for history-enabled tables
US20070174723A1 (en) 2006-01-18 2007-07-26 Omar Cardona Sub-second, zero-packet loss adapter failover
US7840969B2 (en) * 2006-04-28 2010-11-23 Netapp, Inc. System and method for management of jobs in a cluster environment
US7730538B2 (en) 2006-06-02 2010-06-01 Microsoft Corporation Combining virus checking and replication filtration
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7627687B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for managing data flow in a continuous data replication system having journaling
US7917469B2 (en) 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US7844851B2 (en) 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US20080147689A1 (en) 2006-12-19 2008-06-19 Fujitsu Limited Test data registration method, program and apparatus
US7685179B2 (en) 2007-03-13 2010-03-23 Microsoft Corporation Network flow for constrained replica placement
JP5201133B2 (ja) * 2007-04-09 2013-06-05 富士通株式会社 二重化システム、システム制御方法およびシステム制御プログラム
US8225129B2 (en) 2007-04-10 2012-07-17 International Business Machines Corporation Methods and apparatus for effective on-line backup selection for failure recovery in distributed stream processing systems
US7779298B2 (en) 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
US7861111B2 (en) 2007-06-15 2010-12-28 Savvis, Inc. Shared data center disaster recovery systems and methods
US8181071B2 (en) 2007-06-29 2012-05-15 Microsoft Corporation Automatically managing system downtime in a computer network
US20090019094A1 (en) 2007-07-13 2009-01-15 Scott David Lashley Redirected updates on a backup server
US7770064B2 (en) * 2007-10-05 2010-08-03 International Business Machines Corporation Recovery of application faults in a mirrored application environment
US8020046B2 (en) 2007-10-15 2011-09-13 International Business Machines Corporation Transaction log management
US9258360B2 (en) 2007-11-07 2016-02-09 International Business Machines Corporation Intelligent disaster recovery for database connection failures
US7836207B2 (en) 2007-12-20 2010-11-16 Fast Health Corporation System and method for redirecting a website upon the occurrence of a disaster or emergency event
JP5098700B2 (ja) 2008-03-03 2012-12-12 沖電気工業株式会社 情報通信システムのファイル交換装置およびファイル交換方法
US8250577B2 (en) * 2008-04-16 2012-08-21 International Business Machines Corporation Mechanism to enable and ensure failover integrity and high availability of batch processing
JP4659062B2 (ja) 2008-04-23 2011-03-30 株式会社日立製作所 フェイルオーバ方法、プログラム、管理サーバおよびフェイルオーバシステム
CN101299201B (zh) * 2008-05-08 2010-06-02 成都市华为赛门铁克科技有限公司 存储系统数据备份方法及装置
US7793141B1 (en) 2008-05-15 2010-09-07 Bank Of America Corporation eCommerce outage customer notification
US7962458B2 (en) 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8301593B2 (en) 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8255739B1 (en) * 2008-06-30 2012-08-28 American Megatrends, Inc. Achieving data consistency in a node failover with a degraded RAID array
JP5438371B2 (ja) * 2009-04-30 2014-03-12 キヤノン株式会社 画像処理装置および画像処理方法
KR20100120397A (ko) 2009-05-06 2010-11-16 주식회사 히타치엘지 데이터 스토리지 코리아 선택적 미러 방법
CN101599026A (zh) * 2009-07-09 2009-12-09 浪潮电子信息产业股份有限公司 一种具有弹性架构的集群作业调度系统
US7992031B2 (en) 2009-07-24 2011-08-02 International Business Machines Corporation Automated disaster recovery planning
US20110047413A1 (en) 2009-08-20 2011-02-24 Mcgill Robert E Methods and devices for detecting service failures and maintaining computing services using a resilient intelligent client computer
CN101645022B (zh) * 2009-08-28 2013-07-10 曙光信息产业(北京)有限公司 用于多个集群的作业调度管理系统及方法
US8886788B2 (en) 2009-08-31 2014-11-11 Accenture Global Services Limited Enterprise-level management, control and information aspects of cloud console
JP5498102B2 (ja) * 2009-09-02 2014-05-21 アラクサラネットワークス株式会社 ネットワークシステム、ネットワーク中継装置、それらの制御方法
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
KR101050476B1 (ko) 2009-12-03 2011-07-20 (주)한국아이오테크 스토리지 관리 서버 기반 스크립트 관리 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US20110289484A1 (en) 2010-05-19 2011-11-24 Also Energy Method and System for Script Processing for Web-Based Applications
US20120311375A1 (en) 2011-06-01 2012-12-06 Microsoft Corporation Redirecting requests to secondary location during temporary outage
US8850261B2 (en) 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US9141493B2 (en) * 2013-07-12 2015-09-22 International Business Machines Corporation Isolating a PCI host bridge in response to an error event

Also Published As

Publication number Publication date
EP2715558A4 (en) 2016-11-16
WO2012166689A2 (en) 2012-12-06
CN103562904B (zh) 2016-11-09
US9311199B2 (en) 2016-04-12
CN107102916A (zh) 2017-08-29
CN103562904A (zh) 2014-02-05
KR20140025503A (ko) 2014-03-04
KR102047216B1 (ko) 2019-11-20
US20150347244A1 (en) 2015-12-03
EP2715558A2 (en) 2014-04-09
US8850261B2 (en) 2014-09-30
US20150039931A1 (en) 2015-02-05
CN107122270B (zh) 2020-07-03
US20120311377A1 (en) 2012-12-06
KR101970839B1 (ko) 2019-04-19
US9442813B2 (en) 2016-09-13
JP2015507229A (ja) 2015-03-05
CN107102916B (zh) 2021-02-26
WO2012166689A3 (en) 2013-01-31
CN107122270A (zh) 2017-09-01
KR20190041033A (ko) 2019-04-19

Similar Documents

Publication Publication Date Title
JP5984918B2 (ja) サービスの第2場所でのジョブの再生
US11720456B2 (en) Automatic configuration of a recovery service
US8296267B2 (en) Upgrade of highly available farm server groups
US8799453B2 (en) Managing networks and machines for an online service
US20120102480A1 (en) High availability of machines during patching
US8751656B2 (en) Machine manager for deploying and managing machines
US20130226973A1 (en) Online database availability during upgrade
KR20170058955A (ko) 멀티테넌트 어플리케이션 서버 환경에서 패치를 지원하는 시스템 및 방법

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160802

R150 Certificate of patent or registration of utility model

Ref document number: 5984918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250