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

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

▶ ベリタス テクノロジーズ エルエルシーの特許一覧

特表2022-547896大規模なデータセットを効率よくバックアップするためのシステム及び方法
<>
  • 特表-大規模なデータセットを効率よくバックアップするためのシステム及び方法 図1
  • 特表-大規模なデータセットを効率よくバックアップするためのシステム及び方法 図2
  • 特表-大規模なデータセットを効率よくバックアップするためのシステム及び方法 図3
  • 特表-大規模なデータセットを効率よくバックアップするためのシステム及び方法 図4
  • 特表-大規模なデータセットを効率よくバックアップするためのシステム及び方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-16
(54)【発明の名称】大規模なデータセットを効率よくバックアップするためのシステム及び方法
(51)【国際特許分類】
   G06F 11/14 20060101AFI20221109BHJP
   G06F 3/06 20060101ALI20221109BHJP
【FI】
G06F11/14 653
G06F3/06 301M
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022514740
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2022-03-04
(86)【国際出願番号】 US2020052294
(87)【国際公開番号】W WO2021061831
(87)【国際公開日】2021-04-01
(31)【優先権主張番号】16/582,027
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】516222277
【氏名又は名称】ベリタス テクノロジーズ エルエルシー
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(72)【発明者】
【氏名】バラドワジ、ヴァイジャヤンティ
(72)【発明者】
【氏名】ダラル、チラグ
(57)【要約】
大規模なデータセットを効率よくバックアップするためのコンピュータ実装方法は、(i)重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータを識別することと、(ii)データをサブセットに分割することと、(iii)データの最初のサブセットに続くデータの各サブセットについて、(a)データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送することと、(b)データの前のサブセットが重複排除を完了したことを検出したことに応じて、データのサブセットを重複排除することと、(c)データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送することと、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体もまた開示される。
【選択図】図3

【特許請求の範囲】
【請求項1】
大規模なデータセットを効率よくバックアップするためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別することと、
前記アプリケーションサーバ上のデータの前記セットを、データの複数のサブセットに分割することと、
データの最初のサブセットに続くデータの各サブセットについて、
データの前のサブセットが前記重複排除サーバへの転送を完了したことを検出したことに応じて、データの前記サブセットを前記重複排除サーバに転送することと、
データの前記前のサブセットが前記重複排除サーバによる重複排除を完了したことを検出したことに応じて、前記重複排除サーバによって、データの前記サブセットを重複排除することと、
データの前記サブセットが重複排除を完了し、かつデータの前記前のサブセットが前記バックアップサーバへの転送を完了したことを検出したことに応じて、データの前記サブセットの重複排除されたバージョンを前記バックアップサーバに転送することと、を含む、コンピュータ実装方法。
【請求項2】
前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割することは、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データの前記セットを分割することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割することは、各サブセットが、前記重複排除サーバ上で利用可能な記憶スペースの容量よりも少ない記憶スペースを占めるように、データの前記セットを分割することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
データの前記セットが、前記アプリケーションサーバ上のデータベースの列のセットを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記アプリケーションサーバが、アプリケーションサーバのクラスタを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記重複排除サーバが、重複排除サーバのクラスタを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記アプリケーションサーバが、前記重複排除サーバよりも大きい容量の記憶装置を含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記重複排除サーバが、前記アプリケーションサーバからのデータの前記セットを記憶するのに不十分な記憶装置を含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
大規模なデータセットを効率よくバックアップするためのシステムであって、
重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別する、メモリに記憶された、識別モジュールと、
前記アプリケーションサーバ上のデータの前記セットをデータの複数のサブセットに分割する、メモリに記憶された、分割モジュールと、
データの最初のサブセットに続くデータの各サブセットについて、データの前のサブセットが前記重複排除サーバへの転送を完了したことを検出したことに応じて、データの前記サブセットを前記重複排除サーバに転送する、メモリに記憶された、転送モジュールと、
データの前記最初のサブセットに続くデータの各サブセットについて、データの前記前のサブセットが前記重複排除サーバによる重複排除を完了したことを検出したことに応じて、前記重複排除サーバによって、データの前記サブセットを重複排除する、メモリに記憶された、重複排除モジュールと、
データの前記最初のサブセットに続くデータの各サブセットについて、データの前記サブセットが重複排除を完了し、かつデータの前記前のサブセットが前記バックアップサーバへの転送を完了したことを検出したことに応じて、データの前記サブセットの重複排除されたバージョンを前記バックアップサーバに転送する、メモリに記憶された、記憶モジュールと、
前記識別モジュール、前記分割モジュール、前記転送モジュール、前記重複排除モジュール、及び前記記憶モジュールを実行するように構成されている少なくとも1つの物理プロセッサと、を含む、システム。
【請求項10】
前記分割モジュールは、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割する、請求項9に記載のシステム。
【請求項11】
前記分割モジュールは、各サブセットが、前記重複排除サーバ上で利用可能な記憶スペースの容量よりも少ない記憶スペースを占めるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割する、請求項9に記載のシステム。
【請求項12】
データの前記セットが、前記アプリケーションサーバ上のデータベースの列のセットを含む、請求項9に記載のシステム。
【請求項13】
前記アプリケーションサーバが、アプリケーションサーバのクラスタを含む、請求項9に記載のシステム。
【請求項14】
前記重複排除サーバが、重複排除サーバのクラスタを含む、請求項9に記載のシステム。
【請求項15】
前記アプリケーションサーバが、前記重複排除サーバよりも大きい容量の記憶装置を含む、請求項9に記載のシステム。
【請求項16】
前記重複排除サーバが、前記アプリケーションサーバからのデータの前記セットを記憶するのに不十分な記憶装置を含む、請求項9に記載のシステム。
【請求項17】
1つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令が、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別させ、
前記アプリケーションサーバ上のデータの前記セットを、データの複数のサブセットに分割させ、
データの最初のサブセットに続くデータの各サブセットについて、
データの前のサブセットが前記重複排除サーバへの転送を完了したことを検出したことに応じて、データの前記サブセットを前記重複排除サーバに転送させ、
データの前記前のサブセットが前記重複排除サーバによる重複排除を完了したことを検出したことに応じて、前記重複排除サーバによって、データの前記サブセットを重複排除させ、
データの前記サブセットが重複排除を完了し、かつデータの前記前のサブセットが前記バックアップサーバへの転送を完了したことを検出したことに応じて、データの前記サブセットの重複排除されたバージョンを前記バックアップサーバに転送させる、非一過性コンピュータ可読媒体。
【請求項18】
前記1つ以上のコンピュータ可読命令は、前記コンピューティングデバイスに、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割させる、請求項17に記載の非一過性コンピュータ可読媒体。
【請求項19】
前記1つ以上のコンピュータ可読命令は、前記コンピューティングデバイスに、各サブセットが、前記重複排除サーバ上で利用可能な記憶スペースの容量よりも少ない記憶スペースを占めるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割させる、請求項17に記載の非一過性コンピュータ可読媒体。
【請求項20】
データの前記セットが、前記アプリケーションサーバ上のデータベースの列のセットを含む、請求項17に記載の非一過性コンピュータ可読媒体。

