JP2023517564A - リモート・ファイルの予測プロビジョニング方法、システム、プログラム - Google Patents

リモート・ファイルの予測プロビジョニング方法、システム、プログラム Download PDF

Info

Publication number
JP2023517564A
JP2023517564A JP2022554264A JP2022554264A JP2023517564A JP 2023517564 A JP2023517564 A JP 2023517564A JP 2022554264 A JP2022554264 A JP 2022554264A JP 2022554264 A JP2022554264 A JP 2022554264A JP 2023517564 A JP2023517564 A JP 2023517564A
Authority
JP
Japan
Prior art keywords
file
cloud
remote file
read request
local
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.)
Pending
Application number
JP2022554264A
Other languages
English (en)
Inventor
スゥル、マティアス
コーチェムニ、アレクサンダー、パブロヴィッチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023517564A publication Critical patent/JP2023517564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Electrotherapy Devices (AREA)

Abstract

リモート・システムに格納されたリモート・ファイルに対するアクセス権限を有するコンピュータ・システムは、リモート・ファイルのある部分が必要である可能性が高いということを予測し、コンピュータ・システムは、リモート・ファイルのこの部分をローカル・ファイルにダウンロードし、ダウンロードされた部分を反映するようにローカル・ファイルのメタデータを更新する。

Description

