(57)【要約】  クラウドコンピューティング環境において実装されたデータベースを管理する。方法は、クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップを含む。方法は、更に、クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出した結果として、データベースを非アクティブ化するためにクラウドコンピューティング環境において作業負荷をインスタンス化するステップを含む。作業負荷は、データベースが後で再アクティブ化されることができるように、データベースに関するメタデータ及びデータベースのデータをクラウドストレージにリモートで格納するように構成される。【選択図】図１
2019526119.tif 000002
【特許請求の範囲】
【請求項１】
コンピューターシステムであって、
１又は複数のプロセッサーと、
クラウドコンピューティング環境において実装されたデータベースを管理するように前記コンピューターシステムを構成するように前記１又は複数のプロセッサーによって実行可能な命令を格納する１又は複数のコンピューター可読媒体と、
を備え、
前記命令は、少なくとも、
前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップと、
前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出した結果として、前記データベースを非アクティブ化するために前記クラウドコンピューティング環境において作業負荷をインスタンス化するステップであって、前記作業負荷は、前記データベースが後で再アクティブ化されることができるように、前記データベースに関するメタデータ及びデータベースのデータをクラウドストレージにリモートで格納するように構成される、ステップと、
を実施するように前記コンピューターシステムを構成するように実行可能な命令を含む、
コンピューターシステム。
【請求項２】
前記１又は複数のコンピューター可読媒体は、更に、前記データベースを再アクティブ化するように前記コンピューターシステムを構成するように前記１又は複数のプロセッサーによって実行可能な命令を格納する、請求項１に記載のコンピューターシステム。
【請求項３】
前記１又は複数のコンピューター可読媒体は、更に、少なくとも、
前記データベースに向けられたユーザーインタラクションを検出するステップ
を実施するように前記コンピューターシステムを構成するように前記１又は複数のプロセッサーによって実行可能な命令を格納し、
前記データベースを再アクティブ化することは、前記データベースに向けられたユーザーインタラクションを検出した結果として実施されるように構成される、
請求項２に記載のコンピューターシステム。
【請求項４】
前記１又は複数のコンピューター可読媒体は、更に、少なくとも、
ユーザーインタラクションを除いた、前記データベースに向けられたシステムインタラクションを検出するステップ
を実施するように前記コンピューターシステムを構成するように前記１又は複数のプロセッサーによって実行可能な命令を格納し、
前記データベースを再アクティブ化することは、ユーザーインタラクションを除いた、前記データベースに向けられたシステムインタラクションを検出した結果として実施されるように構成される、
請求項２に記載のコンピューターシステム。
【請求項５】
前記１又は複数のコンピューター可読媒体は、更に、少なくとも、
潜在的なデータベースインタラクションを識別するステップ
を実施するように前記コンピューターシステムを構成するように前記１又は複数のプロセッサーによって実行可能な命令を格納し、
前記データベースを再アクティブ化することは、潜在的なデータベースインタラクションを識別した結果として実施されるように構成される、
請求項２に記載のコンピューターシステム。
【請求項６】
前記クラウドコンピューティング環境において実装された前記データベースが非使用状態にあることを検出する前記ステップは、前記データベースが予め決められた量の時間にわたって使用されていないことを検出するステップを含む、請求項１に記載のコンピューターシステム。
【請求項７】
前記クラウドコンピューティング環境において実装された前記データベースが非使用状態にあることを検出する前記ステップは、積極的な検出方法に基づいて、前記データベースがある時間期間にわたって使用されそうでないことを検出するステップを含む、請求項１に記載のコンピューターシステム。
【請求項８】
前記積極的な検出方法は、ユーザーに関するカレンダーエントリを調べて、前記ユーザーが前記データベースを使用することができなさそうだろう、あるいは使用しなさそうだろうということを、前記ユーザーのカレンダーエントリに基づいて識別することを含む、請求項７に記載のコンピューターシステム。
【請求項９】
前記積極的な検出方法は、ユーザーの履歴の使用率を用いることを含む、請求項７に記載のコンピューターシステム。
【請求項１０】
クラウドコンピューティング環境においてユーザーのためのデータベースをホストするように構成された１又は複数のクラスターと、
前記１又は複数のクラスターに結合され、データベースに関するメタデータ及びデータベースのデータを前記クラスターから離れて格納するように構成されたリモートストレージと、
前記１又は複数のクラスターに結合されたワークフローサービスであって、前記ワークフローサービスは、前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出し、前記データベースを非アクティブ化するために前記クラウドコンピューティング環境において作業負荷をインスタンス化するように構成され、前記作業負荷は、前記データベースが後で再アクティブ化されることができるように、前記データベースに関するメタデータ及びデータベースのデータを前記リモートストレージにリモートで格納するように構成される、ワークフローサービスと、
を備えるコンピューターシステム。
【請求項１１】
前記ワークフローサービスは、前記データベースを再アクティブ化するための再アクティブ化ワークフローを開始するように構成される、請求項１０に記載のコンピューターシステム。
【請求項１２】
前記ワークフローサービスは、前記データベースに向けられたユーザーインタラクションを検出した結果として、前記データベースを再アクティブ化するための前記再アクティブ化ワークフローを開始するように構成される、請求項１１に記載のコンピューターシステム。
【請求項１３】
前記ワークフローサービスは、ユーザーインタラクションを除いた、前記データベースに向けられたシステムインタラクションを検出した結果として、前記データベースを再アクティブ化するための前記再アクティブ化ワークフローを開始するように構成される、請求項１１に記載のコンピューターシステム。
【請求項１４】
前記ワークフローサービスは、潜在的なデータベースインタラクションを識別した結果として、前記データベースを再アクティブ化するための前記再アクティブ化ワークフローを開始するように構成される、請求項１１に記載のコンピューターシステム。
【請求項１５】
前記ワークフローサービスは、前記データベースが予め決められた量の時間にわたって使用されていないことを検出することによって、前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するように構成される、請求項１１に記載のコンピューターシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  クラウドコンピューティングにおいて、クラスターは有限量のハードウェアリソースを有する。データベースが長期間にわたって何らユーザー作業負荷を実行することなく作動し続ける場合、そのデータベースは何も有益なことをしないが、依然として、クラスターリソース、バックアップアプリケーション又はツールなどの内部アプリケーション及びツール、テレメトリアプリケーション又はツール等といったような貴重なリソースを消費する。
【０００２】
[0002]  本明細書において請求される主題は、何らかの欠点を解決する、又は上述されたような環境においてのみ動作する実施態様には限定されない。そうではなく、この背景は、本明細書で説明されるいくつかの実施態様が実施されることができる一例の技術領域を例示するために提供されるにすぎない。
【発明の概要】
【０００３】
[0003]  本明細書に示される一実施態様は、クラウドコンピューティング環境において実施されることができる方法を含む。前記方法は、クラウドコンピューティング環境において実装されたデータベースを管理するための行為を含む。前記方法は、前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップを含む。前記方法は、前記クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出した結果として、前記データベースを非アクティブ化するために前記クラウドコンピューティング環境において作業負荷をインスタンス化するステップを更に含む。前記作業負荷は、前記データベースが後で再アクティブ化されることができるように、前記データベースに関するメタデータ及びデータベースのデータをクラウドストレージにリモートで格納するように構成される。
【０００４】
[0004]  この概要は、詳細な説明において更に後述される概念からの選抜を簡略な形で導入するために提供される。この概要は、請求された主題の主要な特徴又は本質的な特徴を特定することを意図したものではなく、また、請求された主題の有効範囲を決定する際の助けとして用いられることを意図したものでもない。
【０００５】
[0005]  更なる特徴及び利点は、以下に続く説明に記載され、一部はその説明から明らかとなり、あるいはそこに含まれる教示の実践によって知得されることができる。本発明の特徴及び利点は、添付されたクレームに特に示された手段及び組み合わせによって実現され取得されることができる。本発明の特徴は、以下の説明及び添付されたクレームからより完全に明らかとなり、あるいは本明細書において以下に記載される発明の実践によって知得されることができる。
【図面の簡単な説明】
【０００６】
[0006]  上記の及び他の利点並びに特徴が取得されることができるやり方を説明するために、上で簡単に説明された主題のより具体的な説明が、添付された図面に描かれている特定の実施態様を参照して提供される。これらの図面は典型的な実施態様のみを描写し、したがって範囲を限定するとみなされてはならないということを理解して、実施態様が、添付図面の使用を通じて、更なる具体性と詳細さをもって記述され説明される。
【０００７】
【図１】[0007]  図１は、データベースをホストするクラウドサービスを示す。
【図２】[0008]  図２は、データベースを管理する方法を示す。
【発明を実施するための形態】
【０００８】
[0009]  データベースを実装したクラスターコンピューティング環境において、コールドデータベースに起因する不必要な作業を回避し販売される商品のコストを節約するために、本明細書に示される実施態様は、コールドデータベースを検出し、それらを非アクティブ化することが可能である。いくつかの実施態様では、これは、最小のメタデータ及びデータベースファイルをリモートで保持し、全てのランタイムリソースをクラスターにおけるデータベースインスタンスとともに取り除くことによって、行われることが可能である。非アクティブ化されたデータベースは、ユーザーがそれらに接続した時、又はデータベースファイルがシステムによって更新される必要が生じた時に、自動的に再アクティブ化される。
【０００９】
[0010]  したがって、実施態様は、ユーザー作業負荷がアクティブでないことを確実に検出するように構成されることができる。実施態様は、代替的に又は付加的に、データのトランザクション一貫性を保証するように構成された非アクティブ化ワークフローを実装するように構成されることができる。即ち、全てのコミットされたユーザートランザクションは、データ／ログファイルに持続しバックアップされる。実施態様は、代替的に又は付加的に、非アクティブ化状態において、データ、ログ、及び／又はバックアップファイルがリテンションベースのクリーンアップを越えて存続するように、構成されることができる。実施態様は、代替的に又は付加的に、ディスク上のデータ又はフォーマット変更が、データベースにユーザーが接続する必要なしにデータベースのオンデマンドのアクティブ化を生じさせるように、構成されることができる。実施態様は、代替的に又は付加的に、ワークフローの非アクティブ化及び／又はアクティブ化が冪等であるように、構成されることができる。クラスター及び／又はソフトウェアの問題のケースにおいて、実施態様は、異なるクラスターを試行する必要がある場合に非アクティブ化又はアクティブ化を強制的に行うことができるべきである。
【００１０】
[0011]  ここで図１を参照すると、例示的な環境が図示されている。図１は、クラウドサービス１０２を示している。クラウドサービス１０２は、データベースのアプリケーションをホストし、様々なユーザーにデータベースの機能を提供するように構成されている。例えば、図１は、クラウドサービス１０２によって提供されるデータベースサービスにアクセスするためにクラウドサービス１０２に接続することが可能なユーザーマシン１０４を示している。
【００１１】
[0012]  クラウドサービスは、複数のクラスター１０６を含む。クラスター１０６−１などの所与のクラスターは、論理的な区域である。各クラスターは、一組の物理マシン１０８などの１又は複数の物理マシン上に実現されている。したがって、各クラスターは、ＣＰＵサイクル、メモリ、ストレージＩ／Ｏ、ネットワーク機能等のような、物理マシンのリソースを使用することが可能である。
【００１２】
[0013]  各クラスターは、データベースノード１１０などの１又は複数のデータベースノードをホストすることが可能である。各データベースノードは、データベースサービス１１２などのデータベースサービス及びローカルエージェント１１４などのローカルエージェントをホストすることが可能である。各データベースノードはまた、一組のデータベース１１５などの、いくつかのデータベースもホストすることが可能である。データベースサービス１１２は、ユーザーにデータベース機能を提供する。ローカルエージェント１１４は、データベースノードとデータセンター内の残りのクラスターとの間におけるブリッジである。
【００１３】
[0014]  一組のデータベース１１５の中のデータベースをアクティブ化し非アクティブ化するためのアクティブ化及び非アクティブ化ワークフローは、ワークフローサービス１２０によって動作させられる。非アクティブ化は、データベースサービス１１２によって始動される。
【００１４】
[0015]  データベースサービス１１２は、時間期間にわたってユーザーの活動がないことを検出し、その結果としてワークフローサービス１２０に通知する。そしてその結果、非アクティブ化ワークフローは、データベースインスタンス１１５−１などのデータベースを非アクティブ化することを開始する。この時点において、データベースインスタンス１１５−１とのデータベース相互作用があると、以下により詳しく説明されるように、それはアクティブ化ワークフローを始動させるだろう。
【００１５】
[0016]  非アクティブ化ワークフロー中において、ワークフローサービス１２０は、ローカルエージェント１１４と連絡をとり、ユーザーマシン１０４からの新たなユーザー活動、又は（データベースシステム更新若しくは他の相互作用などの）クラウドサービス相互作用を監視するだろう。もし相互作用が検出されたら、非アクティブ化はキャンセルされる。もし相互作用が何も検出されなければ、非アクティブ化は完了し、これは、データベースインスタンス１１５−１に対するメタデータ１２２及びデータベースインスタンス１１５−１に対するデータベースのデータ１２４がリモートストレージ１２６に格納されるようにすることを含む。
【００１６】
[0017]  アクティブ化ワークフローは、ユーザーマシン１０４からの新たなユーザー接続によって始動される。新たな接続がクラスター１２８に到達する。クラスター１２８は、データベースインスタンス１１５−１が動作中でないことを判定し、データベースインスタンス１１５−１をアクティブ化するようにワークフローサービス１２０に指示する。アクティブ化ワークフローは、リモートストレージ１２６からメタデータ１２２及びデータベースのデータ１２４を取り戻す。アクティブ化ワークフローは、データベースの新たなインスタンスであるデータベースインスタンス１１５−１を作成する。この時点において、当該新たな接続は、データベースインスタンス１１５−１に到達することができるはずである。
【００１７】
[0018]  このように、第１のユーザー接続があると、システムは、複数のクラスター１０６の土台となっている物理マシン１０８によって提供される必要な物理リソースを作成する／に接続する（attach to）ことにより、データベースインスタンス１１５−１をアクティブ化するだろう。データベースインスタンス１１５−１は、ユーザーマシン１０４からのユーザー活動がある限り、アクティブのままであるだろう。（ユーザーマシン１０４からの、又は他のシステムコンポーネントからの）アクティブな要求の数が、設定変更可能な量の時間中に０まで落ちた場合、システムは、物理データベースインスタンス１１５−１をシャットダウンし、メタデータ１２２及びデータベースのデータ１２４のような、リモートストレージのファイルを持続するだろう。非アクティブ化の後における次のユーザー接続は、物理データベースインスタンス１１５−１が、事前に保存されたメタデータ１２２及びデータベースのデータ１２４のようなリモートストレージのファイルを用いて再開されるようにするだろう。
【００１８】
[0019]  代替的な実施態様において、物理データベースの配置は動的であってよい。即ち、データベースの配置は、非アクティブ化以前にデータベースをホストしていたデータベースノードに縛られない。
【００１９】
[0020]  いくつかのそのような実施態様では、アクティブ化の時点において、システムは、ある基準に基づいて最適なデータベースサービスインスタンスを選択するだろう。例えば、より大きな容量を有した一組のデータベースノード、目標とするハードウェアの選択を有した一組のデータベースノード、又は使用パターンに基づくより適切な計算パワーを有したデータベースインスタンスに対して、優先度が与えられるのであってよい。
【００２０】
[0021]  非アクティブ化時において、システムは、物理データベースをシャットダウンし、データベースサービスインスタンスにおける場所を、もし必要なら別のデータベースをアクティブ化するために解放する。データベースサービスの全体は、当該サービスの最後のデータベースがシャットダウンされた時にシャットダウンされることが可能である、ということに留意されたい。
【００２１】
[0022]  ここで、以下はシャットダウンに関する更なる詳細を示す。ローカルエージェント１１４又はデータベースサービス１１２などのシステムは、時間期間にわたってユーザーの（及びいくつかの実施態様では、システムの）活動がないことを検出し、このことは、データベース非アクティブ化要求をワークフローサービス１２０へ送ることをもたらす。これに応じて、非アクティブ化ワークフローが開始し、その過程でメタデータを更新する。
【００２２】
[0023]  ランタイム１３０は、データベースが非アクティブ化状態にあるということを示すように必要なメタデータを更新する。したがって、データベースに対するこの時点での新たな接続はどれも、更新されたメタデータに遭遇し、それは再アクティブ化を始動させるだろう。ワークフローサービス１２０は、継続してローカルエージェント１１４と連絡をとり、データベースサービス１１２が非アクティブ化要求以来、新たなユーザー活動を受けたかどうかを判定する。もし否であれば、非アクティブ化ワークフローは、データベースサービスに関連したランタイムリソースを停止（drop）するだろう。
【００２３】
[0024]  再アクティブ化は、新たなユーザー接続によって始動される。新たな接続要求がクラスター１２８に到達する。クラスター１２８は、データベースサービスが非アクティブ化状態にあることを示す対応するメタデータを探索する。ワークフローサービス１２０は、データベースアクティブ化要求をワークフローサービス１２０へＰＯＳＴし、データベースインスタンス１１５−１をアクティブ化する。アクティブ化ワークフローは、必要なランタイムリソース及び関連するメタデータを作成する。これで新たな接続が、この時点でデータベースインスタンス１１５−１に到達することができる。
【００２４】
[0025]  いくつかの実施態様は、非アクティブ化に関して保守的であることを試みることができる。これは、競合状態を回避するために複数の重複する信号をチェック及び再チェックすることによって行われることができる。非アクティブ化ワークフローは、中断信号をチェックし、可能である時にロールバックする必要があるかもしれない。言い換えると、もし非アクティブ化が進行している間に新たな接続がやって来たら、非アクティブ化ワークフローが完了するのを待つ必要なしに、アクティブ化が勝るべきである。
【００２５】
[0026]  以下は、データベースのアイドル検出ロジックに関する付加的な詳細を示す。データベースサービスにおけるバックグラウンドスレッドは１時間（又は何らかの他の設定変更可能な時間期間）おきに実行され、各ユーザーデータベースインスタンスをチェックする。特に、バックグラウンドスレッドは、各データベースインスタンスをチェックすることができる。各々のユーザーデータベースインスタンス毎に、様々な信号がチェックされることができる。例えば、実施態様は、アクティブなログインがないということを確かめるためにチェックすることができる。代替的に又は付加的に、実施態様は、様々な主要な作業負荷リソースインジケーター、例えば、アクティブなセッションがないこと、アクティブな作業者がいないこと、アクティブな要求がないこと、新たな要求が完了していないこと、ユーザー作業負荷によるリソース消費がないこと、ＣＰＵ使用率がないこと、いずれのエンティティもデータベース上にロックを保持していないこと（いくつかの実施態様では、システムのバックグラウンドタスクがそのようなロックを保持しているかもしれないので、これは排除されるかもしれないが）、バックアップのための保留中のログがないこと等を示すインジケーターを監視することができる。
【００２６】
[0027]  非アクティブ化は、前のデータベースアクションと現在時刻との間でいくらかの時間期間が経過した時に行われることができる。例えば、実施態様は、前のアクティブな更新時刻と現在時刻を問い合わせる要求の結果との差分を検出することができる。この差分が閾値（これは論理的なサーバーレベル又は論理的なデータベースレベルに設定することなどによる、設定閾値であり得る）を横切ると、データベース非アクティブ化ワークフローが開始されるだろう。
【００２７】
[0028]  いくつかの実施態様において、非アクティブ化が開始し、非アクティブ化の間にトランザクションが開始されることができる。トランザクションの間、もしＤＢをアクティブ化するための新たな接続がしばらくなければ、ユーザー接続が非アクティブ化されることができる。この場合、バックアップは実行されないかもしれないが、それはコミットされたトランザクションの最後の部分がバックアップされないことを意味する。
【００２８】
[0029]  これらの問題に対処するために、いくつかの実施態様は、非アクティブ化の間はデータベースインスタンスをロックし、新たなログインを拒絶することが可能である。これは単純かつ安全であり、処理すべきアクティブな又は保留中のトランザクションログが存在しないとの結果をもたらす。しかしながら、データベースインスタンスは利用不可能であると分かり、非アクティブ化が完了する前にデータベースインスタンスをアンロックするのは困難であり得る。加えて、実施態様は、非アクティブ化ワークフローの完了を確認するためにワークフローサービス１２０をポーリングしなければならないかもしれない。更に、非アクティブ化ステータスが、利用不可能である間にユーザーに対して表面化される必要があることがあり、それによって、シームレスであることの錯覚を打ち壊す。
【００２９】
[0030]  あるいはまた、これらの問題に対処するために、データベースが非アクティブ化の最中であることを示す非アクティブ化ステータスが、データベーステーブルに示されることが可能である。新たなユーザー接続は、このステータスをチェックし、トランザクションを開始するためにデータベースインスタンスを再アクティブ化する適切な要求を、必要に応じてワークフローサービス１２０へ送ることが可能である。
【００３０】
[0031]  あるいはまた、これらの問題に対処するために、非アクティブ化ワークフローは、データベースインスタンスを非アクティブ化する前にトランザクションバックアップログが完了するのを待つことが可能である。しかしながら、いくつかの実施態様は、既存の接続を取り除くことができ、その結果、実施態様は依然として、ユーザー接続がまだそこにある可能性を処理し、非アクティブ化を中止するかユーザー接続を解除する必要がある。
【００３１】
[0032]  いくつかの実施態様は、非アクティブ化ロジックと同じ一組の信号をチェックすることによって、これらの問題に対処してもよい。非アクティブ化ワークフローは、決定すべきデータベースインスタンスを非アクティブ化する前に成果をチェックすることが可能である。
【００３２】
[0033]  いくつかの実施態様において、監視すべき新たなログイン試行に対して非アクティブ化状態を反映させるように非アクティブ化ワークフローがメタデータを更新する時刻の間には、ギャップがあるかもしれない。そのため、切り離しのすぐ前に何らかの変更が行われるように実施態様がチェック及び再チェックした後に、ユーザー接続が物理的なデータベースインスタンスに到達することが依然として可能である。これは、非アクティブ化の残りを進める前に、非アクティブ化状態を反映したメタデータの変更を非アクティブ化ワークフローが待つことによって、対処されることが可能である。
【００３３】
[0034]  あるいはまた、これは、あるビットをセットし又はクリアするなどのインジケーターをデータベーステーブルにおいて提供する、物理的なデータベースインスタンスを非アクティブ化する前におけるユーザー活動の再チェックによって対処されることが可能であろう。ログインコード経路はこのビットをチェックし、その時点から先、ユーザー接続をブロックする。
【００３４】
[0035]  このビットは、ゼロ又はより多くの異なるアクションを用いてクリーンアップされることが可能である。例えば、もし非アクティブ化ワークフローがデータベースを切り離し続けるなら、クリーンアップが必要とされないようにデータベーステーブルもまた取り除かれるだろう。もし非アクティブ化ワークフローがデータベースを切り離すことを行わず、アクティブ化要求がやって来るならば、アクティブ化ワークフローは、このデータベーステーブルビットをクリアするステップを含んでよい。もし非アクティブ化ワークフローが機能せず、後でロールバックされるなら、クリーンアップが必要とされないようなクリーンなデータベーステーブルで、新しい物理的データベースが開始されるだろう。
【００３５】
[0036]  様々な設定ノブ（configuration knob）が検出ロジックのために実装されることが可能である。例えば、いくつかの実施態様は、論理的なデータベースレベルにセットすることが可能な２つの対立するマスタースイッチを実装することができる。一方のスイッチは「常に非アクティブである」が、他方は「決して非アクティブにならない」。これらのスイッチは、アクティブでない期間を除いて他の全ての構成に勝るだろう。
【００３６】
[0037]  以下は、データベースのアクティブ化に関する詳細を示す。以下の例では、データベースがアクティブ状態にない間に第１のユーザー接続がデータベースに対してなされるということが想定される。いくつかの実施態様におけるログイン経路は以下のようであるだろう。
【００３７】
[0038]  １．  クラスターのログイン経路が所与のユーザーデータベースに対するメタデータを探索する。
【００３８】
[0039]  ２．  その結果、非アクティブ化状態にある論理的なデータベースが発見される。
【００３９】
[0040]  ３．  このデータベースに対してアクティブ化を開始する。
【００４０】
[0041]  ４．  ワークフローサービスがデータベースアクティブ化ワークフローを始動させる。
【００４１】
[0042]  ５．  ワークフローサービスは次に、データベースアクティブ化ワークフロー処理が完了するのを待つ。
【００４２】
[0043]  ６．  ワークフローサービスがインスタンスノードの位置とともに（ステップ３で受け取られた要求に応答して）クラスター１２８へ応答を送り返す。
【００４３】
[0044]  ７．  並行して、ワークフローサービスは将来の接続のためにメタデータの更新も行う。
【００４４】
[0045]  ８．  ログイン経路は新しい物理的なデータベースインスタンスへ直接的に接続を行うことになる。
【００４５】
[0046]  ９．  新しい物理的なデータベースインスタンスがユーザーへログイン応答を送る。
【００４６】
[0047]  上記のステップ２及び３に関するいくつかの実施態様についての更なる詳細がここで示される。いくつかの実施態様では、ワークフローサービスは、新たなデータベースアクティブ化ワークフロー要求をリッスンしている識別済みポートにおいて（当該ポートが使用に対して有効であることを確認した後で）新たなサービスを起動するだろう。
【００４７】
[0048]  新たなサービスはそのポート上でリッスンすることを開始するだろう。
【００４８】
[0049]  ステップ４に関するいくつかの実施態様についての更なる詳細がここで示される。実施態様は、各々の認定されたデータベースインスタンスをパックし、したがって、可能であれば更なるインスタンスに対する必要性を回避するだろう。
【００４９】
[0050]  データベースエンジンは、ユーザー及びシステムの作業負荷によるＣＰＵ、メモリ、並びにＩ／Ｏリソースの使用率を追跡する。本明細書において説明される動的非アクティブ化は、ワークフローサービスコア内においてアクティブ性の検出権を遂行することが可能であり、したがって、ユーザー対システム使用率を確実に特定することが可能である。
【００５０】
[0051]  いくつかの実施態様において、新たな活動の可能性がある閾値を下回った時に非アクティブ化するために、作業負荷のアクティブ性パターンが分析されることが可能である。例えば、これは、発生するデータベース上のアクションの確率を決定することができる機械学習又は他のヒューリスティック解析によって決定されることが可能である。
【００５１】
[0052]  いくつかの実施態様は、過去のアクティブ化パターンのヒューリスティックを調べることによって、前もってデータベースをアクティブ化することを決定してもよい。
【００５２】
[0053]  代替的に又は付加的に、いくつかの実施態様は、データベースを、データベースにとって予期される作業負荷を賄える適切なインスタンスサイズにアクティブ化するだろう。
【００５３】
[0054]  データベースは、１つの物理的クラスター／マシンから非アクティブ化され、その容量を解放してシステムへ戻すことが可能である。ユーザー接続がやって来ると、アクティブ化ワークフローが開始され、データベースサーバープロセス及びデータベースをそこで開始するための適切なクラスター及び／又はマシンを見つけるだろう。こうして、いくつかの実施態様において、アクティブ化ワークフローは、クラウド環境における効果的な負荷分散装置として機能することが可能である。
【００５４】
[0055]  アクティブでないことの検出及び非アクティブ化の時間間隔は設定変更可能であってよい。これは、クラスターの弾力的な容量を動的にサポートするのを助けるために用いられることが可能である。
【００５５】
[0056]  ここで以下の議論は、実施されることができる多数の方法及び方法の行為に言及する。方法の行為はある順序で論じられ、又は特定の順序で行われるようにフローチャートに示されることがあるが、如何なる特定の順序も、特段指定されない限り要求されることはなく、あるいは行為はその行為が行われるのに先立って完了した別の行為に依存するため、要求されることはない。
【００５６】
[0057]  ここで図２を参照すると、方法２００が示されている。方法２００は、クラウドコンピューティング環境において実施されることができる。方法２００は、クラウドコンピューティング環境において実装されたデータベースを管理し、コールドデータベースを非アクティブ化しそれによりコンピューティングリソースを節約することによって、より効率的なクラウドコンピューティング環境を作るための行為を含む。
【００５７】
[0058]  方法は、クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップ（行為２０２）を含む。
【００５８】
[0059]  クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出した結果として、方法２００は、データベースを非アクティブ化するためにクラウドコンピューティング環境において作業負荷をインスタンス化するステップ（行為２０４）を更に含む。作業負荷は、データベースが後で再アクティブ化されることができるように、データベースに関するメタデータ及びデータベースのデータをクラウドストレージにリモートで格納するように構成される。したがって、例えば、非アクティブ化ワークフローは、データベースのメタデータ１２２及びデータベースのデータ１２４（例えばデータベーステーブル）をリモートストレージ１２６に格納することが可能であろう。リモートストレージは、ローカルなデータベースノード上ではなく、同じクラウド環境のどこかにおいてアクセス可能なストレージである。クラウド環境にデータベースを所有するユーザーは、リモートストレージの彼らの持ち分もまた所有している。彼らのデータベースが長い期間にわたって使用されていない―したがってコールドとみなされる場合、非アクティブ化は、ランタイムコンポーネントをローカルデータベースノードから除去し、リモートストレージにあるものをそのまま保持するだろう。
【００５９】
[0060]  方法２００は、データベースを再アクティブ化するステップを含んでもよい。いくつかのそのような実施態様において、方法２００は、データベースに向けられたユーザーインタラクションを検出するステップを更に含むことができる。データベースを再アクティブ化するステップは、データベースに向けられたユーザーインタラクションを検出した結果として実施されることができる。例えば、ユーザーは、非アクティブ化されたデータベースとインタラクトすることを望むことができる。
【００６０】
[0061]  代替的に又は付加的に、方法２００のそのような実施態様は、ユーザーインタラクションを除いた、データベースに向けられたシステムインタラクションを検出するステップを更に含んでもよい。そのような実施態様において、データベースを再アクティブ化するステップは、ユーザーインタラクションを除いた、データベースに向けられたシステムインタラクションを検出した結果として実施される。こうして、例えば、システム更新又は他のシステムインタラクションは、データベースが再アクティブ化されるようにすることができる。
【００６１】
[0062]  代替的に又は付加的に、方法２００のそのような実施態様は、潜在的なデータベースインタラクション（例えば、スケジューリングされた更新、既知のユーザー習慣等）を識別するステップを更に含んでもよい。そのような実施態様において、データベースを再アクティブ化するステップは、潜在的なデータベースインタラクションを識別した結果として実施される。
【００６２】
[0063]  方法２００は、クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップが、予め決められた量の時間にわたってデータベースが使用されていないことを検出するステップを含むように、実施されることができる。例えば、実施態様は、データベースが使用されたか否かをチェックするサイクルを実装することができる。いくつかの実施態様において、予め決められた量の時間は、予め決められた数のサイクルのチェックであってよい。代替的に又は付加的に、予め決められた量の時間は、予め決められた経過時間であってよい。
【００６３】
[0064]  いくつかの実施態様では、予め決められた量の時間が経過したとしても、いくつかの実施態様は、ユーザーがその少しの短い時間期間以内にデータベースを使用しそうであると判定することができる。したがって、例えば、ユーザーがおそらく８日毎にデータベースを使用するだろうということに実施態様が気づくケースを考慮されたい。もし予め決められた時間期間が７日であるなら、いくつかの実施態様は、１日以内にデータベースがおそらく使用されるだろうということを考えると、データベースを非アクティブ化及び再アクティブ化するコストのために、データベースを非アクティブ化しないと判定するだろう。
【００６４】
[0065]  方法は、クラウドコンピューティング環境において実装されたデータベースが非使用状態にあることを検出するステップが、積極的な検出方法に基づいて、データベースがある時間期間にわたって使用されそうでないことを検出するステップを含むように、実施されることができる。例えば、実施態様は、データベースが使用されていないことを判定するのではなく、データベースが長期間にわたって使用されないだろうということを予測する外的方法を用いることができる。例えば、実施態様は、データベースがおそらく使用されないだろうということを判定するためのユーザー固有ロジックを実装することができる。例えば、実施態様は、ユーザーに関するカレンダーエントリを調べて、ユーザーがデータベースを使用することができなさそうだろう、あるいは使用しなさそうだろうということを、ユーザーのカレンダーエントリに基づいて識別することができる。代替的に又は付加的に、実施態様は、ユーザーがデータベースを使用しなさそうであることをシステムが識別するのを助けることが可能なユーザーの休暇スケジュールについての知識を有してもよい。代替的に又は付加的に、実施態様は、ユーザーがある長期間にわたってデータベースを使用しなさそうであることを識別することができるようにするために、ユーザーの履歴のデータベース使用率を用いることができるのであってもよい。
【００６５】
[0066]  更に、方法は、１又は複数のプロセッサー及びコンピューターメモリなどのコンピューター可読媒体を含むコンピューターシステムによって実施されることができる。特に、コンピューターメモリは、１又は複数のプロセッサーによって実行された時に、実施態様に記載された行為などの様々な機能が実施されるようにするコンピューター実行可能命令を格納することができる。
【００６６】
[0067]  本発明の実施態様は、以下により詳しく論じられるコンピューターハードウェアを含んだ専用若しくは汎用コンピューターを含み、又は利用することができる。本発明の範囲内にある実施態様はまた、コンピューター実行可能命令及び／又はデータ構造を搬送又は格納するための物理的な並びに他のコンピューター可読媒体も含む。そのようなコンピューター可読媒体は、汎用又は専用のコンピューターシステムによってアクセスされることができる任意の利用可能な媒体であり得る。コンピューター実行可能命令を格納するコンピューター可読媒体は、物理的な記憶媒体である。コンピューター実行可能命令を搬送するコンピューター可読媒体は、伝送媒体である。したがって、例としてであって限定ではないが、本発明の実施態様は、少なくとも２つのはっきり異なった種類のコンピューター可読媒体：物理的なコンピューター可読記憶媒体と伝送コンピューター可読媒体を含むことが可能である。
【００６７】
[0068]  物理的なコンピューター可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の（ＣＤ、ＤＶＤ等のような）光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、又は、所望のプログラムコード手段をコンピューター実行可能命令若しくはデータ構造の形で格納するために使用されることが可能であり、また汎用若しくは専用のコンピューターによってアクセスされることが可能な任意の他の媒体を含む。
【００６８】
[0069]  「ネットワーク」は、コンピューターシステム及び／又はモジュール及び／又は他の電子デバイス間における電子データの配送を可能にする１又は複数のデータリンクとして定義される。情報がネットワーク若しくは別の通信接続（有線、無線、又は有線若しくは無線の組み合わせのいずれか）を介してコンピューターへ転送又は提供される時、コンピューターはその接続を伝送媒体として正しくとらえる。伝送媒体は、所望のプログラムコード手段をコンピューター実行可能命令若しくはデータ構造の形で搬送するために使用されることが可能であり、また汎用若しくは専用のコンピューターによってアクセスされることが可能なネットワーク及び／又はデータリンクを含むことが可能である。上記の組み合わせもまた、コンピューター可読媒体の範囲内に含まれる。
【００６９】
[0070]  更に、様々なコンピューターシステムコンポーネントに到達すると、コンピューター実行可能命令又はデータ構造の形のプログラムコード手段は、伝送コンピューター可読媒体から物理的なコンピューター可読記憶媒体へ（又はその反対に）自動的に転送されることが可能である。例えば、ネットワーク若しくはデータリンクを介して受け取られたコンピューター実行可能命令又はデータ構造は、ネットワークインターフェイスモジュール（例えば「ＮＩＣ」）内のＲＡＭにバッファリングされ、その後、最終的にコンピューターシステムＲＡＭ及び／又はコンピューターシステムにおける揮発性のより少ないコンピューター可読物理的記憶媒体へ転送されることが可能である。したがって、コンピューター可読物理的記憶媒体は、伝送媒体も（あるいは、むしろ主として）利用するコンピューターシステムコンポーネントに含まれることが可能である。
【００７０】
[0071]  コンピューター実行可能命令は、例えば、汎用コンピューター、専用コンピューター、若しくは専用処理装置に、ある機能又は機能群を実施させる命令及びデータを含む。コンピューター実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、又はソースコードでさえあってよい。構造的な特徴及び／又は方法論的行為に特有の言い回しで主題が説明されてきたが、添付されたクレームにおいて定義される主題は必ずしも上述された特徴又は行為に限定されるものではない、ということは理解されなければならない。それどころか、上述された特徴及び行為は、クレームを具体化する例示的な形として開示されているのである。
【００７１】
[0072]  本発明は、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサー、携帯型端末、マルチプロセッサーシステム、マイクロプロセッサーベースの又はプログラム可能な家電製品、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューター、携帯電話端末、ＰＤＡ、ページャー、ルーター、スイッチ等を含む、多くの種類のコンピューターシステム構成を有するネットワークコンピューティング環境において実施されることができる、ということを当業者は認識するだろう。本発明はまた、ネットワークを通じて（有線データリンク、無線データリンク、又は有線及び無線データリンクの組み合わせのいずれかによって）リンクされたローカル及びリモートコンピューターシステムの両方がタスクを実施する分散システム環境においても実施されることができる。分散システム環境では、プログラムモジュールは、ローカル及びリモートメモリ記憶装置の両方に配置されることができる。
【００７２】
[0073]  代替的に、又は加えて、本明細書において説明される機能は、少なくとも部分的に、１又は複数のハードウェアロジックコンポーネントによって実施されることが可能である。例えば、限定ではないが、使用されることが可能な例示の種類のハードウェアロジックコンポーネントは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定プログラム向け集積回路（ＡＳＩＣ）、特定プログラム向け標準製品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、複合プログラマブルロジックデバイス（ＣＰＬＤ）等を含む。
【００７３】
[0074]  本発明は、その精神又は特質から逸脱することなく、他の特定の形式で具現化されることができる。記載された実施態様は、あらゆる面において、制限的ではなく例示的であるにすぎないとみなされなければならない。したがって、本発明の範囲は、前述の説明によってではなく、添付されたクレームによって示される。クレームの均等の意義及び射程に入るあらゆる変更は、当該範囲内に包含されなければならない。
【図１】
2019526119.tif 000003
【図２】
2019526119.tif 000004
【国際調査報告】
2019526119.tif 000005
2019526119.tif 000006
2019526119.tif 000007