JP5364850B2 - データ環境のためのセルフサービス構成 - Google Patents

データ環境のためのセルフサービス構成 Download PDF

Info

Publication number
JP5364850B2
JP5364850B2 JP2012533307A JP2012533307A JP5364850B2 JP 5364850 B2 JP5364850 B2 JP 5364850B2 JP 2012533307 A JP2012533307 A JP 2012533307A JP 2012533307 A JP2012533307 A JP 2012533307A JP 5364850 B2 JP5364850 B2 JP 5364850B2
Authority
JP
Japan
Prior art keywords
data
parameter group
instance
instances
environment
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
JP2012533307A
Other languages
English (en)
Other versions
JP2013507690A (ja
Inventor
アレクサンダー マクドナルド マクアリスター グラント
シヴァスブラマニアン スワミナサン
スダカー シス ラジェッシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2013507690A publication Critical patent/JP2013507690A/ja
Application granted granted Critical
Publication of JP5364850B2 publication Critical patent/JP5364850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

ますます多くのアプリケーションおよびサービスがネットワーク(例えば、インターネット)を介して利用可能となるのにともない、ますます多くのコンテンツ、アプリケーション、および/またはサービスプロバイダがクラウドコンピューティングなどの技術に取りかかっている。クラウドコンピューティングは、一般に、電子リソースへのアクセスをサービス(例えば、ウェブサービス)を通じて提供するアプローチのことであり、それらのサービスをサポートするために用いられるハードウェアおよび/またはソフトウェアは、任意の所与の時期にサービス要求を満たせるよう、動的にスケーラブルである。ユーザまたは顧客は、一般的にクラウドを通じたリソースへのアクセスのためにレンタル、リースまたは支払いを行い、よって、当該リソースへのアクセスのためにハードウェアおよび/またはソフトウェアを購入および維持する必要は無い。
クラウドにおいては、多様なアプリケーションおよびリソースの態様を調節および管理することができる一方、これらのアプリケーションおよびリソースが依存しているデータレポジトリは、同様に調節可能ではない。一般的に、データ記憶のプロビジョニングおよびスケーリングなどのタスクを行うのは面倒な手作業の手順であり、顧客は、データベース管理者(DBA)が構成が有効であるかを判断できるように、DBAまたは同様の熟練したユーザに構成情報および要求を提供しなければならない。その後、DBAは一般的に、データレポジトリのイネーブル、チューニングおよび最適化を行なければならない。さらに、顧客が動的にかつ/または自動的にデータベースインスタンスのパラメータを調節し、またはデータレポジトリの他のかかる態様を管理する、容易な方法が存在していない。
本開示による多様な実施形態について、図面を参照しながら説明する。
多様な実施形態を実装することができる環境を示す図である。 多様な実施形態に従って利用することが可能である、制御プレーンおよびデータプレーンの分離の一例を示す図である。 一実施形態に従って利用することが可能なデータプレーンにおけるデータインスタンス生成前に、パラメータ値を指定する例示的プロセス図である。 データインスタンスを生成し、一実施形態に従って利用することが可能なデータプレーンにおいて指定されたパラメータ値を適用する例示的プロセス図である。 一実施形態に従って利用することが可能なデータプレーンにおいて、少なくとも1つのデータインスタンスについてのパラメータ値の変更を要求するための例示的プロセス図である。 一実施形態に従って利用可能なデータインスタンスの性能を監視するための例示的プロセス図である。
本開示の多様な実施形態によるシステムおよび方法は、電子環境におけるデータ記憶の態様を管理するための従来のアプローチにおいて経験された、上記の欠陥および他の欠陥のうちの1つ以上を解消する場合がある。具体的には、多様な実施形態は、別個の制御環境または制御プレーンを提供する。別個の制御環境または制御プレーンを用いることで、データ環境またはデータプレーンの多様な態様の管理および/または変更をユーザが行うことが可能になる。この「セルフサービス」機能は、1組のウェブサービスを介して提供することが可能であり、これにより、ユーザおよび制御プレーンを共に仮想データベース管理者(DBA)として用いることが可能になる。ユーザまたは顧客は、例えば複数の外部可視アプリケーションプログラミングインターフェース(API)のうちの1つを通じて制御プレーンへ要求を提出することができる。多様なAPIを用いて、データ環境内のデータレポジトリ(例えば、関係データベース)についての特定の機能を行うことが可能である。APIのうちの1つが受信した要求を分析して、データプレーンにおいて行われるべき所望のアクション(単数または複数)(例えば、データ記憶部またはデータ記憶インスタンスの動作パラメータまたは構成パラメータを調節するアクション)を決定することができる。コンポーネント(例えば、ワークフローコンポーネント)により、当該アクションにとって適切なタスクを決定し、当該タスクを適切な順序で実行することが可能になる。これらのタスクのうちの少なくとも1つは、一般的に、データ環境において実行される(例えば、関係データベースの態様の調節)。
図1は、多様な実施形態による態様を実行するための環境100の一例を示す。理解されるように、説明目的のためにウェブベースの環境を用いているが、多様な実施形態の実行のために適宜異なる環境を使用してもよい。図示の環境100は、試験部分または開発部分(または側)および生産部分の両方を含む。生産部分は、電子クライアントデバイス102を含む。電子クライアントデバイス102は、適切なネットワーク104を介した、要求、メッセージまたは情報の送受信を行い、かつデバイスのユーザへ情報を返送するように動作可能な任意の適切なデバイスを含むことができる。このようなクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子ブックリーダーなどが挙げられる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または他の任意のこのようなネットワークまたはこれらの組み合わせを含む任意の適切なネットワークを含むことができる。このようなシステムのために用いられるコンポーネントは、選択されるネットワークおよび/または環境の種類に少なくとも部分的に依存する可能性がある。このようなネットワークを介した通信のためのプロトコルおよびコンポーネントは周知であり、本明細書中詳述しない。ネットワークを介した通信は、有線接続または無線接続およびこれらの組み合わせによって可能となる。本例において、ネットワークは、インターネットを含む。なぜならば、環境は、要求の受信および受信に応答したコンテンツの提供を行うウェブサーバー106を含むが、他のネットワークに対しては、当業者にとって自明の同様の目的を提供する別のデバイスを用いることも可能である。
例示的環境は、少なくとも1つのアプリケーションサーバー108およびデータ記憶部110を含む。タスク(例えば、適切なデータ記憶部からのデータの入手)を行うように相互作用させることができるように、連鎖させるかまたは別法により構成されてもよい、いくつかのアプリケーションサーバー、層または他の要素、プロセスまたはコンポーネントが存在することができることが理解されるべきである。本明細書で用いられる場合、「データ記憶部」という用語は、データの保存、アクセスおよび取り出しが可能な任意のデバイスまたはデバイスの組み合わせを指し、任意の標準環境、分散型環境またはクラスタ化環境における、任意の組み合わせおよび任意の数の、データサーバー、データベース、データ記憶デバイス、およびデータ記憶媒体を含んでもよい。アプリケーションサーバーは、必要に応じてデータ記憶部と一体化され、アプリケーションのためのデータアクセスおよびビジネスロジックのうちの大部分を取り扱うクライアントデバイスのための1つ以上のアプリケーションの態様を実行するために、任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバーは、データ記憶部と協働してアクセス制御サービスを提供し、コンテンツ(例えば、ユーザへ転送されるべきテキスト、グラフィックス、音声および/またはビデオ)を生成することができる。本例において、コンテンツは、HTML、XML、または別の適切な構造化言語の形態でウェブサーバーによってユーザに提供されてもよい。全ての要求および応答ならびにクライアントデバイス102とアプリケーションサーバー108との間のコンテンツの送達の取り扱いは、ウェブサーバーによって行うことができる。ウェブサーバーおよびアプリケーションサーバーは不要であり、例示的なコンポーネントに過ぎないことが理解されるべきである。なぜならば、本明細書中に記載された構造化コードは、本明細書中の他の箇所に記載されたような任意の適切なデバイスまたはホストマシン上において実行することが可能であるからである。さらに、環境は、ユーザまたはアプリケーションが加入することが可能なサービスとして試験自動化フレームワークを提供することが可能な様態の構造にすることができる。試験自動化フレームワークは、本明細書中に記載された多様な試験パターンのうちの任意のものの実装として提供することが可能であるが、本明細書中に記載または提案されるように他の多様な実装も使用することができる。
環境は、ユーザ(例えば、開発者、データ管理者、または試験者)によるシステムへのアクセスを可能にするユーザデバイス118を含む、開発側および/または試験側も含む。ユーザデバイス118は、任意の適切なデバイスまたはマシン(例えば、クライアントデバイス102について上述したようなもの)とすることができる。環境は、開発サーバー120も含む。開発サーバー120は、アプリケーションサーバー108と同様に機能するが、例えば、コードが生産側において展開および実行され、外部ユーザによるコードへのアクセスが可能となる前に、一般的に開発および試験時の間にコードを実行する。いくつかの実施形態において、アプリケーションサーバーは開発サーバーとして機能することができ、別個の生産用記憶部および試験用記憶部は使用されない場合がある。
データ記憶部110は、特定の態様に関連するデータを保存するためのいくつかの別個のデータテーブル、データベースまたは他のデータ記憶機構および媒体を含むことができる。例えば、図示のデータ記憶部は、生産データ112およびユーザ情報116を保存する機構を含む。これらの生産データ112およびユーザ情報116を用いて、生産側のためのコンテンツを提供することが可能である。また、データ記憶部は、試験データ114を保存する機構も含むように示される。試験データ114をユーザ情報と共に試験側のために用いることができる。データ記憶部内への保存が必要となる場合がある多くの他の態様(例えば、ページ画像情報およびアクセス権情報のための)がある可能性があり、適宜上記した機構のうちの任意のものに、またはデータ記憶部110内の追加的な機構に保存することができることが理解されるべきである。データ記憶部110は、自身と関連付けられた論理を通じて、アプリケーションサーバー108または開発サーバー120からの命令を受信し、命令に応答して、データの入手、更新、または別法により処理を行うように動作可能である。一例において、ユーザは、特定の種類のアイテムについてのサーチ要求を提出してもよい。この場合、データ記憶部は、ユーザ情報にアクセスして当該ユーザの識別情報を確認し、カタログ詳細情報にアクセスして、その種類のアイテムに関する情報を得ることができる。その後、情報をユーザが視認することが可能なウェブページ上の結果リストなどのようにユーザデバイス102上のブラウザを介してユーザへ返送することができる。特定の注目のアイテムに対する情報は、ブラウザの専用ページまたはウィンドウ内において視認することができる。
各サーバーは一般的には、サーバーの一般的管理および動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、一般的にはコンピュータで読み出し可能な媒体を含む。コンピュータで読み出し可能な媒体は、命令を保存する。命令は、サーバーのプロセッサによって実行されると、サーバーが意図する機能を行うことが可能になる。サーバーのオペレーティングシステムおよび一般的機能性の適切な実装は公知である、または市販されており、特に本明細書中の開示内容を鑑みれば、当業者により容易に実行される。
一実施形態における環境は、通信リンクを介して1つ以上のコンピュータネットワークまたは直接接続を用いて相互接続されたいくつかのコンピュータシステムおよびコンポーネントを用いた分散型コンピューティング環境である。しかし、当業者にとって、このようなシステムは、図1の場合よりもより少数またはより多数のコンポーネントを有するシステムにおいても等しく動作可能であることが明かであろう。よって、図1中のシステム100の描写は、本質的に例示的なものとしてとられるべきであり、本開示の範囲を制限するものではない。
図1に示すような環境は、プロバイダ(例えば、電子市場)において有用である可能性があり、複数のホストを用いて、タスク(例えば、コンテンツの提供、ユーザの認証、支払取引の実行、または他の複数のこのようなタスクのうちの任意のものの実行)の実行を行うことが可能である。これらのホストのうちのいくつかは、同一機能を提供するように構成されてもよく、一方で他のサーバーは、少なくともいくつかの異なる機能を行うように構成されてもよい。このような場合の電子環境は、さらなるコンポーネントおよび/または他の配置構成(例えば、図2の構成200に図示するもの)を含んでもよい。
一実施形態によるシステムおよび方法は、開発者、顧客または他の認証されたユーザが、関係データベース「RDS」)、および他のこのようなデータソースを容易かつコスト効率良く入手および構成することを可能にする、関係データベースサービスを提供し、これにより、ユーザはタスク(例えば、クラウド中の関係データセットの保存、処理および問い合わせ)を行うことができる。本例は、インターネット、ウェブサービス、およびインターネットベースの技術について説明するが、多様な実施形態の態様は、電子環境内のネットワークを介して利用可能であるかまたは提供される任意の適切なサービスと共に利用することが可能であることが理解されるべきである。さらに、本明細書ではサービスのことを「関係データベースサービス」と呼ぶが、このようなサービスは、電子環境内における任意の適切な種類のデータレポジトリまたはデータ記憶と共に利用することが可能であることが理解されるべきである。本例において、RDSは、少なくとも1つのウェブサービスを含む。少なくとも1つのウェブサービスにより、ユーザまたは顧客は、展開、アップグレード、パッチ管理、バックアップ、複製、フェイルオーバー、容量管理、スケーリング、およびデータ管理の他のこのような態様における管理の複雑性について懸念する必要無く、関係データセットの管理を容易に行うことが可能になる。よって、開発者は、データベースインフラストラクチャの管理の複雑性について懸念する必要無しに、高度なクラウドアプリケーションの開発から解放される。
一実施形態において、RDSは、別個の「制御プレーン」を提供する。別個の「制御プレーン」は、データ記憶の態様の管理において有用なコンポーネント(例えば、ハードウェアおよびソフトウェア)を含む。一実施形態において、ユーザまたは顧客が当該データ記憶部に関連するタスクを行うようRDSに呼びかけを作成することを可能にする、1組のデータ管理アプリケーションプログラミングインターフェース(API)または他のこのようなインターフェースが提供される。しかしながら、その場合でも、ユーザは、直接インターフェースまたはAPIを用いて当該データレポジトリと通信することが可能であり、データ記憶部の管理または同様のタスクの実行が必要になった場合にのみ、制御プレーンのRDS特有のAPIを利用することが可能である。
図2は、一実施形態に従って利用することが可能なRDS実装200の一例を示す。本例において、エンドユーザ用のコンピューティングデバイス202が図示されており、タスク(例えば、データプレーン210のデータレポジトリをプロビジョニングするタスク)を行うよう、ネットワーク206を通して制御プレーン208内へ呼びかけを作成することができる。ユーザまたはアプリケーション204は、データプレーン210のインターフェースを通して、プロビジョニングされたレポジトリに直接アクセスすることができる。エンドユーザコンピューティングデバイスおよびアプリケーションは説明目的のために用いられ、任意の適切なユーザ、アプリケーション、サービス、デバイス、コンポーネントまたはリソースが、多様な実施形態において適宜制御プレーンおよび/またはデータプレーンのインターフェース(単数または複数)にアクセスすることができることが理解されるべきである。さらに、コンポーネントは制御「プレーン」およびデータ「プレーン」に分離されているが、これは、各機能を提供するために用いられる少なくともいくつかのリソース(例えば、ハードウェアおよび/またはソフトウェア)の実際の分離または仮想分離を指すことができることが理解されるべきである。
本例において、制御プレーン208は本質的には、制御アクションおよび管理アクション(例えば、プロビジョニング、スケーリング、複製等)を取り扱うハードウェアおよびソフトウェアコンポーネントの仮想層である。この実施形態における制御プレーンは、ウェブサービス層212またはウェブサービス階層を含む。ウェブサービス層212またはウェブサービス階層は、例えばコンピュータ−実行可能なソフトウェア、アプリケーションサーバーまたは他のこのようなコンポーネントと共に少なくとも1つのウェブサーバーを含むことができる。ウェブサービス層はまた、ネットワーク206全体からウェブサービス呼び出しまたは要求を受信するための1組のAPI232(または他のこのようなインターフェース)も含むことができる。各APIは、データ環境について行われるべき少なくとも1つの特定のアクション(例えば、関係データベースのインスタンスをプロビジョニングすること、スケールすること、クローンすること、またはハイバネートすること)についての要求を受信するように提供することができる。APIのうちの1つへの要求を受信すると、ウェブサービス層は、要求を解析または別法により分析して、呼び出しへの作用または呼び出しの処理に必要なステップまたはアクションを決定することができる。例えば、データレポジトリの生成の要求を含むウェブサービス呼び出しが受信されてもよい。本例において、ウェブサービス層は、要求を解析して、生成すべきデータレポジトリの種類、必要な記憶ボリューム、必要なハードウェアの種類(ただし、存在する場合)または他のこのような態様を決定することができる。要求についての情報は、その後の処理のために、管理(「Admin」)データ記憶部222または他の適切な記憶場所またはジョブキューに書き込むことができる。
一実施形態における、ウェブサービス層は、顧客に向いたスケーラブルな1組のサーバーを含む。1組の顧客対向サーバーは、多様な制御プレーンAPIを提供し、API仕様に基づいて適切な応答を返送することができる。ウェブサービス層は、少なくとも1つのAPIサービス層も含むことができる。一実施形態において、少なくとも1つのAPIサービス層は、ステートレスな複製されたサーバーからなる。ステートレスな複製サーバーは、外向きの顧客APIを処理する。ウェブサービス層は、ウェブサービスフロントエンド機能(例えば、認証情報に基づいた顧客認証、顧客の許可、APIサーバーへの顧客要求のスロットリング、ユーザ入力の有効化、ならびにマーシャリングまたはマーシャリング解除の要求および応答)を担当することができる。API層は、API呼び出しに応答して、管理データ記憶部への/管理データ記憶部からのデータベース構成データの読み出しおよび書き込みも担当することができる。多くの実施形態において、ウェブサービス層および/またはAPIサービス層は、唯一の外部可視コンポーネントとされるか、または、制御サービスの顧客が視認可能であり、かつ制御サービスの顧客によりアクセス可能である唯一のコンポーネントとされる。ウェブサービス層のサーバーは、ステートレスとすることができ、当該分野において公知のように水平方向にスケーリングすることができる。APIサーバーだけでなく、永続的データ記憶部は、例えば、単一のデータセンターの不具合に対してサーバーを回復力を持たせるように、ある領域内の複数のデータセンターにわたって分散させることができる。
この実施形態における制御プレーンは、本明細書中において「スウィーパー」と呼ばれるコンポーネント214を含む。スウィーパーコンポーネントは、任意の適切なコンポーネントとすることができ、制御プレーンの多様なコンポーネントに対するポーリングを行うか、または、別法により未処理の要求に応答して実行されるべき任意のタスクを決定するように動作可能である。本例において、ウェブサービス層は、管理データ記憶部222内における「データベース生成」要求についての命令もしくは情報、または類似のジョブキューを発行してもよく、スウィーパーは、未処理のジョブが無いかどうかについて管理データ記憶部を定期的に確認することができる。当業者にとって明らかであるものとして、多様な他のアプローチを用いることができる(例えば、ウェブサービス層が、スウィーパーに対し、ジョブが存在する旨の通知を送るなど)。スウィーパーコンポーネントは、「データベース生成」要求をピックアップすることができ、要求についての情報を用いて、要求、呼び出しまたは他のこのようなコマンドをワークフローコンポーネント216へと送ることができる。ワークフローコンポーネント216は、要求に対応する少なくとも1つのワークフローを開始するように動作可能である。一実施形態において、ワークフローは、本明細書中の他の箇所に記載されるワークフローサービスを用いて生成および維持される。ワークフローは一般的には一連のタスクであり、特定のジョブを行うために実行されるべきである。ワークフローは実際の作業ではないが、作業を抽象化したものであり、当該作業の情報のフローおよび実行を制御する。また、ワークフローは状態機械としてみなすこともでき、実行中の任意のタイミングにおけるプロセスの状態を管理および返送することができる。一実施形態において、ワークフローコンポーネント(またはシステムコンポーネント)は、タスク(例えば、レポジトリの生成、改変、および削除、回復、およびバックアップ、セキュリティグループの生成、削除、および改変、ユーザ認証情報の管理、キーローテーション、および認証情報管理)についてのワークフローのホスティングおよび実行を管理および/または実施するように、動作可能である。このようなワークフローは、本明細書中の他の箇所に記載されるようなワークフローサービスの上部において実行することが可能である。ワークフローコンポーネントはまた、異なるデータベースエンジン(例えば、MySQL)のために用いられるワークフローステップ間の差を管理することもできる。なぜならば、基本的ワークフローサービスは必ずしも変化しないからである。
本例において、ワークフローは、データベースを生成するためのワークフローテンプレートを用い、元々の要求から抽出された情報を適用して開始することができる。例えば、当該要求がMySQL(登録商標)関係データベース管理システム(RDBMS)インスタンスに関するものである場合、Oracle(登録商標)RDBMSまたは他のこのようなインスタンスとは対照的に、MySQLインスタンスに向けられたワークフローに特定のタスクが付加される。ワークフローコンポーネントはまた、要求された記憶量、任意の特定のハードウェア要件または他のこのようなタスクに関連する特定のタスクも選択することができる。これらのタスクは、ジョブ全体にとって有用な実行順序でワークフローへ付加することができる。いくつかのタスクを並行して行うこともできる一方で、最初に行われるべき以前のタスクに他のタスクが依存する場合もある。ワークフローコンポーネントまたはサービスは、ワークフロー内のこの情報を含むことができ、タスクを実行し、必要に応じて情報を送ることができる。
顧客のための例示的「データベース生成」ワークフローは、タスク(例えば、データ記憶インスタンスのプロビジョニング、オフインスタンスの永続的記憶のボリュームの割り当て、永続的記憶ボリュームのデータ記憶インスタンスへの割り当て)を含んでもよく、その後、データインスタンスへアクセスする、または別法で接続する際に顧客が利用することが可能な、DNSアドレスもしくは他のアドレス、ポート、インターフェース、または識別子を割り当てることおよび取り付けることを含んでもよい。本例において、インスタンスへのアクセスの際に用いられるDNSアドレスおよびポートアドレスがユーザに提供される。ワークフローは、特定のデータ記憶技術に用いられる任意の2進数または他の情報(例えば、MySQL)をダウンロードおよびインストールするタスクも含むことができる。ワークフローコンポーネントは、これらのタスクおよび任意の関連タスクまたはこのようなタスクの他の任意の適切な組み合わせの実行を管理することができ、データプレーン210内のデータ記憶インスタンスに実際に対応する「データベースの生成」に応答して、「データベース」の生成を示す要求に応答を生成することができ、インスタンスへのアクセスの際に用いられるDNSアドレスを提供する。その後、ユーザは、制御プレーン208にアクセスするかまたは制御プレーン208を経由する必要無く、DNSアドレスおよびポートを用いてデータ記憶インスタンスに直接アクセスすることができる。同様のジョブ(例えば、記憶量増加のための、1つ以上のデータ記憶インスタンスの削除、生成または改変)を行うために、多様な他のワークフローテンプレートが利用可能である。いくつかの実施形態において、ワークフロー情報は記憶部へと書き込まれ、少なくとも1つの別個の実行コンポーネント(図示せず)が、ワークフロー情報に基づいて実行されるべきタスクを牽引するか、または別法でアクセスもしくは受信する。例えば、プロビジョニングタスクを実行する専用プロビジョニングコンポーネントがあってもよく、このコンポーネントはワークフローコンポーネントによって呼び出されることはないかもしれないが、明らかとなるであろう複数の関連する様態のうちの任意の様態でタスクキューを監視するかまたはプロビジョニングタスクに関する情報を受信することができる。
上記したように、多様な実施形態は、プロセスまたはタスク(例えば、レポジトリのプロビジョニング)の現在の状態について要求または呼び出しを受信することができ、プロセスの現在の状態を返送することができる、ワークフローサービスの有利点を利用することができる。ワークフローコンポーネントおよび/またはワークフローサービスは、各タスクを行うための実際の呼び出しまたは要求は行わないが、しかしその代わりに、次に行われるべきタスクと、当該タスクに必要な任意の情報とを決定することができる、当該ワークフローについての状態情報および構成情報を管理する。その後、ワークフローコンポーネントおよび/またはワークフローサービスは、当該状態情報を含む適切な呼び出し(単数または複数)をデータプレーン内に生成し、これにより、データプレーンのコンポーネントは当該タスクを行うための呼び出しを行うことが可能になる。ワークフローおよびタスクは、スループットの増加および処理リソースの最大化のために、並行にスケジューリングすることが可能である。上述したように、実際のタスクの実施はデータプレーン内において行われるが、タスクは制御プレーンから発生するであろう。例えば、ワークフローコンポーネントは、データ記憶部内へ呼び出しを行うことができるホストマネージャと通信することができる。そのため、所与のタスクについて、特定のパラメータを送るワークフローサービスに対して呼び出しを行うことができ、これにより、ワークフローサービスは、現在の状態のためのタスクを実行することができるように、当該ワークフローのための一連のタスクを生成し、かつ現在の状態を提供する。タスクが実行された(または別法で解決されたまたは結論が出た)後、コンポーネント(例えば、ホストマネージャ)は、サービスに対して返答を出すことができ、その結果、ワークフローにおける次の状態に関する情報(例えば、次のタスクが実行可能)を提供することができる。ワークフローが完了するまで、ワークフローのためのタスクのうちの1つが行われるたびに、サービスは実行されるべき新規タスクを提供することができる。さらに、ワークフローの処理を加速させるために、異なるワークフローについて複数のスレッドを並行して実行することができる。
この実施形態において、制御プレーン208は、少なくとも1つの監視コンポーネント218も含む。データプレーン内においてデータインスタンスが生成されると、インスタンスに関する情報を制御プレーン内のデータ記憶部(例えば、監視データ記憶部220)内に書き込むことができる。監視データ記憶部は別個のデータ記憶部であってもよいし、あるいは別のデータ記憶部の一部であってもよい(例えば、管理データ記憶部222内の別個の1組の表、または他の適切なレポジトリ)ことが理解されるべきである。監視コンポーネントは、監視データ記憶部内の情報にアクセスして、データプレーン210内のアクティブインスタンス234を決定することができる。監視コンポーネントは、他のタスクを行うこともできる(例えば、制御プレーンおよび/またはデータプレーンの複数のコンポーネント(例えば、ウェブサービス層、ワークフローコンポーネント、スウィーパーコンポーネント、および多様なホストマネージャ)からのログおよび/またはイベント情報の収集)。このようなイベント情報を用いて、監視コンポーネントは、顧客向きのAPIの実行などの目的のために、顧客が視認可能なイベントを露出することができる。監視コンポーネントは、制御プレーンのために実行中の全てのレポジトリおよび/またはインスタンスの健康状態を常に監視し、これらのインスタンスのうちの任意のものの不具合を検出し、適切な回復プロセス(単数または複数)を開始することができる。
データプレーン内の各インスタンス234は、少なくとも1つのデータ記憶部226と、データ記憶部へのアクセスを提供するマシンのためのホストマネージャコンポーネン228とを含むことができる。一実施形態において、ホストマネージャはアプリケーションまたはソフトウェアエージェントであり、タスク(例えば、ソフトウェア展開動作およびデータ記憶動作、ならびにデータ記憶部および/または各インスタンスの状態の監視)を管理するようにプログラムされたインスタンスおよび/またはアプリケーションサーバー(例えば、TomcatまたはJavaアプリケーションサーバー)上において実行する。一実施形態において、ホストマネージャは、内部システムコンポーネントからしか到達することができずかつ顧客または他の外部エンティティからは利用できないポートをリッスンする。いくつかの実施形態において、ホストマネージャは、制御プレーン層内へのいかなる呼び出しも開始することができない。ホストマネージャは、タスク(例えば、新規レポジトリのためのインスタンスの設定(論理ボリュームおよびファイルシステムの設定を含む)、データベース2進数およびシードのインストール、レポジトリの開始または停止)の管理および/または実行を担当することができる。ホストマネージャは、データ記憶部の健康状態を監視することができ、それだけでなく、データ記憶部をエラー状態(例えば、I/Oエラーまたはデータ記憶エラー)について監視し、必要に応じてデータ記憶部を再開することができる。また、ホストマネージャは、ソフトウェアパッチのインストールを実行および/または管理し、データ記憶部および/またはオペレーティングシステムをアップグレードする。ホストマネージャは、関連メトリック(例えば、CPU、メモリおよびI/O使用法に関連する場合があるもの)を収集することもできる。
監視コンポーネントは、監視されているインスタンス234について、(例えば特定の要求の送信またはホストマネージャからの心拍の監視により)各ホストマネージャ228と定期的に通信することができ、これにより、各ホストの状態を決定することができる。一実施形態において、監視コンポーネントは、1組のイベントプロセッサ(または監視用サーバー)を含む。1組のイベントプロセッサ(または監視用サーバー)は、各ホストマネージャへコマンド(例えば、特定のホストおよび/またはインスタンスの状態を入手せよとのコマンド)を発行するように構成される。指定された数のリトライの後に応答が無い場合、監視コンポーネントは、問題があると判断することができ、当該インスタンスのためのアクション(例えば、問題の確認および必要ならばインスタンスの再プロビジョニング)を行うための情報を管理データ記憶部222または別のこのようなジョブキュー内に保存することができる。スウィーパーは、この情報にアクセスすることができ、不具合からの自動回復を試行するために、インスタンスのための回復ワークフローをキックオフすることができる。ホストマネージャ228は、制御プレーンの監視コンポーネントおよび他のコンポーネントのプロキシとして機能することができ、制御プレーンコンポーネントを代表してインスタンスのタスクを行う。場合によっては、インスタンスのうちの1つにおいて、自動解決できない問題が発生する(例えば、対応するホスト、インスタンスまたはボリュームの破壊、リブート、再開など)が発生するであろう。一実施形態において、これらのおよび他の顧客可視性イベントにログすることができる、ロギングコンポーネント(図示せず)がある。ロギングコンポーネントは、APIまたは他のこのようなインターフェースを含むことができ、これにより、あるインスタンスが一定期間にわたって利用不可能となっている場合、顧客が適切な「イベント」または類似のAPIを呼び出して、当該イベントに関する情報を入手することが可能となる。場合によっては、インスタンスに不具合が発生する場合、要求がペンディングのまま放置される場合がある。この実施形態における制御プレーンはデータプレーンから分離されているため、制御プレーンがデータ要求を受信することは絶対に無い。そのため、制御プレーンは、要求を後で提出できるように待ち行列に入れることはできない(ただし、いくつかの実施形態において、この情報は制御プレーンへ転送される可能性がある)。よって、この実施形態における制御プレーンは、不具合に関する情報をユーザへと提供し、これにより、ユーザは、要求を必要に応じて取り扱うことができる。
上述したように、インスタンスがプロビジョンされ、DNSアドレスまたは他のアドレスまたは場所がユーザに提供されると、ユーザは、ネットワークを通してJavaデータベース接続(JDBC)または他のこのようなクライアントを用いてデータプレーン210へ要求を「直接的に」送ることができ、これによりそのインスタンス234と直接相互作用することができる。一実施形態において、データプレーンは、コンピューティングクラウド環境、またはハードウェアコンポーネントおよび/またはソフトウェアコンポーネントの「クラウド」または動的ネットワークにわたるデータ記憶およびアクセスを提供する1組のウェブサービスおよびリソースの形態をとる(または少なくともこれらを含む、もしくはこれらはその一部である)。DNSアドレスは、このような動的クラウド環境において有用である。なぜならば、使用のために、任意の適切な交換用インスタンスに対するDNSアドレスをプログラムでリマップすることにより、例えばインスタンスまたは利用可能性における不具合をマスクすることが可能であるからである。ユーザ202またはアプリケーション204から受信された要求は、例えば、ネットワークアドレス変換(NAT)ルータ224または他の適切なコンポーネントへと送ることができる。ネットワークアドレス変換(NAT)ルータ224または他の適切なコンポーネントは、要求を実際のインスタンス234または要求のDNSに対応するホストへと送ることができる。上述したように、このようなアプローチにより、ユーザまたはアプリケーションがインスタンスへのアクセスに用いられるDNSまたは他のアドレスを変更する必要無しに、インスタンスを例えば動的に移動、更新、複製すること等が可能になる。上述したように、各インスタンス234はホストマネージャ228およびデータ記憶部226を含むことができ、少なくとも1つのバックアップインスタンスまたはコピーを永続的記憶部230内に有することができる。このようなアプローチを用いて、インスタンスが制御プレーンを通して構成された後、制御プレーン232へアクセスする必要無しに、ユーザ、アプリケーション、サービスまたはコンポーネントが(データプレーンに対する要求を通して)インスタンスと直接相互作用することが可能になる。例えば、ユーザは、インスタンス中のデータに関連する構造化照会言語(SQL)または他のこのようなコマンドを、DNSアドレスを通して直接発行することができる。ユーザは、タスク(例えば、インスタンスの記憶容量の拡張)を行いたいとき、制御プレーンにアクセスするだけでよい。少なくとも1つの実施形態において、制御プレーン208の機能性は、プロバイダにより、少なくとも1つのサービスとして提供することができる。少なくとも1つのサービスは、データプレーン210のプロバイダに関連する場合もしない場合もあるが、単にデータプレーン内のデータインスタンスのプロビジョンおよび管理に利用可能な第3者サービスである場合もあり、別個のデータプレーン210内におけるこれらのインスタンスの利用可能性を監視および保証することもできる。
上述したように、制御プレーンの機能性をウェブサービスまたは他のこのようなサービスとして提供することの1つの利点は、制御プレーンが仮想データベース管理者(DBA)として機能し、タスク(例えば、データのプロビジョニング)を行うための人間DBAの必要性を回避する点である。データのプロビジョニングは現在、必要な構成情報の受信、構成が有効であるか否かの判定、インスタンスの最適化およびチューニング、ならびに他のこのようなタスクの実行のためにDBAを必要とする、面倒な手作業の手順であり、大量の時間および労力を使う。さらに、このようなアプローチは、データ損失後にしか発見されないかもしれないエラーの発生の可能性が高い。本明細書中に記載のような制御プレーンまたはサービスを用いれば、ユーザまたは顧客は、その代わりに、情報(例えば、ハードウェアの種類およびデータベース製品のバージョン)を含む呼び出しを提出することができる。その後、制御プレーンまたはサービスは、データ記憶部またはデータ記憶インスタンスを生成、削除、改変、拡張、または別法により改変するための必要なタスクを行うことができる。制御プレーンはまた、DBAが各エンジンにおける専門家として機能することを必要とすること無しに、いくつかの異なるデータベースエンジンを一貫した様式でサポートすることもできる。プロビジョンされると、ユーザは、データインスタンス(単数または複数)へのネーティブアクセスを有し、特定のインスタンスについて、単に既存のアプリケーション(例えば、MySQLアプリケーション)をDNSアドレスまたは他の場所情報に指定することができる。クエリーモデルまたは他のこのような機能性の制限または改変は無い。なぜならば、ユーザは、MySQL、Oracleまたは他のデータベース技術上に構築されたアプリケーションを継続して利用することができるからである。
データ記憶部、データ記憶インスタンス、または顧客のための他のデータリソースをプロビジョニングする場合、少なくともいくつかの実施形態における制御プレーンコンポーネントは、データインスタンスの設定に用いられる初期の構成パラメータの組を提供する。このようなデフォルトパラメータグループのパラメータとしては、例えば、バッファキャッシュの割り当て設定、クエリータイムアウト設定、接続タイムアウト設定、および/または他のこのような動作パラメータまたは構成パラメータを挙げることができる。いくつかの実施形態において、制御プレーンの管理コンポーネントは、データベース設定に用いるための最適なまたは少なくともデフォルトのパラメータ値の組を選択または決定する。選択されたパラメータは、複数の要素(例えば、ユーザ、データベースの種類、用いられるアプリケーションの種類、または必要なアクセス等)のうちのいずれかに依存することができる。
クラウドコンピューティングまたは類似のスケーラブルなリソース環境においては、デフォルトまたは初期の構成パラメータの組を多様な実施形態において提供することが特に重要である可能性がある。なぜならば、顧客は、データインスタンスの開始、記憶のスケーリング、および/またはリソースの処理等を含む、データベースをオンデマンドでを操作する能力を有することができるからである。顧客は、例えば、1つ以上のデータインスタンスを指定されたインスタンスクラス記憶空間内に生成し、当該インスタンスがもはや不要となった場合、これらのインスタンスを削除することができる。このような実施形態において、システムは、デフォルト構成パラメータの組をインスタンスクラスについて生成することができ、これにより、当該クラス内に生成された任意のインスタンスは、それらに適用されるデフォルトパラメータグループを有することになる。
多くの場合、生成されたデフォルトパラメータは、多様なインスタンスに対して最適化されるか、または少なくとも適切または受容可能となる。しかしながら、特定の利用形態があってもよく、性能、利用可能性または他のこのような態様を向上または別法により調節するために、顧客がパラメータのうちの1つ以上を調節したいと望む場合がある。例えば、特定のアプリケーションはキャッシュ使用頻度が極めて高い場合があり、顧客が1つ以上のデータベースに対するキャッシュ割り当てを増加することを望む場合がある。顧客は、パラメータの調節を、インスタンス生成の前、または既存インスタンスが実行されている間に行うことを望む場合がある。いくつかの場合において、本明細書中の他の箇所に詳細に記載されるように、データインスタンスが再開またはリブートした場合にのみパラメータは変更することができる。
多様な実施形態によるシステムおよび方法は、1つ以上の顧客露出型インターフェースを提供することにより、これらのおよび他のかかる問題のうちの少なくとも一部を解消する。顧客露出型インターフェースは、データインスタンス、データ記憶部などのためにパラメータを調節、更新、または別法によりカスタマイズするために、顧客が制御プレーンに呼び出しを行うことを可能にする。MySQLがデータベースエンジンとして用いられる一実施形態において、例えば、ユーザは、調節されたパラメータ(単数または複数)を含む更新されたパラメータグループまたは改変されたパラメータグループを提出することにより、MySQL構成パラメータを調節する能力を持つことができる。複数のデータベースエンジンが用いられる実施形態において、ユーザは、エンジン特有の呼び出しおよび/または更新を行うことができ、または、インスタンスに対応する特定のエンジンに対して制御プレーンにより変換または別法により処理することができる、一般的更新または呼び出しを行うことができる。このようなアプローチを用いて、ユーザは、顧客作業負荷、アプリケーションの種類などに応じて、データインスタンスのパラメータまたはデータインスタンスのグループをカスタマイズまたはチューニングすることができる。デフォルトパラメータグループがインスタンスのグループまたはクラスに適用される場合、例えば、ユーザは、各対応するインスタンスに自動適用することができる更新済みパラメータグループを提出することができる。最大負荷期間の間、例えば、顧客は、バッファキャッシュ設定、クエリータイムアウト設定、または接続タイムアウト設定を調節したいと望む場合がある。多様な実施形態において、顧客は、新規パラメータ値(単数または複数)、新規値(単数または複数)等を含む値の全ての組を指定することができる。多様な他のパラメータも同様にカスタマイズ可能であり、カスタマイズされた値は必要に応じて経時的に更新することが可能である。
多様な実施形態は、ユーザが、多様なRDSデータベースのデータベースパラメータを構成することができる、1つ以上のこのようなインターフェースを提供する(例えば、1組のアプリケーションプログラミングインターフェース(API))。一実施形態において、「エンジンにとらわれない」(すなわち、任意のサポートされたデータベースエンジンに対して利用可能)、1組の適切な抽象化を利用している、1つ以上の構成APIが提供される。例えば、顧客は、同一APIを用いて、MySQLデータベースおよびOracleデータベースに関する接続タイムアウト設定を調節することができる。多様な実施形態において、ユーザは、APIのうちの1つに対してウェブサービス呼び出しを送ることができ、呼び出し中の情報は、例えば、制御プレーンウェブインターフェース層に対するウェブサービス呼び出しを処理するための上述したアプローチと同様のアプローチを用いて処理される。
上述したように、制御プレーン内のワークフローは、データセット生成要求に応答してインスタンス化することが可能であり、インスタンス記憶空間がデータプレーン内に設立され、適切なパッケージマネージャ(例えば、RPM)またはホストマネージャが適用される。生成時の間、ワークフローは、制御プレーン内のまたは制御プレーンからアクセス可能な構成ファイル、管理データ記憶部または他の適切な記憶場所からの情報を用いてデフォルト構成設定を牽引および/または生成するタスクを行うことができ、これらの設定を用いて、データ環境内の各インスタンスに適用することが可能なデフォルトパラメータグループを生成することができる。いくつかの実施形態において、パラメータは、ウェブサービス呼び出しからの情報、ユーザについて保存された情報、生成されているインスタンスの種類についての情報などを用いて、動的に生成または決定される。他の実施形態において、高度にチューニングされた1組以上のデータベース設定を制御プレーン内の適切な場所に保存することができ、ワークフローは、現在のタスクに対して適用される適切な組のうちの選択されたものへと方向付けることができる。いくつかの実施形態において、データベースを開始するためにデータベースエンジンによって用いられる、構成ファイルが、データプレーン内に保存される。上述したように、構成ファイルは、パラメータ(例えば、クエリー結果のために割り当てられるキャッシュ量、割り当てられるバッファキャッシュ量、用いられる接続タイムアウト値など)を含んでもよい。しかしながら、上述したように、これらのパラメータは、任意の所与の時点において顧客にとって最適ではないかまたは少なくとも好適ではない場合がある。クラウドコンピューティングまたは従来のRDSシステムにおいて、構成ファイルを編集する能力およびデータベースを再開する能力は、一般的にユーザに対しては、アクセス可能ではない。ユーザは、単にデータプレーン内のデータインスタンスにログオンするため、およびその態様を改変するために、制御プレーンのインターフェースを利用することはできない。
多様な実施形態によるシステムおよび方法により、ユーザが任意の数の呼び出しを制御プレーンに対して行って、任意の適切なデータパラメータ(単数または複数)の改変をウェブサービスAPIまたは他のこのようなインターフェースを介して行うことが可能になる、APIベースの内部フレームワーク(または他のインターフェースフレームワーク)が提供される。例えば、ユーザは、ウェブサービス呼び出し(例えば、「ModifyMyDBParams」)を適切なAPIに対して行って、各インスタンス(単数または複数)のための改変可能な構成パラメータのうちの任意のものを改変することができる。一実施形態において、顧客は、特定の顧客、グループ、クラス、アプリケーションなどに関するデータインスタンスを生成する際に用いられるべき特定のパラメータ値またはパラメータグループを保存するためのものである、コンテナ(本明細書中、「DBパラメータグループ」と呼ぶ)を生成することができる。顧客は、データベースインスタンスの生成時に用いられる、これらのパラメータグループのうちの1つ以上を(例えば、データベースエンジンについて用いられるべきいくつかのまたは全てのパラメータ、または、指定された値がRDSによって割り当てられたデフォルト値(例えば、default.mysql)の代わりに用いられるべき、少なくともそれらのパラメータを含んでもよいもの)、選択または指定することができる。上述したように、RDSによって提供されるデフォルト値は、顧客、アプリケーション、エンジンなどにとって最適かつ/または適切なデフォルト設定として、RDSシステムまたはその許可されたユーザによって決定することができる。しかし、顧客に対して構成ファイルまたはバケットが存在する場合、RDSは、当該顧客に対するインスタンスを生成する際、当該構成ファイルからの値を代替的に(または追加的に)用いるように構成することができる。
顧客は、データベースインスタンスの生成において用いられるべき構成パラメータを指定できるだけでなく、既存のインスタンスのためのパラメータを調節する能力も望んでもよい。例えば、顧客は、要素(例えば、作業負荷または性能)に基づいて、より大量のメモリを各クエリーキャッシュに割り当てることが有利であるように、アプリケーションを高度にキャッシュ可能である場合があると判断してもよい。クエリーキャッシュサイズを増やすために、ユーザは、呼び出し(例えば、「ModifyDBParameterGroup」)を発行することができる。この呼び出しは、制御プレーンのウェブサービス層の適切なAPIによって受信される可能性があり、ウェブサービス層は、呼び出しを処理して、適切なタスク情報を管理データ記憶部または別の適切なジョブキュー内に配置することができる。スウィーパーコンポーネントは、タスクをジョブキュー内に配置するときに、実行されるべき適切なタスク(例えば、要求、呼び出しまたは他のこのようなコマンドを、当該要求のために少なくとも1つのワークフローをインスタンス化するように動作することが可能なワークフローコンポーネントへと送信するタスク)を決定することができる。その後、ワークフローマネージャは、適切なコンポーネント(例えば、データプレーン内のデータインスタンスのホストマネージャ)と共に機能して、パラメータグループ(単数または複数)内の値を更新し、更新または改変されたパラメータグループ(単数または複数)を対応するインスタンス(単数または複数)に適用することができる。いくつかの実施形態において、顧客は、複数のパラメータグループ(例えば、「ピーク」設定および「オフピーク」設定を含んでもよいなどの)を指定することができ、ユーザは、パラメータグループのうちの1つを特定の時期に適用させるための呼び出しを行うことにより、設定を変更することができる。他の実施形態において、顧客は、特定の期間にわたって変更を行う場合があるが、後で元々の設定またはデフォルト設定に戻ることを望む場合がある。多様な実施形態は、パラメータグループと関連付けられたパラメータのうちの1つ以上をRDSデフォルト(または他のデフォルト値)へと調節して戻すことができる呼び出し(例えば、「ResetDBParamaterGroup」)を、APIに提供する。このようなリセット値は、例えばデータベースインスタンスの性能が低下しており、インスタンスを適切な性能レベルに戻そうと試みることを顧客が望む場合にも利用することが可能である。
顧客が要求(例えば、ModifyMyDBParams呼び出しまたはModifyDBパラメータGroup呼び出し)を適切なAPIへと提出すると、改変されたパラメータグループを、制御プレーン内の新規のバージョン番号に割り当てることができる。ワークフローは、この新規バージョンを、この新規バージョンが適用されるべき適切なインスタンス(単数または複数)のホストマネージャへと送らせるようにすることができる。新規バージョンがホストマネージャへと送られると、例えば、新規バージョン番号を状態値(例えば、「Updating」または「Not_InSync」)と共に管理データ記憶部内に保存することができ、これにより、更新されたパラメータグループを有するインスタンスの状態をクエリーしているユーザは、情報(例えば、現在のバージョン番号、適用されている新規バージョン番号、および新規バージョンが適用されていることを示す情報)を含むことができる応答を受信することができる。インスタンスのホストマネージャが新規パラメータグループを順調に適用した場合、ホストマネージャは、データ環境内の現在のバージョン情報を更新することができる。ホストマネージャの状態を定期的に確認している監視コンポーネントは、新規バージョン番号をピックアップし、管理データ記憶部内に保存されている情報を更新して、パラメータグループの新規バージョンが今や現在のバージョンとなっていることを示すことができ、状態を、「IN_SYNC」などのような状態に更新することができる。その後、状態をクエリーしている顧客は、新規バージョンが適用されておりアクティブになっていると判断することができる。いくつかの実施形態において、新規パラメータグループが連続的に適用されている場合、通知を制御プレーンを介して顧客に送ることができる。
顧客がパラメータグループ、バケット、構成ファイルまたは他のこのような要素を利用することによる利点は、顧客が各インスタンスを別個にチューニングする必要が無くなることである。顧客がパラメータグループまたは変更をフリート、クラスなどの全体に単純に適用することができ、かつ全ての適切なインスタンスが、更新されたパラメータ値を自動的に受信することができるように、抽象化レベルを提供することができる。このようなプロセスは、例えば、複数のデータベースが1つのアプリケーションを実行するために用いられ、かつ当該アプリケーションに対してこれらのデータベース全てを同時にかつ同じ様態でチューニングすることが望ましい場合、有利となる可能性がある。いくつかの場合において、異なる種類のデータベースをアプリケーションに用いることができ、これにより、抽象化レベルをさらに有利にすることができる。なぜならば、制御プレーンによってエンジン間の差を自動的に取り扱うことができるため、アプリケーションに用いられる各データベースエンジンを顧客が別個にチューニングする必要が無くなるからである。さらに、制御プレーンはエンジン依存型変換を取り扱うことができるため、エンジンに依存しない単一の組のツールを利用することができる。
上述したようなコンポーネントを用いて、図3は、一実施形態による例示的プロセス300を示す。プロセス300により、顧客は、制御プレーンまたは類似のデータ制御サービスを用いて、データベース、データインスタンス、データレポジトリまたはデータ環境(ここでは、データプレーン)内の他のこのようなデータソースの生成において用いられるべきパラメータ値の指定および/または改変を要求することができる。本明細書中、「顧客」という用語は、データの「所有者」あるいはRDSシステムによってホストされるデータ記憶部またはインスタンスを指すものとして用いられるが、「顧客」という用語は一例にすぎず、任意の適切なユーザまたは開発者が多様な実施形態において制御プレーンおよびデータプレーンにアクセスすることが可能であることが理解されるべきである。さらに、データ環境の制御に関連する実施形態について説明するが、類似のアプローチを、制御環境と分離された環境内の多様な他のコンポーネント、デバイス、アプリケーション、サービスまたは他のこのようなリソースの制御および/または管理に用いることが可能であることが理解されるべきである。
例示的プロセスにおいて、データプレーン内においてデータインスタンスを生成する能力が顧客に付与される(302)。これは、顧客と連動してまたは顧客から独立して(例えば、顧客からの要求に応答して)行うことができる。初期顧客構成プロセスの一部として、デフォルトパラメータ値のリストを含む、パラメータグループまたは「仮想コンテナ」が顧客のために生成される(304)。コンテナは、後のアクセスのために制御プレーンデータ記憶部内に保存され、特定の顧客、顧客グループ、顧客種類などに(例えば、データ記録またはキーなどによって)結び付けられる。デフォルト値は、使用種類、データベースエンジン、アプリケーションなどに適したものとして、RDSコンポーネントによって選択される。
顧客は、デフォルトパラメータ値設定を決定するために、制御プレーンを呼び出すことができる。顧客は、その顧客のために生成された任意のデータインスタンスのために、値のうちの少なくとも1つを変更すべきであると決定してもよい。そのため、要求(例えば、ウェブサービス呼び出し)を、複数の制御プレーンAPIまたは他のこのような顧客向きプレーンインターフェースコンポーネントのうちの1つを通して顧客から受信することができる(306)。一実施形態において、顧客は、「ModifyDBParameterGroup」APIを呼び出して、値(単数または複数)の変更を示すことができる。要求は分析され、要求の処理に必要な何らかのアクションが決定される(308)。上述したように、これは、ウェブサービス層のコンポーネントの形態をとることができ、要求を解析して、必要とされるアクション(単数または複数)を決定する。要求を受信するAPIが行われるべき特定のアクションに対応する実施形態において、ウェブサービス層は、行われるべきアクションの態様またはパラメータの決定に用いられるべき情報を要求から抽出することができる。一実施形態において、制御プレーンデータ記憶部内のパラメータ情報は直接更新可能であり、一方で、他の実施形態において、制御プレーンデータ記憶部(または例えば構成ファイル)に対して更新されるべき情報が、ジョブキュー(例えば、管理データ記憶部または他のこのような記憶場所内にある場合があるもの)に書き込まれる(310)。ジョブキューは、ジョブ情報の存在を決定するために例えばスウィーパーコンポーネントなどのようなものによって監視することができ、ジョブ情報が検出されると(312)、要求されたアクションのためにワークフローを開始するための要求を送ることができる(314)。これは、スウィーパーコンポーネントによってワークフローコンポーネントへと送られた要求および/またはワークフローをインスタンス化するためのサービスを含むことができる。他の実施形態において、ワークフローコンポーネントは、ジョブについてジョブキューを監視してもよく、あるいは、ウェブサービス層のコンポーネントはジョブ情報を直接ワークフローコンポーネントへと送ってもよい。ジョブ情報が受信されると、情報は解析されて、要求されたアクションに適したワークフローが決定および/または組み立てられる(316)。本例において、ワークフローは、単一のタスク(例えば、制御プレーンデータ記憶部内のユーザに対する保存されたパラメータ値情報の更新)を含んでもよい。他の実施形態において、ワークフローは、さらなるタスクおよび/または代替のタスク(例えば、構成ファイルが適用されるデータプレーン内で生成されたデータインスタンスについて最終的にインストールされる構成ファイルの生成)を含んでもよい。他の実施形態において、類似の機能性を実行するために、多様な他のタスクを含み、かつ実行することが可能である。
図4は、一実施形態による、更新された(または他の)構成情報を用いてデータインスタンスをデータプレーン内に生成する例示的プロセス400のステップを示す。本例において、要求(例えば、ウェブサービス呼び出し)は、複数の制御プレーンAPIまたは他のこのような顧客向き制御プレーンインターフェースコンポーネントのうちの1つを通して受信することができ、これによりデータインスタンスが生成される(402)。一実施形態において、顧客またはアプリケーションは、「CreateDBInstance」APIを呼び出して、生成されるべきインスタンス(単数または複数)を示すことができる。要求は分析され、これにより、要求の処理に必要な任意のアクションが決定され(404)、生成のための情報がジョブキューに書き込まれる(406)。ジョブキューを監視しているスウィーパーコンポーネントは、ジョブ情報の存在を決定して(408)、要求されたアクション(単数または複数)のためのワークフローを開始するための要求を送ることができる(410)。ジョブ情報が分析されて、要求されたアクションのための適切なワークフローが決定および/または組み立てられる(412)。このワークフローは、タスク(例えば、RDSデータベースインスタンスをプロビジョンするタスク、任意の必要な記憶ボリュームを生成するタスク、データベースをインストールするタスク、インスタンスについてホストマネージャと接触して、インスタンスのために用いられるべき設定パラメータグループを特定するタスク、構成情報をデータプレーン内のディスク上に保存するタスクなど)を含むことができる。上述したように、要素(例えば、要求されるアクションの種類、要求のパラメータ、および使用されているデータベースエンジンの種類)に基づいて、ワークフローについて異なるタスクを選択することが可能である。本例において、制御プレーンは、ワークフローを介して、構成ファイルの生成(414)、データプレーン内のインスタンスのための構成ファイルのインストール(416)、およびインストールされた構成ファイルからのパラメータ値を用いたデータベースインスタンスの開始(418)においてパラメータリストが用いられるように方向付けることができる。
上述したように、状態情報を、行われるべきタスクを状態情報を用いて決定し、データレポジトリおよび/またはデータインスタンスについてタスクを行い、タスクの完了時に応答を返すように動作可能であるデータ環境内のホストマネージャへと送ることにより、ワークフローの第1のタスクから開始するタスクを部分的に管理することができる。応答が受信されると、ワークフローコンポーネントは、行われるべき別のタスクがあるかどうかを決定することができる。行われるべき別のタスクがある場合、次のタスクに関する状態情報がホストマネージャへと送られ、そのタスクの完了時に、ホストマネージャは、応答をワークフローコンポーネントに送る。最終タスクが完了した後、要求されたアクションが完了した旨を示すメッセージを要求元の顧客(または別の適切なユーザ、アプリケーションまたは場所)へと送ることができる。アクションが実行された後、顧客は、制御プレーンへのアクセスまたは制御プレーンの経由無しで、データ環境のデータインターフェースを用いてアクションが行われたデータインスタンスに直接アクセスすることができる。
しかし、1つ以上のインスタンスがアップされ実行されている場合でも、顧客は、構成パラメータのうちの1つ以上を調節することを望む場合がある。例えば、顧客は、現在の作業負荷レベルに基づいてクエリータイムアウト設定を調節することを望む場合がある。図5は、多様な実施形態に従って利用することが可能なインスタンスの実行のためのパラメータを更新するためのプロセス500の一例を示す。本例において、データベースパラメータの値の変更(例えば、クエリータイムアウトの10秒から15秒への変更)を示す要求を制御プレーンAPI(例えば、「ModifyDBParameterGroup」API)を通して受信することができる(502)。要求は解析されて、要求の処理に必要な任意のアクションが決定され(504)、その生成のための情報がジョブキューに書き込まれる(506)。更新されたパラメータ値情報は、(直接的にまたはジョブキューまたはその結果得られたワークフロー内のタスクとして)制御プレーン内のデータ記憶部へと保存することができる(508)。ジョブキューを監視しているスウィーパーコンポーネントは、ジョブ情報の存在を決定することができ(510)、少なくともいくつかの実施形態において、要求されたアクション(単数または複数)のためにワークフローを開始するための要求を送ることができる。ジョブ情報は分析されて、要求されたアクションに適したワークフローが決定および/または組み立てられる(512)。ワークフローのタスクとして、制御プレーンは、1つ以上の指定されたパラメータグループと関連付けられた各データインスタンスのホストマネージャを呼び出して、更新された構成ファイルをインストールさせることができる(514)。更新についての応答を各ホストマネージャから返送してもらうことができ(516)、全インスタンスが要求された変更を成功裏に受容したか否かを示す応答を顧客に送ることができる(518)。
しかし、いくつかの場合において、ワークフローのタスクは、更新中のパラメータ(単数または複数)の種類(単数または複数)に少なくとも部分的に依存する場合がある。例えば、多くのデータベースは、「静的な」パラメータおよび「動的な」パラメータを含む少なくとも2つの種類のパラメータを有する。ワークフロータスクが、更新された動的パラメータ(単数または複数)をホストマネージャに実質的に当該要求時に適用させることが可能であるように、動的パラメータは実行時間において設定することができる。静的パラメータは、データベースのスタートアッププロセス(例えば、クエリータイムアウト)の間にのみ設定することが可能であり、データベースの実行中には設定することが不可能なパラメータを含む。ワークフローのタスクのうちの1つに起因して新規構成ファイルがインスタンスのためにデータプレーン内に保存され、静的パラメータに対する変更が設けられた場合、データベースは、データベースがリブートされるまで、変更をピックアップおよび/または変更しないことになる。いくつかの実施形態および/またはインスタンスにおいて、ワークフローは、データベースをデータプレーン内においてリブートさせるための明示的なリブートタスクを発行することができる。これは、許可を得るために顧客に接触する、または別法により許可を得た(例えば、要求の受信の一部として許可を得た)後にデータベースをリブートするワークフローを含むことができる。他の実施形態および/または状況において、構成ファイルはデータプレーン内に保存することができ、任意の更新された静的パラメータ値が後続するリブート時に適用される。いくつかの実施形態において、ユーザは、データプレーン内におけるリブートを強制または要求するための明示的なウェブサービス呼び出しを適切なAPIへと発行することができる。他の場合、クラッシュ、予定されたリブートなどの結果リブートが発生した際に、変更が行われることになる。
いくつかの実施形態において、パラメータの種類は、フィールド、フラグまたは他のこのようなアプローチによって示され、他の実施形態において、グローバルリストにより、どのパラメータが静的なパラメータであり、どのパラメータが動的なパラメータであるかが示される。パラメータの種類はデータベースエンジンによって決定され、静的パラメータのうちの少なくともいくつかが制御プレーンによって定義される。いくつかの実施形態において、「種類」の代わりに、制御プレーンは、「適用方法」または類似のパラメータを利用して、パラメータ値を即時に適用すべきかまたはシステムはリブートのために待機させるべきかを示す。適用方法によってリブートが指定された場合、明示的なリブートを要求する選択肢をユーザが有している旨がユーザに通知される可能性がある。いくつかの場合において、リブートは、初期更新パラメータ呼び出しの一部として指定することができ、あるいは、合意により、静的パラメータを変更すべき旨が示された場合毎にシステムをワークフローの一部としてリブートすべきであると指定することも可能である。
いくつかの実施形態において、上述したように、制御プレーンの監視コンポーネントは、データインスタンスのホストマネージャと定期的に通信することができる。このような定期的通信を用いて、監視コンポーネントは、それぞれのホストマネージャのうちの1つ以上から受信されたイベントまたは通信に基づいていつデータベースがリブートしたかを決定することができる。監視コンポーネントは、リブートに関する情報(例えば、適用されている新規構成ファイルの現在のバージョン番号)を抽出することができ、情報を適切な制御プレーンデータ記憶部内において更新することができる。例えば、リブート時において静的パラメータに対して更新を行うべきであった場合、制御プレーンデータ記憶部内のパラメータは、「ペンディング」の値またはこれと関連付けられた類似の値を持っていた可能性がある。データベースがリブートされ、新規パラメータ値が適用されると、パラメータ値は、例えば「現在の」または「適用済み」に更新することができる。他の場合、リブートが検出されたときに、各パラメータ値をバージョン番号と関連付けることができ、構成ファイルの現在のバージョン番号を更新することができる。顧客は、ウェブサービス呼び出しを例えば適切なAPIへと送ることにより、現在のパラメータ値を要求する能力を有することができる。
顧客は多様なデータインスタンスの多様な動作パラメータまたは構成パラメータを変更する能力を望むことができる一方、プロバイダは一般的には、利用可能性および性能について満たされるべき特定の保証を持つ。そのため、少なくともいくつかの実施形態において、データインスタンスの利用可能性および/または性能に大きな悪影響を与え得る変更を顧客が加えることを回避することが望ましい場合がある。いくつかの実施形態において、利用可能性に影響を与え得るパラメータは、顧客による変更ができないように制限される場合がある。他の実施形態において、多様なこのようなパラメータは顧客によって変更可能であるが、プロバイダは、顧客が従わなければならない範囲または値の組を規定することができる。この値の一定範囲は、全ての顧客およびアプリケーションに対して同一とすることができ、あるいは、使用例によって変化させることもできる(例えば、特定の顧客が「好ましい顧客」であるか、あるいは、顧客が多様なパラメータを変更した場合に発生し得る特定の結果について当該顧客が同意しているなど)。いくつかの実施形態において、顧客は、API(例えば、「DecribeEngineDefaultParameter」)を呼び出すことができ、これにより、顧客は、情報(例えば、RDSシステムによってサポートされているパラメータのリスト、特定のエンジン(例えば、MySQL)のためのパラメータ、各パラメータの現在の値、デフォルト値および/またはペンディング値、各パラメータの種類(例えば、静的または動的)、各パラメータが改変可能であるか、および改変可能なパラメータのうちの少なくともいくつかの許容範囲または値、ならびに他のこのような情報、ならびに改変可能なパラメータ)を得ることができる。いくつかの実施形態において、値が受容可能な範囲内に確実に収まるようにするために、変更すべきものとして要求されたパラメータ値のうちの少なくともいくつかは、適用される前に明示的に有効化される。
いくつかの実施形態において、顧客および/またはプロバイダは、データインスタンス、インスタンスクラスなどのために用いられるべきパラメータ値のスケジュールを指定することができる。例えば、顧客は、日中は大量のユーザトラフィックを持つ場合がある一方、夜間はごく少量のトラフィックしか持たないため、大量でありかつ/またはキャッシュ密度の高い作業を夜間に実行することを選択する場合がある。このような例において、顧客は、日中は異なる接続タイムアウト値を持ち、特定のアプリケーションの実行が予定されている夜間の時間は異なるキャッシュ割り当てを持つことを望む場合がある。他の場合、複数の理由(例えば、平日対週末、休日または長期休暇など)のうちの任意の理由に起因してトラフィックまたは作業負荷が変動する場合がある。そのため、スケジュールが制御プレーン内に保存される場合がある。スケジュールにより、ワークフローコンポーネントは、現在の構成ファイルにおける変更を適切なホストマネージャ(単数または複数)に適切なタイミングで通信する。いくつかの場合において、パラメータが設定値間において頻繁に(例えば、毎日)変化する。その場合、ワークフローコンポーネントは、バージョン番号の変更をホストマネージャに連絡するだけでよいように、複数のバージョンの構成ファイルをデータプレーン内に保存しておく。このようなアプローチにより、変更が行われるたびにパラメータ値情報を送る必要性が無くなる。
いくつかの実施形態において、顧客は、1つ以上のパラメータについて固定値の代わりに割合、パーセンテージまたは他の相対的値を選択することができる。例えば、顧客は、割り当てられたバッファキャッシュを現在の作業負荷または割り当てに比例することを望んでもよい。このような例において、顧客は、バッファキャッシュは割り当てられた記憶のうちの25%であるべきである、実行中のメモリのインスタンスのうちの25%であるべきである、等々と指定することができる。制御プレーンのコンポーネントは、現在の割り当てなどに基づいて適切な値を決定し、必要に応じて調節を行うことができる。いくつかの場合において、特定の時期または間隔において値の変更が可能であり、一方でいくつかの実施形態において値を監視し、かつ更新を持続的に行うことが可能である。一時的スパイクまたはグリッチに起因する過度な変更(単数)および/または変更(複数)を回避するために、複数の以前の間隔にわたる値を平均化するなどにより、特定量だけの割り当て変更が特定の期間にわたって行われた後に変更を行うことができる。RDSにより顧客がアクション(例えば、多様なインスタンスのスケーリングまたはより多数の記憶空間をオンザフライで追加すること)を行うことが可能になるため、固定値の代わりに範囲またはパーセンテージを指定した方が有利である可能性がある。したがって、例えば、顧客が計算ノードを小型ノードから大型ノードに変更する場合、顧客は中に入って多様なパラメータについて調節する必要は無い。なぜならば、RDSがユーザ入力に基づいて適切な値を決定し、パラメータ値を必要に応じて自動変更または「オートスケール」することができるからである。
上述したように、いくつかの実施形態において、顧客は、複数のパラメータグループ(例えば、異なる時期において、異なるアプリケーションのために、異なるインスタンスクラスのために、等々に用いられるグループ)を指定する能力を有することができる。そのため、パラメータのうちの少なくともいくつかが、解消するべき矛盾を潜在的に生じる可能性がある異なるグループにおいて指定された異なる値を有することになる危険性がある。例えば、あるアプリケーションが1日のうちの特定の時間に実行されている場合、当該アプリケーションに対するパラメータグループおよび当該時間に対するパラメータグループが存在する場合があり、システムは、これらのパラメータグループの和集合をとって、現在の時間に適用することができる。一実施形態において、顧客により明示的に設定された任意のパラメータ値は、当該パラメータのデフォルト値に対して優先権を取る。他の場合、より最近に指定された値が優先権を取ることができる。いくつかの場合において、例えば悪影響の可能性を最小限にするために、2つの値のうちより控えめな値が選択される可能性がある。いくつかの場合において、性能を一定期間にわたって監視することができ、システムが適切に機能している場合、より控えめではない値を一定期間にわたって適用することができる、中間値を適用することができる、等々。他にも当該分野において公知の多様な矛盾解消アプローチが利用可能であり、あるいは、後に同様の目的のために開発される。
いくつかの実施形態において、制御プレーンの監視コンポーネントは、フィードバックループの一部として機能することができる。なぜならば、監視コンポーネント(または制御プレーンの類似のコンポーネント)は、ホストマネージャ(単数または複数)から性能情報を定期的に受信することができ、これにより、制御プレーンは、性能情報を分析し、多様なパラメータに対して行うべき任意の調節を行うことができるからである。このような調節は、例えばスケジュールまたは指定されたパーセンテージもしくは範囲に従って行うことができ、あるいは、例えばプロバイダが性能または利用可能性を最適化するように選択した1つ以上のアルゴリズムに従って行うこともできる。例えば作業負荷が高い期間においては、接続タイムアウトを増加しておくことが望ましく、利用可能なキャッシュが少なくなっている場合は、キャッシュ量を調節する必要があるかもしれない、等々。また、特定の顧客、アプリケーションなどに対して適用される多様な規則または方針に従って調節を行うことも可能である。いくつかの実施形態において、動的パラメータを自動調節することができるが、静的パラメータの変更については顧客に提案を行うことができる。なぜならば、静的パラメータを変更するには、データインスタンスのリブート(および一時的な利用不可能性)が必要になる可能性があるからである。
図6は、例示的プロセス600を示す。例示的プロセス600により、制御プレーンまたは制御サービスは、データ環境内のデータインスタンス(またはデータ記憶部、レポジトリなど)の性能を監視することができる。状態に関する要求が、制御プレーンからデータインスタンスのホストマネージャコンポーネントへと送られる(602)。指定された期間内に応答が受信されたかについて判定する(604)。応答が受信されなかった場合、要求の閾値が送られたかについて決定する(606)。要求の閾値が送られていない場合、別の要求が送られる可能性がある(608)。応答メッセージが受信された場合、応答を分析して、何らかのアクション(例えば、対処すべき何らかのエラーまたはタスクがあるか、パラメータ値を調節すべき旨を示す性能情報があるか、または現在のパラメータグループのバージョン番号が変えられているか)を行う必要があるかどうかを判定する(610)。そのような必要が無く、かつ当該インスタンスを健康であると判断される場合、プロセスは、後で送信されてきた別の状態要求により継続することができる。応答メッセージがデータインスタンスについてアクションを行うべきである旨を示している場合、アクションについての情報(例えば、アクションの種類およびアクションを行うために利用または調節されるべきパラメータ)が、管理データ記憶部または他のこのような記憶場所に配置されていてもよいようなジョブキューへと書き込まれる(612)。ジョブキューを監視することで、ジョブ情報の存在を、スウィーパーコンポーネントなどのようなものにより、判断することが可能であり(614)、ジョブ情報が検出されると、要求されたアクションのためのワークフローを開始するように要求を送ることができる(616)。他の実施形態において、ワークフローコンポーネントは、ジョブに対してジョブキューを監視してもよく、あるいは、ウェブサービス層のコンポーネントがジョブ情報を直接ワークフローコンポーネントへ送ってもよい。
ジョブ情報が受信されると、情報を分析して、要求されたアクションに適したワークフローを決定および/または組み立てる(618)。その後、ワークフローを実行される(620)。データ環境内において実行されるべきタスクがワークフロー中に含まれている場合、状態または他の情報をデータ環境内のホストマネージャへと送ることで、タスクを実行し、ワークフロー(例えば、上述したプロセスを用いて達成されるかもしれないもの)を実行することが可能になる。最終タスクが成功裏に完了した場合、データインスタンスは、データプレーンインターフェースを介して顧客またはアプリケーションから送られてくる要求を単純に処理し続ける。ワークフローが制御環境内においてアクション(例えば、管理データ記憶部内のバージョンおよび状態情報の更新)を行うことである場合、ワークフローは、制御環境の適切なコンポーネントに多様なタスクを指示することができる。何れかのタスクが成功裏に完了できなかった場合、または当該タスクがアクション(例えば、データインスタンスのリブート)を必要とすることになる場合、例えば、メッセージまたは他の通知を顧客(または別の適切なユーザ、アプリケーション、または場所)へと送ることができる。他にも多様な通知アクション(例えば、アクション通知の生成および/またはエラーログへの情報追加)を行うことが可能である。
上述したように、制御プレーン層は、多様な基本ソフトウェアフレームワークを有利に利用するかまたはその「上位に立って」、タスク(例えば、ワークフローの実行、データプレーンのホストマネージャと制御プレーンのコンポーネントとの間のセキュアな通信路の確立、データプレーンのインスタンス上へのソフトウェアのインストール、および多様なデータベースバックアップおよび回復手順の実行)を行うことができる。
例えば、制御プレーン層は、ワークフローサービスの利点を利用して、ワークフローを管理することができる。一般的に公知のように、任意のワークフローエンジンの主な特徴として、処理を非同期的かつ再開可能に行うことがエンジンにより可能となる点がある。上述したように、ワークフローは状態機械とみなすことができ、初期状態から開始して、ワークフローの異なるステップの実行により一連の中間状態遷移を経た後、最終目標に到達する。この最終目標は、状態機械の最終状態とみなすことができる。ワークフローサービスは、ワークフローを生成する能力を提案し、所与のワークフローの現在の状態と、次に実行されるべきステップ(単数または複数)とを決定するための仕掛けを提供する。サービスは、状態機械の現在の状態を保存することができ、連続的に実行されるステップを追跡し、ワークフローを継続的に進めるために実行することが必要なステップを追跡する。サービスは一般的には、我々のための状態遷移を実際には実行しない。ワークフローのためのタスクを実行する的確なタスクは、多くの実施形態においてワークフローの「クライアント」コンポーネントにより実行されることになる。制御プレーンは任意の所与の時間において並行して実行される複数のワークフローを有することができ、またこれらのワークフローは異なるタスクを行うためのものとすることができるため、制御プレーンは、複数のワークフローをスケジュールしかつ複数の活動を並行して実行することが可能なアーキテクチャの利点を利用することができる。
別の有利に利用可能なアーキテクチャは、セキュアな通信をデータプレーンのホストマネージャへホストプレーンのコンポーネントから提供することに関連する。一実施形態において、制御プレーンのワークフローおよび監視コンポーネントは、常にホストマネージャと通信して、多様なタスク(例えば、データベースメンテナンスおよびソフトウェアインストール)を行い、それだけでなく多様なインスタンスおよび/またはレポジトリの状態を確認する。少なくともいくつかの実施形態において、制御プレーンとホストマネージャとの間の全通信をセキュアなネットワークを介して行うことで、任意の何者かによる盗聴またはホストマネージャへの不正コマンドの発行を回避することが重要である。
一実施形態において、セキュアなソケット層(SSL)を介してハイパーテキスト転送プロトコルを用いて、ホストマネージャへの全通信路をセキュアにする。ホストマネージャアプリケーションをホストする各アプリケーションサーバーは、インスタンスのブートアップ時のスクリプトを用いて開始することができる。アプリケーションサーバーエンジンの開始前に、自署署名した証明を生成し、この証明をインストールして、SSL通信路(単数または複数)を有効化するためのスクリプトを実行することができる。このスクリプトにより。一実施形態において、SSL通信は通信路の暗号化に用いられ、クライアント認証には用いられない。すなわち、クライアント認証は、その代わりに、各要求中に埋め込まれた公開鍵/秘密鍵による署名によって達成され、これにより、一実施形態において、全クライアントが、秘密鍵を用いてクエリーストリングパラメータに署名する。この署名は、ホストマネージャのためのアプリケーションサーバーにより展開することができる、カスタムインターセプターによって有効化することができる。さらに、データプレーン内の各監視対象インスタンスに対してセキュリティグループ(すなわち、ファイアウォール規則)を確立することで、所与のネットワークまたはセキュアなグループ内にいるホストのみがホストマネージャポートを用いて通信することができる。セキュアな情報および認証情報(例えば、秘密鍵)を適切な鍵保存場所に保存することができ、その結果、鍵管理および鍵交代などのような機能を提供することができる。
ホストマネージャアプリケーションのインストールおよび任意の更新は、全ての他のインスタンスを削除する必要が無いやり方で、各インスタンスについて管理下に置くことも可能である。一実施形態において、インスタンスは、ブートアップ時にアプリケーションサーバーエンジンを開始させ、アプリケーションサーバーマネージャフレームワークを呼び出して新規ホストアプリケーションを展開させることにより、ホストマネージャがインストールされる。他の通信と同様に、通信を傍受することができ、ソフトウェアをインストールし、またはホストマネージャを更新を強要する前にクライアントを認証することができ、これは、既存のレポジトリの利用可能性に影響を与えること無しに達成することができる。
基礎フレームワークに依存する可能性がある別の態様は、レポジトリおよびデータバックアップに関連する。多様な理由により、制御プレーンが顧客レポジトリおよびインスタンスをバックアップすることが望ましい可能性がある(例えば、ユーザによって開始されるバックアップ(これは、バックアップの時間ウィンドウの間に実行可能である)およびデータベース回復の間にシステムによって開始されるバックアップ、等々)。双方のインスタンスを取り扱うように、単一のフレームワークを実行することができる。レポジトリをバックアップするために、フレームワークは、データファイルおよび任意の関連ログファイル双方のバックアップを取り扱うことができる。多様なステップおよびプロセスについて説明するが、多様なステップおよびアプローチは多様なデータベースエンジン(例えば、MySQLおよび他のもの)によって異なる可能性があることが理解されるべきである。
一実施形態によるデータをバックアップするためのアプローチは、適切なデータボリュームのスナップショットがとられ、ログファイルが同様に適切な場所にコピーされるまで、データ操作を一時停止する。例えば、管理階層は、バックアップ手順を開始する前に、バックアップウィンドウを待機することができる。バックアップウィンドウ内に入ると、管理階層は、レポジトリバックアップのためのワークフローインスタンスが生成することになるワークフローをリエート(reate)することができる。一例において、ワークフローは、「supendDatabaseForBackup」または類似のAPIをホストマネージャのために呼び出す。このAPIは、例えば、表のフラッシュおよびロックを行うタスク、I/Oをデータボリュームに対して一時停止するタスク、LVMスナップショットをログボリュームのために生成および取り付けるタスク、最終ログ位置によりログ位置ファイルを生成するタスク、およびデータベース再開のためにタイマーを起動させるタスクなどのタスクを管理することができる。このタイマーを用いれば、タスク(例えば、スナップショット撮影)の実行時に管理階層がハングアップした場合にレポジトリを再開させることが可能となり、その結果、レポジトリが偶発的に無期限に中断される事態が回避される。ワークフローは、上記のタスクおよび/または他のこのようなタスクの完了について、ホストマネージャをポーリングすることができる。ホストマネージャがレポジトリを一時停止したことをワークフローが確認すると、ワークフローは、1組の順序付けられたタスクを用いて、データボリュームをバックアップすることを試行する。例えば、ワークフローは、各データボリュームのスナップショットを生成し、スナップショットが成功裏に生成されていることを確認することを示すことができる。backup_data_volumes表などのような場所内の各スナップショットボリュームに行を挿入することができる。その後、ワークフローは、ホストマネージャの「resumeDatabaseFromBackup」または類似のAPIを呼び出すことができる。このプロセスは、レポジトリログおよびログ位置情報を適切な記憶場所にコピーすることができ、ログスナップショットを取り外すことができ、ログスナップショットログボリュームを除去し、全ての表をロック解除する。その後、管理階層は、バックアップが完了し、レポジトリが再度利用可能である旨を示す顧客イベントを作成することができる。
上述したように、ログファイルは、同様の様態でバックアップ可能である。これらのログを用いて、タスク(例えば、データファイルを回復しなければならない場合の多様なトランザクションの再生)を行うことができる。エンジンログは適切な記憶場所にコピーすることができ、これにより、以前バックアップされたログファイルを簡単なリストコマンドを用いて得ることができる。ホストマネージャは、この結果を用いて、コピーすべきログがあるかを決定することができる。例えば、ホストマネージャは、最終シーケンスをバックアップすることが可能なように書かれたログファイルリストを得るために、バケットリストを要求することができる。新規ログが生成されている場合、ログがデータベースエンジンによってアクティブに書き込まれているものではないと先ず判断することができ、その後、ログをコピーすることができ、かつそのコピーは成功裏に行われたことを確認することができる。
上述したように、多様な動作環境において多様な実施形態を実行することが可能である。いくつかの場合において、そのような多様な動作環境としては、複数のアプリケーションのうちの任意のアプリケーションを作動させるために使用することが可能な1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを挙げることができる。ユーザデバイスまたはクライアントデバイスは、複数の汎用パーソナルコンピュータ(例えば、標準オペレーティングシステムを実行するデスクトップコンピュータまたはラップトップコンピュータ、ならびにモバイルソフトウェアを実行し、複数のネットワーキングプロトコルおよびメッセージングプロトコルをサポートする能力を有するセルラーデバイス、無線デバイスおよびハンドヘルドデバイス)のうちの任意のものを含むことができる。このようなシステムはまた、開発およびデータベース管理などの目的のための多様な市販のオペレーティングシステムおよび他の公知のアプリケーションのうちの任意のものを実行する複数のワークステーションも含むことができる。これらのデバイスはまた、他の電子デバイス(例えば、ダミーターミナル、シンクライアント、ゲーミングシステム、およびネットワークを介して通信する能力を有する他のデバイス)も含むことができる。
多様な態様を、サービス志向アーキテクチャの一部であってもよいような、少なくとも1つのサービスまたはウェブサービスの一部として実行することも可能である。サービス(例えば、ウェブサービス)は、任意の適切な種類のメッセージングを用いて(例えば、拡張マークアップ言語(XML)形式のメッセージを用い、適切なプロトコル(例えば、SOAP(「シンプルオブジェクトアクセスプロトコル」に由来する)を用いて交換することにより)通信することができる。このようなサービスにょって提供または実行されるプロセスは、任意の適切な言語(例えば、ウェブサービス記述言語(WSDL))を用いて書き込むことが可能である。WSDLなどのような言語を用いることで、クライアント側コードを多様なSOAPフレームワーク内において自動生成することなどのような機能性が可能になる。
ほとんどの実施形態において、多様な市販のプロトコル(例えば、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk)のうちの任意のものを用いて通信をサポートするために用いられる当業者に良く知られている少なくとも1つのネットワークが用いられる。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびこれらの任意の組み合わせとすることができる。
ウェブサーバーを用いた実施形態において、ウェブサーバーは、HTTPサーバー、FTPサーバー、CGIサーバー、データサーバー、Javaサーバー、およびビジネスアプリケーションサーバーを含む、多様なサーバーまたはミッドティアアプリケーションのうちの任意のものを実行することができる。サーバー(単数または複数)は、例えば任意のプログラミング言語(例えば、Java(登録商標)、C、C#またはC++)、あるいは任意のスクリプト記述言語(例えば、Perl、Python、またはTCL)、ならびにこれらの組み合わせで書かれた1つ以上のスクリプトまたはプログラムとして実行されてもよい1つ以上のウェブアプリケーションを実行することなどのようなことにより、ユーザデバイスからの要求に応答して、プログラムまたはスクリプトを実行する能力を有してもよい。サーバー(単数または複数)は、非限定的に、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から市販されているものを含む、データベースサーバーも含んでもよい。
環境は、上述したように多様なデータ記憶部および他のメモリおよび記憶媒体を含むことができる。これらは、1つ以上のコンピュータにとって局所的な(かつ/または1つ以上のコンピュータ中に常駐している)記憶媒体の上、あるいは、ネットワークを介した任意のコンピュータまたは全てのコンピュータから遠隔の位置などのような多様な場所に常駐することができる。実施形態の特定の組において、情報は、当業者に公知のストレージエリアネットワーク(「SAN」)内に常駐してもよい。同様に、コンピュータ、サーバーまたは他のネットワークデバイスに帰属する機能を実行するために必要な任意のファイルは適宜局所的におよび/または遠隔的に保存してもよい。システムがコンピュータ化されたデバイスを含む場合、このようなデバイスはそれぞれ、バスを介して電気的に接続されていてもよい、ハードウェア要素を含むことができる。これらの要素としては、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカ)が挙げられる。このようなシステムは、ディスクドライブ、光学記憶デバイス、およびソリッドステート記憶デバイスなどのような、ランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」)などのような、1つ以上の記憶デバイス、ならびにリムーバブルメディアデバイス、メモリカード、フラッシュカード等々もまた含んでもよい。
このようなデバイスはまた、コンピュータ可読記憶媒体リーダー、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、および上述したようなワーキングメモリも含むことができる。コンピュータ可読記憶媒体リーダーは、一時的および/またはより恒久的に、コンピュータ可読情報を含有、保存、送信および検索するためのリモート記憶デバイス、ローカル記憶デバイス、固定記憶デバイスおよび/または取り外し可能な記憶デバイスならびに記憶媒体を意味する、コンピュータ可読記憶媒体と接続することができるかまたはこれらを受容するように構成することができる。システムおよび多様なデバイスは典型的には、少なくとも1つのワーキングメモリデバイス内に配置された複数のソフトウェアアプリケーション、モジュール、サービスまたは他の要素、例えば、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザなどのようなアプリケーションプログラムを含むことになる。代替の実施形態が、上述したものと異なる多数の改変を有してもよいことを理解するべきである。例えば、カスタマイズされたハードウェアが使用されてもよく、かつ/または特定の要素をハードウェア、ソフトウェア(appletなどのようなポータブルソフトウェアを含む)、もしくは両方において実行してもよい。さらに、他のコンピューティングデバイス(例えば、ネットワーク入力/出力デバイス)への接続も使用されてもよい。
コードまたはコードの部分を収容するための記憶媒体およびコンピュータ可読媒体としては、(例えば、そのような記憶媒体および通信媒体を非限定的に挙げると、情報(例えば、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ)の記憶および/または送信のための、任意の方法または技術において実行される、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多機能ディスク(DVD)または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、または所望の情報の保存のために使用することが可能でありかつシステムデバイスによるアクセスが可能な他の任意の媒体を含む、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体などのような、記憶媒体および通信媒体を含む当該分野において公知であるかまたは用いられている任意の適切な媒体を挙げることができるが、これに限らない。本明細書中に提供される開示および教示内容に基づけば、当業者は、多様な実施形態を実行するための他の様態および/または方法を理解するであろう。
付記項1. 関係データベースインスタンスの構成値を1つ以上のセルフサービスウェブサービスを用いて管理するための、コンピュータ実装される方法であって、
実行可能な命令と共に構成された1つ以上のコンピュータシステムによる制御の下、
各々がユーザにウェブサービス要求を制御環境へ提出させることを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記ユーザに対する関係データベースについて別個のデータベース環境内において行われるべき所望のアクションに対応する、提供することと、
前記データベース環境内においてプロビジョンされるべき少なくとも1つのデータインスタンスのためのデフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは、複数のデータベース構成パラメータに対する値を含み、前記デフォルトパラメータグループは、第1のバージョン番号を有する、提供することと、
前記複数のAPIのうちの第1のAPIを通して第1のウェブサービス要求が前記制御環境に受信されることに応答して、前記別個のデータベース環境内においてデータインスタンスをプロビジョニングする際に適用されるべき第1の改変されたパラメータグループを指定するための少なくとも1つのタスクを実行させることであって、前記第1の改変されたパラメータグループは、第2のバージョン番号を有する、実行させることと、
前記複数のAPIのうちの第2のAPIを通して第2のウェブサービス要求が前記制御環境に受信されることに応答して、前記ユーザのためにプロビジョンされた少なくとも1つのデータインスタンスについて、第3のバージョン番号を有する第2の改変されたパラメータグループを適用するための少なくとも1つのタスクを前記別個のデータベース環境内において実行させることと、
を含み、
前記ユーザは、単一のウェブサービス呼び出しを前記制御環境に提出することにより、前記関係データベースの1つ以上のインスタンスのパラメータ値を指定または改変することができる、
方法。
付記項2. 前記デフォルトパラメータグループは、前記データベース環境内においてプロビジョンされるべき前記少なくとも1つのデータインスタンスに対して最適化された、少なくとも1つのパラメータ値を含む、付記項1のコンピュータ実装される方法。
付記項3. 前記少なくとも1つのデータインスタンスの現在のパラメータグループバージョンおよび前記少なくとも1つのデータインスタンスに適用されている任意の変更を示す状態情報について前記制御環境内に保存されている情報を更新することをさらに含む、付記項1のコンピュータ実装される方法。
付記項4. ユーザが別個の制御環境を用いてデータベース環境内のデータインスタンスの動作パラメータを管理することを可能にする、コンピュータ実装される方法であって、
実行可能な命令と共に構成された1つ以上のコンピュータシステムによる制御の下、
複数のアプリケーションプログラミングインターフェース(API)を提供することであって、前記APIはそれぞれ、ユーザがウェブサービス要求を前記制御環境に提出することを可能にし、各APIは、前記ユーザに対する1つ以上のデータインスタンスについてデータベース環境内において行われるべき所望のアクションに対応する、ことと、
前記データベース環境内においてプロビジョンされるべき1つ以上の1つのデータインスタンスについて、デフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは、複数のデータベースパラメータに対する値を含み、前記デフォルトパラメータグループは第1のバージョン番号を有する、提供することと、
ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記1つ以上のデータインスタンスについて改変されたパラメータグループを適用させることであって、前記改変されたパラメータグループは第2のバージョン番号を有し、前記ユーザは、前記データインスタンスのうちの少なくとも1つを生成する前に、前記1つ以上のデータインスタンスのうちの任意のもののパラメータ値を改変することができるか、または、前記1つ以上のデータインスタンスのうちの任意のものが前記データベース環境上で実行しているのと同時に、前記1つ以上のデータインスタンスのうちの任意のもののパラメータ値を改変することができる、適用させることと、
を含む、方法。
付記項5. 前記パラメータ値が動的値である場合、前記改変されたパラメータグループの更新されたパラメータ値が実質的に前記要求時において前記実行しているデータインスタンスに適用され、
前記パラメータ値が静的値である場合、前記データインスタンスがリブートされると、前記パラメータ値が前記実行しているデータインスタンスに適用される、
付記項4のコンピュータ実装される方法。
付記項6. ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記実行しているデータインスタンスのうちの1つ以上をリブートし、これにより前記静的値を適用させること、
をさらに含む、付記項5のコンピュータ実装される方法。
付記項7. 少なくとも1つのデータインスタンスについて前記改変されたパラメータグループを適用することは、前記改変されたパラメータグループがそこへ適用されるべき各データインスタンスの前記少なくとも1つのパラメータ値を含む、構成ファイルをインストールすることをさらに含む、付記項4のコンピュータ実装される方法。
付記項8. 前記データベース環境は、複数のデータインスタンスをデータインスタンスクラス内に提供するように動作可能であり、
前記ユーザは、前記データインスタンスクラス内の前記複数のインスタンス全てについて、単一のウェブサービス呼び出しを用いて改変されたパラメータグループを指定することがさらに可能である、
付記項4のコンピュータ実装される方法。
付記項9. 前記ウェブサービス要求に応答して、前記1つ以上のデータインスタンスについて前記改変されたパラメータグループを適用させるための少なくとも1つのタスクを含むワークフローを前記制御環境内において実行することであって、前記ワークフローは、前記1つ以上のデータインスタンスの現在のパラメータグループバージョンについての情報および前記1つ以上のデータインスタンスに適用されている何らかの変更を示す状態情報を更新するための少なくとも1つのタスクをさらに含む、実行すること、
をさらに含む、付記項4のコンピュータ実装される方法。
付記項10. 前記制御プレーンの監視コンポーネントは、前記1つ以上のデータインスタンスそれぞれについてホストマネージャと定期的に通信し、前記ホストマネージャが前記データインスタンスのうちの1つについて前記パラメータグループの現在のバージョンを更新するのに応答して、前記データインスタンスの前記現在のパラメータグループバージョンの情報および成功裏に適用された前記改変されたパラメータグループを示す状態情報を更新する、付記項9のコンピュータ実装される方法。
付記項11. 前記1つ以上のデータインスタンスについての情報を監視することと、
前記更新パラメータグループ内の少なくとも1つのパラメータ値を更新すべきである場合、前記監視された情報に少なくとも部分的に基づいて、更新されたパラメータグループを自動的に適用すること、
をさらに含む、付記項10のコンピュータ実装される方法。
付記項12. 前記制御環境内のデータ記憶部に対するデータインスタンスについて、前記パラメータグループの現在のバージョンのパラメータ値を保存すること、
をさらに含む、付記項4のコンピュータ実装される方法。
付記項13. 前記ユーザは、パラメータ値と、前記データベース環境の態様との間の関係を指定することができ、
前記データベース環境の前記態様の前記関係および変更を用いて、前記パラメータ値は自動的に更新する能力を有する、
付記項4のコンピュータ実装される方法。
付記項14. 前記ウェブサービス要求は、データベースエンジンと無関係である、付記項4のコンピュータ実装される方法。
付記項15. ユーザが別個の制御環境を用いてデータベース環境内のデータインスタンスの動作パラメータを管理することを可能にするシステムであって、
プロセッサと、
命令を含むメモリデバイスと、
を備え、
前記命令が前記プロセッサによって実行されると、前記プロセッサに、
各々がユーザにウェブサービス要求を前記制御環境へと提出させることを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記ユーザの1つ以上のデータインスタンスについてデータベース環境内において実行されるべき所望のアクションに対応する、提供することと、
前記データベース環境内においてプロビジョンされるべき1つ以上の1つのデータインスタンスについて、デフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは複数のデータベースパラメータに対する値を含み、前記デフォルトパラメータグループは第1のバージョン番号を有する、提供することと
ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記1つ以上のデータインスタンスについて改変されたパラメータグループを適用させることであって、前記改変されたパラメータグループは第2のバージョン番号を有し、前記ユーザは、前記データインスタンスのうちの少なくとも1つを生成する前に、前記1つ以上のデータインスタンスのうちの任意のもののパラメータ値を改変することができるか、または、前記1つ以上のデータインスタンスのうちの任意のものが前記データベース環境上で実行しているのと同時に、前記1つ以上のデータインスタンスのうちの任意のもののパラメータ値を改変することができる、適用させることと、
をさせる、システム。
付記項16. 前記パラメータ値が動的値である場合、前記改変されたパラメータグループの更新されたパラメータ値が実質的に前記要求時において前記実行しているデータインスタンスに適用され、
前記パラメータ値が静的値である場合、前記データインスタンスがリブートすると、前記パラメータ値が前記実行しているデータインスタンスに適用される、
付記項15に記載のシステム。
付記項17. 前記命令が実行されると、前記プロセッサに、
ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記実行しているデータインスタンスのうちの1つ以上をリブートさせ、それにより前記静的値を適用させること、
をさらにさせる、付記項15に記載のシステム。
付記項18. 少なくとも1つのデータインスタンスについて前記改変されたパラメータグループを適用することは、前記改変されたパラメータグループがそこに適用されるべき各データインスタンスに対して少なくとも1つのパラメータ値を含む、構成ファイルをインストールすることをさらに含む、付記項15に記載のシステム。
付記項19. 前記データベース環境は、複数のデータインスタンスをデータインスタンスクラス内に提供するように動作可能であり、
前記ユーザは、前記データインスタンスクラス内の前記複数のインスタンス全てについて、単一のウェブサービス呼び出しを用いて改変されたパラメータグループを指定することがさらに可能である、
付記項15に記載のシステム。
付記項20. 前記命令が実行されると、前記プロセッサに、
前記ウェブサービス要求に応答して、前記1つ以上のデータインスタンスについて前記改変されたパラメータグループを適用させるための少なくとも1つのタスクを含むワークフローを前記制御環境内において実行させることであって、前記ワークフローは、前記1つ以上のデータインスタンスの現在のパラメータグループバージョンについての情報および前記1つ以上のデータインスタンスに適用されている何らかの変更を示す状態情報を更新するための少なくとも1つのタスクをさらに含み、前記制御プレーンの監視コンポーネントは、前記1つ以上のデータインスタンスそれぞれについてホストマネージャと定期的に通信し、前記ホストマネージャが前記データインスタンスのうちの1つについて前記パラメータグループの現在のバージョンを更新するのに応答して、前記データインスタンスの前記現在のパラメータグループバージョンについての情報および成功裏に適用された前記改変されたパラメータグループを示す状態情報を更新する、実行させること、
をさせる、付記項15に記載のシステム。
付記項21. コンピュータ可読記憶媒体であって、別個の制御環境を用いてデータベース環境内のデータインスタンスの動作パラメータを管理するための命令を記憶し、前記命令がプロセッサによって実行されると、前記プロセッサに、
各々がユーザにウェブサービス要求を前記制御環境へと提出させることを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記ユーザの1つ以上のデータインスタンスについてデータベース環境内において行われるべき所望のアクションに対応する、ことと、
前記データベース環境内においてプロビジョンされるべき1つ以上の1つのデータインスタンスについて、デフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは複数のデータベースパラメータに対する値を含み、前記デフォルトパラメータグループは第1のバージョン番号を有する、提供することと、
ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記1つ以上のデータインスタンスについて改変されたパラメータグループを適用させることであって、前記改変されたパラメータグループは第2のバージョン番号を有し、前記ユーザは、前記データインスタンスのうちの少なくとも1つを生成する前に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができるか、または、前記1つ以上のデータインスタンスのうちの任意のものが前記データベース環境内で実行しているのと同時に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができる、適用させることと、
をさせる、コンピュータ可読記憶媒体。
付記項22. 前記パラメータ値が動的値である場合、前記改変されたパラメータグループの更新されたパラメータ値が実質的に前記要求時において前記実行しているデータインスタンスに適用され、
前記パラメータ値が静的値である場合、前記データインスタンスがリブートされると前記パラメータ値が前記実行しているデータインスタンスに適用される、
付記項21に記載の、コンピュータ可読記憶媒体。
付記項23. 前記命令が実行されると、前記プロセッサに、
ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記実行しているデータインスタンスのうちの1つ以上をリブートさせ、これによって前記静的値を適用させること、
をさらにさせる、付記項21に記載の、コンピュータ可読記憶媒体。
付記項24. 少なくとも1つのデータインスタンスについて前記改変されたパラメータグループを適用することは、前記改変されたパラメータグループがそこに適用されるべき各データインスタンスに対する前記少なくとも1つのパラメータ値を含む、構成ファイルをインストールすることをさらに含む、付記項21に記載の、コンピュータ可読記憶媒体。
付記項25. 前記データベース環境は、複数のデータインスタンスをデータインスタンスクラス内に提供するように動作可能であり、
前記ユーザは、前記データインスタンスクラス内の前記複数のインスタンス全てについて、単一のウェブサービス呼び出しを用いて改変されたパラメータグループを指定することがさらに可能である、
付記項21に記載の、コンピュータ可読記憶媒体。

Claims (15)

  1. ユーザが別個の制御環境を用いてデータベース環境内のデータインスタンスの動作パラメータを管理することを可能にする、コンピュータ実装される方法であって、
    実行可能な命令と共に構成された1つ以上のコンピュータシステムによる制御の下、
    各々がユーザにウェブサービス要求を制御環境へ提出させることを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記ユーザの1つ以上のデータインスタンスについてデータベース環境内において実行されるべき所望のアクションに対応する、ことと、
    前記データベース環境内においてプロビジョンされるべき1つ以上のデータインスタンスについて、デフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは複数のデータベースパラメータの値を含み、前記デフォルトパラメータグループは第1のバージョン番号を有する、ことと、
    ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記1つ以上のデータインスタンスについて改変されたパラメータグループを適用させることであって、前記改変されたパラメータグループは第2のバージョン番号を有し、前記ユーザは、前記データインスタンスのうちの少なくとも1つを生成する前に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができるか、または、前記1つ以上のデータインスタンスのうちの任意のものが前記データベース環境上で実行しているのと同時に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができる、適用させることと、
    を含むことを特徴とする方法。
  2. 前記パラメータ値が動的値である場合、前記改変されたパラメータグループの更新されたパラメータ値が実質的に前記要求時において前記実行しているデータインスタンスに適用され、
    前記パラメータ値が静的値である場合、前記データインスタンスがリブートされると前記パラメータ値が前記実行しているデータインスタンスに適用されることを特徴とする請求項1に記載の、コンピュータ実装される方法。
  3. ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記実行しているデータインスタンスのうちの1つ以上をリブートさせ、それにより前記静的値を適用させることをさらに含むことを特徴とする請求項2に記載の、コンピュータ実装される方法。
  4. 少なくとも1つのデータインスタンスについて前記改変されたパラメータグループを適用することは、前記改変されたパラメータグループがそこに適用されるべき各データインスタンスに対する前記少なくとも1つのパラメータ値を含む、構成ファイルをインストールすることをさらに含むことを特徴とする請求項1に記載の、コンピュータ実装される方法。
  5. 前記データベース環境は、複数のデータインスタンスをデータインスタンスクラス内に提供するように動作可能であり、前記ユーザは、前記データインスタンスクラス内の前記複数のインスタンス全てについて、単一のウェブサービス呼び出しを用いて改変されたパラメータグループを指定することがさらに可能であることを特徴とする請求項1に記載の、コンピュータ実装される方法。
  6. 前記ウェブサービス要求に応答して、前記1つ以上のデータインスタンスについて前記改変されたパラメータグループを適用させるための少なくとも1つのタスクを含むワークフローを前記制御環境内において実行させることであって、前記ワークフローは、前記1つ以上のデータインスタンスの現在のパラメータグループバージョンについての情報および前記1つ以上のデータインスタンスに適用されている何らかの変更を示す状態情報を更新するための少なくとも1つのタスクをさらに含む、実行されることをさらに含むことを特徴とする請求項1に記載の、コンピュータ実装される方法。
  7. 前記制御プレーンの監視コンポーネントは、前記1つ以上のデータインスタンスそれぞれについてホストマネージャと定期的に通信し、前記ホストマネージャが前記データインスタンスのうちの1つについて前記パラメータグループの現在のバージョンを更新するのに応答して、前記データインスタンスの現在のパラメータグループバージョンの情報および成功裏に適用された前記改変されたパラメータグループを示す状態情報を更新することを特徴とする請求項6に記載の、コンピュータ実装される方法。
  8. 前記制御環境内のデータ記憶部に対するデータインスタンスについて、前記パラメータグループの現在のバージョンのパラメータ値を保存すること、
    をさらに含むことを特徴とする請求項1に記載の、コンピュータ実装される方法。
  9. 前記ユーザは、パラメータ値と、前記データベース環境の態様との間の関係を指定することができ、前記パラメータ値は、前記データベース環境の前記態様の前記関係および変更を用いて自動的に更新する能力を有することを特徴とする請求項1に記載の、コンピュータ実装される方法。
  10. ユーザが別個の制御環境を用いてデータベース環境内のデータインスタンスの動作パラメータを管理することを可能にするシステムであって、
    プロセッサと、
    命令を含むメモリデバイスと、
    を備え、
    前記命令が前記プロセッサによって実行されると、前記プロセッサに、
    各々がユーザにウェブサービス要求を前記制御環境へと提出させることを可能にする、複数のアプリケーションプログラミングインターフェース(API)を提供することであって、各APIは、前記ユーザの1つ以上のデータインスタンスについてデータベース環境内において実行されるべき所望のアクションに対応する、提供することと、
    前記データベース環境内においてプロビジョンされるべき1つ以上のデータインスタンスについて、デフォルトパラメータグループを提供することであって、前記デフォルトパラメータグループは複数のデータベースパラメータに対する値を含み、前記デフォルトパラメータグループは第1のバージョン番号を有する、提供することと
    ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記1つ以上のデータインスタンスについて改変されたパラメータグループを適用させることであって、前記改変されたパラメータグループは第2のバージョン番号を有し、前記ユーザは、前記データインスタンスのうちの少なくとも1つを生成する前に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができるか、または、前記1つ以上のデータインスタンスのうちの任意のものが前記データベース環境上で実行しているのと同時に、前記1つ以上のデータインスタンスのうちの任意のものに対するパラメータ値を改変することができる、適用させることと、
    をさせることを特徴とするシステム。
  11. 前記パラメータ値が動的値である場合、前記改変されたパラメータグループの更新されたパラメータ値が実質的に前記要求時において前記実行しているデータインスタンスに適用され、
    前記パラメータ値が静的値である場合、前記データインスタンスがリブートすると前記パラメータ値が前記実行しているデータインスタンスに適用されることを特徴とする請求項10に記載のシステム。
  12. 前記命令が実行されると、前記プロセッサに、
    ウェブサービス要求が前記複数のAPIのうちの1つを通して前記制御環境に受信されるのに応答して、前記実行しているデータインスタンスのうちの1つ以上をリブートさせ、これにより前記静的値を適用させることをさらにさせることを特徴とする請求項10に記載のシステム。
  13. 少なくとも1つのデータインスタンスについて前記改変されたパラメータグループを適用することは、前記改変されたパラメータグループがそこに適用するべき各データインスタンスに対する前記少なくとも1つのパラメータ値を含む、構成ファイルをインストールすることをさらに含むことを特徴とする請求項10に記載のシステム。
  14. 前記データベース環境は、複数のデータインスタンスをデータインスタンスクラス内に提供するように動作可能であり、
    前記ユーザは、前記データインスタンスクラス内の前記複数のインスタンス全てについて、単一のウェブサービス呼び出しを用いて改変されたパラメータグループを指定することがさらに可能であることを特徴とする請求項10に記載のシステム。
  15. 前記命令が実行されると、前記プロセッサに、
    前記ウェブサービス要求に応答して、前記1つ以上のデータインスタンスについて前記改変されたパラメータグループを適用させるための少なくとも1つのタスクを含むワークフローを前記制御環境内において実行させることであって、前記ワークフローは、前記1つ以上のデータインスタンスの現在のパラメータグループバージョンについての情報および前記1つ以上のデータインスタンスに適用されている何らかの変更を示す状態情報を更新するための少なくとも1つのタスクをさらに含む、実行させること、
    をさらにさせ、
    前記制御プレーンの監視コンポーネントは、前記1つ以上のデータインスタンスそれぞれについてホストマネージャと定期的に通信し、前記ホストマネージャが前記データインスタンスのうちの1つについて前記パラメータグループの現在のバージョンを更新するのに応答して、前記データインスタンスの前記現在のパラメータグループバージョンの情報および成功裏に適用された前記改変されたパラメータグループを示す状態情報を更新することを特徴とする請求項10に記載のシステム。
JP2012533307A 2009-10-07 2010-10-07 データ環境のためのセルフサービス構成 Active JP5364850B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/575,381 US9135283B2 (en) 2009-10-07 2009-10-07 Self-service configuration for data environment
US12/575,381 2009-10-07
PCT/US2010/051757 WO2011044319A1 (en) 2009-10-07 2010-10-07 Self-service configuration for data environment

Publications (2)

Publication Number Publication Date
JP2013507690A JP2013507690A (ja) 2013-03-04
JP5364850B2 true JP5364850B2 (ja) 2013-12-11

Family

ID=43824151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012533307A Active JP5364850B2 (ja) 2009-10-07 2010-10-07 データ環境のためのセルフサービス構成

Country Status (6)

Country Link
US (2) US9135283B2 (ja)
EP (1) EP2486500A4 (ja)
JP (1) JP5364850B2 (ja)
CN (2) CN102763102B (ja)
CA (1) CA2776384C (ja)
WO (1) WO2011044319A1 (ja)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060792B2 (en) * 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9705888B2 (en) * 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8713060B2 (en) * 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US9098456B2 (en) * 2010-01-13 2015-08-04 International Business Machines Corporation System and method for reducing latency time with cloud services
US9183189B1 (en) * 2012-02-01 2015-11-10 Amazon Technologies, Inc. Network site hosting in a managed environment
US8826143B2 (en) * 2012-03-14 2014-09-02 International Business Machines Corporation Central logout from multiple websites
US8817733B2 (en) * 2012-08-16 2014-08-26 Intel Corporation Mobile proxy for cloud radio access network
US8954579B2 (en) * 2012-08-21 2015-02-10 Microsoft Corporation Transaction-level health monitoring of online services
US10243794B2 (en) 2012-08-30 2019-03-26 T-Mobile Usa, Inc. Open architecture for self-organizing networks
US10499259B2 (en) 2012-08-30 2019-12-03 T-Mobile Usa, Inc. Special events module for self-organizing networks
US10506460B2 (en) 2012-08-30 2019-12-10 T-Mobile Usa, Inc. Self-organizing network mechanism for energy saving during an outage
US10506558B2 (en) 2012-08-30 2019-12-10 T-Mobile Usa, Inc. Performance-based optimization of QoS factors
US10142242B2 (en) 2012-08-30 2018-11-27 T-Mobile Usa, Inc. Network support node traffic reduction for self-organizing networks
JP6114829B2 (ja) * 2012-09-28 2017-04-12 サイクルコンピューティング エルエルシー 仮想環境における演算インフラストラクチャのリアルタイム最適化
US8782284B2 (en) * 2012-11-15 2014-07-15 Carefusion 303, Inc. Extensible deployment system
US8862541B1 (en) * 2012-12-26 2014-10-14 Emc Corporation N-site asynchronous replication
SG11201505650QA (en) * 2013-01-22 2015-08-28 Amazon Tech Inc Instance host configuration
US9430350B2 (en) 2013-03-22 2016-08-30 Empire Technology Development Llc Instance monitor
US9363204B2 (en) 2013-04-22 2016-06-07 Nant Holdings Ip, Llc Harmonized control planes, systems and methods
US9128902B2 (en) * 2013-04-25 2015-09-08 Netapp, Inc. Systems and methods for managing disaster recovery in a storage system
US9294482B2 (en) * 2013-07-25 2016-03-22 Oracle International Corporation External platform extensions in a multi-tenant environment
US9495199B2 (en) * 2013-08-26 2016-11-15 International Business Machines Corporation Management of bottlenecks in database systems
US10742520B2 (en) 2013-12-31 2020-08-11 Citrix Systems, Inc. Providing mobile device management functionalities
US20150310390A1 (en) * 2014-04-23 2015-10-29 Bank Of America Corporation Aggregation and workflow engines for managing project information
US10089476B1 (en) 2014-06-03 2018-10-02 Amazon Technologies, Inc. Compartments
US10516667B1 (en) * 2014-06-03 2019-12-24 Amazon Technologies, Inc. Hidden compartments
US10152211B2 (en) * 2014-11-11 2018-12-11 Amazon Technologies, Inc. Application delivery agents on virtual desktop instances
US11119745B2 (en) 2014-11-10 2021-09-14 Amazon Technologies, Inc. Automated deployment of applications
US9547564B1 (en) 2014-11-10 2017-01-17 Amazon Technologies, Inc. Automated deployment of applications
US10459709B1 (en) * 2014-11-10 2019-10-29 Amazon Technologies, Inc. Automated deployment of applications
CN106547790B (zh) * 2015-09-22 2020-06-30 中移(杭州)信息技术有限公司 一种关系型数据库服务系统
US10776134B2 (en) * 2016-01-07 2020-09-15 Hewlett Packard Enterprise Development Lp Management of application properties
US10826973B2 (en) * 2016-02-04 2020-11-03 Carrier Corporation Security system including business continuity provider
US10353821B2 (en) * 2016-06-22 2019-07-16 International Business Machines Corporation System, method, and recording medium for common memory programming
US11281498B1 (en) * 2016-06-28 2022-03-22 Amazon Technologies, Inc. Job execution with managed compute environments
US10182033B1 (en) * 2016-09-19 2019-01-15 Amazon Technologies, Inc. Integration of service scaling and service discovery systems
US10135916B1 (en) 2016-09-19 2018-11-20 Amazon Technologies, Inc. Integration of service scaling and external health checking systems
KR102168047B1 (ko) 2016-09-26 2020-10-20 난트 홀딩스 아이피, 엘엘씨 클라우드 네트워크들에서의 가상 회로들
US10558624B2 (en) * 2016-12-05 2020-02-11 Sap Se System and method for datastore management framework
CN106776998B (zh) * 2016-12-06 2020-01-21 华为技术有限公司 一种数据库服务提供方法及服务器
CN110704249A (zh) * 2016-12-30 2020-01-17 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
EP3349081A1 (de) 2017-01-12 2018-07-18 Siemens Aktiengesellschaft Verfahren zur automatischen konfiguration von funktionseinheiten eines automatisierungssystems, computerprogramm mit einer implementation des verfahrens sowie nach dem verfahren arbeitendes gerät
US10839106B2 (en) 2017-06-30 2020-11-17 Microsoft Technology Licensing, Llc Creating workflow instances
US10756969B2 (en) * 2017-08-15 2020-08-25 Nicira, Inc. Disruption minimization for guests when applying changes to a data plane of a packet handler in a host
CN108415922B (zh) * 2017-09-30 2021-10-22 平安科技(深圳)有限公司 数据库修改方法及应用服务器
CN107609202B (zh) * 2017-10-25 2020-08-04 武汉斗鱼网络科技有限公司 一种部署数据库实例的方法、装置及计算机设备
US10860336B2 (en) * 2017-10-27 2020-12-08 Google Llc Managing multi-single-tenant SaaS services
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
US11106492B2 (en) * 2018-04-27 2021-08-31 EMC IP Holding Company LLC Workflow service for a cloud foundry platform
US11631118B2 (en) 2018-12-21 2023-04-18 Soham Inc Distributed demand generation platform
CN111414348A (zh) * 2019-01-08 2020-07-14 顺丰科技有限公司 数据库实例参数的修改方法和装置
CN109903763B (zh) * 2019-01-11 2022-02-22 百度在线网络技术(北京)有限公司 服务控制方法、装置及设备
US10997192B2 (en) 2019-01-31 2021-05-04 Splunk Inc. Data source correlation user interface
EP3696707B1 (en) * 2019-02-15 2021-07-14 MasterCard International Incorporated A computer-implemented method for removing access to data
US11137996B2 (en) 2019-02-28 2021-10-05 International Business Machines Corporation Cognitive service updates via container instantiation
US10754638B1 (en) 2019-04-29 2020-08-25 Splunk Inc. Enabling agile functionality updates using multi-component application
US11194564B1 (en) * 2019-04-29 2021-12-07 Splunk Inc. Maintaining compatibility in a multi-component application
CN110086880B (zh) * 2019-05-07 2020-05-22 北京字节跳动网络技术有限公司 创建网络请求的实例的方法和装置
US11288104B2 (en) * 2019-08-06 2022-03-29 International Business Machines Corporation Automatic dynamic operating system provisioning
US11151125B1 (en) 2019-10-18 2021-10-19 Splunk Inc. Efficient updating of journey instances detected within unstructured event data
JP7328922B2 (ja) * 2020-03-13 2023-08-17 エヌ・ティ・ティ・コミュニケーションズ株式会社 設定装置、設定方法、及びプログラム
US11269876B1 (en) 2020-04-30 2022-03-08 Splunk Inc. Supporting graph data structure transformations in graphs generated from a query to event data
US11741131B1 (en) 2020-07-31 2023-08-29 Splunk Inc. Fragmented upload and re-stitching of journey instances detected within event data
CN114385308A (zh) * 2020-10-22 2022-04-22 中国联合网络通信集团有限公司 应用的扩缩容方法及装置
US11334563B1 (en) * 2021-03-31 2022-05-17 F3 Systems Ltd. System and method for automatic evaluation of project management tickets
US20230103223A1 (en) * 2021-09-24 2023-03-30 Sap Se Cloud application management using instance metadata
US12026496B2 (en) 2021-09-24 2024-07-02 Sap Se Cloud upgrade for legacy on-premise application
US11841731B2 (en) 2021-09-24 2023-12-12 Sap Se Cloud plugin for legacy on-premise application
US11922163B2 (en) 2021-09-24 2024-03-05 Sap Se Cloud version management for legacy on-premise application
US11797365B1 (en) * 2022-12-19 2023-10-24 Tassat Group Inc. Computerized systems and methods for configuration of network interfaces of a distributed network

Family Cites Families (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263165A (en) 1990-02-15 1993-11-16 International Business Machines Corporation System for providing user access control within a distributed data processing system having multiple resource managers
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5845067A (en) 1996-09-09 1998-12-01 Porter; Jack Edward Method and apparatus for document management utilizing a messaging system
JPH10312327A (ja) 1997-05-13 1998-11-24 Oki Electric Ind Co Ltd ミラーリング監視方式
US6014669A (en) 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6018746A (en) 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6560639B1 (en) 1998-02-13 2003-05-06 3565 Acquisition Corporation System for web content management based on server-side application
US6205465B1 (en) 1998-07-22 2001-03-20 Cisco Technology, Inc. Component extensible parallel execution of multiple threads assembled from program components specified with partial inter-component sequence information
US6295558B1 (en) 1998-08-21 2001-09-25 Hewlett-Packard Company Automatic status polling failover or devices in a distributed network management hierarchy
US6158010A (en) 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US8321457B2 (en) * 2000-09-08 2012-11-27 Oracle International Corporation Techniques for automatically developing a web site
US20070162420A1 (en) 2004-01-21 2007-07-12 Oracle International Corporation Techniques for automatically discovering a database device on a network
DE50003179D1 (de) * 1999-02-18 2003-09-11 Siemens Ag Elektrisches verbindungsverfahren und verbindungsstelle
US7315826B1 (en) 1999-05-27 2008-01-01 Accenture, Llp Comparatively analyzing vendors of components required for a web-based architecture
US6611867B1 (en) 1999-08-31 2003-08-26 Accenture Llp System, method and article of manufacture for implementing a hybrid network
US6442707B1 (en) 1999-10-29 2002-08-27 Advanced Micro Devices, Inc. Alternate fault handler
US6671821B1 (en) 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US6694362B1 (en) 2000-01-03 2004-02-17 Micromuse Inc. Method and system for network event impact analysis and correlation with network administrators, management policies and procedures
US6542907B1 (en) 2000-03-31 2003-04-01 International Business Machines Corporation Method and apparatus for decentralized, invertible generation of bounded-length globally unique replica identifiers
US6823474B2 (en) 2000-05-02 2004-11-23 Sun Microsystems, Inc. Method and system for providing cluster replicated checkpoint services
US6842769B1 (en) 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6950871B1 (en) 2000-06-29 2005-09-27 Hitachi, Ltd. Computer system having a storage area network and method of handling data in the computer system
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
US7124289B1 (en) 2000-10-31 2006-10-17 Opsware Inc. Automated provisioning framework for internet site servers
ATE379807T1 (de) * 2000-12-11 2007-12-15 Microsoft Corp Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
US6985955B2 (en) 2001-01-29 2006-01-10 International Business Machines Corporation System and method for provisioning resources to users based on roles, organizational information, attributes and third-party information or authorizations
US7197561B1 (en) 2001-03-28 2007-03-27 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US7472178B2 (en) 2001-04-02 2008-12-30 Akamai Technologies, Inc. Scalable, high performance and highly available distributed storage system for Internet content
US20030005091A1 (en) 2001-06-29 2003-01-02 International Business Machines Corporation Method and apparatus for improved monitoring in a distributed computing system
US7024517B1 (en) 2001-09-27 2006-04-04 Emc Corporation System and method for configuring data storage in accordance with workload requirements
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7133907B2 (en) * 2001-10-18 2006-11-07 Sun Microsystems, Inc. Method, system, and program for configuring system resources
US7418484B2 (en) * 2001-11-30 2008-08-26 Oracle International Corporation System and method for actively managing an enterprise of configurable components
US7373556B2 (en) 2002-02-22 2008-05-13 Bea Systems, Inc. Method for monitoring sub-system health
US6947981B2 (en) 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US7103884B2 (en) 2002-03-27 2006-09-05 Lucent Technologies Inc. Method for maintaining consistency and performing recovery in a replicated data storage system
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
CA2481687A1 (en) * 2002-04-11 2003-10-23 Linuxcare, Inc. Managing multiple virtual machines
US6988139B1 (en) 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US7373399B2 (en) 2002-05-09 2008-05-13 Hewlett-Packard Development Company, L.P. System and method for an enterprise-to-enterprise compare within a utility data center (UDC)
US20030212898A1 (en) 2002-05-09 2003-11-13 Doug Steele System and method for remotely monitoring and deploying virtual support services across multiple virtual lans (VLANS) within a data center
JP2003330781A (ja) 2002-05-17 2003-11-21 Hitachi Ltd データ多重保障方法
US8291407B2 (en) * 2002-06-12 2012-10-16 Symantec Corporation Systems and methods for patching computer programs
US6981135B1 (en) * 2002-08-02 2005-12-27 Hewlett-Packard Development Company, L.P. System and method of configuring system components
CA2405673C (en) 2002-09-30 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Provisioning web services
DE10393771T5 (de) 2002-11-20 2006-03-30 Filesx Ltd. Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
US7502329B2 (en) 2003-01-27 2009-03-10 Alcatel-Lucent Usa Inc. Distributed network monitoring with bounded link utilization in IP networks
JP4322511B2 (ja) 2003-01-27 2009-09-02 株式会社日立製作所 情報処理システムの制御方法、及び情報処理システム
US20040163008A1 (en) 2003-02-19 2004-08-19 Kim Roy Moon Remote system management and operation services in a computer network
US7583607B2 (en) 2003-03-06 2009-09-01 Hewlett-Packard Development Company, L.P. Method and apparatus for designating and implementing support level agreements
US7415484B1 (en) 2003-05-09 2008-08-19 Vignette Corporation Method and system for modeling of system content for businesses
US20040225659A1 (en) 2003-05-09 2004-11-11 O'brien John Storage foundry
US7136868B2 (en) 2003-06-06 2006-11-14 Microsoft Corporation Database object script generation method and system
US8095511B2 (en) 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7389333B2 (en) * 2003-07-02 2008-06-17 Fujitsu Limited Provisioning a network element using custom defaults
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US20100005531A1 (en) 2004-12-23 2010-01-07 Kenneth Largman Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
US7631076B2 (en) 2004-03-16 2009-12-08 International Business Machines Corporation Apparatus, system, and method for adaptive polling of monitored systems
JP2005267056A (ja) 2004-03-17 2005-09-29 Nec Corp ソフトウェアミラーリングディスク障害監視・復旧システム、その障害監視・復旧方法及びプログラム
US7383291B2 (en) * 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US7478263B1 (en) 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7624133B1 (en) 2004-06-09 2009-11-24 Symantec Operating Corporation Automatic detection of backup recovery sets
US7313721B2 (en) 2004-06-21 2007-12-25 Dot Hill Systems Corporation Apparatus and method for performing a preemptive reconstruct of a fault-tolerant RAID array
JP4488807B2 (ja) 2004-06-25 2010-06-23 株式会社日立製作所 ボリューム提供システム及び方法
US7827547B1 (en) 2004-06-30 2010-11-02 Kaseya International Limited Use of a dynamically loaded library to update remote computer management capability
US7747760B2 (en) 2004-07-29 2010-06-29 International Business Machines Corporation Near real-time data center switching for client requests
US7058731B2 (en) 2004-08-03 2006-06-06 Hitachi, Ltd. Failover and data migration using data replication
US8046440B2 (en) 2004-08-19 2011-10-25 International Business Machines Corporation Managing resources through user-facing web services aggregated in portals
GB0419599D0 (en) 2004-09-03 2004-10-06 Ibm Controlling preemptive work balancing in data storage
US7567974B2 (en) 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8010337B2 (en) * 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
JP4507249B2 (ja) 2004-10-19 2010-07-21 株式会社日立製作所 記憶デバイスの更新を制御するシステム及び方法
US7945469B2 (en) 2004-11-16 2011-05-17 Amazon Technologies, Inc. Providing an electronic marketplace to facilitate human performance of programmatically submitted tasks
US20060106774A1 (en) 2004-11-16 2006-05-18 Cohen Peter D Using qualifications of users to facilitate user performance of tasks
US7933247B2 (en) 2004-11-18 2011-04-26 Sanjay M. Gidwani Real-time scalable wireless switching network
US7680771B2 (en) 2004-12-20 2010-03-16 International Business Machines Corporation Apparatus, system, and method for database provisioning
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US8347088B2 (en) 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US7657780B2 (en) 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
CN101243413B (zh) 2005-06-24 2013-08-14 信科索尔特公司 用于对备份映像进行虚拟化的系统和方法
US7571168B2 (en) 2005-07-25 2009-08-04 Parascale, Inc. Asynchronous file replication and migration in a storage network
WO2007024479A2 (en) 2005-08-23 2007-03-01 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US20070234028A1 (en) 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
US8863137B2 (en) 2005-09-23 2014-10-14 International Business Machines Corporation Systems and methods for automated provisioning of managed computing resources
US7933987B2 (en) 2005-09-30 2011-04-26 Lockheed Martin Corporation Application of virtual servers to high availability and disaster recovery solutions
US7801932B2 (en) 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention
US8775460B2 (en) * 2005-12-08 2014-07-08 International Business Machines Corporation Managing changes to computer system
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US20070156872A1 (en) 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP4839091B2 (ja) 2006-01-27 2011-12-14 株式会社日立製作所 データベース回復方法及び計算機システム
US8788569B2 (en) 2006-03-31 2014-07-22 British Telecommunications Public Limited Company Server computer system running versions of an application simultaneously
JP2007279890A (ja) 2006-04-04 2007-10-25 Hitachi Ltd バックアップシステム及びバックアップ方法
US20070244996A1 (en) 2006-04-14 2007-10-18 Sonasoft Corp., A California Corporation Web enabled exchange server standby solution using mailbox level replication
JP4939102B2 (ja) 2006-04-21 2012-05-23 株式会社日立製作所 ネットワークブート計算機システムの高信頼化方法
US8255357B1 (en) * 2006-04-24 2012-08-28 Sprint Communications Company L.P. Systems and methods of configuration management for enterprise software
US7613742B2 (en) 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
US20070260693A1 (en) 2006-05-05 2007-11-08 International Business Machines Corporation Method and apparatus for utilizing portable e-mail addresses
US20070271275A1 (en) 2006-05-05 2007-11-22 Fassette Anthony M Database management function provider systems
US8381306B2 (en) 2006-05-30 2013-02-19 Microsoft Corporation Translating role-based access control policy to resource authorization policy
US20070299828A1 (en) 2006-06-05 2007-12-27 Digital Mountain, Inc. Method and Apparatus for Processing Heterogeneous Data
US20070288526A1 (en) 2006-06-08 2007-12-13 Emc Corporation Method and apparatus for processing a database replica
US7908389B2 (en) 2006-06-20 2011-03-15 Patentvc Ltd. Methods and systems for retrieving fragments from peer clients and servers
US20080010513A1 (en) 2006-06-27 2008-01-10 International Business Machines Corporation Controlling computer storage systems
US7822594B2 (en) 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US20080052327A1 (en) 2006-08-28 2008-02-28 International Business Machines Corporation Secondary Backup Replication Technique for Clusters
US7761538B2 (en) 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US8156082B2 (en) 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
GB2456107A (en) 2006-11-06 2009-07-08 Dell Marketing Usa L P A system and method for managing data across multiple environments
US7917469B2 (en) 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US7949847B2 (en) 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
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
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US8880480B2 (en) 2007-01-03 2014-11-04 Oracle International Corporation Method and apparatus for data rollback
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US20080195622A1 (en) 2007-02-12 2008-08-14 Personeta Ltd. Service provisioning system
US8150904B2 (en) * 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
US8171485B2 (en) 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
US8219848B2 (en) 2007-04-10 2012-07-10 International Business Machines Corporation Mechanism for recovery from site failure in a stream processing system
US20080263388A1 (en) 2007-04-18 2008-10-23 James Robert Allen Method and apparatus for managing customer topologies
US8099727B2 (en) 2007-06-01 2012-01-17 Netapp, Inc. System and method for providing uninterrupted operation of a replication system during a software upgrade
US20090019535A1 (en) * 2007-07-10 2009-01-15 Ragingwire Enterprise Solutions, Inc. Method and remote system for creating a customized server infrastructure in real time
DE102007035584B4 (de) 2007-07-30 2009-12-17 Texas Instruments Deutschland Gmbh Watchdog-Vorrichtung zur Überwachung eines elektronischen Systems
US7739243B2 (en) * 2007-08-01 2010-06-15 International Business Machines Corporation System and method for dynamically configuring a multiplatform computing environment
US20090063807A1 (en) 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
US8892719B2 (en) 2007-08-30 2014-11-18 Alpha Technical Corporation Method and apparatus for monitoring network servers
US8549144B2 (en) * 2007-08-31 2013-10-01 International Business Machines Corporation Common configuration framework for applications to configure database objects and resources
JP2009070143A (ja) 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP5393686B2 (ja) 2007-09-26 2014-01-22 ニシラ, インコーポレイテッド ネットワークを管理する及び安全にするためのネットワークオペレーティングシステム
US20090089417A1 (en) * 2007-09-28 2009-04-02 David Lee Giffin Dialogue analyzer configured to identify predatory behavior
US8738746B2 (en) * 2007-11-16 2014-05-27 Oracle International Corporation Configuration management for real-time server
US8423739B2 (en) 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8473519B1 (en) * 2008-02-25 2013-06-25 Cisco Technology, Inc. Unified communication audit tool
US20090240880A1 (en) 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
JP5075727B2 (ja) 2008-04-25 2012-11-21 株式会社日立製作所 ストリーム配信システム及び障害検知方法
US8041679B1 (en) 2008-06-04 2011-10-18 Symantec Operating Corporation Synthetic differential backups creation for a database using binary log conversion
US8121981B2 (en) 2008-06-19 2012-02-21 Microsoft Corporation Database snapshot management
US8904003B2 (en) 2008-06-30 2014-12-02 Oracle America, Inc. Method and system for delegated job control across a network
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8020037B1 (en) 2008-09-23 2011-09-13 Netapp, Inc. Creation of a test bed for testing failover and failback operations
US8364802B1 (en) 2008-09-23 2013-01-29 Gogrid, LLC System and method for monitoring a grid of hosting resources in order to facilitate management of the hosting resources
WO2010042733A1 (en) 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over http
US8392915B2 (en) 2008-11-19 2013-03-05 Oracle International Corporation Efficient volume manager hot swapping
US7941697B2 (en) 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
US8170997B2 (en) 2009-01-29 2012-05-01 Microsoft Corporation Unbundled storage transaction services
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US9208188B2 (en) * 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US9705888B2 (en) * 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US8060792B2 (en) 2009-03-31 2011-11-15 Amazon Technologies, Inc. Monitoring and automated recovery of data instances
US8713060B2 (en) * 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8307003B1 (en) 2009-03-31 2012-11-06 Amazon Technologies, Inc. Self-service control environment
US8601534B2 (en) 2009-07-02 2013-12-03 Samsung Electronics Co., Ltd. Securely using service providers in elastic computing systems and environments
US9135283B2 (en) * 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
US8074107B2 (en) 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances

Also Published As

Publication number Publication date
JP2013507690A (ja) 2013-03-04
CA2776384C (en) 2017-10-31
US9135283B2 (en) 2015-09-15
US20160004731A1 (en) 2016-01-07
CN102763102A (zh) 2012-10-31
CN105302862B (zh) 2019-08-02
CN105302862A (zh) 2016-02-03
CN102763102B (zh) 2015-11-25
WO2011044319A1 (en) 2011-04-14
EP2486500A1 (en) 2012-08-15
EP2486500A4 (en) 2016-11-30
CA2776384A1 (en) 2011-04-14
US20110083138A1 (en) 2011-04-07
US10977226B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
JP5364850B2 (ja) データ環境のためのセルフサービス構成
US20220413979A1 (en) Control service for data management
US11907254B2 (en) Provisioning and managing replicated data instances
US11770381B2 (en) Managing security groups for data instances
US10372475B2 (en) Approaches for managing virtual instance data
US8713061B1 (en) Self-service administration of a database

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130628

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130909

R150 Certificate of patent or registration of utility model

Ref document number: 5364850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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