本発明はストレージに関し、より詳細には、リモートに格納されたファイルをローカル・ファイル・システムに予測的にダウンロードすることに関する。
クラウド・ストレージは、商業および個人の両方の環境において、ますます一般的になっている。クラウド同期ストレージ・アプリケーションでは、ユーザがクラウド同期ストレージ・アプリケーションを新しいコンピュータにインストールするときに、ユーザのクラウドに格納されたファイルまたはデータあるいはその両方が、ローカル・ストレージに自動的にダウンロードされることができる。
しかし、ユーザのクラウドに格納されたすべてのファイルを自動的にダウンロードすることは、帯域幅およびローカル・ストレージ空間を不必要に消費する可能性が高い。例えば、ユーザのクラウドが複数の重要な文書および数テラバイト(TB)のビデオ・ファイルを含んでいる場合、すべてのファイルを自動的にダウンロードすることは、ユーザの新しいローカル・マシンおよびインターネット接続の構成に応じて、数時間ないし数日(またはさらに長い時間)かかることがあり、場合によっては重要な文書がダウンロードされる前に、ユーザの新しいマシンのローカル・ストレージを完全にいっぱいにすることがある。したがって、多くのクラウド同期ストレージ・アプリケーションは、大量のデータを不必要にダウンロードすることを防ぐために、ファイルのリストを提供し、読み取り命令を受信したときに(ユーザが、現在クラウドのみにあるファイル、すなわち、ローカル・コピーが現在存在していないファイルを開こうとしたときなどに)のみファイルをダウンロードすることなどの、さまざまな方法を実施する。
それらの方法は、クラウド・システムが、「リモート・ストレージ」として機能することも可能にし、ユーザは、ファイルをクラウドにアップロードして、ファイルのローカル・コピーを削除し、このようにして、ユーザのローカル・システム上のストレージ空間を解放し得る。ユーザがファイルを再度利用したい場合、クラウド同期ストレージ・アプリケーションは、ローカル・ストレージに「戻す」ファイルのダウンロードを開始し、ファイルを使用可能にする。
しかし、多くの種類の読み取り命令は、ファイル全体へのアクセスを必要としない。例えば、多くのファイル・エクスプローラ・システムは、単にビデオの既定のフレーム(例えば、5番目のフレーム)を使用することによって、ビデオ・ファイルのサムネイル画像を自動的に生成する。この単一のフレームが、ビデオ・ファイルから読み取られ(読み取り要求によって開始されるプロセス)、場合によっては圧縮されるか、またはサイズを変更されるか、あるいはその両方が実行され、その後、サムネイルとして表示されることがあり、その時点では、このファイルに関するさらなる情報は必要でなくてよい。したがって、大きいビデオ・ファイル(例えば、数GBのファイル)に対するアクセスを要求する読み取り要求は、実際には、数キロバイト(kB)を読み取ることしか必要としないことがある。
従来のシステムは、ファイル全体のダウンロードを開始することによって、ファイルをターゲットにする読み取り要求に応答することがあるため、計算リソースを著しく浪費することがある。上記の例を続けると、従来のシステムは、その時点でビデオの単一のフレームのみが必要とされる場合でも、ビデオ・ファイル全体をダウンロードすることがある。
本発明の1つの態様によれば、リモート・コンピューティング・システムに格納されたリモート・ファイルを識別することと、リモート・ファイルの予測された部分が将来の読み取り要求の対象になる可能性が高いということを予測することと、リモート・ファイルの予測された部分をローカル・ファイルにダウンロードすることと、ローカル・ファイルのローカルな部分をリモート・ファイルの予測された部分にマッピングするようにローカル・ファイルのメタデータを更新することとを含む方法が提供されている。この方法は、リモートに格納されたファイルが要求されたときに、リモートに格納されたファイルの部分を予測的にダウンロードし、場合によっては、ダウンロードされるデータの大きさを縮小することによって、リモート・ファイル・ストレージ・コンピューティング・システムの効率を有利に改善する。
この方法は、第1の読み取り要求を受信することをさらに含んでよく、識別することが、第1の読み取り要求のターゲットに少なくとも基づき、予測することが、第1の読み取り要求に少なくとも基づく。この方法は、ファイルを読み取ることの要求に応答して、(ファイル全体ではなく)必要であると予測されたリモートに格納されたファイルの部分をダウンロードすることによって、リモート・ファイル・ストレージ・コンピューティング・システムの効率を有利に改善する。
この方法は、アプリケーション・プロファイル・データベースに少なくとも基づいて、第1の読み取り要求を開始した要求元アプリケーションを決定することをさらに含んでもよく、予測することが、要求元アプリケーションにさらに少なくとも基づく。この方法は、ファイルを要求しているアプリケーションに基づいてダウンロードする部分を予測することによって、予測における精度を有利に改善する。
この方法は、リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、予測された部分およびターゲットにされた部分に少なくとも基づいてアプリケーション・プロファイル・データベースを更新することとをさらに含んでよい。この方法は、アプリケーションの識別情報と予測された部分の間の相関関係を決定することにおける精度の向上も有利に可能にする。
本発明の別の態様が、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品の形態で提供され、これらのプログラム命令は、コンピュータによって実行可能であり、コンピュータに、前述の方法のいずれかを実行させる。この方法は、リモートに格納されたファイルが要求されたときに、リモートに格納されたファイルの部分を予測的にダウンロードし、ダウンロードされるデータの大きさを縮小することによって、リモート・ファイル・ストレージ・コンピューティング・システムの効率を有利に改善する。
本発明の別の態様が、メモリおよび中央処理装置(CPU:CentralProcessing Unit)を備えているシステムの形態で提供される。CPUは、前述の方法のいずれかを実行するように構成され得る。このシステムは、リモートに格納されたファイルが要求されたときに、リモートに格納されたファイルの部分を予測的にダウンロードし、ダウンロードされるデータの大きさを縮小することによって、リモート・ファイル・ストレージ・コンピューティング・システムの効率を有利に改善する。
上記の概要は、本開示の各実施形態例もすべての実装も説明するよう意図されていない。
本出願に含まれている図面は、本明細書に組み込まれ、本明細書の一部を形成する。各図面は、説明と共に本開示の実施形態を示し、本開示の原理を説明するのに役立つ。各図面は、特定の実施形態の単なる例であり、本開示を制限していない。以下の「発明を実施するための形態」が進むにつれて、類似する数字が類似する部分を示す図面を参照するときに、請求された対象のさまざまな実施形態の特徴および利点が明らかになるであろう。
本開示の複数の実施形態に従って、クラウドに格納されたファイルのうちの1つをターゲットにする読み取り要求に応答してクラウドに格納されたファイルを予測的にプロビジョニングする方法を示す図である。 本開示の複数の実施形態に従って、クラウドに格納されたファイルの識別された部分をダウンロードした後の、例示的なクラウドに格納されたファイルおよび例示的なローカルに格納されたファイルのブロック図である。 本開示の複数の実施形態と一致する、読み取り要求を開始する役割を担うアプリケーションを識別する方法を示す図である。 本開示の複数の実施形態と一致する、クラウド同期ファイルを予測的にプロビジョニングする方法を示す図である。 本開示の実施形態に従ってクラウド・コンピューティング環境を示す図である。 本開示の実施形態に従って抽象モデル・レイヤを示す図である。 本開示の実施形態の実装において使用される、例示的なコンピュータ・システムの高レベルのブロック図である。
本発明は、さまざまな変更および代替の形態を受け入れるが、その詳細が、図面において例として示されており、詳細に説明される。しかし、本発明を説明されている特定の実施形態に限定することが意図されていないということが、理解されるべきである。反対に、本発明の思想および範囲に含まれるすべての変更、同等のもの、および代替手段を対象にすることが意図されている。
本開示の態様は、1つまたは複数のクラウドに格納されたファイルを予測的にプロビジョニングするためのシステムおよび方法に関する。さらに特定の態様は、読み取り要求を検出し、読み取り要求の種類を分類し、読み取り要求を満たすために必要なクラウドに格納されたファイルの部分を予測し、クラウドに格納されたファイルの予測された部分をダウンロードするためのシステムに関する。
本開示全体を通じて、「クラウド同期ストレージ・アプリケーション」に対する参照が行われる。本明細書において使用されるとき、「クラウド同期ストレージ・アプリケーション」は、クライアント・デバイスが、例えばインターネットを介して、1つまたは複数のファイルをクラウドベースのコンピューティング・システム(「クラウド」)にアップロードし、クラウドからファイルをダウンロードできるようにするために、クライアント・コンピューティング・システム(「クライアント・デバイス」)上で実行されるアプリケーションのことを指す。ファイルがアップロードされた後に、クライアント・デバイスは、アップロードされたファイルのローカル・コピーを削除し得るが、後でクラウドに格納されたファイルをダウンロードして、ローカル・ストレージに戻してよい。これによって、クライアント・デバイスは、ローカル・ストレージ空間を解放しながら、必要な場合に、ファイルにまだアクセスすることができる。当業者によって理解されるように、本明細書に記載されたシステムおよび方法は、クラウドベースのシステムと共に使用するように必ずしも限られず、本開示に従って、一般的なリモート・ファイル・ストレージも同様に改善されることができる。
クラウド同期ストレージ・アプリケーションは、通常、クラウドに格納されたファイルのリストを提供し、それらのファイルのいずれかがローカルに格納されてもよい。このリストは、通常、一連の「プレースホルダ」ファイル(典型的には、ファイル名、ファイル・サイズ、最終更新日などの、実際のファイルに関する最小限のメタデータのみを含んでいるファイル)として実装される。クライアント・デバイスのユーザの視点からは、ファイルは、すべてローカルに格納されているかのように提示されてよく、またはファイルは、現在「クラウドのみ」に存在するファイルとは対照的に、クラウドおよびローカルの両方に格納されたファイルを区別するために、マーカー付きで提示されてもよい。本明細書において使用されるとき、「クラウドのみ」という語句は、クラウド・システムに格納されているが、ローカル・ストレージ・デバイスに格納されていないファイルのことを指す(すなわち、クラウドのみのファイルのローカル・コピーは存在しない)。クラウドのみのファイルは、通常、クラウド同期ストレージ・アプリケーションを介してオンデマンドでローカル・ストレージにダウンロードされてよく、その後、このファイルは、本明細書では「クラウドのみ」と呼ばれなくなる。「クラウドのみ」は「プレースホルダ」と同義ではないということに注意する。明確にする例として、クラウドに格納されているが、クライアント・デバイスに格納されていない3GBのビデオ・ファイルについて考えると、「クラウドのみ」のファイルは、クラウド上に格納された3GBのビデオ・ファイル自体のことを指し、一方、関連する約1kBの「プレースホルダ」ファイルは、ビデオ・ファイルを表す(例えば、ファイル名、ファイルタイプなどのメタデータをリスト表示する)ためにクライアント・デバイス上にローカルに格納される。したがって、クライアント・デバイスのユーザが「クラウドのみ」のファイルを開きたい場合、ユーザは「プレースホルダ」ファイルをダブルクリックしてよい。
特に本開示は、クラウドに格納されたファイルを広く参照しているが、一部の実体は、エンドユーザの施設にある、地理的に分散されたサーバを利用してよい。これらおよびその他の類似する使用事例は、「プライベート・クラウド」の実装と見なされてよい。本開示は、当業者によって理解されるように、そのようなシステムの性能を有利に改善し得る。
本開示全体を通じて、「読み取り要求」に対する参照が行われる。本明細書において使用されるとき、「読み取り要求」は、要求のすべてがファイルへのアクセスを要求しているデジタル要求のカテゴリのことを指す。読み取り要求は、ファイルを表しているアイコンをユーザがダブルクリックすること(このアクションは、読み取り要求の一種である「開く」要求と呼ばれることがある)などによって、ユーザのアクションによって開始され得る。読み取り要求は、直接的なユーザ入力なしで、ビデオ・ファイルのサムネイルを自動的に生成しようとするファイル・エクスプローラ・プログラムなどの、クライアント・デバイス上で実行されているアプリケーションによって自動的に開始されてもよい。
読み取り要求は、通常、ファイルにアクセスするプロセスにおける、オペレーティング・システムまたはファイル・エクスプローラの最初のステップである。特にファイル・エクスプローラ・システムは、最初の読み取り要求の一部として、ファイルのどの部分が必要とされるかを必ずしも開示しない。代わりに、標準的なコンピュータ・システムでは、関連するファイルを識別する読み取り要求がストレージ・コントローラに送信され得る。ストレージ・コントローラは、識別されたファイルを特定し、要求されたファイルが読み取られる準備ができたことを示す確認応答で応答することによって、読み取り要求に反応してよい。次に、ファイル・エクスプローラは、より具体的な要求(すなわち、「ファイルのビット300~700を返す」)を進めてよい。
さらに、多くの読み取り要求は、ファイル全体へのアクセスを必要としない。例えば、上の「サムネイル」の例を続けると、多くのファイル・エクスプローラ・システムは、単にビデオの既定のフレーム(例えば、5番目のフレーム)を使用することによって、ビデオ・ファイルのサムネイル画像を自動的に生成する。この単一のフレームが、ビデオ・ファイルから読み取られ(読み取り要求によって開始されるプロセス)、場合によっては圧縮されるか、またはサイズを変更されるか、あるいはその両方が実行され、その後、サムネイルとして表示されることがあり、その時点では、このファイルに関するさらなる情報は必要でなくてよい。したがって、大きいビデオ・ファイル(例えば、数GBのファイル)に対するアクセスを要求する読み取り要求は、実際には、数キロバイト(kB)を読み取ることしか必要としないことがある。
クラウド同期ストレージ・アプリケーションは、クラウドのみのファイルに対するアクセスを要求している読み取り要求について監視してよい。従来のクラウド同期ストレージ・アプリケーションは、クラウドのみのファイルを対象にする読み取り要求を検出した場合、ファイルのダウンロードを開始し、それに続いて、ファイルが読み取られる準備ができていることを示す確認応答で要求に応答することによって、応答してよい。
しかし、本開示と一致するシステムおよび方法は、読み取り要求の対象になるファイルのどの部分が実際に必要である可能性が高いかを決定するか、予測するか、推定するか、またはその他の方法で概算し、それらの部分をダウンロードすることを可能にする。予測に基づいてファイルの特定の部分のみをダウンロードすることによって、本開示と一致するシステムおよび方法は、リソース(例えば、帯域幅、ローカル・ストレージ空間、処理リソース、エネルギー、時間など)を有利に大幅に節約する。例えば、当該ファイルが大きいビデオ・ファイルであり、読み取り要求が単一のフレームのみを必要とするということが決定された場合、ビデオ・ファイル全体の代わりにそのフレームだけをダウンロードすることによって、数GBの帯域幅を節約し得る。
読み取り要求の対象になるファイルのどの部分がダウンロードされるべきかを決定するために、本開示と一致するクラウド同期ストレージ・アプリケーションの態様は、コンテキスト情報に基づいて読み取り要求を分類してよい。コンテキスト情報は、例えば、読み取り要求を開始するアプリケーション(ファイル・エクスプローラ、画像エディタなど)またはクライアント・システムあるいはその両方を表す情報(動作可能時間、ダウンロード、インストールなどの最近の動作、など)を含んでよい。
クラウドのみのファイルを読み取ることの要求(対応するクラウドのみのファイルのプレースホルダ・ファイルを読み取ることの要求など)を検出したときに、クラウド同期ストレージ・アプリケーションは、クラウドのみのファイルのどの部分がダウンロードされるべきかを決定するために、コンテキスト情報を活用して、読み取り要求の性質を決定するか、または分類するか、あるいはその両方を実行してよい。コンテキスト情報は、例えば、読み取り要求を開始するアプリケーション(ファイル・エクスプローラ、画像エディタなど)またはクライアント・システムあるいはその両方を表す情報(動作可能時間、ダウンロード、インストールなどの最近の動作、など)を含んでよい。クラウド同期ストレージ・アプリケーションによって使用されるコンテキスト情報の例としては、アプリケーションの識別情報、システム構成情報、過去の要求データ、事前設定された/ハードコードされたパターンなどが挙げられる。
例えば、第1のアプリケーションは、ファイルの小さい特定の部分を読み取るためにのみ、読み取り要求を頻繁に開始することがあり、一方、第2のアプリケーションは、ファイルの大部分またはファイル全体さえ必要とする読み取り要求を頻繁に開始することがある。これらのプロファイルは、下でさらに詳細に説明されているように、時間と共に発達し、アプリケーション・プロファイラによって監視されてよい。アプリケーション・プロファイラから収集された情報に少なくとも部分的に基づいて、読み取り要求が複数のカテゴリのうちの1つに分類されてよい。第1のアプリケーションによって開始された読み取り要求は、ファイルの小さい特定の部分へのアクセスのみを必要とする可能性がより高くてよい。この場合、本開示と一致するクラウド同期ストレージ・アプリケーションは、要求を満たすためにファイル全体が必要ではないということを予想してよく、したがって、ファイルの小さい特定の部分のダウンロードを開始してよい。一方、第2のアプリケーションによって開始された読み取り要求は、ファイル全体を必要とする可能性がより高くてよい。したがって、読み取り要求の発生元となるアプリケーションに応じて、クラウド同期ストレージ・アプリケーションは、ファイルの特定の部分(または必要と見なされた場合は、ファイル全体)を識別し、ダウンロードしてよい。
前述の利点および本明細書に記載されたその他の利点は、例示的な利点であり、制限と解釈されるべきではないということが、理解されるべきである。本開示の実施形態は、本開示の思想および範囲内にとどまりながら、利点のすべてまたは一部を含むこと、あるいは何も含まないことができる。
図1は、本開示の複数の実施形態と一致する予測的なクラウドに格納されたファイルのプロビジョニング方法100を示している。一部の実施形態では、方法100は、ハードウェア、ファームウェア、プロセッサ上で実行されるソフトウェア、またはこれらの任意の組み合わせによって実行されてよい。例えば、方法100は、本開示と一致するクラウド同期ストレージ・アプリケーションによって実行されてよい。方法100は、動作102で、クラウドに格納されたファイルを要求する(または対象にする)読み取り要求を検出することを含む。動作102は、例えば、クラウド同期ストレージ・アプリケーションが、クライアント・デバイス上で実行されているアプリケーションによって開始された要求を監視することを含んでよい。クラウド同期ストレージ・アプリケーションは、対応するプレースホルダ・ファイルのローカル・ストレージによって、クラウドに格納されたファイル(特に、「クラウドのみ」のファイル)のリストを維持してよい。さらに、クラウド同期ストレージ・アプリケーションは、ファイル・エクスプローラまたはオペレーティング・システム自体などの、相対的に低いレベルのアプリケーションによって開始された命令または要求を監視することを可能にする特権レベルを使用して構成されてよい。クライアント・デバイス上で実行されているアプリケーション(例えば、ファイル・エクスプローラなど)が、クラウドのみのファイルに対応するプレースホルダ・ファイルのファイル識別子を含む読み取り要求を開始した場合、クラウド同期ストレージ・アプリケーションは、動作102でこの要求を検出する。一部の実施形態では、クラウド同期ストレージ・アプリケーションは、アプリケーション、サービス、またはオペレーティング・システムに含まれた一連の機能であってよい。
方法100は、動作104で、読み取り要求を分類することをさらに含む。一般に、動作104は、要求を満たすために当該ファイルのどの部分が実際にダウンロードされる必要があるかを概算するために、読み取り要求の「真の」発生元を決定することと、読み取り要求の目的を決定することとを含む。例えば、読み取り要求は、「OPEN」要求または「AUX」要求として分類されてよい。OPEN要求は、当該ファイルを開く(ファイル全体をダウンロードすることを必要とする)ことに関連付けられてよく、一方、AUX要求は、任意のその他の種類の読み取り要求に関連付けられてよい。AUX要求の例としては、サムネイルを生成することを要求する要求(「サムネイル要求」)またはファイル・メタデータを要求する要求(サイズ、日付、作成者などの情報を要求する「メタデータ要求」)が挙げられる。その他の分類、およびさらに具体的な分類も可能である(例えば、第1の種類のメタデータ要求は、作成者およびファイル・サイズを必要としてよく、一方、第2の種類のメタデータ要求は、作成者、ファイル名、および作成日を必要としてよい)。
読み取り要求は、動作104で、コンテキスト情報に基づいて分類されてよい。「コンテキスト情報」は、本明細書において使用されるとき、読み取り要求自体以外のソースから収集された読み取り要求のコンテキストを含んでよい。例えば、コンテキスト情報は、ファイルのメタデータ、読み取り要求を開始するアプリケーション(「要求元アプリケーション」)の識別情報、要求の発生元となるクライアント・システムのハードウェア構成、要求の時間/日付、以前の動作、過去の傾向などを含んでよい。コンテキスト情報は、下でさらに詳細に説明されているように、例えば、1つまたは複数のプロファイルの出力に基づいて決定されてよい。
分類は、加重分析に基づいて、可能性のある分類のリストから選択されてよい。例えば、種々のコンテキスト情報が異なる重みに関連付けられてよく、その結果、それぞれ予測された可能性を有している可能性のある分類のリストが得られる。一例として、要求されたクラウドのみのファイルがビデオ・ファイルであり、要求元アプリケーションがファイル・エクスプローラである場合、コンテキスト情報は、動作104の決定に、サムネイル要求に向かって重みを付けるか、またはバイアスをかけるか、あるいはその両方を行ってよい。しかし、要求元アプリケーションがメディア・プレーヤーである場合、サムネイル要求は可能性が低いと見なされる。
一部の実施形態では、最高の予測された可能性を有する分類が選択される。一部の実施形態では、「完勝者」が存在しない場合(例えば、しきい値より大きい可能性を有する可能性のある分類がないか、または他と比較して十分に有意な「得点差」を有する可能性のある分類がない場合)、方法100を実行しているシステムは、分類が失敗したと見なし、ファイル全体のダウンロードを開始する(その時点で方法100は終了する)。一部の実施形態では、分類の試みが完勝者を生み出さない場合、分類が無作為に選択されてよい。一部の実施形態では、分類の試みが完勝者を生み出さない場合、方法100を実行しているシステムは、さまざまな種類のコンテキスト情報の重みを調整し、再評価し得る。
方法100は、動作106で、必要なファイル・セグメントを識別すること、または予測すること、あるいはその両方をさらに含む。動作106は、例えば、要求元アプリケーションが必要とする可能性が高いクラウドのみのファイルのビットの範囲を決定することを含んでよい。例えば、一部の実施形態では、方法100を実行しているシステムは、最初の300kBが要求されている可能性が最も高いということを決定してよい。
一部の実施形態では、動作106で行われる決定は、動作104で決定された検出された読み取り要求の分類に基づいてよい。一部の実施形態では、方法100を実行しているシステムは、動作106の一部として、前述のコンテキスト情報などのコンテキスト情報を考慮し得る。例えば、読み取り要求がサムネイル要求として分類された場合、動作106は、ファイルのメタデータを分析して特定のキーフレームの位置を決定することを含んでよい。一方、一部の実施形態では、動作106の予測は要求の分類だけに基づく。例えば、方法100を実行しているシステムは、すべてのサムネイル要求について、ファイルの必要な部分をビット3,000~12,000として識別するように「ハードコード」されてよい。
一部の要求は、ファイルの複数の不連続な部分を要求することがあるため、動作106で複数の範囲が識別されてよい。例えば、メタデータ要求は、ファイルの作成者名およびファイル名を要求することがある。ファイルは、特定の順序でメタデータを格納してよく、例えば、ファイルの作成者がビット13,384~13,415に格納されていることがあり、ファイルの作成日がビット13,416~13,423に格納されていることがあり、ファイルのファイル名がビット13,424~13,511に格納されていることがある。したがって、例示的なメタデータ要求を満たすために、動作106は、ビット13,384~13,415およびビット13,424~13,511を識別することを含んでよい。
ファイルの予測された部分が識別された後に、方法100は、動作108で、予測された部分をダウンロードすることをさらに含む。このダウンロードすることは、例えば、動作106で識別されたデータに対するダウンロード要求をクラウド・システムに送信すること、および識別されたデータをダウンロードすることを含んでよい。図2を参照して下でさらに詳細に説明されるように、ダウンロードされたデータは、ローカル・ストレージに保存されてよい。一部の実施形態では、ダウンロードされたデータに基づいて、ディレクトリ内の「プレースホルダ」ファイルが置き換えられるか、または変更されるか、あるいはその両方が行われてよい。一部の実施形態では、ダウンロードされたデータが分離したキャッシュに保存されてよく、既存のプレースホルダ・ファイルが変更されないままであってよい。
一部の実施形態では、識別された部分にマージンがさらに追加されてよい。言い換えると、動作108は、動作106で必要であると予測されたビットの範囲の外側の追加データをダウンロードすることを含んでよい。これによって追加のリソースを消費することがあるが、フォールト・トレランスの有利な改善がコストを上回ることがある(例えば、予測が正しくない場合、実際に必要とされるデータがさらにダウンロードされることがある)。必要に応じてビット13,384~13,415およびビット13,424~13,511が識別された前の例を参照すると、動作108は、例えば、8ビットのマージンをビット範囲の1つまたは複数の境界に追加してよい。したがって、システムは、例えば、ビット13,376~13,415およびビット13,424~13,511をダウンロードしてよい(予測された範囲の「前」に位置する追加の8ビットをダウンロードする)。システムは、ビット13,384~13,519をダウンロードすることもできる(2つの範囲の間の8ビットに「境界」での8ビットを加えた合計16の追加ビットをダウンロードする)。
一部の実施形態では、マージンが事前に決定されてよい。例えば、一部の実施形態では、方法100を実行しているシステムは、(可能であれば)各範囲の各境界で5kBのマージンをダウンロードに常に追加してよい。一部の実施形態では、読み取り要求の分類またはコンテキスト情報あるいはその両方などの種々のパラメータに基づいて、マージンが選択されてよい。例えば、システムは、サムネイル要求を満たすために必要とされる識別された範囲の「後」の3kBをダウンロードしてよいが、メタデータ要求を満たすために必要であると予測された範囲の「前」の1kBおよび「後」の15kBをダウンロードしてもよい。当業者によって理解されるであろうように、マージンの選択のためのその他の基準も可能である。
動作108は、どのビットがダウンロードされたかを追跡すること、マッピングすること、またはその他の方法で記録することをさらに含んでよい。明確にする例として、ビット235,016~235,023およびビット235,032~235,039がダウンロードされた場合、これらのビットはローカル・ストレージ内でビット1~16として保存されるが、動作108は、ローカル・ビット1が「実際」のビット235,016に対応し、ローカル・ビット12が実際のビット235,035に対応することなどを記録することをさらに含んでよい。読み取り要求およびその後のより具体的なビット要求は、完全なファイルがアクセスされているということを「仮定する」ことがあるため、このように記録することよって、方法100を実行しているシステムが正しい要求されたビットを返すことを有利に可能にしてよい。
一部の実施形態では、動作108は、現在のネットワークの構成および使用状況に基づいてダウンロード速度を調整するか、またはその他の方法で変更することを含んでもよい。一部の実施形態では、動作108は、予測されたデータがすでにダウンロードされてローカルに格納されているかどうかをチェックすることを含んでよく、格納されている場合、方法100を実行しているシステムは、ダウンロードを実行しなくてよい。
データがダウンロードされた(または特定された)状態で、方法100は、動作110で、完全なファイルが使用可能であるかのように続行することをさらに含む。動作110は、例えば、確認応答信号をファイル・エクスプローラ・アプリケーションまたはオペレーティング・システムあるいはその両方に送信することを含んでよい。確認応答は、要求されたファイルが特定され、読み取る準備ができていることの標準的な確認応答(例えば、ストレージ・コントローラによって送信される確認応答など)を「模倣する」ように構成されてよい。
したがって、読み取り要求を送信したアプリケーションは、完全なファイルが使用可能であるかのように続行してよく、より具体的な読み取り命令(例えば、「5,000ビットをシークしてから、次の2,500ビットを返す」など)を含んでいる第2の読み取り要求で確認応答に応答してよい。本質的に、動作106で行われる予測は、これらのより具体的な読み取り命令によってアクセスされるデータを予測的に事前に取得しようとする試みである。予測が正確だった(または十分なマージンを含んでいた)場合、方法100を実行しているシステムは、追加のダウンロードを何も実行せずに、要求されたビットを返すことができてよい。「5,000ビットをシークしてから、次の2,500ビットを返す」例を続けると、ビットの「ローカルの位置と実際の位置」が動作108の一部として追跡された場合、方法100を実行しているシステムは、「5,000ビットをシークする」命令を実際に実行する必要がないということに注意する。代わりに、システムは、ビット5,001~7,500がダウンロードされたことを確認し、ダウンロードされている場合、それらのビットを返すことに進んでよい。したがって、システムは、クラウドのみのファイル全体をダウンロードする必要なしに、読み取り要求を満たし得る。
システムが、要求されたビットがダウンロードされていないということを決定した場合(例えば、動作106の予測が正しくなかった場合)、複数の異なるアクションのうちの1つが実行されてよい。例えば、一部の実施形態では、システムは、単にファイル全体をダウンロードしてよい。一部の実施形態では、システムは、具体的に要求されたビットをダウンロードしてよい。正しくない予測に対するこれらおよびその他の応答が、(図4を参照して)下でさらに詳細に説明される。
図2は、本開示の複数の実施形態と一致する、クラウドに格納されたファイル200の識別された部分202および208をダウンロードした後の、例示的なクラウドに格納されたファイル200および例示的なローカルに格納されたファイル220のブロック図を示している。クラウド・ファイル200は、複数のビット(すなわち、「0」または「1」)を含んでいる。特定の時点で、クラウド・ファイル200は、ファイル200の完全なローカル・コピーが存在しないという点において、クラウドのみのファイルであってよい。境界線210の下に示されたブロック(すなわち、ブロック222、228、および230)は、ローカルに格納されたファイル220のビットを表している。矢印212および218は、クラウド同期ストレージ・アプリケーションによって開始されるダウンロード動作などのダウンロード動作を表している。2つの別々の矢印212および218が示されているが、それらの矢印が2つの連続的なダウンロードを必ずしも表していないということが理解されるべきである。例えば、それらの矢印212および218によって参照されているダウンロードされるデータは、単一のダウンロード動作または複数の同時のダウンロード動作でダウンロードされてよい。
ローカル・ファイル220のビットのさまざまな範囲は、クラウド・ファイル200のビットの対応する範囲と比較して、同一のデータを含んでよい。例えば、ローカル・ビット222の第1の範囲は、ダウンロード212の結果として、クラウドのビット202の第1の範囲と同一であってよく、一方、ローカルのビット228の第2の範囲は、ダウンロード218の結果として、クラウドのビット218の第2の範囲と同一であってよい。「同一」は、本明細書において使用されるとき、ビット自体の論理状態のことを指し、例えば、範囲202および222は、両方とも同じビットを含んでよい(例えば、両方の範囲は、1000101011010010などであってよい)。
必ずしもローカル・ファイル220のすべてのビットがクラウド・ファイル200からコピーされず、例えば、ローカル・ファイル220は、ローカル・ファイル220のどのビットがクラウド・ファイル200のどのビットに対応するかをマッピングする情報などの、メタデータを含んでもよい。図2では、そのようなメタデータが範囲230として示されている。212または218などのダウンロードを実行するときに、(ローカルのビットとクラウドのビットをマッピングすることを含む)メタデータ230が(例えば、クラウド同期ストレージ・アプリケーションによって)生成されてよい。さらなるダウンロード、削除などに基づいて、メタデータ230が更新されてよい。
ローカル・ファイル220は、ハード・ディスク・ドライブ(HDD:hard diskdrive)、半導体ドライブ(SSD:solid state drive)、揮発性メモリなどの、ローカル・ストレージ・デバイスに格納されてよい。さらに、一部の実施形態では、ローカル・ファイル220は、クラウド・ファイル200およびダウンロードされたセグメント222、228の性質に応じて、追加のタグまたはメタデータあるいはその両方を含んでよい。
例えば、少なくとも1つの実施形態では、ローカル・ファイル222が格納されているローカル・システムが、「サムネイル・データベース」を利用する。「サムネイル・データベース」は、本明細書において使用されるとき、サムネイルの高速な生成を可能にするために、ディレクトリ内のファイルのサムネイル画像を含んでいる、ディレクトリ内の通常は隠蔽されたファイルのことを指す。例示的なローカル・システム上のディレクトリ内のサムネイル・データベースが存在しない場合、システムは、(例えば、ディレクトリ内のビデオ・ファイルからフレームを取り出すこと、ディレクトリ内の画像ファイルの小さいコピーを生成することなどによって)サムネイル・データベースを生成し、今後使用するために、その新しいサムネイル・データベースをディレクトリに保存してよい。この実施形態例では、クラウド・ファイル200はビデオ・ファイルであってよく、ローカルのビット222はサムネイル画像を含んでよい。ローカル・ファイル220は、ローカル・ファイル220を標準的なサムネイル・データベースとして識別するメタデータを含んでよい。したがって、システム上で実行されているファイル・エクスプローラ・アプリケーションがディレクトリにアクセスしようとした場合、このアプリケーションは、ローカル・ファイル220を検出し、ローカルのビット222を、クラウド・ファイル200を表すプレースホルダ・ファイルのサムネイルとして使用する。ローカル・ファイル220は読み取り要求の外部で生成されるため、クラウド同期ストレージ・アプリケーションは、ファイル・エクスプローラ・アプリケーションがディレクトリにアクセスする前に、サムネイル・データベースを生成することができる。
一部の実施形態では、ローカル・ファイル220は、ユーザまたはファイル・システムあるいはその両方にとってローカル・ファイル220が完全なクラウド・ファイル200であるかのうように見えるようにするために、タグまたはメタデータあるいはその両方を(範囲230内などに)含んでよい。したがって、(クラウド・ファイル200の完全なローカル・コピーからビットを読み取ろうとしていると「信じている」)アプリケーションが、ビット範囲202または208あるいはその両方を要求した場合、クラウド同期ストレージ・アプリケーションは、クラウド・ファイル200全体をダウンロードすることなく、読み取り要求を満たすことができてよい。
クラウド・ファイル200の性質に応じて、ビットの異なる範囲が異なるデータを格納してよく、例えば、ファイル200のセグメント202(ビット13,000~13,511)が、ファイル200の作成者の名前を格納してよく、ファイル200のセグメント204(ビット13,512~13,767)が、ファイル200の作成日を格納してよく、セグメント206(ビット13,768~14,023)が、ファイル200が最後に変更された日付を格納してよく、セグメント208(ビット14,024~14,535)が、ファイル200のファイル名を格納し得る、などである。明確にするために、図2に示されているビットの特定の範囲は単に例示を目的としており、異なるファイル(図2に示されていない)のビット13,000~13,511は、その異なるファイルの作成者の名前を格納することとは全く異なる目的に使用されてよく、または実際は存在しなくてもよい(すなわち、異なるファイルは、13,000ビットよりも少ないビットを含んでよい)。
一部の実施形態では、クラウド同期ストレージ・アプリケーションは、クラウド・ファイル200の1つまたは複数の部分(すなわち、1つまたは複数のビット)がローカル・ストレージ・デバイスにダウンロードされる必要があってよいということを決定することができる。これは、(図1に関して説明されたように、方法100の動作102などによって)クラウド・ファイル200を対象にする読み取り要求を検出することに応答して、達成されてよい。一部の実施形態では、クラウド同期ストレージ・アプリケーションは、下でさらに詳細に説明されているように、読み取り要求がない場合でも、例えば、クラウド同期ストレージ・アプリケーションが新しいシステムにインストールされて初めて起動されるときに、クラウド・ファイル200の特定の部分がダウンロードされるべきであるということを決定し得る。
ローカル・ファイル220は、1つまたは複数のプレースホルダ・ファイルと一緒に、クラウド同期ディレクトリ(cloud-synced directory)に格納されてよい。前述したように、プレースホルダ・ファイルは、クラウドのみのファイルを表す、ローカルに格納されたファイルであってよい。プレースホルダ・ファイルは、どのファイルがクラウドに格納されているかをファイル・システムが追跡できるようにするために、最小限のメタデータを含んでよい(例えば、クラウドのみのファイルが永続的に削除されるか、または異なるディレクトリに移動される場合、対応するプレースホルダ・ファイルも削除されるか、または移動され、それに応じて、このファイルがそのディレクトリに存在しなくなったということをファイル・システムに示し得る)。
一部の実施形態では、ローカル・ファイル220はプレースホルダ・ファイルであってよい(またはプレースホルダ・ファイルを置き換えてよい)。例えば、一部の実施形態では、クラウド同期ストレージ・アプリケーションは、ダウンロード212またはダウンロード218あるいはその両方によってクラウドからデータをダウンロードし、範囲202または208あるいはその両方に対応するデータをプレースホルダ・ファイルにそれぞれ追加するように既存のプレースホルダ・ファイルを変更してよい。そのような実施形態では、ローカル・ファイル220はプレースホルダ・ファイル自体である。
一部の実施形態では、ローカル・ファイル220は、異なるディレクトリ(例えば、圧縮されたアーカイブまたはデータベース内などの、プレースホルダ・ファイルを含んでいるクラウド同期ディレクトリとは別のディレクトリ)に格納されるが、クラウド・ファイル200を対象にする読み取り要求の検出時に(例えば、クラウド同期ストレージ・アプリケーションによって)アクセスされてよい。例えば、クラウド同期ストレージ・アプリケーションは、クラウド同期ストレージ・アプリケーションを実行しているシステムによって実行された動作を監視できるようにするセキュリティ特権を有し得る。さらに、クラウド同期ストレージ・アプリケーションは、特定の命令を傍受することができてよい。
例えば、一部の実施形態では、システムによって実行された動作を監視している間、クラウド同期ストレージ・アプリケーションは、ファイル・エクスプローラからストレージ・コントローラに提出された、クラウド・ファイル200を対象にする読み取り要求を検出し得る。この読み取り要求を検出することに応答して、クラウド同期ストレージ・アプリケーションは、この要求を傍受し、(ローカル・ファイル220がローカル・ドライブ上の全く異なる位置に格納されている場合でも)ローカル・ファイル220にアクセスし、クラウド・ファイル200の所有を確認応答しているストレージ・コントローラであるかのように、読み取り要求に応答し得る。要求を傍受して応答することに応答して、クラウド同期ストレージ・アプリケーションは、フォローアップ要求(ビット202または208あるいはその両方に格納されたデータを要求する、より具体的な要求)を受信してよく、この時点で、クラウド同期ストレージ・アプリケーションは、ローカルのビット222または228あるいはその両方を、ローカル・ファイル220からそれぞれ返し得る。したがって、ファイル・エクスプローラ・アプリケーションは、単にファイル200の完全なコピーにアクセスし、要求が正常に満たされたかのように振る舞ってよい。
フォローアップ読み取り要求は、望ましいビットにアクセスする方法に関して受信側に指示するための命令を含んでよい。例えば、ファイル・エクスプローラがビット14,024~14,535(範囲208)を望んでいる場合、フォローアップ読み取り要求は、「14,024ビットをシークし、それに続く512ビットを返す」ように受信側に指示し得る。ローカルのビット230に格納されたマッピングに基づいて、クラウド同期ストレージ・アプリケーションは、望ましい範囲208がローカルの範囲228に対応するということを決定してよく、したがって、代わりに512ビットをシークし、それに続く512ビットを返し得る。このようにして、クラウド・ファイル200のローカル・コピー全体をダウンロードすることを必要とせずに、要求が満たされてよく、要求されたビットが返されてよい。
フォローアップ読み取り要求が、望ましいデータがローカル・ファイル220に格納されていないということを示す命令を含んでいる場合(例えば、フォローアップ読み取り要求が、「3,000ビットをシークして、それに続く4,000ビットを返す」を指示するが、要求されたデータのローカル・コピーが存在しない場合)、これは、要求される可能性が高いデータの以前の予測が正しくなかったということを示し得る。そのような状況に対して、複数の異なる応答が存在する。例えば、一部の実施形態では、クラウド同期ストレージ・アプリケーションは、クラウド・ファイル200からの具体的に要求されたビット(この例では、ビット3,001~7,000)のダウンロードを単に開始し、ダウンロードの完了時にそれらのビットを返すこと(および場合によっては、特定のデータが再び要求された場合に備えて、新たにダウンロードされたビットをローカル・ファイル220に保存し、メタデータ230を更新すること)によって応答し得る。
しかし、追加データを望む複数のフォローアップ要求の可能性がある。クラウド同期ストレージ・アプリケーションは、要求ごとに、要求されたデータを単にチェックし、必要に応じてダウンロードすることができるが、クラウドからのデータのダウンロードを開始することは、ゼロでないリソースの負荷を伴う。数十回の少量のダウンロードを開始する計算コストは、一度にファイル全体を単にダウンロードすることよりも多くの時間およびリソースを急速に消費することがある。加えて、以前の予測が、現在望まれているデータをダウンロードする結果をもたらすことに失敗した場合、これは、予測が正しくなかったか、または誤解していたか、あるいはその両方だったことを示すことがあり、追加のフォローアップ要求が、ローカル・ファイル220に存在していないデータを要求する可能性を増やす。したがって、一部の実施形態では、フォローアップ要求が、ローカル・ファイル220に含まれていないデータを要求する場合、クラウド同期ストレージ・アプリケーションは、クラウド・ファイル200全体のダウンロードを開始することによって応答し得る。一部の実施形態では、クラウド同期ストレージ・アプリケーションは、以前の予測が正しくなかったということを表すように、1つまたは複数の定義またはパラメータを更新してもよい。
図3は、本開示の複数の実施形態と一致する、読み取り要求を開始する役割を担うアプリケーションを識別する方法300を示している。方法300は、例えば、クライアント・システム上で実行されているクラウド同期ストレージ・アプリケーションによって実行されてよい。概して、方法300は、時間をかけてさまざまなシステムの動作および呼び出しのパターンを追跡することと、これらの動作に基づいてさまざまなアプリケーションのプロファイルを維持することと、この情報を活用して、読み取り要求を開始するアプリケーションを識別しようと試みる(より正確な要求の分類/望ましいデータの予測を可能にする)こととを表している。
方法300は、動作302で、システムの動作および要求を監視することを含む。動作302は、例えば、呼び出し(シグネチャ・ハッシュなどの関連するデータ、および呼び出しに応答して何が返されるかを含む)を追跡することを含んでよい。方法300は、動作304で、アプリケーション・プロファイルを維持し、更新することも含む。この動作は、例えば、既知のアプリケーションおよびライブラリのプロファイルを含んでいるデータベースを保持することを含んでよい。特定のプロファイルは、アプリケーション名/ライブラリ名、既知のファイル・パス、既知のファイル・シグネチャ・ハッシュ(メッセージ・ダイジェスト(MD:message-digest)5、セキュア・ハッシュ・アルゴリズム(SHA:securehash algorithm)1、SHA256など)、エクスポートされた関数(ライブラリの場合)、関数のシグネチャおよび名前、ならびに呼び出し順序から成ることができる。加えて、アプリケーションまたはライブラリあるいはその両方ごとに、動作304は、アプリケーションまたはライブラリあるいはその両方からの特定の要求を、ファイルの位置または部分と接続することをさらに含んでよい。例えば、動作304は、アプリケーションのファイル・パス、サイズ、アプリケーションによって最も頻繁に提出された1つまたは複数の呼び出し/要求、および特定のファイルのどの部分が要求されているか(例えば、「常に最初の512バイト」)を記録することを含んでよい。
方法300は、動作306で、読み取り要求が検出されたかどうかを判定することをさらに含む。動作306は、例えば、監視された動作を分析し、動作が読み取り要求を含んでいるかどうかを判定することを含んでよい。読み取り要求が検出されなかった場合(306の「いいえ」)、方法300は、(動作302および304に戻ることによって)アプリケーション・プロファイルの監視および更新を続行し得る。読み取り要求が検出された場合(306の「はい」)、方法300は、動作308で、どのアプリケーションが要求の役割を担うかを識別することをさらに含む。要求は、要求の役割を担うアプリケーションにラベル付けする情報を含んでよいが、これが常に当てはまるわけではないということに注意する。さらに、要求がこの情報を含んでいる場合でも、この情報が誤解を招くことがある。例えば、システムのユーザが画像編集アプリケーションを使用しており、画像ファイルを開くことを望んでいる場合、この画像編集アプリケーションは、ユーザがファイルを参照することを可能にするために、ファイル・エクスプローラ・アプリケーションの埋め込まれたインスタンスを起動することがある。埋め込まれたファイル・エクスプローラ・アプリケーションが、特定のディレクトリ内のファイルのサムネイルを生成するためにファイルにアクセスしようとする場合、この動作が、当該ファイルに対する読み取り要求として検出されるが(306の「はい」)、この要求自体は、要求が画像編集アプリケーションから生じていることを示すシグネチャを含むことがある。動作308は、動作304で維持されているプロファイルを活用して、「実際の」要求元アプリケーションがファイル・エクスプローラ・アプリケーションである(ファイル・エクスプローラ・アプリケーションがサムネイルを生成しようとしている可能性がより高く、一方、画像編集アプリケーションがファイル全体を開くことを必要としている可能性がより高い)ということを決定することを含んでよい。
動作308は、どのプロファイルが最良の一致であるか(したがって、どのアプリケーションが要求を開始したか)を決定するために、ファイル・パス、サイズ、または挙動などの相対的に信頼性が低い識別子を考慮する前に、チェックサムまたはシグネチャ・ハッシュなどの信頼性の高い識別子を考慮し得る。一部の実施形態では、信頼性の高い一致が検出された(例えば、要求内のシグネチャが、プロファイルに含まれているシグネチャに一致する)場合、動作308は分析を終了し得る。
一部の実施形態では、要求に一致するプロファイルがない場合、または類似性の特定のしきい値以内であるプロファイルがない場合、動作308は、一致が検出されなかったという結論を下し得る。一部の実施形態では、一致が検出されない場合、ターゲットにされたファイル全体がダウンロードされてよい。しかし、一部の実施形態では、要求に一致するプロファイルがない場合、動作308は、「最も近い一致」のプロファイルを選択し得る。
方法300は、動作312で、ファイルの部分を予測してダウンロードすることをさらに含む。動作312は、例えば、読み取り要求を満たすために(識別されたプロファイルに基づいて)必要とされている可能性が高いファイルのセグメントを識別すること、および(ローカル・コピーがまだ存在しない場合)そのセグメントをダウンロードすることを含んでよい。動作312は、ファイルの相対的に小さい部分(すなわち、予測された部分)のみが取得されている場合でも、完全なファイルが使用可能であり、読み取られる準備ができているということを示すために、要求に応答することをさらに含んでよい。
動作312が、必要であると予測された部分を超えて、1つまたは複数の追加のマージンまたは追加データをダウンロードすることを含んでよいということに注意する。例えば、識別されたプロファイルが、要求の真のターゲットが、指定された範囲のビットであるということを強く示している場合でも、動作312は、その範囲だけでなく、指定された範囲の前または後あるいはその両方の追加の1,024ビットもダウンロードすることを含んでよい。さらに、動作312は、予測に関わらず、既定の範囲をダウンロードすることを含んでよく、例えば、一部の実施形態では、動作312は、任意のファイルの最初または最後あるいはその両方の4,096ビットを、それらのビットが必要であるということが特に予想されていない場合でも、ダウンロードすることを含んでよい。このようにすることは、追加リソースを消費することがあるが、アプリケーション/要求に関わらずファイルのある部分が一般的に要求されるため、一部の実施形態では、価値のあるトレードオフであると見なされることがある。
方法300は、動作314で、予測が正しかったかどうかを判定することをさらに含む。動作314は、例えば、フォローアップ読み取り要求を分析し、当該ファイルのどの部分が実際に必要とされるかを決定することと、必要とされる部分をダウンロードされた部分と比較することとを含んでよい。予測が正しく(314の「はい」)、ファイルの必要とされる部分がダウンロードされた場合、方法300は、動作318で、要求されたデータを返すことをさらに含む。
予測が正しくなかった場合(314の「いいえ」)(必要な部分がダウンロードされなかった場合など)、方法300は、動作316で、要求を満たすために必要なファイルの部分をダウンロードすることをさらに含む。一部の実施形態では、動作316は、ファイル全体をダウンロードすることを含んでよい。一部の実施形態では、動作316は、ファイルの欠落している部分のみをダウンロードすることを含んでよい。
一部の実施形態では、動作316は、現在知られている必要な部分をアプリケーション・プロファイルと比較し、この追加情報に基づいて、異なるプロファイルがより近く一致するかどうかを判定することを含んでよく、そうである場合、新しいプロファイルが示している追加データをダウンロードすることが必要であってもよい。例えば、動作308で、第1のプロファイルが最良の一致として選択されたが、動作314で、この予測が正しくなかったということが明らかになった場合、動作316は、プロファイルを再び検索し、追加情報を考慮して、第2のプロファイルがより良い一致であるかどうかを判定することを含んでよい。第2の一致が検出された場合、動作316は、第2のプロファイルに基づいて、必要である可能性が高い残りの欠落している部分をダウンロードすることをさらに含んでよい。一部の実施形態では、動作316は、ファイル全体をダウンロードすることを単に含んでよい。
(動作312で、または予測が正しくなかった場合は動作316で)ファイルの必要とされる部分をダウンロードしたときに、方法300は、動作318で、要求されたデータを返すことをさらに含んでよい。動作318は、クラウドのみのファイルの要求された部分に対応するローカル・ファイルの部分を返すことを含んでよく、方法300を実行しているシステムが、クラウドからファイル全体をダウンロードすることなく、有利に要求を満たすことができるようにする。
要求されたデータを返したときに、方法300は、動作304に戻り、動作314(および必要に応じて、動作316)の結果に基づいて、プロファイルのデータベースを更新し得る。例えば、最初のダウンロードが必要なデータを捕捉することに成功したが、この成功が、単に必要なデータがマージンに含まれていたためである(予測自体がまだ不正確だったことを意味する)場合、この情報が、関連するプロファイルを更新するために使用されてよい。一部の実施形態では、動作304は、要求の周囲のコンテキスト情報に基づいてプロファイルのさまざまな重みを更新することを含んでよい。予測が正しくなかった場合(314の「いいえ」)、動作304は、この誤差に基づいて、選択されたプロファイル(および可能性のある第2の「実際に正しい」プロファイル)を更新することを含んでよい。一部の実施形態では、動作304は、ファイルの必要な部分に基づいて新しいプロファイルを作成することを含んでよい。
図4は、本開示の複数の実施形態と一致する、クラウド同期ファイルを予測的にプロビジョニングする方法400を示している。方法400は、動作402で、要求される可能性が高いクラウド・ファイルの部分を識別することを含む。動作402は、例えば、クラウド・システムに格納されたファイルに加えて、例えば、コンピューティング・システム上でインストールされているか、または実行されているか、あるいはその両方が行われているさまざまなアプリケーションの識別情報、動作可能時間、コンピューティング・システムのユーザの識別情報、あるいはコンピューティング・システムを制御している組織または実体(企業または職場あるいはその両方など)などの、システム構成情報を分析することを含んでよい。一部の実施形態では、システム構成情報は、格納されたプロファイルと比較されてよい。動作402は、この情報を活用して、読み取り要求の対象になる可能性が高い1つまたは複数のファイルの部分を予測することを含んでよい。例えば、クラウド・システムに格納されたファイルのうちの1つがビデオ・ファイルである場合、動作402は、サムネイルを生成するためにビデオの特定のフレームが要求される可能性が高いという結論を下し得る。
動作402は、クラウド・ファイルの部分を分析し、ファイルに含まれているデータの一部または全部の可能性評価を決定し得る。一部の実施形態では、動作402は、相対的な最大可能性評価を有するファイルの最も可能性が高い部分を識別することを含んでよい。一部の実施形態では、動作402は、可能性評価が特定のしきい値を超えた場合にのみ、ある部分を要求される「可能性が高い」として識別し得る。一部の実施形態では、動作402は、「上位3つ」の最も可能性が高い部分を識別することなどを含んでよい。一部の実施形態では、動作402は、部分がダウンロードする価値があるかどうかを判定するために、可能性評価に加えて、ファイルの部分の一部または全部のサイズを考慮し得る。
特に、動作402は、読み取り要求を傍受または検出した状態で、あるいは検出していない状態で、実行されてよい。システムは、例えば、新しいマシンまたはデバイスあるいはその両方にインストールされるとき、新たにリンクされたクラウド・システムまたは既存のクラウドに追加されている新しいファイルを検出したとき、(ユーザなどによって)要求されたとき、バックグラウンドでの実行中(場合によっては、相対的なダウンタイムの間に待機しているとき)、新しいアプリケーションのインストールを検出したとき、起動時などに、動作402を実行してよい。
方法400は、動作404で、ローカルにまだ格納されていないファイルの識別された部分をダウンロードすることをさらに含む。動作404は、例えば、1つまたは複数のディレクトリまたはファイルあるいはその両方をチェックして、必要とされると予測された部分がローカル・ストレージにすでに存在するかどうかを判定することと、ローカル・ストレージ内で検出されなかった一部または全部の部分をダウンロードすることとを含んでよい。
一部の実施形態では、動作404は、システム設定を考慮して、識別された部分のうちの1つまたは複数をダウンロードすることを除外することを含んでよい。例えば、クラウドのビデオ・ファイルが5GBのサイズを有するが、動作402が、ビデオの特定の1GBのセグメントが要求される可能性が高いということを識別した場合、1GBのセグメントをダウンロードすることでさえ、まだかなりの帯域幅およびストレージを消費することがある。したがって、当該ファイル(またはそのセグメント)が明示的に要求されない限り、そのようなダウンロードを制限するか、調整するか、または上限を定め得るさまざまな設定が考慮される。
これらの部分は、1つまたは複数のファイルに保存されてよい。一部の実施形態では、すべての識別された部分が単一の「バルク」ダウンロードにまとめられ、バルク・ファイルのビット(またはその範囲)をクラウド・ファイルの対応するビット(またはその範囲)にマッピングするメタデータを含む単一のファイルとして保存されてよい。したがって、データが要求された場合、動作400を実行しているシステムは、(複数の異なるファイルをチェックするのではなく)バルク・ファイルを検索し、要求されたデータがダウンロードされたかどうかを判定し得る。
方法400は、動作406で、読み取り要求を傍受し、確認応答することをさらに含む。動作406は、例えば、システムの動作を監視し、読み取り要求が送信されたことを決定することを含んでよい。方法400を実行しているシステムは、システムがアプリケーションと低レベルのファイル・システムの間の情報のやりとりを観察して傍受することを可能にする権限を有し得る。読み取り要求を検出したときに、動作406は、要求されたファイルがローカルに格納されているたかどうかに関わらず、確認応答で応答すること(要求されたファイルが読み取りに使用可能であるということを要求の送信側に伝達することなど)を含んでよい。
方法400は、動作408で、要求されたデータがローカルに格納されているかどうかを判定することをさらに含む。動作408は、例えば、要求されている特定のデータを指定する、確認応答された読み取り要求に対するフォローアップを受信することを含んでよい。動作408は、ターゲットにされたファイルの指定されたデータを、1つまたは複数のローカルに格納されたファイル(動作404で特定またはダウンロードされたファイルなど)の内容と比較することを含んでよい。
動作408の結果として、ローカル・ストレージ内の要求されたデータを特定した場合(408の「はい」)、方法400は、動作410で、要求されたデータを返すことをさらに含み、ターゲットにされたファイルのローカル・コピーをクラウドからダウンロードしなかったにもかかわらず、正しいデータで読み取り要求を有利に満たす。要求されたデータが検出されなかった場合(408の「いいえ」)、方法400は、動作412で、データをクラウドからダウンロードすることをさらに含む。一部の実施形態では、動作412は、ターゲットにされたファイル全体をローカル・ストレージにダウンロードすることを含んでよい。一部の実施形態では、動作412は、ターゲットにされたファイル(要求されたデータを含んでいるファイルなど)の1つまたは複数の部分のみをダウンロードすることを含んでよい。動作412で、要求されたデータが取得された後に、方法400は、動作410に進み、要求に応答して要求されたデータを返す。
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでよい。
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンタ)を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
ここで図5を参照すると、例示的なクラウド・コンピューティング環境500が示されている。図示されているように、クラウド・コンピューティング環境500は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話540A、デスクトップ・コンピュータ540B、ラップトップ・コンピュータ540C、または自動車コンピュータ・システム540N、あるいはその組み合わせなど)が通信し得る1つまたは複数のクラウド・コンピューティング・ノード510を含んでいる。ノード510は、互いに通信し得る。ノード510は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化される(図示されていない)。これによって、クラウド・コンピューティング環境500は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図5に示されたコンピューティング・デバイス544A~Nの種類は、例示のみが意図されており、コンピューティング・ノード510およびクラウド・コンピューティング環境500は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
ここで図6を参照すると、クラウド・コンピューティング環境500(図5)によって提供される機能的抽象レイヤのセットが示されている。図6に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ660は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム661、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ662、サーバ663、ブレード・サーバ664、ストレージ・デバイス665、ならびにネットワークおよびネットワーク・コンポーネント666が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア667およびデータベース・ソフトウェア668を含む。
仮想化レイヤ670は、仮想サーバ671、仮想ストレージ672、仮想プライベート・ネットワークを含む仮想ネットワーク673、仮想アプリケーションおよびオペレーティング・システム674、ならびに仮想クライアント675などの仮想的実体を提供できる抽象レイヤを備える。
一例を挙げると、管理レイヤ680は、以下で説明される機能を提供することができる。リソース・プロビジョニング681は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定682は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書またはインボイスの送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル683は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理684は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行685は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤ690は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されるワークロードおよび機能の例としては、マッピングおよびナビゲーション691、ソフトウェア開発およびライフサイクル管理692、仮想クラスルーム教育の配信693、データ解析処理694、トランザクション処理695、およびクラウドに格納されたファイルの予測プロビジョニング696が挙げられる。
図7を参照すると、例えば、方法100、300、および400をそれぞれ含んでいる本開示のさまざまな態様を実行するよう構成される例示的なコンピュータ・システム700の高レベルのブロック図が示されている。例示的なコンピュータ・システム700は、本開示の実施形態に従って、(例えば、コンピュータの1つまたは複数のプロセッサ回路またはコンピュータ・プロセッサを使用して)本明細書に記載された方法またはモジュール、および任意の関連する機能または動作のうちの1つまたは複数を実装することにおいて使用されてよい。一部の実施形態では、コンピュータ・システム700の主要なコンポーネントは、1つまたは複数のCPU702、メモリ・サブシステム708、端末インターフェイス716、ストレージ・インターフェイス718、I/O(Input/Output:入出力)デバイス・インターフェイス720、およびネットワーク・インターフェイス722を含んでよく、これらすべては、メモリ・バス706、I/Oバス714、およびI/Oバス・インターフェイス・ユニット712を介したコンポーネント間の通信のために、直接的または間接的に通信可能に結合されてよい。
コンピュータ・システム700は、1つまたは複数のプログラム可能な汎用中央処理装置(CPU)702を含んでよく、これらのCPUの一部または全部が1つまたは複数のコア704A、704B、704C、および704Dを含んでよく、本明細書では、これらが総称的にCPU702と呼ばれる。一部の実施形態では、コンピュータ・システム700は、比較的大きいシステムでは標準的な、複数のプロセッサを含んでよいが、他の実施形態では、コンピュータ・システム700は、代替として単一CPUシステムであってよい。各CPU702は、CPUコア704上のメモリ・サブシステム708に格納された命令を実行してよく、1つまたは複数のレベルのオンボード・キャッシュを備えてよい。
一部の実施形態では、メモリ・サブシステム708は、データおよびプログラムを格納するためのランダムアクセス半導体メモリ、ストレージ・デバイス、またはストレージ媒体(揮発性または不揮発性のいずれか)を含んでよい。一部の実施形態では、メモリ・サブシステム708は、コンピュータ・システム700の仮想メモリ全体を表してよく、コンピュータ・システム700に結合されたか、またはネットワークを介して接続された他のコンピュータ・システムの仮想メモリを含んでもよい。メモリ・サブシステム708は、概念的に、単一のモノリシックな実体であってよいが、一部の実施形態では、メモリ・サブシステム708は、キャッシュおよびその他のメモリ・デバイスの階層などの、さらに複雑な構成であってよい。例えば、メモリは、キャッシュの複数のレベルに存在してよく、それらのキャッシュは、あるキャッシュが命令を保持している間に、別のキャッシュが、1つまたは複数のプロセッサによって使用される、命令以外のデータを保持するように、機能別にさらに分割されてよい。メモリは、さまざまな、いわゆる不均等メモリ・アクセス(NUMA:non-uniform memory access)コンピュータ・アーキテクチャのいずれかにおいて知られているように、異なるCPUまたはCPUのセットにさらに分散され、関連付けられてよい。一部の実施形態では、メイン・メモリまたはメモリ・サブシステム804は、CPU702によって使用されるメモリの制御およびフローのための要素を含んでよい。この要素は、メモリ・コントローラ710を含んでよい。
図7では、メモリ・バス706が、CPU702、メモリ・サブシステム708、およびI/Oバス・インターフェイス712の間の直接通信経路を提供する単一のバス構造として示されているが、メモリ・バス706は、一部の実施形態では、複数の異なるバスまたは通信経路を含んでよく、それらのバスまたは通信経路は、階層的構成、星形構成、またはWeb構成でのポイントツーポイント・リンク、複数の階層的バス、冗長な並列経路、または任意のその他の適切な種類の構成などのさまざまな形態のいずれかで、配置されてよい。さらに、I/Oバス・インターフェイス712およびI/Oバス714がそれぞれ単一のユニットとして示されているが、コンピュータ・システム700は、一部の実施形態では、複数のI/Oバス・インターフェイス・ユニット712、複数のI/Oバス714、またはその両方を含んでよい。さらに、I/Oバス714を、さまざまなI/Oデバイスに達するさまざまな通信経路から分離する複数のI/Oインターフェイス・ユニットが示されているが、他の実施形態では、I/Oデバイスの一部または全部が、1つまたは複数のシステムI/Oバスに直接接続されてよい。
一部の実施形態では、コンピュータ・システム700は、複数ユーザのメインフレーム・コンピュータ・システム、単一ユーザのシステム、あるいはサーバ・コンピュータ、または直接的ユーザ・インターフェイスを少ししか持たないか、もしくは全く持たないが、他のコンピュータ・システム(クライアント)から要求を受信する同様のデバイスであってよい。さらに、一部の実施形態では、コンピュータ・システム700は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップ・コンピュータまたはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマートフォン、モバイル・デバイス、あるいは任意のその他の適切な種類の電子デバイスとして実装されてよい。
図7が、例示的なコンピュータ・システム700の主要な代表的コンポーネントを示すよう意図されていることに注意する。しかし、一部の実施形態では、個別のコンポーネントが、図7に表されているコンポーネントよりも大きい複雑さまたは小さい複雑さを有してよく、図7に示されているコンポーネント以外のコンポーネントまたは追加のコンポーネントが存在してよく、そのようなコンポーネントの数、種類、および構成が変化し得る。
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide areanetwork)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されることができるということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、またはその他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを生成すべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表し得る。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生し得る。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、指定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装されることができるということにも注意する。
本開示のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限られない。説明された実施形態の範囲および思想から逸脱しない多くの変更および変形が、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。