【発明の詳細な説明】
【背景技術】
【0001】
常時接続性の時代では、重要なデータのバックアップを効率よく作成及び維持できないことは、重大な責任を負うことになり得る。コンピューティングデバイスは、多種多様な一時的及び致命的なエラーの両方を発生させやすく、データ又はサービスの一時的な喪失でさえも、企業にとって破滅となり得る。バックアップからシステムを迅速に復元する能力は、一貫したサービスを維持することを望む企業にとって重要である。それと同様に重要なことは、バックアップを迅速に作成する能力である。作成にかなりの時間を必要とするバックアップは、頻繁に更新される可能性が低く、バックアップ間で故障が発生した場合に潜在的なデータ損失をもたらす。追加的に、バックアップがより効率よく作成できるようになると、組織がバックアップの作成に充てなければならないリソースは少なくなる。
【0002】
バックアップによって消費される記憶スペースを最小化することもまた、重要である。バックアップを作成するための多くの従来のシステムは、重複排除、すなわち、重複データ(多くの場合、復元性のために作成される)が記憶前にデータセットから排除されるプロセス、に従事し、データセットを記憶するために必要とされる記憶スペースを低減する。しかしながら、従来のシステムは、重複排除プロセスの様々な点で非効率的であり得、バックアップを作成するために必要な時間及び/又はリソースを増加させ得る。したがって、本開示は、大規模なデータセットを効率よくバックアップするための、追加の改良されたシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【0003】
以下でより詳細に説明するように、本開示は、概して、データをセグメント化し、パイプラインを使用して、システムリソースがアイドル状態である時間を最小化しながら、データを転送、処理、及び記憶することによって、大規模なデータセットを効率よくバックアップするためのシステム及び方法に関する。
【0004】
一例では、大規模なデータセットを効率よくバックアップするためのコンピュータ実装方法は、(i)重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別することと、(ii)アプリケーションサーバ上のデータのセットを、データのサブセットのグループに分割することと、(iii)データの最初のサブセットに続くデータの各サブセットについて、(a)データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送することと、(b)データの前のサブセットが重複排除サーバによる重複排除を完了したことを検出したことに応じて、重複排除サーバによって、データのサブセットを重複排除することと、(b)データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送することと、を含み得る。
【0005】
いくつかの例では、アプリケーションサーバ上のデータのセットをデータのサブセットに分割することは、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データのセットを分割することを含み得る。追加的に又は代替的に、アプリケーションサーバ上のデータのセットをデータのサブセットに分割することは、各サブセットが、重複排除サーバ上で利用可能な記憶スペースの容量よりも少ない記憶スペースを占めるように、データのセットを分割することを含み得る。
【0006】
一実施形態では、データのセットは、アプリケーションサーバ上のデータベースの列のセットを含み得る。いくつかの実施形態では、アプリケーションサーバは、アプリケーションサーバのクラスタを含み得る。一実施形態では、重複排除サーバは、重複排除サーバのクラスタを含み得る。
【0007】
いくつかの例では、アプリケーションサーバは、重複排除サーバよりも大きい容量の記憶装置を有し得る。一実施形態では、重複排除サーバは、アプリケーションサーバからのデータのセットを記憶するのに不十分な記憶装置を有し得る。
【0008】
一実施形態では、上記の方法を実装するためのシステムは、(i)重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別する、メモリに記憶された、識別モジュールと、(ii)アプリケーションサーバ上のデータのセットをデータのサブセットのグループに分割する、メモリに記憶された、分割モジュールと、(iii)データの最初のサブセットに続くデータの各サブセットについて、データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送する、メモリに記憶された、転送モジュールと、(iv)データの最初のサブセットに続くデータの各サブセットについて、データの前のサブセットが重複排除サーバによる重複排除を完了したことを検出したことに応じて、重複排除サーバによって、データのサブセットを重複排除する、メモリに記憶された、重複排除モジュールと、データの最初のサブセットに続くデータの各サブセットについて、データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送する、メモリに記憶された、記憶モジュールと、(vii)識別モジュール、分割モジュール、転送モジュール、重複排除モジュール、及び記憶モジュールを実行する少なくとも1つの物理プロセッサと、を含み得る。
【0009】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ以上のコンピュータ実行可能命令を含み得、この1つ以上のコンピュータ実行可能命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイスに、(i)重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別させ、(ii)アプリケーションサーバ上のデータのセットをデータのサブセットのグループに分割させ、(iii)データの最初のサブセットに続くデータの各サブセットについて、(iv)データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送させ、(v)データの前のサブセットが重複排除サーバによる重複排除を完了したことを検出したことに応じて、重複排除サーバによって、データのサブセットを重複排除させ、(vi)データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送させ得る。
【0010】
本明細書で述べた実施形態のうちのいずれかからの特性は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【0011】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
図1】大規模なデータセットを効率よくバックアップするための例示的なシステムのブロック図である。
図2】大規模なデータセットを効率よくバックアップするための追加の例示的なシステムのブロック図である。
図3】大規模なデータセットを効率よくバックアップするための例示的な方法のフロー図である。
図4】複数のサーバで大規模なデータセットを効率よくバックアップするための例示的なシステムのブロック図である。
図5】大規模なデータセットを効率よくバックアップするための例示的なシステムのグラフである。
【0012】
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【0013】
本開示は、概して、大規模なデータセットを効率よくバックアップするためのシステム及び方法を対象とする。以下でより詳細に説明されるように、本明細書に記載のシステム及び方法は、様々なシステムリソース上でアイドル時間を低減することによって、及び/又はデータが本番データからバックアップに処理される速度を改善することによって、重複排除及びバックアップシステムの機能を改善し得る。いくつかの例では、データをセグメント化し、次いでパイプラインすることにより、本明細書に記載のシステムは、システムリソースが従事する時間の割合を増加させ、データの複数のセグメントを重複排除サーバに転送し、データを重複排除し、次いで、重複排除されたデータをバックアップサーバに転送するために必要とされる全体的な時間を低減し得る。更に、本明細書に記載のシステム及び方法は、リソース利用率を改善することによって、バックアップを作成するように構成されたサーバの機能及び/又は性能を改善し得る。これらのシステム及び方法はまた、より速いバックアップ動作を提供することによって、バックアップシステムの分野を改善し得る。
【0014】
下記において、図1図2、及び図4を参照して、大規模なデータセットを効率よくバックアップするための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、図3及び図5に関連して提供する。
【0015】
図1は、大規模なデータセットを効率よくバックアップするための例示的なシステム100のブロック図である。この図に示されているように、例示的なシステム100は、1つ以上のタスクを実施するための、メモリ140に記憶される、1つ以上のモジュール102を含み得る。例えば、以下でより詳細に説明されるように、例示的なシステム100は、物理プロセッサ130によって実行されると、重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別する識別モジュール104を含み得る。例示的なシステム100は、アプリケーションサーバ上のデータのセットをデータの複数のサブセットに分割する分割モジュール106を追加的に含み得る。例示的なシステム100はまた、データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送する転送モジュール108を含み得る。例示的なシステム100は、データの前のサブセットが重複排除サーバによる重複排除を完了したことを検出したことに応じて、重複排除サーバによって、データのサブセットを重複排除する重複排除モジュール110を追加的に含み得る。例示的なシステム100は、データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送する記憶モジュール112を含み得る。別個の要素として示されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【0016】
特定の実施形態では、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ以上のタスクを実施させてもよい1つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に説明するように、モジュール102のうちの1つ以上は、図2に示されたデバイス(例えば、アプリケーションサーバ206、重複排除サーバ208、及び/又はバックアップサーバ210)など、1つ以上のコンピューティングデバイス上で記憶され、動作するように構成されたソフトウェアモジュールを表し得る。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【0017】
図1に示されているように、例示的なシステム100はまた、メモリ140など、1つ以上のメモリデバイスも含み得る。メモリ140は、概して、データ及び/又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、メモリ140は、モジュール102のうちの1つ以上を記憶、ロード、及び/又は維持し得る。メモリ140の例としては、限定することなく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、キャッシュ、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられる。
【0018】
図1に示されているように、例示的なシステム100はまた、物理的プロセッサ130など、1つ以上の物理的プロセッサも含み得る。物理プロセッサ130は、概して、コンピュータ可読命令を解釈でき、かつ/又は実行できる任意のタイプ又は形式のハードウェア実装処理ユニットを表す。一例では、物理プロセッサ130は、メモリ140に記憶されたモジュール102のうちの1つ以上にアクセスし得、かつ/又はこれらを修正し得る。追加的に又は代替的に、物理プロセッサ130は、大規模なデータセットを効率よくバックアップするために、モジュール102のうちの1つ以上を実行し得る。物理的プロセッサ130の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット(Central Processing Unit、CPU)、ソフトコアプロセッサを実装しているフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、これらのうちの1つ以上の部分、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理的プロセッサが挙げられるが、これらに限定されない。
【0019】
図1の例示的なシステム100は、様々な態様で実装されてもよい。例えば、例示的なシステム100の全て又は一部分は、図2の例示的なシステム200の部分を表してもよい。図2に示すように、システム200は、アプリケーションサーバ206(これは、例えば、アプリケーションサーバのクラスタを表し得る)、重複排除サーバ208、及び/又はバックアップサーバ210を含み得る。一例では、アプリケーションサーバ206、重複排除サーバ208、及び/又はバックアップサーバ210は、モジュール102のうちの1つ以上でプログラムされ得る。
【0020】
一実施形態では、図1のモジュール102のうちの1つ以上は、アプリケーションサーバ206、重複排除サーバ208、及び/又はバックアップサーバ210の少なくとも1つのプロセッサによって実行されると、アプリケーションサーバ206、重複排除サーバ208、及び/又はバックアップサーバ210が大規模なデータセットを効率よくバックアップすることを可能にし得る。例えば、以下でより詳細に説明するように、識別モジュール104は、重複排除サーバ208によって重複排除され、次いでバックアップサーバ上210に記憶されるべき、アプリケーションサーバ206上のデータのセット214を識別し得る。次に、分割モジュール106は、アプリケーションサーバ206上のデータのセット214をデータの複数のサブセット216に分割し得る。次いで、転送モジュール108は、前のサブセットが重複排除サーバ208への転送を完了したことを検出したことに応じて、サブセット218を重複排除サーバ208に転送し得る。次に、重複排除モジュール110は、前のサブセットが重複排除サーバ208による重複排除を完了したことを検出したことに応じて、重複排除サーバ208上で、サブセット218を重複排除し得る。最後に、記憶モジュール112は、サブセット218が重複排除を完了し、かつ前のサブセットがバックアップサーバ210への転送を完了したことを検出したことに応じて、サブセット218の重複排除されたバージョン220をバックアップサーバ210に転送し得る。
【0021】
アプリケーションサーバ206は、アプリケーション及び/又はデータをホストすることができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。アプリケーションサーバ206の例としては、限定することなく、種々のデータベースサービスを提供するように、及び/又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。いくつかの実施形態では、アプリケーションサーバ206は、エンドユーザによって動作させられるコンピューティングデバイスによってアクセス可能な本番サーバであり得る。
【0022】
重複排除サーバ208は、データ削減及び/又は重複排除を実施することができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。いくつかの実施形態では、重複排除サーバ208は、データベースからデータを受信し、より効率のよい記憶のために重複データを削除するように設計された専用の重複排除ソフトウェアを用いて構成され得る。
【0023】
バックアップサーバ210は、データを記憶することができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。いくつかの実施形態では、バックアップサーバ210は、バックアップデータを効率よく記憶、編成、及び/又は検索するように設計されたバックアップソフトウェアを用いて構成され得る。いくつかの実施形態では、バックアップサーバ210は、アプリケーションサーバ206上のデータの1つ以上の完全なバックアップを記憶するように構成され得る。
【0024】
いくつかの例では、アプリケーションサーバ206、重複排除サーバ208、及び/又はバックアップサーバ210は、1つ以上のネットワークを介して接続され得る。これらのネットワークは、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。いくつかの例では、これらのネットワークは、無線及び/又は有線接続を使用して、通信又はデータ転送を容易にし得る。このようなネットワークの例としては、限定することなく、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例えば、汎欧州デジタル移動電話方式(GSM)ネットワーク)、これらのうちの1つ以上の部分、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークが挙げられる。
【0025】
多くの他のデバイス又はサブシステムは、図1のシステム100及び/又は図2のシステム200に接続され得る。逆に、図1及び図2に示す構成要素及びデバイスの全てが、本明細書において説明及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図2に示すものとは異なる様式で相互接続されてもよい。システム100及び200はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び/又はコンピュータ制御論理とも称される)としてコード化され得る。
【0026】
「コンピュータ可読媒体」という用語は、いくつかの例では、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指し得る。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びBLU-RAYディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【0027】
図3は、大規模なデータセットを効率よくバックアップするための例示的なコンピュータ実装方法300のフロー図である。図3に示す工程は、任意の好適なコンピュータ実行可能なコード及び/又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図3に示す工程は、図1のシステム100及び/又は図2のシステム200の構成要素のうちの1つ以上によって実施されてもよい。一例では、図3に示されている工程のそれぞれは、複数の副工程を含む及び/又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【0028】
図3に示すように、工程302において、本明細書に記載のシステムのうちの1つ以上は、重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべき、アプリケーションサーバ上のデータのセットを識別し得る。例えば、識別モジュール104は、重複排除サーバ208によって重複排除され、次いでバックアップサーバ210上に記憶されるべきである、アプリケーションサーバ206上のデータのセット214を識別し得る。
【0029】
識別モジュール104は、様々な方法及び/又はコンテキストでデータのセットを識別し得る。例えば、識別モジュール104は、データの指定されたセットを自動的にバックアップするスケジュールされたバックアップ動作の一部として、データのセットを識別し得る。追加的に又は代替的に、識別モジュール104は、特定のパラメータを満たすデータ(例えば、特定のサーバ上にホストされているもの、特定の時間より最近のものなど)をバックアップするために、バックアップ動作の一部としてデータのセットを発見し得る。いくつかの例では、識別モジュール104は、手動で開始されたバックアップ動作の一部としてデータのセットを識別し得る。
【0030】
一例では、データのセットは、アプリケーションサーバ上のデータベースの列のセットを含み得る。いくつかの例では、データのセットは、データベースの全ての列及び/又は複数のデータベースからの列(例えば、同じデータベース、別個であるが関連するデータベース、及び/又は無関係なデータベースの反復及び/又はコピー)を含み得る。他の例では、データのセットは、データベースの全ての列を含み得ない。
【0031】
いくつかの実施形態では、データのセットは、重複排除サーバ上の利用可能な記憶装置よりも大きくてよい。例えば、データのセットは、数ペタバイトのデータを含むアプリケーションサーバのクラスタの完全なバックアップであり得、重複排除サーバは、数テラバイトの記憶装置のみを有し得る。いくつかの例では、重複排除サーバは、アプリケーションサーバからのデータのセット全体を一度に記憶するのに不十分な記憶装置を有し得る。いくつかの実施形態では、アプリケーションサーバは、重複排除サーバよりも大きい容量の記憶装置を有し得る(したがって、アプリケーションサーバは、データのセット全体を記憶することが可能になる)。
【0032】
工程304において、本明細書に記載のシステムのうちの1つ以上は、アプリケーションサーバ上のデータのセットをデータの複数のサブセットに分割し得る。例えば、分割モジュール106は、アプリケーションサーバ206上のデータのセット214をデータのサブセット216に分割し得る。
【0033】
「サブセット」という用語は、いくつかの例では、データのセットの全体を含まない、データのセットの任意の部分を指し得る。いくつかの実施形態では、データのセットのサブセットは、データセグメントであり得る。一例では、データセットは、データベースからの列のセットであり得、データのサブセットは、1つ以上の追加の列を除外する1つ以上の列の集合であり得る。
【0034】
いくつかの例では、アプリケーションサーバ上のデータのセットは、有意な容量の記憶スペース(例えば、複数ペタバイト)を占め得る。しかしながら、データをセグメント化することにより、本明細書に記載のシステムは、そうしなかった場合よりもはるかに小さい重複排除サーバ上で、データが処理されることを可能にし得る。具体的には、重複排除サーバの記憶装置は、その記憶装置をアプリケーションサーバとサイズが等しくなるように(データのセット全体を一度に処理するために必要とされ得るサイズに)設定するのではなく、データのセグメントを1つずつ処理するようにスケーリングされ得る。より大きい重複排除サーバではなくより小さい重複排除サーバを有することは、有意な量のリソース(例えば、物理ハードウェア、ホスティング費、エネルギー消費など)を節約し得る。重複排除サーバは常に使用され得ず(例えば、周期的バックアップ作成中にのみ使用され得る)、使用されていなければ、アイドル状態のままであり得るため、データのセグメントを1つずつ処理することができる、より小さい重複排除サーバは、データの大きいセット全体を一度に処理することができる、より大きい重複排除サーバよりもはるかに効率のよいリソースの使用であり得る。
【0035】
分割モジュール106は、様々な方法でデータをサブセットに分割し得る。例えば、分割モジュール106は、データの各サブセットが同様のサイズであるように(例えば、10%の変動内にある)、及び/又はデータのほとんどのサブセットが同様のサイズであるように(例えば、一般的でないサイズの列を含むいくつかのサブセットは、標準的な変動内にあり得ない)、データベースの列をサブセットに割り当て得る。いくつかの例では、分割モジュール106は、各サブセットが、重複排除サーバ上で利用可能な記憶スペースの容量よりも少ない記憶スペースを占めるように、データのセットを分割することによって、アプリケーションサーバ上のデータのセットをデータのサブセットに分割し得る。例えば、重複排除サーバが100テラバイトの記憶装置を有する場合、分割モジュール106は、データのセットを、サイズがそれぞれ100テラバイト以下のサブセットに分割し得る。一例では、分割モジュール106は、データのセットの列のサイズが結合してちょうど100テラバイトのサイズのグループにならないことに起因して、データのセットを100テラバイト、96テラバイト、80テラバイト、98テラバイト、及び56テラバイトのサブセットのセットに分割し得る。一実施形態では、分割モジュール106は、各サブセットが重複排除サーバ上で利用可能な記憶装置の半分よりも少ない記憶スペースを占めるようにデータを分割し得る。例えば、重複排除サーバが80テラバイトの記憶装置を有する場合、分割モジュール106は、各サブセットが40テラバイト以下を占めるようにデータを分割し得る。
【0036】
いくつかの例では、分割モジュール106は、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データのセットを分割することによって、アプリケーションサーバ上のデータのセットをデータの複数のサブセットに分割し得る。大規模なデータセット内のデータがサブセット間で重複している場合、一度に1つのサブセット上で機能する重複排除プロセスは、データセット内の重複データの全てのインスタンスを削除し得ない。効率のよい重複排除を容易にするために、本明細書に記載のシステムは、データの任意の所与の断片の全て又はほとんど(例えば、90%)の重複が、データのその断片と同じサブセット内にあるように、サブセットを編成し得る。
【0037】
工程306において、本明細書に記載のシステムのうちの1つ以上は、データの前のサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除サーバに転送し得る。例えば、転送モジュール108は、前のサブセットが重複排除サーバ208への転送を完了したことを検出したことに応じて、サブセット218を重複排除サーバ208に転送し得る。
【0038】
転送モジュール108は、様々な方法及び/又はコンテキストでサブセットを重複排除サーバに転送し得る。例えば、アプリケーションサーバ及び重複排除サーバは、同一場所に配置され得、転送モジュール108は、ローカル及び/又は有線接続(例えば、イーサネットケーブル)を介してデータのサブセットを転送し得る。追加的に又は代替的に、転送モジュール108は、リモート及び/又は無線接続を介してデータのサブセットを転送し得る。いくつかの例では、転送モジュール108は、任意の前のサブセットの完了によって促されることなく、データの最初のサブセットを転送し得、次いで、前のサブセットが転送を完了したことを検出したことに応じて各後続のサブセットを転送し得る。いくつかの例では、転送モジュール108は、データの後続サブセットを、前のサブセットが重複排除サーバによって重複排除されている間に、重複排除サーバに転送し得る。
【0039】
他のデータが重複していない間にデータを転送することにより、本明細書に記載のシステムは、リソースのアイドル時間を最小化し得る。従来のシステムでは、データの1つのセグメントは、アプリケーションサーバから重複排除サーバへの転送、重複排除、次いで重複排除からバックアップサーバへの転送の各工程を通過し得、その後、データの次のセグメントがアプリケーションサーバから重複排除サーバに転送される。そのようなシステムでは、リソースの3分の2が、任意の所与の時間においてアイドル状態であり得る。例えば、データセグメントがアプリケーションサーバから重複排除サーバに転送されているとき、重複排除サーバ上の処理リソースはアイドル状態であり得、重複排除サーバとバックアップサーバとの間でデータを転送するための帯域幅は、使用されていない状態であり得る。別の従来例では、データセグメントが重複排除されているとき、アプリケーションサーバと重複排除サーバとの間でデータを転送するための帯域幅は、使用されていない状態であり得、重複排除サーバとアプリケーションサーバとの間でデータを転送するための帯域幅は、使用されていない状態であり得る。同様に、データセグメントがバックアップサーバに転送されているとき、アプリケーションサーバと重複排除サーバとの間でデータを転送するための帯域幅は、使用されていない状態であり得、重複排除サーバ上の処理リソースは、アイドル状態であり得る。対照的に、任意の所与の時間においてプロセスの各工程がデータの異なるサブセット上で実施されるようにデータをパイプラインすることによって、本明細書に記載のシステムは、リソースがアイドル状態である時間を最小化し、システムの全体的な効率を高め得る。
【0040】
工程308において、本明細書に記載のシステムのうちの1つ以上は、データの前のサブセットが重複排除サーバによる重複排除を完了したことを検出したことに応じて、重複排除サーバによって、データのサブセットを重複排除し得る。例えば、重複排除モジュール110は、前のサブセットが重複排除サーバ208による重複排除を完了したことを検出したことに応じて、サブセット218を重複排除し得る。
【0041】
重複排除モジュール110は、様々な方法及び/又はコンテキストでデータのセットを重複排除し得る。例えば、重複排除モジュール110は、重複データを結合及び/若しくは削除し、並びに/又は任意の適切なタイプのデータ削減を実施し得る。いくつかの実施形態では、重複排除モジュール110は、データの前のサブセットが重複排除され終えたことを検出したことに応じて、データのサブセットを重複排除し得る。追加的に、重複排除モジュール110は、データのサブセットが重複排除サーバへの転送を完了したことを検出したことに応じて、データのサブセットを重複排除し得る。いくつかの例では、重複排除モジュール110は、前のサブセットが重複排除を完了したことを検出したことによって促されることなく、データの最初のサブセットを重複排除し得る。データの各サブセットを、前のサブセットが重複排除を終えてすぐに重複排除することにより、本明細書に記載のシステムは、重複排除サーバ上のリソースのアイドル時間を最小化し得、及び/又はデータのセットが重複排除される速度を改善し得る。
【0042】
工程310において、本明細書に記載のシステムのうちの1つ以上は、データのサブセットが重複排除を完了し、かつデータの前のサブセットがバックアップサーバへの転送を完了したことを検出したことに応じて、データのサブセットの重複排除されたバージョンをバックアップサーバに転送し得る。例えば、記憶モジュール112は、サブセット218が重複排除を完了し、かつ前のサブセットがバックアップサーバ210への転送を完了したことを検出したことに応じて、サブセット218の重複排除されたバージョン220をバックアップサーバ210に転送し得る。
【0043】
記憶モジュール112は、様々な方法及び/又はコンテキストでデータのサブセットの重複排除されたバージョンを転送し得る。例えば、重複排除サーバ及びバックアップサーバは、同一場所に配置され得、記憶モジュール112は、ローカル及び/又は有線接続(例えば、イーサネットケーブル)を介してデータのサブセットを転送し得る。追加的に又は代替的に、転送モジュール112は、リモート及び/又は無線接続を介してデータのサブセットを転送し得る。いくつかの例では、記憶モジュール112は、前のサブセットの転送の完了によって促されることなく、データの最初のサブセットをバックアップサーバに転送し得る。データを、データの前のサブセットが転送を終えてすぐにバックアップサーバに転送することにより、本明細書に記載のシステムは、重複排除サーバとバックアップサーバとの間の帯域幅が使用されていない時間を最小化し得、及び/又はバックアッププロセスを高速化し得る。
【0044】
個々のデバイスとして示されているが、いくつかの実施形態では、本明細書に記載のサーバのうちの1つ以上は、サーバのクラスタ及び/又はサーバのクラスタのセットを表し得る。図4に示すように、いくつかの実施形態では、アプリケーションサーバ402(1)~アプリケーションサーバ402(n)を含むアプリケーションサーバのクラスタが、データを記憶し得る。いくつかの例では、本明細書に記載のシステムは、アプリケーションサーバ402(1)~402(n)からデータステージングサーバ404(1)~404(n)のいずれか又は全てにデータを転送し得る。いくつかの実施形態では、本明細書に記載のシステムは、アプリケーションサーバ402(1)~402(n)からデータステージングサーバ404(1)~404(n)にデータを並行に転送し得る。一実施形態では、データステージングサーバ404(1)~404(n)は、重複排除サーバを表し得、並びに/又は様々なデータ重複排除及び/若しくはデータ削減動作を実施し得る。いくつかの実施形態では、本明細書に記載のシステムは、データステージングサーバ404(1)~404(n)からバックアップサーバ406にデータを転送し得る。いくつかの実施形態では、バックアップサーバ406は、複数のサーバ及び/又はサーバのクラスタ及び/又は1つ以上のバックアップサーバ及びバックアップサーバを指示、調整、及び/又は制御するバックアップマスタサーバを表し得る。
【0045】
いくつかの実施形態では、本明細書に記載のシステムは、ほとんどの時点において、全ての関与するサーバの間のネットワーク帯域幅及びそれらのサーバ上の記憶装置帯域幅が利用されているように、データセグメントをパイプラインし得る。例えば、図5に示すように、時間502において、本明細書に記載のシステムは、アプリケーションサーバ及び重複排除サーバ上の記憶装置帯域幅、並びにアプリケーションサーバと重複排除サーバとの間のネットワーク帯域幅を利用して、セグメント520を重複排除サーバに転送し得る。時間504において、本明細書に記載のシステムは、セグメント520を重複排除し得、及びセグメント522を重複排除サーバに転送し得る。いくつかの例では、時間506において、本明細書に記載のシステムは、セグメント520の重複排除されたバージョンをバックアップサーバに転送し、セグメント522を重複排除し、セグメント524を重複排除サーバに転送し得る。一例では、時間506において、本明細書に記載のシステムは、アプリケーションサーバ、重複排除サーバ、及びバックアップサーバ上の記憶装置帯域幅、並びにアプリケーションサーバと重複排除サーバとの間及び重複排除サーバとバックアップサーバとの間のネットワーク帯域幅を利用し得る。
【0046】
一例では、時間508において、本明細書に記載のシステムは、セグメント522の重複排除されたバージョンをバックアップサーバに転送し、セグメント524を重複排除し、セグメント526を重複排除サーバに転送し得る。時間510において、本明細書に記載のシステムは、セグメント524の重複排除されたバージョンをバックアップサーバに転送し、セグメント526を重複排除し得る。工程512において、本明細書に記載のシステムは、セグメント526の重複排除されたバージョンをバックアップサーバに転送し、データのセット内の全てのデータセグメントに対してバックアッププロセスを完了し得る。
【0047】
上で詳述したように、データをセグメント化し、パイプラインすることにより、本明細書に記載のシステムは、ハードドライブメモリ、ソリッドステートドライブメモリ、ランダムアクセスメモリ、中央処理ユニット電力、ネットワーク帯域幅、及び/又は任意の他の好適なリソースを含む、様々なシステムリソースのアイドル時間を低減及び/又は最小化することによって、バックアップ作成効率を改善し得る。いくつかの従来のアプローチでは、各セグメントが、1つずつ、アプリケーションサーバからの転送、重複排除、及びバックアップサーバへの転送の各段階を移動するので、バックアッププロセス中にリソースがアイドル状態に放置され得る。各セグメントがプロセスの工程を終えるとすぐに次のセグメントがその工程を開始するように、データセグメントをパイプラインすることは、リソースがアイドル状態である時間を短縮し、及び/又はバックアッププロセスの速度を改善し得る。例えば、本明細書に記載のシステムは、単一のデータセグメントではなく3つのデータセグメントに同時に作用するため、本明細書に記載のシステムは、バックアッププロセスが完了する速度に関して、従来のシステムを2又は3倍改善し得る。
【0048】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び/又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、かつ/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例としてみなされるべきである。
【0049】
いくつかの例では、図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【0050】
種々の実施形態において、図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書において説明されるモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(すなわち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
【0051】
種々の実施形態によれば、図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び/又はデータは、仮想マシン内に存在し得る、かつ/又はそこで実行し得る。いくつかの例では、「仮想マシン」という用語は、仮想マシンマネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指し得る。
【0052】
いくつかの例では、図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。いくつかの例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、かつ/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)管理などを含む、1つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、かつ/又はモバイルコンピューティング環境と相互作用し得る。
【0053】
本明細書において説明及び/又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び/又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び/又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの1つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【0054】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの1つ以上を実施するように、コンピューティングシステムを構成し得る。
【0055】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、網羅的であることを意図するものでも、開示されたいずれかの正確な形態に限定されることを意図するものでもない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないとみなされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【0056】
別途記載されない限り、「~に接続される(connected to)」及び「~に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、直接的及び間接的(すなわち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び請求項において使用される際、「~のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。

図1
図2
図3
図4
図5
【手続補正書】
【提出日】2022-03-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
大規模なデータセットを効率よくバックアップするためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別することと、
前記アプリケーションサーバ上のデータの前記セットを、データの複数のサブセットに分割することと、
データの最初のサブセットに続くデータの各サブセットについて、
データの前のサブセットが前記重複排除サーバへの転送を完了したことを検出したことに応じて、前記重複排除サーバがデータの前記前のサブセットの重複排除を実施する間、データの前記サブセットを前記重複排除サーバに転送することと、
データの前記前のサブセットが前記重複排除サーバによる重複排除を完了したことを検出したことに応じて、前記重複排除サーバがデータの前記前のサブセットを前記バックアップサーバに転送する間、前記重複排除サーバによって、データの前記サブセットを重複排除することと、
データの前記サブセットが重複排除を完了し、かつデータの前記前のサブセットが前記バックアップサーバへの転送を完了したことを検出したことに応じて、データの前記サブセットの重複排除されたバージョンを前記バックアップサーバに転送することと、を含む、コンピュータ実装方法。
【請求項2】
前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割することは、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データの前記セットを分割することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割することは、各サブセットが、前記重複排除サーバ上で利用可能な記憶スペースの容量の半分よりも少ない記憶スペースを占めるように、データの前記セットを分割することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
データの前記セットが、前記アプリケーションサーバ上のデータベースの列のセットを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記アプリケーションサーバが、アプリケーションサーバのクラスタを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記重複排除サーバが、重複排除サーバのクラスタを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記アプリケーションサーバが、前記重複排除サーバよりも大きい容量の記憶装置を含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記重複排除サーバが、前記アプリケーションサーバからのデータの前記セットを記憶するのに不十分な記憶装置を含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
大規模なデータセットを効率よくバックアップするためのシステムであって、
重複排除サーバによって重複排除され、バックアップサーバ上に記憶されるべきアプリケーションサーバ上のデータのセットを識別する、前記システムのメモリに記憶された、識別のための手段と、
前記アプリケーションサーバ上のデータの前記セットをデータの複数のサブセットに分割する、前記システムの前記メモリに記憶された、分割のための手段と、
データの最初のサブセットに続くデータの各サブセットについて、データの前のサブセットが前記重複排除サーバへの転送を完了したことを検出したことに応じて、前記重複排除サーバがデータの前記前のサブセットの重複排除を実施する間、データの前記サブセットを前記重複排除サーバに転送する、前記システムの前記メモリに記憶された、転送するための手段と、
データの前記最初のサブセットに続くデータの各サブセットについて、データの前記前のサブセットが前記重複排除サーバによる重複排除を完了したことを検出したことに応じて、前記重複排除サーバがデータの前記前のサブセットを前記バックアップサーバに転送する間、前記重複排除サーバによって、データの前記サブセットを重複排除する、前記システムの前記メモリに記憶された、重複排除のための手段と、
データの前記最初のサブセットに続くデータの各サブセットについて、データの前記サブセットが重複排除を完了し、かつデータの前記前のサブセットが前記バックアップサーバへの転送を完了したことを検出したことに応じて、データの前記サブセットの重複排除されたバージョンを前記バックアップサーバに転送する、前記システムの前記メモリに記憶された、記憶のための手段と、
前記識別のための手段、前記分割のための手段、前記転送のための手段、前記重複排除のための手段、及び前記記憶のための手段を実行するように構成されている少なくとも1つの物理プロセッサと、を含む、システム。
【請求項10】
前記分割のための手段は、各サブセットが、各他のサブセットと独立した重複排除の対象となる固有のデータセットとなるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割する、請求項9に記載のシステム。
【請求項11】
前記分割のための手段は、各サブセットが、前記重複排除サーバ上で利用可能な記憶スペースの容量の半分よりも少ない記憶スペースを占めるように、データの前記セットを分割することによって、前記アプリケーションサーバ上のデータの前記セットをデータの前記複数のサブセットに分割する、請求項9に記載のシステム。
【請求項12】
データの前記セットが、前記アプリケーションサーバ上のデータベースの列のセットを含む、請求項9に記載のシステム。
【請求項13】
前記アプリケーションサーバが、アプリケーションサーバのクラスタを含む、請求項9に記載のシステム。
【請求項14】
前記重複排除サーバが、重複排除サーバのクラスタを含む、請求項9に記載のシステム。
【請求項15】
前記アプリケーションサーバが、前記重複排除サーバよりも大きい容量の記憶装置を含む、請求項9に記載のシステム。

【国際調査報告】