IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特表-データ重複排除 図1
  • 特表-データ重複排除 図2
  • 特表-データ重複排除 図3
  • 特表-データ重複排除 図4
  • 特表-データ重複排除 図5
  • 特表-データ重複排除 図6
  • 特表-データ重複排除 図7
  • 特表-データ重複排除 図8
  • 特表-データ重複排除 図9
  • 特表-データ重複排除 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】データ重複排除
(51)【国際特許分類】
   G06F 16/174 20190101AFI20240905BHJP
【FI】
G06F16/174
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513760
(86)(22)【出願日】2022-08-19
(85)【翻訳文提出日】2024-02-29
(86)【国際出願番号】 EP2022073191
(87)【国際公開番号】W WO2023036585
(87)【国際公開日】2023-03-16
(31)【優先権主張番号】17/468,732
(32)【優先日】2021-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】サッソン、ベン
(72)【発明者】
【氏名】キャッシュマン、ポール、ニコラス
(72)【発明者】
【氏名】トムキンス、ドミニク
(72)【発明者】
【氏名】ロスタニ、フローレント
(57)【要約】
本発明の実施形態は、データ重複排除環境においてソースからリファラへのデータの所有権のハンドオーバをハンドリングするための概念を提供する。ソースからリファラへのデータの所有権のハンドオーバを実施することによって、データにアクセスするのに必要なプロセス数を低減させることができ、したがって、システムの性能を改善することができる。ハンドオーバを実施するためのソースの識別情報は、揮発性キャッシュを経由して実施されてもよい。
【特許請求の範囲】
【請求項1】
動的ボリューム・プーリングにおけるボリューム・アロケーションのためのコンピュータ実行方法であって、
リファラによってソースに向けられたリクエストによってアクセスされた前記ソースを、1つまたは複数のコンピュータ・プロセッサで識別することであって、前記ソースが、仮想アドレスを含み、前記仮想アドレスが、システム・メモリ内のデータのセットの物理アドレスを含み、前記リファラが、前記データのセットについての着信リクエストを前記ソースの前記仮想アドレスに向けるように適合される、前記識別することと、
前記識別されたソースの前記仮想アドレスの所有権の、前記リファラへのハンドオーバを、1つまたは複数のコンピュータ・プロセッサで実施することと
を含む、コンピュータ実行方法。
【請求項2】
揮発性キャッシュを使用して前記リファラによって前記ソースに向けられた前記リクエストによってアクセスされた前記ソースを、1つまたは複数のコンピュータ・プロセッサで識別すること
をさらに含む、請求項1に記載のコンピュータ実行方法。
【請求項3】
前記ソースが、複数のソースを含み、
前記複数のソースの関連付けられたリファラによって前記複数のソースのうちの各ソースに向けられた前記リクエストによってアクセスされる揮発性キャッシュ内の前記複数のソースについてのソースのリストを、1つまたは複数のコンピュータ・プロセッサで生成すること
をさらに含む、請求項1に記載のコンピュータ実行方法。
【請求項4】
前記ソースの1つまたは複数の特性を経時的に、1つまたは複数のコンピュータ・プロセッサで監視することと、
前記1つまたは複数の特性に基づいて前記複数のソースについてのソースの前記リストを、1つまたは複数のコンピュータ・プロセッサで修正することと
をさらに含む、請求項3に記載のコンピュータ実行方法。
【請求項5】
前記1つまたは複数の特性が、少なくとも、前記複数のソースのうちの各ソースのアクセス頻度を含む、請求項4に記載のコンピュータ実行方法。
【請求項6】
前記リファラが、複数のリファラを含み、
リクエストを前記ソースに向ける揮発性キャッシュ内の前記複数のリファラについてのリファラのリストを、1つまたは複数のコンピュータ・プロセッサで生成すること
をさらに含む、請求項2に記載のコンピュータ実行方法。
【請求項7】
リファラの前記リストが、前記複数のリファラのうちの各リファラによって前記ソースに向けられたリクエストの頻度に基づいてソートされる、請求項6に記載のコンピュータ実行方法。
【請求項8】
前記揮発性キャッシュがリード・オンリである、請求項7に記載のコンピュータ実行方法。
【請求項9】
動的ボリューム・プーリングにおけるボリューム・アロケーションのためのコンピュータ・プログラム製品であって、
1つまたは複数のコンピュータ可読ストレージ媒体と、
前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
リファラによって前記ソースに向けられたリクエストによってアクセスされたソースを識別するためのプログラム命令であって、前記ソースが、仮想アドレスを含み、前記仮想アドレスが、システム・メモリ内のデータのセットの物理アドレスを含み、前記リファラが、データの前記セットについての着信リクエストを前記ソースの前記仮想アドレスに向けるように適合される、前記プログラム命令、および
前記識別されたソースの前記仮想アドレスの所有権の、前記リファラへのハンドオーバを実施するためのプログラム命令
を含む、前記プログラム命令と
を備える、コンピュータ・プログラム製品。
【請求項10】
揮発性キャッシュを使用して前記リファラによって前記ソースに向けられた前記リクエストによってアクセスされた前記ソースを識別すること
を行うための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項9に記載のコンピュータ・プログラム製品。
【請求項11】
前記ソースが、複数のソースを含み、
前記複数のソースの関連付けられたリファラによって前記複数のソースのうちの各ソースに向けられた前記リクエストによってアクセスされる揮発性キャッシュ内の前記複数のソースについてのソースのリストを生成すること
を行うための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項9に記載のコンピュータ・プログラム製品。
【請求項12】
前記ソースの1つまたは複数の特性を経時的に監視することと、
前記1つまたは複数の特性に基づいて前記複数のソースについてのソースの前記リストを修正することと
を行うための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項11に記載のコンピュータ・プログラム製品。
【請求項13】
前記1つまたは複数の特性が、少なくとも、前記複数のソースのうちの各ソースのアクセス頻度を含む、請求項12に記載のコンピュータ・プログラム製品。
【請求項14】
前記リファラが、複数のリファラを含み、
リクエストを前記ソースに向ける揮発性キャッシュ内の前記複数のリファラについてのリファラのリストを生成すること
を行うための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項10に記載のコンピュータ・プログラム製品。
【請求項15】
動的ボリューム・プーリングにおけるボリューム・アロケーションのためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読ストレージ媒体と、
前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令であって、
リファラによって前記ソースに向けられたリクエストによってアクセスされたソースを識別するためのプログラム命令であって、前記ソースが、仮想アドレスを含み、前記仮想アドレスが、システム・メモリ内のデータのセットの物理アドレスを含み、前記リファラが、データの前記セットについての着信リクエストを前記ソースの前記仮想アドレスに向けるように適合される、前記プログラム命令、および
前記識別されたソースの前記仮想アドレスの所有権の、前記リファラへのハンドオーバを実施するためのプログラム命令
を含む、前記プログラム命令と
を備える、コンピュータ・システム。
【請求項16】
揮発性キャッシュを使用して前記リファラによって前記ソースに向けられた前記リクエストによってアクセスされた前記ソースを識別すること
を行うための、前記1つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項15に記載のコンピュータ・システム。
【請求項17】
前記ソースが、複数のソースを含み、
前記複数のソースの関連付けられたリファラによって前記複数のソースのうちの各ソースに向けられた前記リクエストによってアクセスされる揮発性キャッシュ内の前記複数のソースについてのソースのリストを生成すること
を行うための、前記1つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項15に記載のコンピュータ・システム。
【請求項18】
前記ソースの1つまたは複数の特性を経時的に監視することと、
前記1つまたは複数の特性に基づいて前記複数のソースについてのソースの前記リストを修正することと
を行うための、前記1つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項17に記載のコンピュータ・システム。
【請求項19】
前記1つまたは複数の特性が、少なくとも、前記複数のソースのうちの各ソースのアクセス頻度を含む、請求項18に記載のコンピュータ・システム。
【請求項20】
前記リファラが、複数のリファラを含み、
リクエストを前記ソースに向ける揮発性キャッシュ内の前記複数のリファラについてのリファラのリストを生成すること
を行うための、前記1つまたは複数のコンピュータ・プロセッサのうちの前記少なくとも1つによる実行のための、前記1つまたは複数のコンピュータ可読ストレージ媒体に格納されたプログラム命令をさらに備える、請求項16に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、コンピュータ・システムにおけるデータ重複排除の分野に関し、より詳細には、ITシステムにおけるデータ重複排除をハンドリングするためのシステムおよび方法に関する。
【背景技術】
【0002】
動作管理およびITサービス管理システムには、ストレージ重複排除を実施するための複数の実装形態が存在する。ストレージ重複排除は、データのセットがグレイン・レベルで1回だけシステムに格納されることを確保するようにデザインされる。多くのホスト・ボリュームは次いで、各ホスト・ボリュームが別々に格納されたデータセットを要求するのではなく、格納されたデータのこの単一のインスタンスを参照してもよい。
【0003】
ストレージ重複排除の広く普及したモデルは、ソースおよびリファラ・モデルと呼ばれる。ソースは、ホスト・ボリュームの仮想アドレスに関連付けられたデータの物理ロケーションへのアドレスを含む。ソースを読み取るとき、システムは、格納されたデータの物理アドレスに関するソースからのメタデータにアクセスし、メタデータからデータの物理アドレスを抽出し、格納されたデータを取り出すために物理ストレージへの読み取りリクエストを発行するはずである。
【0004】
リファラは、既存のソースにぶつかった重複排除について書き込まれてもよい。リファラは、ソースにおける仮想アドレスを指し示し、仮想アドレスは、格納されたデータの物理ロケーションを指し示す。
【発明の概要】
【0005】
本発明は、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのシステムを提供しようと努める。本発明はまた、揮発性キャッシュを経由してソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのシステムを提供しようと努める。本発明はさらに、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするための方法を提供しようと努める。このような方法は、コンピュータで実行されてもよい。すなわち、このような方法は、提案の方法を実施するように構成されたプログラミング命令を有するコンピュータ可読ストレージ媒体上でコンピュータ実行可能コードを明白に具体化したコンピュータ・インフラストラクチャで実行されてもよい。本発明はさらに、プロセッサで実行されたときに提案の概念を実行するためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム製品を提供しようと努める。
【0006】
本発明の態様によれば、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのシステムが提供され、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、システムが、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別し、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するように適合される。
【0007】
本発明の別の態様によれば、システムのソースからリファラへのデータの所有権のハンドオーバをハンドリングするための方法が提供され、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、方法が、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別し、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するステップを含む。
【0008】
実施形態は、従来/既存のデータ・ハンドリング・システム、またはデータ重複排除システム、あるいはその両方と組み合わせて使用されてもよい。このようにして、実施形態は、その機能および能力の改善または拡張あるいはその両方を行うように、旧式のシステムに統合してもよい。改善されたデータ重複排除システムは、したがって、提案の実施形態によって提供されてもよい。
【0009】
本発明の別の実施形態によれば、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのコンピュータ・プログラム製品が提供され、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、プログラム命令が、データ処理システムの少なくとも1つのプロセッサで実行されたときに、1つまたは複数の提案の実施形態による方法を処理ユニットが実施するように処理ユニットによって実行可能である。
【0010】
さらに別の態様によれば、1つまたは複数の実施形態による少なくとも1つのプロセッサおよびコンピュータ・プログラム製品を備える処理システムが提供され、少なくとも1つのプロセッサが、前記コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように適合される。
【0011】
したがって、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするための提案の概念があってもよい。例えば、実施形態は、ソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施する手段を提供してもよい。このように仮想アドレスの所有権をハンドオーバすることによって、データにアクセスするのに必要なプロセス数を低減させることができ、したがって、重複排除システムの性能を改善することができる。
【0012】
本発明は、本発明の例示的実施形態の非限定的例として、書き留められた複数の図面を参照して、以下に続く詳細な説明で説明される。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態によるクラウド・コンピューティング・ノードの図である。
図2】本発明の実施形態によるクラウド・コンピューティング環境の図である。
図3】本発明の実施形態による抽象化モデル層の図である。
図4】本発明の別の実施形態によるクラウド・コンピューティング・ノードの図である。
図5】本発明の実施形態によるソースおよびリファラを備えるシステムの概略図である。
図6】本発明のさらなる実施形態による揮発性キャッシュを備えるシステムの概略図である。
図7】本発明のさらなる実施形態による複数のソースを含むシステムの概略図である。
図8】本発明のさらなる実施形態による複数のリファラを含むシステムの概略図である。
図9】本発明のさらなる実施形態によるハンドオーバ構成要素を備えるシステムの概略図である。
図10】本発明の実施形態による、システムのソースからリファラへのデータの所有権のハンドオーバをハンドリングするための方法の図である。
【発明を実施するための形態】
【0014】
図は概略に過ぎず、拡大縮小するように描かれていないことを理解されたい。同じまたは類似の部品を指示するために、図の全体を通して同じ参照番号が使用されることも理解されたい。
【0015】
本発明の実施形態が方法の構成要素となる本出願のコンテキストでは、このような方法は、コンピュータによる実行のためのプロセスであること、すなわち、コンピュータ実行可能方法であることを理解されたい。方法の様々なステップは、したがって、例えば、1つまたは複数のアルゴリズムの様々な部品など、コンピュータ・プログラムの様々な部品を反映している。
【0016】
また、本出願のコンテキストでは、(処理)システムは、本発明の方法の1つまたは複数の実施形態を実行するように適合された、単一のデバイス、または分散型デバイスの集合体でもよい。例えば、システムは、パーソナル・コンピュータ(PC)、サーバ、あるいは、本発明の方法の少なくとも1つの実施形態を協力して実行するように、ローカル・エリア・ネットワーク、インターネットなどのネットワークを介して接続されたPCもしくはサーバまたはその両方の集合体でもよい。
【0017】
また、本出願のコンテキストでは、システムは、本発明の方法の1つまたは複数の実施形態を実行するように適合された、単一のデバイス、または分散型デバイスの集合体でもよい。例えば、システムは、パーソナル・コンピュータ(PC)、ポータブル・コンピューティング・デバイス(タブレット・コンピュータ、ラップトップ、スマートフォンなど)、セット・トップ・ボックス、サーバ、あるいは、本発明の方法の少なくとも1つの実施形態を協力して実行するように、ローカル・エリア・ネットワーク、インターネットなどのネットワークを介して接続されたPCもしくはサーバまたはその両方の集合体でもよい。
【0018】
本発明の技術的特徴は、一般に、データ・ハンドリングに関し、より詳細には、例えば、システムにおけるデータの所有権のハンドオーバを実施し得る、データ重複排除の概念に関する。より詳細には、本発明の実施形態は、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのシステムを提供し、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、システムが、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別し、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するように適合される。
【0019】
本発明は、ソースからリファラへのデータの所有権のハンドオーバをハンドリングする手段を提供する。ソースおよびリファラ・モデルは、グレイン・レベルでデータが1回だけ格納されることを確保することを意図した、ストレージ重複排除の広く普及した実装形態である。ソースは、ボリュームの仮想アドレスに関連付けられたデータの物理ロケーションを含む。ソースを読み取るとき、システムは、ソースのメタデータからデータの物理ロケーションを抽出し、次いで、物理ストレージへの読み取りリクエストを発行してデータ自体を取り出してもよい。リファラは、既存のソースにぶつかった重複排除について書き込まれる。リファラは、ソースにおける仮想アドレスを指し示し、仮想アドレスは、データの物理ロケーションを指し示す。ソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施することによって、データにアクセスするのに必要なプロセス数を低減させることができ、したがって、重複排除システムの性能を改善することができる。
【0020】
ソースおよびリファラ・モデルの欠点は、アドレスへの読み取りを実施するために、参照されるデータにアクセスしようとするときのシステム性能への有害な影響を有し得る、追加のメタデータ・アクセス動作をリファラが要求することに起因する。
【0021】
ソースおよびリファラ・モデルのさらなる欠点は、リホーム手順を実施する必要が生じたときに、起こることがある。リホーム手順は、例えば、ユーザがソース・ボリュームを削除することを依頼したときなど、ソースがこれ以上データを保持できないときに発生する手順であり、元のソースからリファラのうちの1つにデータの所有権を変更するアクションである。複数のリファラが同じソース・データにリンクされた場合、これらのリファラがリホーム手順後、新しいソースを全て指し示すことが理想的であるが、これは、システム上で稼働する他のプロセスによって阻止されるおそれがあり、格納されたデータの複数のインスタンスにより重複排除比が低下する。
【0022】
したがって、システムにおけるデータ重複排除をハンドリングする手段を改善する必要がある。
【0023】
実施形態では、システムは、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別するように適合された揮発性キャッシュを備える。揮発性キャッシュを利用して、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別することによって、揮発性キャッシュ上のデータを強化またはミラーリングする必要なく、ソースを識別するのに必要なシステム・リソースを低減させることができる。実施形態では、揮発性キャッシュはリード・オンリである。
【0024】
実施形態では、システムは、複数のソースを含み、揮発性キャッシュは、関連付けられたリファラによって各ソースに向けられたリクエストによってアクセスされたソースのリストを生成するように適合される。このようにして、揮発性キャッシュは、ハンドオーバ・プロセスを実施するための候補になり得る、システム上のソースのリストを含んでもよい。
【0025】
実施形態では、揮発性キャッシュは、ソースの特性を経時的に監視するように適合され、揮発性キャッシュは、監視された特性に従ってソースのリストをソートするように適合される。このように、最もインパクトのあるソースは、ソースの所与の監視された特性に基づいて、揮発性キャッシュの一番上に上げられてもよい。
【0026】
実施形態では、監視される特性は、ソースのアクセス頻度である。このように、ソースが頻繁にアクセスされるほど、前記ソースがシステム性能に対して有することになるインパクトが大きくなるので、最も頻繁にアクセスされるソースは、ソースのリストの一番上に上げられてもよい。
【0027】
実施形態では、システムは、ソースを指し示す複数のリファラを含み、揮発性キャッシュは、リクエストをソースに向けるリファラのリストを生成するようにさらに適合される。このように、ソースにアクセスするリクエストが生じる場所を監視することが可能になってもよい。
【0028】
実施形態では、揮発性キャッシュは、各リファラによってソースに向けられたリクエストの頻度に従って、リファラのリストをソートするように適合される。このように、最大数のアクセス・リクエストをソースに向けるリファラは、所与のソースにとって、よりインパクトのあるリファラとして識別されてもよい。
【0029】
実施形態では、システムは、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するように適合されたハンドオーバ構成要素をさらに備える。
【0030】
実施形態では、システムは、関連付けられたリファラによってソースのそれぞれに向けられたリクエストによってアクセスされた複数のソースを識別するように適合された揮発性キャッシュを備え、揮発性キャッシュは、アクセスされた複数のソースのリストを生成するように適合され、ハンドオーバ構成要素は、ソースのリストからソースのうちの1つまたは複数を選択し、選択された1つまたは複数のソースから選択された各ソースに関連付けられたリファラへの、仮想アドレスの所有権のハンドオーバを実施するように適合される。このように、ハンドオーバ構成要素は、ハンドオーバ・プロセスを実施するための候補として、ソースのリストから1つまたは複数のソースを選択してもよい。
【0031】
実施形態では、揮発性キャッシュは、ソースの特性を経時的に監視するように適合され、ハンドオーバ構成要素は、監視された特性に基づいて、ソースのリストからソースのうちの1つまたは複数を選択するように適合される。このように、ハンドオーバ構成要素は、監視された特性に従って、システム性能に最もインパクトがあると考えられるソースのリストからの1つまたは複数のソースに対してハンドオーバ・プロセスを実施してもよい。
【0032】
実施形態では、ハンドオーバ構成要素は、ソースがリクエストによってアクセスされたときに、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するように適合される。このように、ハンドオーバ構成要素は、ソースがアクセスされているときに、日和見的にハンドオーバ・プロセスを実施してもよい。
【0033】
実施形態では、システムは、ソースからリファラへの仮想アドレスの所有権のハンドオーバが実施された後、ハンドオーバ・プロセスを受けたソースを除去するために、ソースのリストをアップデートするようにさらに適合される。このように、揮発性キャッシュは、ハンドオーバ・プロセスを受けたソースに応答して動的にアップデートされてもよく、結果として、ソースのリストは、その時にシステムに最もインパクトのあるソースを動的に掲示することになる。
【0034】
実施形態では、システムは、ソースからリファラへの仮想アドレスの所有権のハンドオーバが実施された後、着信リクエストをリファラにおける仮想アドレスに向けるためにソースおよびリファラをアップデートするようにさらに適合される。このように、まだアップデートされていないソースへの参照は、ハンドオーバ・プロセスが実施された後、リファラに向けられることになる。
【0035】
本発明の実施形態は、システムのソースからリファラへのデータの所有権のハンドオーバをハンドリングするための方法をさらに提供し、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、方法が、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別し、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施するステップを含む。
【0036】
実施形態では、システムは、複数のソースを含み、方法は、揮発性キャッシュを経由して、関連付けられたリファラによって各ソースに向けられたリクエストによってアクセスされたソースのリストを生成することと、ハンドオーバ構成要素を経由してソースのリストからソースのうちの1つまたは複数を選択することと、ハンドオーバ構成要素を経由して、選択された1つまたは複数のソースから、選択された各ソースに関連付けられたリファラへの、仮想アドレスの所有権のハンドオーバを実施することとをさらに含む。
【0037】
実施形態では、方法は、揮発性キャッシュを経由してソースの特性を経時的に監視することをさらに含み、ハンドオーバ構成要素を経由してソースのリストからソースのうちの1つまたは複数を選択することが、監視された特性に基づく。
【0038】
本発明の実施形態は、ソースからリファラへのデータの所有権のハンドオーバをハンドリングするためのコンピュータ・プログラム製品をさらに提供し、ソースが、仮想アドレスを含み、仮想アドレスが、システム・メモリ上のデータのセットの物理アドレスを含み、リファラが、データのセットについての着信リクエストをソースの仮想アドレスに向けるように適合され、コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、プログラム命令が、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別し、識別されたソースの仮想アドレスの所有権の、リファラへのハンドオーバを実施することを含む方法を処理ユニットが実施するように処理ユニットによって実行可能である。
【0039】
実施形態では、コンピュータ・プログラム製品が、プログラム命令を具体化したコンピュータ可読ストレージ媒体を備え、プログラム命令が、揮発性キャッシュを経由して、関連付けられたリファラによって各ソースに向けられたリクエストによってアクセスされたソースのリストを生成することと、ハンドオーバ構成要素を経由してソースのリストからソースのうちの1つまたは複数を選択することと、ハンドオーバ構成要素を経由して、選択された1つまたは複数のソースから、選択された各ソースに関連付けられたリファラへの、仮想アドレスの所有権のハンドオーバを実施することとを行うステップをさらに含む方法を処理ユニットが実施するように処理ユニットによって実行可能である。
【0040】
本発明の実施形態は、上述の少なくとも1つのプロセッサおよびコンピュータ・プログラム製品を備える処理システムをさらに提供し、少なくとも1つのプロセッサが、前記コンピュータ・プログラム製品のコンピュータ・プログラム・コードを実行するように適合される。
【0041】
本開示は、クラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で列挙される技法の実装形態は、クラウド・コンピューティング環境に限定されないことが予め理解されている。むしろ、本発明の実施形態は、現在知られているか、後で開発される、コンピューティング環境の他の任意のタイプと併用して実行される能力がある。
【0042】
クラウド・コンピューティングは、最低限の管理努力またはサービスの提供者との対話で素早く提供および解放可能な、構成可能なコンピューティング・リソースの共用プール(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)への便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含んでもよい。
【0043】
特性は以下の通りである。
【0044】
オンデマンド・セルフサービス:クラウド利用者は、サービスの提供者との人間対話を必要とせず、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的に提供することができる。
【0045】
ブロード・ネットワーク・アクセス:能力は、ネットワークを介して利用可能であり、異種混合のシンまたはシック・クライアント・プラットフォーム(例えば、モバイル・フォン、ラップトップ、およびPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
【0046】
リソース・プーリング:提供者のコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の利用者をサーブするためにプールされ,種々の物理および仮想リソースが、要求に応じて動的に割当ておよび再割当てされる。利用者には一般に、提供されるリソースの正確な位置についての制御権も知識もなく、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)で位置を指定できる場合があるという点で位置独立の意味がある。
【0047】
迅速な弾力性:能力は、素早くスケール・アウトするために迅速かつ伸縮自在に、場合によっては自動的に提供され、素早くスケール・インするために迅速に解放されることが可能である。利用者にとって、提供のために利用可能な能力は無制限のように見えることが多く、いつでも任意の量で購入可能である。
【0048】
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化のいくつかのレベルで計量能力を活用することによって、リソース使用量を自動的に制御し、最適化する。リソース使用は、監視、制御、およびレポート可能であり、利用されるサービスのプロバイダおよび利用者双方に透明性をもたらす。
【0049】
サービス・モデルは以下の通りである。
【0050】
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースのeメール)などの、シン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはことによると個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、限定的なユーザ固有アプリケーション構成設定を例外とする可能性がある。
【0051】
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して制作された利用者制作または獲得アプリケーションを、クラウド・インフラストラクチャ上に配置することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わず、配置されたアプリケーション、および場合によっては、アプリケーション・ホスティング環境構成に対する制御を行う。
【0052】
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを利用者が展開して動かすことができる他の基本的なコンピューティング・リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わず、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては、選択されたネットワーキング構成要素(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0053】
展開モデルは以下の通りである。
【0054】
プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにだけ運用される。クラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、敷地内にあっても敷地外にあってもよい。
【0055】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有してきた固有のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、敷地内にあっても敷地外にあってもよい。
【0056】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模業界団体に対して利用可能にされ、クラウド・サービスを売る組織によって所有される。
【0057】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーション移植性を可能にする標準または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって一緒に結びつけられた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0058】
クラウド・コンピューティング環境は、ステートレス性、疎結合、モジュラリティ、およびセマンティック相互運用性に焦点を置いたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを備えるインフラストラクチャがある。
【0059】
ここで図1を参照すると、クラウド・コンピューティング・ノードの例の概略が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの1つの例に過ぎず、本明細書に記載の本発明の実施形態の用途または機能の範囲についての何らかの限定を示唆することを意図するものではない。それにもかかわらず、クラウド・コンピューティング・ノード10には、以上で説明された機能のいずれかの実行または実施あるいはその両方が行われる能力がある。
【0060】
クラウド・コンピューティング・ノード10には、数多くの他の汎用または専用コンピューティング・システム環境または構成と共に動作可能なコンピュータ・システム/サーバ12がある。コンピュータ・システム/サーバ12と共に使用するのに適切になり得るよく知られたコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能家電製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものを含むがこれらに限定されない。
【0061】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなど、コンピュータ・システム実行可能命令の一般的なコンテキストで説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを実施するか、特定の抽象データ型を実行する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含んでもよい。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実施される分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に置かれてもよい。
【0062】
図1に示されているように、クラウド・コンピューティング・ノード10におけるコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ12の構成要素は、1つまたは複数のプロセッサまたは処理ユニット16、システム・メモリ28、および、システム・メモリ28を含む様々なシステム構成要素をプロセッサ16に連結するバス18を含んでもよいがこれらに限定されない。
【0063】
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用したプロセッサまたはローカル・バスを含む、バス構造のいくつかのタイプのいずれかのうちの1つまたは複数を表す。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロチャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
【0064】
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体でもよく、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体の両方を含む。
【0065】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30、またはキャッシュ・メモリ32、あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、ストレージ・システム34は、取外し不能な不揮発性磁気媒体(図示されていないが、典型的には「ハード・ドライブ」と呼ばれる)を読み書きするために提供可能である。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが提供されることが可能である。このような例では、それぞれは、1つまたは複数のデータ媒体インターフェースによってバス18に接続可能である。下記でさらに描写および記載されるように、メモリ28は、本発明の実施形態の機能を行うように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0066】
プログラム/ユーティリティ40は、プログラム・モジュール42のセット(少なくとも1つ)を有し、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、例として、また限定ではなく、メモリ28に格納されてもよい。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそのいくつかの組合せは、ネットワーキング環境の実装形態を含んでもよい。
【0067】
プログラム・モジュール42は一般に、本明細書に記載のような本発明の実施形態の機能または方法あるいはその両方を実行する。例えば、DHCPクライアント80の機能の一部または全ては、プログラム・モジュール42のうちの1つまたは複数として実行可能である。追加として、DHCPクライアント80は、本明細書に記載の機能を提供するために、別個の専用プロセッサ、または単一もしくはいくつかのプロセッサとして実行されてもよい。実施形態では、DHCPクライアント80は、本明細書に記載のプロセスのうちの1つまたは複数を実施する。
【0068】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイスなどの1つもしくは複数の外部デバイス14、ディスプレイ24等、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つもしくは複数のデバイス、または、コンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せと通信してもよい。このような通信は、I/Oインターフェース22を介して発生させることが可能である。さらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの、1つまたは複数のネットワークと通信可能である。描写されたように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他の構成要素と通信する。図示されていないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ12と併用して使用されてもよいことを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAID(安価なディスクの冗長アレイ、または独立ディスクの冗長アレイ)システム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム等を含むがこれらに限定されない。
【0069】
図2をここで参照すると、例証的なクラウド・コンピューティング環境50が描写されている。図示のように、クラウド・コンピューティング環境50は、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど、クラウド利用者によって使用されるローカル・コンピューティング・デバイスがそれと通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10を備える。ノード10は、互いに通信してもよい。ノード10は、上述のような、プライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組合せなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。図2に示されたコンピューティング・デバイス54A~Nのタイプは、例証に過ぎないことが意図され、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、または(例えば、ウェブ・ブラウザを使用した)ネットワーク・アドレス可能接続、あるいはその両方を介して、任意のタイプのコンピュータ化デバイスと通信可能であることが理解されている。
【0070】
図3をここで参照すると、クラウド・コンピューティング環境50(図2)によって提供される機能抽象化層のセットが示されている。図3に示された構成要素、層、および機能は、例証に過ぎないことが意図され、本発明の実施形態は、これらに限定されないことを予め理解されたい。描写されたように、以下の層および対応する機能が提供される。
【0071】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびに、ネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68を含む。
【0072】
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75という、仮想エンティティの例がそこから提供され得る抽象化層を提供する。
【0073】
1つの例では、管理層80は、下記で説明される機能を提供してもよい。リソース提供81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用量に対する請求またはインボイスを行う。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド利用者およびタスクの本人確認、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの配分および管理を行う。サービス・レベル同意(SLA)計画およびフルフィルメント85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
【0074】
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配送93、データ分析処理94、トランザクション処理95、ならびに、本明細書に記載のデータ重複排除プロセス96を含む。本発明の態様によれば、データ重複排除プロセス96のワークロード/機能は、本明細書に記載のプロセスのうちの1つまたは複数を実施するように動作する。
【0075】
図4は、本発明の別の実施形態によるクラウド・コンピューティング・ノードを描写している。特に、図4は、図1と同じクラウド・コンピューティング・ノード10を備える別のクラウド・コンピューティング・ノードである。図4では、コンピュータ・システム/サーバ12はまた、データ重複排除クライアント170、およびデータ重複排除サーバ160を備えるか、これらと通信する。
【0076】
本発明の態様によれば、データ重複排除クライアント170は、別個のまたは組み合わされたモジュールとしてメモリに格納されたプログラム・モジュール42における1つまたは複数のプログラム・コードとして実行可能である。さらに、データ重複排除クライアント170は、これらのツールの機能を提供するために、別個の専用プロセッサまたは単一もしくはいくつかのプロセッサとして実行されてもよい。コンピュータ・プログラム・コードを実行している間、処理ユニット16は、メモリ、ストレージ・システム、またはI/Oインターフェース22、あるいはその組合せを読み書きすることができる。プログラム・コードは、本発明のプロセスを実行する。
【0077】
例として、データ重複排除クライアント170は、クラウド・コンピューティング環境50を介してデータ重複排除サーバ160と通信するように構成されてもよい。図2を参照しながら論じられたように、例えば、クラウド・コンピューティング環境50は、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せでもよい。提案のデータ重複排除メカニズムの実施形態では、データ重複排除サーバ160は、クライアント170にデータを提供してもよい。当業者は、データ重複排除クライアント170とデータ重複排除サーバ160とが直接的に通信してもよいことを理解するはずである。代替として、クラウド・コンピューティング環境50を介してデータ重複排除クライアント170とデータ重複排除サーバ160との間のメッセージを中継するための中間体として、中継エージェントが使用されてもよい。
【0078】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せでもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
【0079】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納可能な有形デバイスであることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せでもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録したパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。本明細書で使用されるようなコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、本質的に一過性の信号であると解釈されるべきではない。
【0080】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せなどの、ネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロード可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0081】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語のいずれかの組合せで書かれたソース・コードもしくはオブジェクト・コードでもよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、または、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、あるいは、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、プログラム可能論理回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0082】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行可能であることが理解されよう。
【0083】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、機械を生み出すために汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納されてもよく、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の様式で機能するように指図することができる。
【0084】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップを実施するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてもよい。
【0085】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の各ブロックは、指定の論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表してもよい。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは無関係に行われてもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時には、含まれる機能に応じて逆の順序で実行されてもよい。
【0086】
図5は、本発明の1つの態様による、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200のためのシステム・フローの概略図を提供する。ソースは、仮想アドレスを有し、仮想アドレスは、システム・メモリ上のデータのセットの物理アドレスを含み、リファラは、データのセットについての着信リクエスト230をソースの仮想アドレスに向けるように適合される。
【0087】
図5に示された例では、ソースからリファラへのデータの所有権のハンドオーバが実施される前のシステム200の典型的動作が示されている。特に、図5は、リファラ220で受信された着信リクエスト230を示しており、着信リクエスト230は、次いで、ソース210に向けられる。リクエストされたデータ240は、次いで、受信されたリクエストを生成したユーザまたはプロセスなど、リクエストの起点に提供されてもよい。
【0088】
例として、ユーザは、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200と通信しているシステム上でプロセスを開始してもよい。開始されたプロセスは、データ重複排除を受けたデータへのアクセスを要求してもよく、データのリクエスト230がリファラ220で受信されることを意味する。リクエストは、次いで、その後プロセスに提供され得るリクエストされたデータ240を取り出すために、リファラ220によってソース210に向けられる。
【0089】
図6は、本発明の1つの態様による、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200のためのシステム・フローの概略図を提供する。図6に示された例では、システムは、リファラ220によってソース210に向けられたリクエストによってアクセスされたソース210を識別し、識別されたソース210の仮想アドレスの所有権の、リファラ220へのハンドオーバを実施するように適合される。
【0090】
図6に示された具体例では、システムは、リファラ220によってソース210に向けられたリクエスト230によってアクセスされたソース210を識別するように適合された揮発性キャッシュ250を備える。揮発性キャッシュは、システムのソース210に関するデータを格納する能力がある任意の形の揮発性メモリでもよい。例えば、揮発性キャッシュ250は、動的な揮発性メモリ・ユニットまたは静的な揮発性メモリ・ユニット上に形成されてもよい。
【0091】
揮発性キャッシュ250は、任意の適切な手段によって、リファラ220によってソース210に向けられたリクエスト230によってアクセスされたソース210を識別するように適合されてもよい。例えば、揮発性キャッシュは、システムのリファラ220と通信していてもよく、着信リクエストに関する、および、どのソース210にリファラが着信リクエストを向けたかに関する、リファラ220からのデータを取得または受信するように適合されてもよい。代替として、揮発性キャッシュは、ソース210と通信していてもよく、リクエストがソース210において受信されたことに応答して、ソース210からのデータを取得または受信するように適合されてもよい。さらなる代替例では、揮発性キャッシュは、システムへのリクエスト230を受信するシステム入力ユニットと通信していてもよく、リクエスト230が向けられたソース210を識別するために、システムを通じて、通信が進行するにつれて、リクエスト230に関するデータを取得または受信するように適合されてもよい。揮発性キャッシュは、このようにしてアクセスされたソース210の識別情報を格納するように適合されてもよい。
【0092】
揮発性キャッシュ250は揮発性メモリなので、揮発性キャッシュ250に格納されたデータを強化またはミラーリングする必要はない。これは、揮発性キャッシュ250に保持されたソース210またはソース・チャンクへのメタデータ・アクセスをスピード・アップするという利益をもたらす。さらに、揮発性キャッシュ250は、下記でさらに議論されるようなハンドオーバを実施するために、インパクトのある候補ソースのリストを提供してもよい。言い換えれば、システムの一部を形成する従来のキャッシュに加えて、揮発性キャッシュ250を含めることが提案され、揮発性キャッシュ250は、システムに存在する重複排除ソースに専念する。揮発性キャッシュ250はリード・オンリでもよく、下記でさらに説明されるように、ソース210が頻繁にアクセスされる、ソース210およびリファラ220システムにおけるデータ・アクセスを最適化するために使用可能である。
【0093】
揮発性キャッシュ250は、揮発性キャッシュはソース自体によって格納されたデータを保持する必要がないので、メモリ・フットプリントの観点から、相対的に小さくてもよい。むしろ、揮発性キャッシュは、関心のある特定のデータ・アドレス用のソース・メタデータしか格納しなくてもよい。このように、揮発性キャッシュを利用すると、個々のアドレスほどではない、より大きいソース・グループで正常に管理された、ソース・メタデータにアクセスするために、メタデータ・アクセス動作を実施する必要性を取り除くことができる。したがって、揮発性キャッシュ250により、データ重複排除システムがより効率的なものになる場合がある。
【0094】
図7は、本発明の1つの態様による、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200のためのシステム・フローの概略図を提供する。図7に示された例では、システムは、着信リクエスト230を複数のソース210に向けるように適合された、複数のソース210(ソース1、ソース2、...、ソースN)と、対応する複数のリファラ220(リファラ1、リファラ2、...、リファラN)とを備える。
【0095】
図7に示された例では、揮発性キャッシュ250は、関連付けられたリファラ220によって各ソースに向けられたリクエスト210によってアクセスされたソースのリスト252を生成するようにさらに適合されてもよい。言い換えれば、各ソース210は、リファラ220を経由してソース210に向けられたリクエスト230によってアクセスされるので、各ソース210は、揮発性キャッシュに維持されたソース210のリストに追加されてもよい。揮発性キャッシュ250は、ソース210の特性を経時的に監視し、監視された特性に従ってソース210のリストをソートするように適合されてもよい。例として、監視された特性は、ソース210のアクセス頻度でもよい。それでも、監視された特性は、アクセス頻度、所与のソース210に関連付けられたリファラの数、ソース210が最後にアクセスされてからの時間、ソース210が存在していた期間、ソース210に格納されたデータの特性、および同様のものなど、ソース210の任意の特性でもよい。
【0096】
揮発性キャッシュ250が、例えば、アクティブ・リプレースメント・キャッシュ(ARC)またはヒープ・プロトコルを使用して、ソース210のアクセス頻度に従ってリスト252をソートするように適合された場合、ソース210の対応するリファラによって最も頻繁にアクセスされるソース210が、リスト252の一番上に浮上することになる。めったにアクセスされないソースは、多くの参照を有していたとしても、揮発性キャッシュ250に維持されたリスト252の一番下に移動することになる。頻繁にアクセスされるソース210は、ホット・ソースと呼ばれてもよく、頻繁にアクセスされないソース210は、コールド・ソースと呼ばれてもよい。
【0097】
システム200が、揮発性キャッシュ250をポピュレートするのに十分な時間、稼働しており、最も頻繁にアクセスされるソースが、揮発性キャッシュに維持されたリスト252の一番上に上昇してきたとき、システムは、リストの一番上から1つまたは複数のソースを選び、ソースからその対応するリファラへのデータ所有権のハンドオーバを実施してもよい。データの所有権のハンドオーバは、リストの一番上にあるソースのうちの1つまたは複数を選択し、ハンドオーバを実施することによって先を見越して、または、ソースがリファラによってアクセスされたときに、リストの一番上にあるかその近くにあるソースへのハンドオーバを実施することによって日和見的に、実施されてもよい。
【0098】
図8は、本発明の1つの態様による、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200のためのシステム・フローの概略図を提供する。図8に示された例では、システムは、ソース210を指し示す複数のリファラ220(リファラ1、リファラ2、...、リファラN)を備える。このケースでは、揮発性キャッシュ250は、リクエストをソース210に向けるリファラ220のリスト254を生成するようにさらに適合されてもよく、揮発性キャッシュ250は、例えば、リクエスト230が各リファラ220によってソース210に向けられる頻度に従って、リファラ220のリスト254をソートするように適合されてもよい。
【0099】
言い換えれば、ソース210がソース210に関連付けられた2つ以上のリファラ220を有している場合、揮発性キャッシュ250は、別個のリファラ220によるアクセス頻度、およびリファラ・メタデータなどのリファラ220に関するデータを記録してもよい。このケースでは、最大頻度を有するソース210にリクエスト230を向けるリファラ220が、ソース210に関連付けられた他のリファラ220に比べてシステムの性能に対する最大インパクトを有し得るので、データの所有権を受け取ってもよいように、ソース210からリファラ220へのデータの所有権のハンドオーバが実施されてもよい。
【0100】
図9は、本発明の1つの態様による、ソース210からリファラ220へのデータの所有権のハンドオーバをハンドリングするためのシステム200のためのシステム・フローの概略図を提供する。図9に示された例では、システムは、識別されたソース210の仮想アドレスの所有権の、リファラ220へのハンドオーバ270を実施するように適合されたハンドオーバ構成要素260をさらに備える。図7を参照しながら上述されたように、システムは、関連付けられたリファラ220によってソース210のそれぞれに向けられたリクエストによってアクセスされた複数のソース210を識別し、アクセスされた複数のソース210のリストを生成するように適合された揮発性キャッシュ250を備えてもよい。
【0101】
ハンドオーバ構成要素260は、ソースのリストからソース210のうちの1つまたは複数を選択し、選択された1つまたは複数のソース210から、選択された各ソース210に関連付けられたリファラ220への、仮想アドレスの所有権のハンドオーバ270を実施するように適合されてもよい。例として、揮発性キャッシュ250は、ソース210のそれぞれのアクセス頻度など、ソース210の特性を経時的に監視するように適合されてもよく、ハンドオーバ構成要素260は、監視された特性に基づいて、ソースのリストからソース210のうちの1つまたは複数を選択するように適合されてもよい。
【0102】
例えば、ハンドオーバ構成要素260は、一番上の候補ソース、すなわち、揮発性キャッシュ250に維持されたリストの一番上にあるソース210を、揮発性キャッシュ250から選び、ソース210に格納されたデータの所有権の、リファラ220へのハンドオーバ270を実施するように適合されてもよい。ハンドオーバ構成要素260は、ソース210にデータ所有権変更のヒントを残すように適合されてもよく、これにより、ソース210を見ている他のリファラ220は、データの新しい所有者、すなわち、データの所有権を今保有しているリファラを見るように、方向を変えられることになる。言い換えれば、システムは、ソース210からリファラ220への仮想アドレスの所有権のハンドオーバが実施された後、着信リクエスト230をリファラ220における仮想アドレスに向けるために、ソース210およびリファラ220をアップデートするようにさらに適合されてもよい。
【0103】
ハンドオーバが実施されて起こっているとき、古いソースおよび新しいソース(すなわち元のソースおよび元のリファラ)両方は、まだアップデートされていない古いソースに関連付けられた参照の数を格納してもよい。これは、データの所有権のハンドオーバにまだ気づいていないソースに関連付けられた参照の数であり、したがって、データ一体性問題を回避する特殊な方式で処置されてもよい。例えば、まだアップデートされていないリファラが、元のソースを指し示しているとき、元のソースは、リファラを新しいソースに向けてもよい。さらに、リファラは、次いで、今後は新しいソースを自動で指し示すようにアップデートされてもよく、古いソースおよび新しいソースに維持されるような、アップデートされていない参照の数は、低減されてもよい。
【0104】
システムは、ソースからリファラへの仮想アドレスの所有権のハンドオーバが実施された後、ハンドオーバ・プロセスを受けたソースを除去するために、揮発性キャッシュに維持されているソースのリストをアップデートするようにさらに適合されてもよい。したがって、揮発性キャッシュに維持されているソースのリストは、システム内の所有権の最も新しいハンドオーバを反映するように絶えずアップデートされてもよい。
【0105】
本発明は、システム内の最もインパクトのあるデータ・ソースに対する先を見越したまたは日和見的な所有権変更をサポートするように一緒に機能する、揮発性キャッシュおよびハンドオーバ構成要素という2つの主な構成要素から構成されてもよい。上述の様式でこれらの構成要素を組み合わせることによって、重複排除システムにおけるデータの所有権のハンドオーバをハンドリングするためのシステムは、リソースをほとんど消費せず、重複排除システムの性能を大いに改善するように経時的に適合させることができる。
【0106】
図10は、本発明の1つの態様による、システムのソースからリファラへのデータの所有権のハンドオーバをハンドリングするための方法300を描写している。方法は、ステップ310で、リファラによってソースに向けられたリクエストによってアクセスされたソースを識別することによって始まる。
【0107】
ステップ320では、関連付けられたリファラによって各ソースに向けられたリクエストによってアクセスされたソースのリストが生成される。ソースのリストは、上述のように、揮発性キャッシュを経由して生成されてもよい。ステップ330では、ソースのうちの1つまたは複数が、例えばハンドオーバ構成要素を経由して、ソースのリストから選択される。1つまたは複数のソースは、ソースのアクセス頻度など、ソースの監視された特性に基づいて選択されてもよい。例えば、最も頻繁にアクセスされるソースが選択されてもよい。
【0108】
ステップ340では、選択された1つまたは複数のソースから、選択された各ソースに関連付けられたリファラへの仮想アドレスの所有権のハンドオーバが、ハンドオーバ構成要素を経由して実施される。
【0109】
本発明の実施形態では、提案の概念は、従来のデータ重複排除およびデータ所有権ハンドオーバ・アプローチに勝る数多くの利点をもたらすことが当業者によってここで理解されるはずである。これらの利点は、ソースからリファラへのデータ所有権の効率的かつ正確なハンドオーバを含むがこれらに限定されない。本発明の実施形態では、この技術的解決策は、揮発性キャッシュを経由して達成される。
【0110】
技術的問題に対するさらなる利点では、本明細書に記載のシステムおよびプロセスは、分散型通信ネットワークで(または、これを介して)提供される、効率的なデータ重複排除およびデータ所有権ハンドオーバのためのコンピュータ実行方法を提供する。この場合、図1および図4に示されたコンピュータ・システム、または図2に示されたクラウド環境などの、コンピュータ・インフラストラクチャが提供可能になり、本発明のプロセスを実施するための1つまたは複数のシステムが取得され(例えば、作成される、購入される、使用される、修正される等)、コンピュータ・インフラストラクチャに展開されることが可能である。この程度まで、システムの展開は、以下のうちの1つまたは複数を含めることができる。
【0111】
(i)コンピュータ可読媒体から、図1に示されたコンピュータ・システムなどのコンピューティング・デバイスに、プログラム・コードをインストールする。
【0112】
(ii)1つまたは複数のコンピューティング・デバイスを、コンピュータ・インフラストラクチャに、およびより詳細には、クラウド環境に追加する。
【0113】
(iii)コンピュータ・インフラストラクチャが本発明のプロセスを実施できるようにするために、コンピュータ・インフラストラクチャの1つまたは複数の既存のシステムを組み込むこと、または修正すること、あるいはその両方を行う。
【0114】
本発明の様々な実施形態の説明は例証のために提示されてきたが、網羅的であること、または、開示の実施形態に限定されることを意図するものではない。記載の実施形態の範囲から逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的用途、もしくは市場で見つかる技術に対する技術的改善を最もよく説明するように、または、本明細書で開示された実施形態を当業者が理解できるように、選ばれた。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】