Claims (25)

  1. リモート・コンピューティング・システムに格納されたリモート・ファイルを識別することと、
    前記リモート・ファイルの予測された部分が将来の読み取り要求の対象になる可能性が高いということを予測することと、
    前記リモート・ファイルの前記予測された部分をローカル・ファイルにダウンロードすることと、
    前記ローカル・ファイルのローカルな部分を前記リモート・ファイルの前記予測された部分にマッピングするように前記ローカル・ファイルのメタデータを更新することとを含む、方法。
  2. 第1の読み取り要求を受信することをさらに含み、
    前記識別することが、前記第1の読み取り要求のターゲットに少なくとも基づき、
    前記予測することが、前記第1の読み取り要求に少なくとも基づく、請求項1に記載の方法。
  3. アプリケーション・プロファイル・データベースに少なくとも基づいて、前記第1の読み取り要求を開始した要求元アプリケーションを決定することをさらに含み、前記予測することが、前記要求元アプリケーションにさらに少なくとも基づく、請求項2に記載の方法。
  4. 前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記予測された部分および前記ターゲットにされた部分に少なくとも基づいて前記アプリケーション・プロファイル・データベースを更新することとをさらに含む、請求項3に記載の方法。
  5. 前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含むということを決定することと、
    前記予測された部分が前記ターゲットにされた部分を含むということの前記決定に応答して、前記メタデータに基づいて、前記予測された部分にマッピングされた前記ローカルな部分の少なくとも一部を返すこととをさらに含む、請求項1に記載の方法。
  6. 前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということを決定することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということの前記決定に応答して、前記ターゲットにされた部分を含んでいる前記リモート・ファイルの少なくとも第2の部分をダウンロードすることとをさらに含む、請求項1に記載の方法。
  7. コンピューティング・システムの読み取り動作を監視することをさらに含み、前記予測が、前記監視することに少なくとも基づく、請求項1ないし6のいずれかに記載の方法。
  8. 前記予測がシステム構成情報に少なくとも基づく、請求項1ないし7のいずれかに記載の方法。
  9. 前記リモート・コンピューティング・システムがクラウド・コンピューティング・システムであり、
    前記リモート・ファイルがクラウド・ファイルである、請求項1ないし8のいずれかに記載の方法。
  10. システムであって、
    メモリと、
    1つまたは複数のCPUコアを含んでいる中央処理装置(CPU)とを備え、前記CPUが、
    リモート・コンピューティング・システムに格納されたリモート・ファイルを識別することと、
    前記リモート・ファイルの予測された部分が将来の読み取り要求の対象になる可能性が高いということを予測することと、
    前記リモート・ファイルの前記予測された部分をローカル・ファイルにダウンロードすることと、
    前記ローカル・ファイルのローカルな部分を前記リモート・ファイルの前記予測された部分にマッピングするように前記ローカル・ファイルのメタデータを更新することとを実行するように構成された、システム。
  11. 前記CPUが、第1の読み取り要求を受信するように構成され、
    前記識別することが、前記第1の読み取り要求のターゲットに少なくとも基づき、
    前記予測することが、前記第1の読み取り要求に少なくとも基づく、請求項10に記載のシステム。
  12. 前記CPUが、アプリケーション・プロファイル・データベースに少なくとも基づいて、前記第1の読み取り要求を開始した要求元アプリケーションを決定するようにさらに構成され、前記予測することが、前記要求元アプリケーションにさらに少なくとも基づく、請求項11に記載のシステム。
  13. 前記CPUが、
    前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記予測された部分および前記ターゲットにされた部分に少なくとも基づいて前記アプリケーション・プロファイル・データベースを更新することとを実行するようにさらに構成される、請求項12に記載のシステム。
  14. 前記CPUが、
    前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含むということを決定することと、
    前記予測された部分が前記ターゲットにされた部分を含むということの前記決定に応答して、前記メタデータに基づいて、前記予測された部分にマッピングされた前記ローカルな部分の少なくとも一部を返すこととを実行するようにさらに構成される、請求項10に記載のシステム。
  15. 前記CPUが、
    前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということを決定することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということの前記決定に応答して、前記ターゲットにされた部分を含んでいる前記リモート・ファイルの少なくとも第2の部分をダウンロードすることとを実行するようにさらに構成される、請求項10に記載のシステム。
  16. 前記CPUが、前記システムの読み取り動作を監視するようにさらに構成され、前記予測が、前記監視することに少なくとも基づく、請求項10ないし15のいずれかに記載のシステム。
  17. 前記リモート・コンピューティング・システムがクラウド・コンピューティング・システムであり、
    前記リモート・ファイルがクラウド・ファイルである、請求項10ないし16のいずれかに記載のシステム。
  18. プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品であって、前記プログラム命令が、コンピュータによって実行可能であり、前記コンピュータに、
    リモート・コンピューティング・システムに格納されたリモート・ファイルを識別することと、
    前記リモート・ファイルの予測された部分が将来の読み取り要求の対象になる可能性が高いということを予測することと、
    前記リモート・ファイルの前記予測された部分をローカル・ファイルにダウンロードすることと、
    前記ローカル・ファイルのローカルな部分を前記リモート・ファイルの前記予測された部分にマッピングするように前記ローカル・ファイルのメタデータを更新することとを実行させる、コンピュータ・プログラム製品。
  19. 前記命令が、前記コンピュータに、第1の読み取り要求をさらに受信させ、
    前記識別することが、前記第1の読み取り要求のターゲットに少なくとも基づき、
    前記予測することが、前記第1の読み取り要求に少なくとも基づく、請求項18に記載のコンピュータ・プログラム製品。
  20. 前記命令が、前記コンピュータに、アプリケーション・プロファイル・データベースに少なくとも基づいて、前記第1の読み取り要求を開始した要求元アプリケーションをさらに決定させ、前記予測することが、前記要求元アプリケーションにさらに少なくとも基づく、請求項19に記載のコンピュータ・プログラム製品。
  21. 前記命令が、前記コンピュータに、
    前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含むということを決定することと、
    前記予測された部分が前記ターゲットにされた部分を含むということの前記決定に応答して、前記メタデータに基づいて、前記予測された部分にマッピングされた前記ローカルな部分の少なくとも一部を返すこととをさらに実行させる、請求項20に記載のコンピュータ・プログラム製品。
  22. 前記命令が、前記コンピュータに、
    前記リモート・ファイルのターゲットにされた部分をターゲットにする第2の読み取り要求を受信することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということを決定することと、
    前記リモート・ファイルの前記予測された部分が前記ターゲットにされた部分を含まないということの前記決定に応答して、前記ターゲットにされた部分を含んでいる前記リモート・ファイルの少なくとも第2の部分をダウンロードすることとをさらに実行させる、請求項18に記載のコンピュータ・プログラム製品。
  23. 前記リモート・ファイルの前記第2の部分が前記リモート・ファイルの全体を含む、請求項22に記載のコンピュータ・プログラム製品。
  24. 前記命令が、前記コンピュータに、前記コンピュータの読み取り動作をさらに監視させ、前記予測が、前記監視することに少なくとも基づく、請求項18ないし23のいずれかに記載のコンピュータ・プログラム製品。
  25. 前記リモート・コンピューティング・システムがクラウド・コンピューティング・システムであり、
    前記リモート・ファイルがクラウド・ファイルである、請求項18ないし24のいずれかに記載のコンピュータ・プログラム製品。
JP2022554264A 2020-03-20 2021-03-11 リモート・ファイルの予測プロビジョニング方法、システム、プログラム Pending JP2023517564A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/824,860 2020-03-20
US16/824,860 US11533384B2 (en) 2020-03-20 2020-03-20 Predictive provisioning of cloud-stored files
PCT/IB2021/052018 WO2021186300A1 (en) 2020-03-20 2021-03-11 Predictive provisioning of remotely-stored files

Publications (1)

Publication Number Publication Date
JP2023517564A true JP2023517564A (ja) 2023-04-26

Family

ID=77747015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022554264A Pending JP2023517564A (ja) 2020-03-20 2021-03-11 リモート・ファイルの予測プロビジョニング方法、システム、プログラム

Country Status (10)

Country Link
US (1) US11533384B2 (ja)
JP (1) JP2023517564A (ja)
KR (1) KR20220132639A (ja)
CN (1) CN115336237A (ja)
AU (1) AU2021238984B2 (ja)
CA (1) CA3167864A1 (ja)
DE (1) DE112021000408T5 (ja)
GB (1) GB2608767A (ja)
IL (1) IL295240A (ja)
WO (1) WO2021186300A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11430091B2 (en) * 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US20220329664A1 (en) * 2021-04-09 2022-10-13 Apple Inc. Secure data caching for edge networks

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902346A (zh) 2009-05-31 2010-12-01 国际商业机器公司 P2p内容缓存系统和方法
US8799413B2 (en) * 2010-05-03 2014-08-05 Panzura, Inc. Distributing data for a distributed filesystem across multiple cloud storage systems
US9792298B1 (en) * 2010-05-03 2017-10-17 Panzura, Inc. Managing metadata and data storage for a cloud controller in a distributed filesystem
EP2710510A4 (en) * 2011-05-14 2015-05-06 Bitcasa Inc CLOUD FILE SYSTEM WITH SERVER DEPLOYMENT OF USER UNKNOWN ENCRYPTED FILES
US9805054B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
US8886752B2 (en) * 2011-11-21 2014-11-11 Sony Computer Entertainment America System and method for optimizing transfers of downloadable content
CN103067479A (zh) 2012-12-24 2013-04-24 珠海金山办公软件有限公司 一种基于文件冷热的网盘同步方法及系统
CN103064637A (zh) 2012-12-24 2013-04-24 珠海金山办公软件有限公司 一种网盘的缓存同步方法及系统
CN103116618B (zh) * 2013-01-28 2015-09-30 南开大学 基于客户端持久缓存的远程文件系统镜像方法及系统
US9166866B2 (en) 2013-04-30 2015-10-20 Microsoft Technology Licensing, Llc Hydration and dehydration with placeholders
US9405767B2 (en) * 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
CN105227598B (zh) 2014-06-11 2020-11-27 腾讯科技(深圳)有限公司 一种基于云存储的资源分享方法、装置和系统
US9852147B2 (en) 2015-04-01 2017-12-26 Dropbox, Inc. Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items
US10887371B2 (en) * 2015-09-14 2021-01-05 Google Llc Systems and methods for content storage and retrieval
US10616327B2 (en) 2016-09-20 2020-04-07 Microsoft Technology Licensing, Llc Policy based hydration behavior in cloud storage synchronization
US11368528B2 (en) 2016-09-20 2022-06-21 Microsoft Technology Licensing, Llc Dynamic storage management in cloud storage synchronization
US11470131B2 (en) * 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
CN108280196A (zh) 2018-01-28 2018-07-13 丁超 文件同步方法、装置及计算机存储介质
CN110858191A (zh) * 2018-08-24 2020-03-03 北京三星通信技术研究有限公司 文件处理方法、装置、电子设备及可读存储介质
US10983677B2 (en) * 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
CN116450939A (zh) * 2023-04-12 2023-07-18 中博信息技术研究院有限公司 一种基于云计算管理平台的数据库内的调取系统及方法

Also Published As

Publication number Publication date
IL295240A (en) 2022-10-01
AU2021238984A1 (en) 2022-09-08
DE112021000408T5 (de) 2023-02-16
CN115336237A (zh) 2022-11-11
CA3167864A1 (en) 2021-09-23
KR20220132639A (ko) 2022-09-30
GB2608767A (en) 2023-01-11
WO2021186300A1 (en) 2021-09-23
AU2021238984B2 (en) 2024-01-11
US20210297502A1 (en) 2021-09-23
GB202215195D0 (en) 2022-11-30
US11533384B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
US11243758B2 (en) Cognitively determining updates for container based solutions
US10725976B2 (en) Fast recovery using self-describing replica files in a distributed storage system
US11042646B2 (en) Selecting data storage based on data and storage classifications
US11463518B2 (en) Storage tier selection for replication and recovery
US11645245B2 (en) Container software discovery and cataloging
US20190354403A1 (en) Deploying embedded computing entities based on features within a storage infrastructure
US11099882B2 (en) Container optimization through automatic layer suggestions
AU2021350781B2 (en) Storage tiering within a unified storage environment
US10747458B2 (en) Methods and systems for improving efficiency in cloud-as-backup tier
JP2023517564A (ja) リモート・ファイルの予測プロビジョニング方法、システム、プログラム
US11768740B2 (en) Restoring operation of data storage systems at disaster recovery sites
US20230055511A1 (en) Optimizing clustered filesystem lock ordering in multi-gateway supported hybrid cloud environment
US11526599B2 (en) Clustered application policy generation
US10140187B1 (en) Techniques for system backup
JP7431490B2 (ja) 階層型ストレージ管理システムにおけるデータ・マイグレーション
US11854264B2 (en) Speculative actions based on predicting negative circumstances
US10698862B2 (en) Enhanced snapshot performance, storage efficiency improvement, dynamic snapshot policy in erasure code supported object storage environment
US11704278B2 (en) Intelligent management of stub files in hierarchical storage
US11762603B2 (en) Storing modified or unmodified portions of a file based on tape loading

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20220930

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240731