(57)【要約】  リペアレスリストアのためのデータベースバックアップを実施するための開示されたコンピュータ実装方法は、（１）プロダクションクラスタ内のデータストレージノードのグループのそれぞれからデータベースのコピーを表す複製データレコードを受信することと、（２）データストレージノード間のノード間通信なしに、複製データレコードを並行して処理することと、（３）更新を複製データレコードにマージすることと、（４）更新された複製データレコード内の無効データレコード又は冗長データレコードを識別することと、（５）更新された複製データレコードから無効データレコード又は冗長なデータレコードを破棄して、更新されたデータレコードの単一コピーを作成することと、（６）更新されたデータレコードのそれぞれが整合し、それによって後続のリペアが不要になるように、更新されたデータレコードをデータストレージノードに複製することによって、更新されたデータレコードのコピーをプロダクションクラスタにリストアすることと、を含み得る。様々な別の方法、システム、及びコンピュータ可読媒体もまた開示される。
2021513168.tif 000002
【特許請求の範囲】
【請求項１】
リペアレスリストアのためのデータベースバックアップを実施するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信することと、
前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理することと、
更新を前記複製データレコードにマージすることと、
前記更新された複製データレコード内の、無効データレコード又は冗長データレコードを識別することと、
前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成することと、
前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアすることであって、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、ことと、を含む、方法。
【請求項２】
前記データストレージノード間のノード間通信なしに前記複製データレコードを並行して処理することが、前記バックアップクラスタ内の複数の前記リコンシリエーションノードのそれぞれの内部でローカルに前記複製データレコードを処理することを含む、請求項１に記載の方法。
【請求項３】
更新を前記複製データレコードにマージすることが、複数の期間にわたって作成された前記複製データレコード内の１つ以上のデータカラムに更新をマージすることを含む、請求項１に記載の方法。
【請求項４】
前記更新されたデータレコードが、前記データベースの再作成を含む、請求項１に記載の方法。
【請求項５】
前記複製データレコードが、前記データストレージノードのそれぞれのデータベースキーを共有する、請求項１に記載の方法。
【請求項６】
前記プロダクションクラスタが、非リレーショナルデータベースクラスタを含む、請求項１に記載の方法。
【請求項７】
前記バックアップクラスタが、前記非リレーショナルデータベースクラスタのインスタンスを含む、請求項６に記載の方法。
【請求項８】
リペアレスリストアのためのデータベースバックアップを実施するためのシステムであって、前記システムは、
メモリに記憶された、受信モジュールであって、バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信する、受信モジュールと、
前記メモリに記憶された、処理モジュールであって、前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理する、処理モジュールと、
前記メモリに記憶された、マージモジュールであって、更新を前記複製データレコードにマージする、マージモジュールと、
前記メモリに記憶された、識別モジュールであって、前記更新された複製データレコード内の無効データレコード又は冗長データレコードを識別する、識別モジュールと、
前記メモリに記憶された、破棄モジュールであって、前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成する、破棄モジュールと、
前記メモリに記憶された、リストアモジュールであって、前記リストアモジュールは、前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアし、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、リストアモジュールと、
前記受信モジュール、前記処理モジュール、前記マージモジュール、前記識別モジュール、前記破棄モジュール、及び前記リストアモジュールを実行するように構成されている少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記処理モジュールが、前記バックアップクラスタ内の複数の前記リコンシリエーションノードのそれぞれの内部でローカルに前記複製データレコードを処理することによって、前記データストレージノード間のノード間通信なしに前記複製データレコードを並行して処理する、請求項８に記載のシステム。
【請求項１０】
前記マージモジュールが、複数の期間にわたって作成された前記複製データレコード内の１つ以上のデータカラムに更新をマージすることによって、更新を前記複製データレコードにマージする、請求項８に記載のシステム。
【請求項１１】
前記更新されたデータレコードが、前記データベースの再作成を含む、請求項８に記載のシステム。
【請求項１２】
前記複製データレコードが、前記データストレージノードのそれぞれのデータベースキーを共有する、請求項８に記載のシステム。
【請求項１３】
前記プロダクションクラスタが、非リレーショナルデータベースクラスタを含む、請求項８に記載のシステム。
【請求項１４】
前記バックアップクラスタが、前記非リレーショナルデータベースクラスタのインスタンスを含む、請求項１３に記載のシステム。
【請求項１５】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信させ、
前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理させ、
更新を前記複製データレコードにマージさせ、
前記更新された複製データレコード内の、無効データレコード又は冗長データレコードを識別させ、
前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成させ、
前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアさせ、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、非一過性コンピュータ可読媒体。
【請求項１６】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、前記バックアップクラスタ内の複数の前記リコンシリエーションノードのそれぞれの内部でローカルに前記複製データレコードを処理することによって、前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理させる、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１７】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、更新を前記複製データレコードにマージさせることが、複数の期間にわたって作成された前記複製データレコード内の１つ以上のデータカラムに更新をマージすることを含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１８】
前記更新されたデータレコードが、前記データベースの再作成を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１９】
前記複製データレコードが、前記データストレージノードのそれぞれのデータベースキーを共有する、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項２０】
ソースクラスタが、非リレーショナルデータベースクラスタを含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
現代の企業は、多くの場合、電子商取引、コンピュータハードウェア及びソフトウェア、オンライン検索エンジン、及びストリーミングメディアなどの、様々な顧客サービス及び製品を提供するのに利用される膨大な量のデータを記憶するための大きなデータベース構成を必要とする。例えば、ソフトウェアサービス会社は、テラバイト（又は更にはペタバイト）単位の顧客、製品、及び／又はサービスデータを記憶するための何千のノードを有するデータベースを配備することができる。データ信頼性を確保するために、企業は、高度の障害許容度及び非構造化クエリ言語（ＮｏＳＱＬ）データベースなどの高い読み出し性能を有する非リレーショナルデータベースを配備することができる。
【０００２】
従来、ＮｏＳＱＬデータベースシステムは、信頼性を確保するために、クラスタの複数ノードにわたって複数回データベース内の各データレコードを複製する。しかしながら、この機能を提供する際、これらのシステムは、多数の冗長な又は陳腐化したデータレコードを生成する場合がある。したがって、データベースのバックアップが実施されると、異なるノードからのデータレコード（冗長データレコード又は陳腐化したデータレコードを含む）は、データリストア操作を実施する際に個別にバックアップされ不整合につながる。これらの不整合を解決するために、従来のシステムは、（冗長データレコード又は陳腐化したデータレコードを更新するために）データレコードを読み取り、ノード間でデータ即時性レベルを交換することによって、システムクラスタ全体でデータをリコンサイルするリペア操作を利用する。大量のデータを有する大きなクラスタでは、このリペア操作は、システムクラスタが定期的な入力／出力操作に利用可能になる前に完了するのに数日かかる場合がある高価なプロセスである。本開示は、それ故に、リペアレスリストアのためのデータベースバックアップを実施するためのシステム及び方法に対する必要性を識別して対処する。
【発明の概要】
【０００３】
以下でより詳細に説明するように、本開示は、リペアレスリストアのためのデータベースバックアップを実施するための様々なシステム及び方法を記載する。
【０００４】
一例では、リペアレスリストアのためのデータベースバックアップを実施するためのコンピュータ実装方法は、（１）バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信することと、（２）データストレージノード間のノード間通信なしに、複製データレコードを並行して処理することと、（３）更新を複製データレコードにマージすることと、（４）更新された複製データレコード内の無効データレコード又は冗長データレコードを識別することと、（５）更新された複製データレコードから無効データレコード又は冗長なデータレコードを破棄して、更新されたデータレコードの単一コピーを作成することと、（６）更新されたデータレコードのそれぞれが整合し、それによって後続のリペアが不要になるように、更新されたデータレコードをデータストレージノードのそれぞれに複製することによって、更新されたデータレコードのコピーをプロダクションクラスタにリストアすることと、を含み得る。
【０００５】
いくつかの例では、複製データレコードは、バックアップクラスタ内のリコンシリエーションノードのグループのそれぞれの内部でローカルに複製データレコードを処理することによって、ノード間通信なしに並行して処理されてもよい。いくつかの例では、更新を複製データレコードにマージすることは、複数の期間にわたって作成された複製データレコード内の１つ以上のデータカラムに更新をマージすることを含み得る。
【０００６】
いくつかの例では、更新されたデータレコードは、データベースの再作成を含み得る。いくつかの例では、複製データレコードは、データストレージノードのそれぞれのデータベースキーを共有することができる。いくつかの例では、プロダクションクラスタは、非リレーショナルデータベースクラスタを含み得る。いくつかの例では、バックアップクラスタは、非リレーショナルデータベースクラスタのインスタンスを含み得る。
【０００７】
一実施形態では、上記の方法を実装するためのシステムは、（１）メモリに記憶された、受信モジュールであって、バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信する、受信モジュールと、（２）メモリに記憶された、処理モジュールであって、データストレージノード間のノード間通信なしに複製データレコードを並行して処理する、処理モジュールと、（３）メモリに記憶された、マージモジュールであって、更新を複製データレコードにマージする、マージモジュールと、（４）メモリに記憶された、識別モジュールであて、更新された複製データレコード内の無効データレコード又は冗長データレコードを識別する、識別モジュールと、（５）メモリに記憶された、破棄モジュールであって、更新された複製データレコードから無効データレコード又は冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成する、破棄モジュールと、（６）メモリに記憶された、リストアモジュールであって、更新されたデータレコードのそれぞれが整合し、それによって後続のリペアが不要になるように、更新されたデータレコードをデータストレージノードのそれぞれに複製することによって、更新されたデータレコードのコピーをプロダクションクラスタにリストアする、リストアモジュールと、（７）受信モジュール、処理モジュール、マージモジュール、識別モジュール、破棄モジュール、及びリストアモジュールを実行するように構成された少なくとも１つの物理プロセッサと、を備える。
【０００８】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに（１）バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一のキーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信させ、（２）データストレージノード間のノード間通信なしに、複製データレコードを並行して処理させ、（３）複製データレコードに更新をマージさせ、（４）更新された複製データレコード内の無効データレコード又は冗長データレコードを識別させ、（５）リコンシリエーションノードによって、更新された複製データレコードから無効データレコード又は冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成させ、（６）更新されたデータレコードのそれぞれが整合し、それによって後続のリペアが不要になるように、更新されたデータレコードをデータストレージノードのそれぞれに複製することによって、更新されたデータレコードのコピーをプロダクションクラスタにリストアさせ得る１つ以上のコンピュータ実行可能命令を含み得る。
【０００９】
上記で述べた実施形態のうちのいずれかからの特性は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１０】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムのブロック図である。
【図２】リペアレスリストアのためのデータベースバックアップを実施するための追加の例示的なシステムのブロック図である。
【図３】リペアレスリストアのためのデータベースバックアップを実施するための例示的な方法のフローチャートである。
【図４】リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムのデータフロー図である。
【図５】リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムで使用される複製データレコードのブロック図である。
【００１１】
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１２】
本開示は、概して、リペアレスリストアのためのデータベースバックアップを実施するためのシステム及び方法を対象とする。以下でより詳細に説明されるように、データベースレコードの処理がバックアップクラスタ上で並行して実施されるリコンシリエーションを実施すること、及び更新をマージして無効データベースレコード又は冗長データベースレコードを除外することによって、本明細書に記載される様々なシステム及び方法は、ＮｏＳＱＬ又は非リレーショナルデータベースシステムにおける複製に関して、データベースシステムが整合性のために時間のかかるデータベースレコードをリコンサイルするリペアプロセスを受ける必要なしに、プロダクションクラスタにリストアし戻すための、データベースの単一の整合したコピーを生成することが可能であってもよく、したがってバックアップからのより迅速なリストア操作を潜在的にもたらすことができる。
【００１３】
更に、本明細書に記載されるシステム及び方法は、データベースのサイズを縮小することによってコンピューティングデバイスの機能及び／又は性能を改善することができ、それによって、データベースバックアップ及びリストア操作を実施する際にコンピューティングデバイスによって利用される処理及びメモリリソースを減少させることができる。これらのシステム及び方法はまた、ＮｏＳＱＬデータベースバックアップからのより迅速なリストア操作を提供することによって、クラスタコンピューティングシステム及び／又はバックアップシステムの分野を改善することができる。
【００１４】
以下では、図１〜図２を参照して、リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実施方法についての詳細な説明もまた、図３に関連して提供される。加えて、データベースのリペアレスバックアップを実施するための例示的なデータフロー図の詳細な説明もまた、図４に関連して提供される。加えて、データベースのリペアレスバックアップを実施するための例示的なシステムで使用される複製データレコードの詳細な説明もまた、図５に関連して提供される。
【００１５】
図１は、データベースのリペアレスバックアップを実施するための例示的なシステム１００のブロック図である。この図に示されているように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。例えば、以下でより詳細に説明されるように、例示的なシステム１００は、バックアップクラスタ１２０内のリコンシリエーションノード１２２によってデータベースバックアップ操作中に、データベース１２４のコピーを表す複製データレコード１２６を受信する受信モジュール１０４を含んでもよい。例示的なシステム１００は、データベース１２４をホスティングするプロダクションクラスタ内のデータストレージノード間のノード間通信なしに、複製データレコード１２６を並行して処理する処理モジュール１０６を更に含んでもよい。例示的なシステム１００はまた、更新を複製データレコード１２６にマージするマージモジュール１０８を含んでもよい。例示的なシステム１００は、更新された複製データレコード１２８内の無効データレコード又は冗長データレコードを識別する識別モジュール１１０を更に含んでもよい。例示的なシステム１００はまた、更新された複製データレコード１２８から無効又は冗長データレコード１２７を破棄して、更新されたデータレコード１３２の単一コピーを作成する破棄モジュール１１２を含んでもよい。例示的なシステム１００は、更新されたデータレコード１３２をプロダクションクラスタにリストアするリストアモジュール１１４を更に含んでもよい。別個の要素として示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００１６】
本明細書で使用するとき、用語「クラスタ」は、一般に、ＮｏＳＱＬデータベースを含み得る非リレーショナルデータベース管理システム（例えば、ＮｏＳＱＬデータベース管理システム）を指す。ＮｏＳＱＬデータベース管理システムの例は、ＡＰＡＣＨＥ  ＳＯＦＴＷＡＲＥ  ＦＯＵＮＤＡＴＩＯＮからのＣＡＳＳＡＮＤＲＡデータベース管理システムである。非リレーショナル（又はＮｏＳＱＬ）データベース管理システム内のデータは、「スキーマレス」であり、複数のノードにわたってキー値ペアとして記憶される。クラスタ内の各ノードは、単一障害点がないように、同じ役割を有する。データは、（各ノードが異なるデータを含むように）クラスタ全体に分散されてもよいが、全てのノードが任意の要求にサービスすることができるため、マスターは存在しない。いくつかの例では、クラスタは、データベースのデータレコード及び複製データレコードを記憶するための複数のノードを含むプロダクションクラスタを含んでもよい。いくつかの例では、クラスタは、バックアップクラスタを含んでもよく、バックアップクラスタは、プロダクションクラスタのインスタンスであり、プロダクションクラスタからデータレコードをバックアップするために利用される。
【００１７】
本明細書で使用するとき、用語「リコンシリエーションノード」は、一般に、バックアップクラスタに常駐し、プロダクションクラスタからデータベースデータレコードをバックアップするために利用され、データベースデータレコードに任意の更新を組み込み、更新されたデータベースデータレコードをプロダクションクラスタにリストアするデータストレージデバイスを指す。いくつかの例では、ＮｏＳＱＬデータベース管理システム用にデータレコードをバックアップ及びリストアするために、１つ以上のリコンシリエーションノードが利用されてもよい。いくつかの例では、リコンシリエーションノードは、直接取り付けられたストレージデバイスであってもよい。
【００１８】
本明細書で使用するとき、用語「データストレージノード」は、一般に、データレコード及びデータベースの複製データレコードを記憶するために利用されるプロダクションクラスタに常駐するデータストレージデバイスを指す。いくつかの例では、複数のデータストレージノードのそれぞれは、データレコード及び複数の複製データレコードをＮｏＳＱＬデータベース管理システム内に記憶するために利用されてもよい。いくつかの例では、データストレージノードは、直接取り付けられたストレージデバイスであってもよい。
【００１９】
本明細書で使用するとき、用語「複製データレコード」は、一般に、クラスタ内のデータベースのデータレコードのコピーを指す。いくつかの例では、複製データレコードは、ＮｏＳＱＬデータベース管理システム内のデータベースデータを表すカラムを有するキースペース（例えば、データベーステーブル）を含み得る。
【００２０】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ以上のタスクを実施させてもよい１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に説明するように、１つ以上のモジュール１０２は、図２に例示したデバイスなど１つ以上のコンピューティングデバイス（例えば、コンピューティングデバイス２０２）上で記憶され、動作するように構成されているモジュールを表し得る。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【００２１】
図１に示されているように、例示的なシステム１００はまた、メモリ１４０など、１つ以上のメモリデバイスも含み得る。メモリ１４０は、概して、データ及び／又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、メモリ１４０は、モジュール１０２のうちの１つ以上を記憶、ロード、及び／又は維持し得る。メモリ１４０の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられる。
【００２２】
図１に示されているように、例示的なシステム１００はまた、物理プロセッサ１３４など、１つ以上の物理プロセッサも含み得る。物理プロセッサ１３４は、概して、コンピュータ可読命令を解釈でき、かつ／又は実行できる任意の種類又は形式のハードウェア実装処理ユニットを表す。一例では、物理プロセッサ１３４は、メモリ１４０に記憶されているモジュール１０２のうちの１つ以上にアクセスし得、かつ／又はこれらを修正し得る。追加的に又は代替的に、物理プロセッサ１３４は、リペアレスリストアのためのデータベースバックアップを実施することを容易にするためにモジュール１０２のうちの１つ以上を実行し得る。物理プロセッサ１３４の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット（ＣＰＵ）、ソフトコアプロセッサを実装しているフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、これらのうちの１つ以上の部分、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理プロセッサが挙げられるが、これらに限定されない。
【００２３】
図１の例示的なシステム１００は、様々な態様で実装され得る。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表し得る。図２に示されるように、システム２００は、ネットワーク２０４を介してプロダクションクラスタ２０６と通信するバックアップクラスタ２０２を含み得る。一例では、モジュール１０２の機能性の全て又は一部分は、バックアップクラスタ２０２及び／又は任意の他の好適なコンピューティングシステムによって実施され得る。下記でより詳細に記載されるように、図１のモジュール１０２のうちの１つ以上は、バックアップクラスタ２０２の少なくとも１つのプロセッサによって実行されるとき、バックアップクラスタ２０２がデータベースのリペアレスバックアップを実施することを可能にし得る。
【００２４】
バックアップクラスタ２０２は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。例えば、バックアップクラスタ２０２は、ＮｏＳＱＬデータベース管理システムのインスタンスを表す、互いに連携して機能及び／又は操作する複数のサーバコンピュータを含んでもよい。バックアップクラスタ２０２の付加的な例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバが挙げられるが、これらに限定されない。
【００２５】
プロダクションクラスタ２０６は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。例えば、プロダクションクラスタ２０６は、ＮｏＳＱＬデータベース管理システムを表す、互いに連携して機能及び／又は動作する複数のサーバコンピュータを含み得る。プロダクションクラスタ２０６の付加的な例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバを挙げることができるが、これらに限定されない。
【００２６】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。一例において、ネットワーク２０４は、バックアップクラスタ２０２とプロダクションクラスタ２０６との間の通信を容易にし得る。この例では、ネットワーク２０４は、無線及び／又は有線接続を使用して、通信又はデータ転送を容易にし得る。ネットワーク２０４の例としては、限定するものではないが、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（ＧＳＭ）ネットワーク）、１つ以上の上記の部分、上記のうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークを含む。
【００２７】
バックアップクラスタ２０２は、リコンシリエーションノード１２２Ａ及び１２２Ｎなどの１つ以上のリコンシリエーションノードを更に含んでもよい。リコンシリエーションノード１２２Ａ及び１２２Ｎのそれぞれは、複製データレコード２２６Ａ及び２２６Ｎ、更新された複製データレコード２２８Ａ及び２２８Ｎ、破棄された複製データレコード２３０Ａ及び２３０Ｎ、並びに更新されたデータレコード２３２Ａ及び２３２Ｎをそれぞれ更に含んでもよい。プロダクションクラスタ２０６は、データストレージノード２２２Ａ及び２２２Ｎなどの１つ以上のデータストレージノードを更に含んでもよい。データストレージノード２２２Ａ及び２２２Ｎのそれぞれは、データベース２２４のコピーを更に含み得る。データストレージノード２２２Ａ及び２２２Ｎに記憶されたデータベース２２４のコピーのそれぞれは、複製データレコード２２６Ａ及び２２６Ｎをそれぞれ含み得る。
【００２８】
多くの他のデバイス又はサブシステムは、図１のシステム１００及び／又は図２のシステム２００に接続され得る。逆に、図１及び図２に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図２に示すものとは異なる様式で相互接続されてもよい。システム１００及び２００はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び／又はコンピュータ制御論理とも称される）としてコード化され得る。
【００２９】
「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００３０】
図３は、リペアレスリストアのためのデータベースバックアップを実施するための例示的なコンピュータ実装方法３００のフローチャートである。図３に示されている工程は、図１のシステム１００、図２のシステム２００、及び／又はこれらのうちの１つ以上の変形若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。一例では、図３に示されている工程のそれぞれは、複数の副工程を含む及び／又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【００３１】
図３に示すように、工程３０２において、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信し得る。例えば、受信モジュール１０４は、図２のバックアップクラスタ２２２の一部として、リコンシリエーションノード１２２Ａ上で（プロダクションノード２０６内の）データストレージノード２２２Ａからの複製データレコード２２６Ａを受信し、リコンシリエーションノード１２２Ｎ上で（プロダクションノード２０６内の）データストレージノード２２２Ｎからの複製データレコード２２６Ｎを受信することができる。いくつかの例では、複製データレコード２２６Ａ及び２２６Ｎのそれぞれは、データストレージノード２２２Ａ及び２２２Ｎのそれぞれでデータベースキーを共有することができる。
【００３２】
受信モジュール１０４は、様々な方法で複製データレコード２２６Ａ及び２２６Ｎを受信することができる。一例では、受信モジュール１０４は、プロダクションクラスタ２０６上のデータストレージノード２２２Ａ及び２２２Ｎからデータベース２２４をバックアップするためのバックアップ操作中に、複製データレコード２２６Ａ及び２２６Ｎを受信してもよい。
【００３３】
図３の工程３０４において、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタ上で、プロダクションクラスタ上のデータストレージノード間のノード間通信なしに、複製データレコードを並行して処理してもよい。例えば、処理モジュール１０６は、バックアップクラスタ２０２の一部として、プロダクションクラスタ２０６上のデータストレージノード１２２Ａ及び１２２Ｎと通信することなく、複製データレコード２２６Ａ及び２２６Ｎを処理してもよい。処理モジュール１０６は、様々な方法で複製データレコード２２６Ａ及び２２６Ｎを処理してもよい。一例では、処理モジュール１０６は、バックアップクラスタ２０２内のリコンシリエーションノード１２２Ａ及び１２２Ｎ内でローカルに複製データレコード２２６Ａ及び２２６Ｎを処理してもよい。
【００３４】
図３の工程３０６では、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタ上で、更新を複製データレコードにマージすることができる。例えば、マージモジュール１０８は、バックアップクラスタ２０２の一部として、複製データレコード２２６Ａ及び２２６Ｎに更新をマージして、リコンシリエーションノード１２２Ａ及び１２２Ｎ上に更新された複製データレコード２２８Ａ及び２２８Ｎを作成することができる。
【００３５】
マージモジュール１０８は、様々な方法で更新を複製データレコード２２６Ａ及び２２６Ｎにマージすることができる。一例では、マージモジュール１０８は、複数の期間にわたって、作成された更新を複製データレコード２２６Ａ及び２２６Ｎ内の１つ以上のデータカラムにマージすることができる。例えば、マージモジュール１０８は、プロダクションクラスタ２０６と通信し、レコード合成操作を実施してもよく、レコード合成操作は、異なる時間に異なるカラムに更新をマージして、複製データレコード２２６Ａ及び２２６Ｎに関する完全なデータレコードを再作成する。再作成されたデータレコードは、更新された複製データレコード２２８Ａ及び２２８Ｎによって表されてもよい。
【００３６】
ここで図３に戻ると、工程３０８において、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタ上で、更新された複製データレコード内の無効データレコード又は冗長データレコードを識別することができる。例えば、識別モジュール１１０は、バックアップクラスタ２０２の一部として、更新された複製データレコード２２８Ａ及び２２８Ｎ内の無効データレコード又は冗長データレコードを識別することができる。
【００３７】
識別モジュール１１０は、様々な方法で、無効データレコード又は冗長データレコードを識別することができる。いくつかの例では、識別モジュール１１０は、工程３０６でマージ操作が実施された後の更新された複製データレコード２２８Ａ及び／又は２２８Ｎ内のデータレコードに関連付けられたタイムスタンプに基づいて、無効データレコード又は冗長レコードを識別することができる。一例では、異なるタイムスタンプを有する同一のデータレコードは、より古いデータレコードを無効とマークして識別することができる。別の例では、同じタイムスタンプを有する複数の同一のデータレコードは、データレコードのうちの１つ以外を冗長とマークして識別することができる。
【００３８】
図３の工程３１０では、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタ上で、工程３０８で識別された無効データレコード又は冗長データレコードを破棄することができる。例えば、破棄モジュール１１２は、バックアップクラスタ２０２の一部として、更新された複製データレコード２２８Ａ及び２２８Ｎから、無効データレコード又は冗長データレコード（例えば、破棄された複製データレコード２３０Ａ及び２３０Ｎ）を破棄することができる。破棄モジュール１１２は、様々な方法で、無効データレコード又は冗長データレコードを破棄することができる。一例では、破棄モジュール１１２は、無効及び／又は冗長と識別された破棄された複製データレコード２３０Ａ及び２３０Ｎを削除することができる。更新された複製データレコード２２８Ａ及び２２８Ｎからの無効データレコード及び／又は冗長データレコードの破棄に続いて、更新されたデータレコード２３２Ａ及び２３２Ｎの単一コピーが、リコンシリエーションノード１２２Ａ及び１２２Ｎのそれぞれに作成されてもよい。いくつかの例では、更新されたデータレコード２３２Ａ及び２３２Ｎは、プロダクションクラスタ２０６上のデータベース２２４の再作成を表し得る。
【００３９】
図３の工程３１２では、本明細書に記載されるシステムのうちの１つ以上は、バックアップクラスタから、更新されたデータレコードをプロダクションクラスタ上のデータストレージノードのそれぞれに複製することによって、更新されたデータレコードのコピーをプロダクションクラスタにリストアすることができる。例えば、リストアモジュール１１４は、バックアップクラスタ２０２の一部として、更新されたデータレコード２３２Ａ及び２３２Ｎを、データベース２２４のバックアップ後のリストア操作の一部として、プロダクションクラスタ２０６上のデータストレージノード２２２Ａ及び２２２Ｎに複製し戻すことができる。
【００４０】
リストアモジュール１１４は、更新されたデータレコード２３２Ａ及び２３２Ｎを、様々な方法でプロダクションクラスタ２０６上のデータストレージノード２２２Ａ及び２２２Ｎに複製し戻すことができる。一例では、リストアモジュール１１４は、更新されたデータレコード２３２Ａ及び２３２Ｎを、バックアップクラスタ２０２上のリコンシリエーションノード１２２Ａ及び１２２Ｎからそれぞれデータストレージノード２２２Ａ及び２２２Ｎにコピーすることができる。リストア動作に続いて、更新されたデータレコード２３２Ａ及び２３２Ｎのそれぞれは、プロダクションクラスタ２０６上の全ての複製にわたって整合している（例えば、リストア操作はリペアレスである）。結果として、プロダクションクラスタ２０６は、データベースリストア操作に続いてそれらを整合させるために、データベース内の全てのデータレコード及び複製データレコードをリコンサイルするのに必要とされなくなる。
【００４１】
図４は、リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムのデータフロー図４００である。図４に示すように、プロダクションクラスタ（例えば、図２のプロダクションクラスタ２０６）は、データストレージノード２１０Ａ、２１０Ｂ、２１０Ｃ、２１０Ｄ、２１０Ｅ、２１０Ｆ、及び２１０Ｎを含み得る。図４にも示されるように、バックアップクラスタ（例えば、図２のバックアップクラスタ２０２）は、リコンシリエーションノード１２２Ａ及び１２２Ｎを含み得る。
【００４２】
一例では、リコンシリエーションノード１２２Ａは、データストレージノード２１０Ａ〜２１０Ｎのそれぞれから複製データレコードを受信してもよく、リコンシリエーションノード１２２Ｎはまた、データストレージノード２１０Ａ〜２１０Ｎのそれぞれから複製データレコードを受信してもよい。この例では、プロダクションクラスタ内のデータストレージノード２１０Ａ〜２１０Ｎのそれぞれのデータレコードは、同じキーに関連付けられ、バックアップクラスタ内の単一のリコンシリエーションノード（例えば、リコンシリエーションノード１２２Ａ及び／又はリコンシリエーション１２２Ｎ）に転送されてもよい。転送の結果として、データリコンシリエーションは、任意のノード間通信なしに、リコンシリエーションノード１２２Ａ及び／又はリコンシリエーションノード１２２Ｎのそれぞれの内部で並行して生じ得る。この例では、リコンシリエーションノード１２２Ａ及び１２２Ｎはまた、データレコードにわたって反復しつつ、異なるデータベーステーブル（例えば、ソートされた文字列（ＳＳ）テーブル）から同じキーのカラムをマージすることによって、レコード合成を実施することができる。この例では、リコンシリエーションノード１２２Ａ及び１２２Ｎはまた、無効データレコード及び冗長データレコード（例えば、複製データ）を識別及び削除することによって、データ重複排除を実施することができる。
【００４３】
図５は、リペアレスリストアのためのデータベースバックアップを実施するための例示的なシステムで使用される複製データレコードのブロック図である。図５に示すように、複製データレコード５２４は、データカラム５２６及び更新されたデータカラム５２８を含み得る。いくつかの例では、データカラム５２６を、図２のマージモジュール１０８によって更新して、更新されたデータカラム５２８を作成することができる。
【００４４】
一例では、マージモジュール１０８は、複数の期間にわたって、作成された更新をプロダクションクラスタ２０６上のデータカラム５２６にマージすることができる。複数の期間は、図２に示すプロダクションクラスタ２０６内の１つ以上のデータストレージノード２２２Ａ及び／又は２２２Ｎに記憶された複製データレコード５２４内のデータカラム５２６のそれぞれに関連付けられたタイムスタンプによって識別することができる。
【００４５】
図１〜５に関連して上述したように、ＮｏＳＱＬデータベース管理システムクラスタ（例えば、バックアップクラスタ）のインスタンスを利用して、データベースバックアップ中にバックアップクラスタ内のストレージノード上のデータのリコンシリエーションを実施することができる。ＮｏＳＱＬデータベースプロダクションクラスタ内の複数のノードからの異なる複製データが、バックアップクラスタ内の同じノードにもたらされる。したがって、リコンシリエーションの間、バックアップクラスタは、バックアップクラスタ内のノード内で全てのデータをローカルに処理する。結果として、データベースデータは、ノード間通信なしにバックアップクラスタ上で並行して処理されてもよい。リコンシリエーションが実施される時点で、バックアップクラスタはまた、データベースの完全なレコードが再作成されるように、データベースレコード合成を実施して、データベースデータの異なるカラムへの更新を異なる時間にマージしてもよい。データレコードの合成を実施した後、バックアップクラスタは、次いで、無効複製データレコード又は冗長複製データレコードを識別し、これらの複製を破棄することができる。
【００４６】
データベースレコードの処理がバックアップクラスタ上で並行して実施されるリコンシリエーションを実施すること、及び更新をマージして無効データベースレコード又は冗長データベースレコードを除外することによって、バックアップクラスタは、ＮｏＳＱＬデータベース管理システムにおける複製に関して、データベース管理システムが整合性のために時間のかかるデータベースレコードをリコンサイルするリペアプロセスを受ける必要なしに、プロダクションクラスタにリストアし戻すための、データベースの単一の整合したコピーを生成することが可能であってもよく、したがってバックアップからのより迅速なリストア操作を潜在的にもたらすことができる。
【００４７】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、かつ／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例として見なされるべきである。
【００４８】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００４９】
種々の実施形態において、図１の例示的なシステム１００の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書において説明されるモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。
【００５０】
種々の実施形態によれば、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び／又はデータは、仮想マシン内に存在し得る、かつ／又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。
【００５１】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、かつ／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）管理などを含む、１つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、かつ／又はモバイルコンピューティング環境と相互作用し得る。
【００５２】
本明細書において説明及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び／又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び／又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの１つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００５３】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び／又は例解されているが、これらの例示的な実施形態のうちの１つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの１つ以上を実施するように、コンピューティングシステムを構成し得る。
【００５４】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、網羅的であることを意図するものでも、開示されたいずれかの正確な形態に限定されることを意図するものでもない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【００５５】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
2021513168.tif 000003
【図２】
2021513168.tif 000004
【図３】
2021513168.tif 000005
【図４】
2021513168.tif 000006
【図５】
2021513168.tif 000007
【手続補正書】
【提出日】令和2年8月11日(2020.8.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リペアレスリストアのためのデータベースバックアップを実施するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信することと、
前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理することと、
更新を前記複製データレコードにマージすることと、
前記更新された複製データレコード内の、無効データレコード又は冗長データレコードを識別することと、
前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成することと、
前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアすることであって、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、ことと、を含む、方法。
【請求項２】
前記データストレージノード間のノード間通信なしに前記複製データレコードを並行して処理することが、前記バックアップクラスタ内の複数の前記リコンシリエーションノードのそれぞれの内部でローカルに前記複製データレコードを処理することを含む、請求項１に記載の方法。
【請求項３】
更新を前記複製データレコードにマージすることが、複数の期間にわたって作成された前記複製データレコード内の１つ以上のデータカラムに更新をマージすることを含む、請求項１に記載の方法。
【請求項４】
前記更新されたデータレコードが、前記データベースの再作成を含む、請求項１に記載の方法。
【請求項５】
前記複製データレコードが、前記データストレージノードのそれぞれのデータベースキーを共有する、請求項１に記載の方法。
【請求項６】
前記プロダクションクラスタが、非リレーショナルデータベースクラスタを含む、請求項１に記載の方法。
【請求項７】
前記バックアップクラスタが、前記非リレーショナルデータベースクラスタのインスタンスを含む、請求項６に記載の方法。
【請求項８】
リペアレスリストアのためのデータベースバックアップを実施するためのシステムであって、前記システムは、
バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信する、受信するための手段と、
前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理する、処理するための手段と、
更新を前記複製データレコードにマージする、マージするための手段と、
前記更新された複製データレコード内の、無効データレコード又は冗長データレコードを識別する、識別するための手段と、
前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成する、破棄するための手段と、
前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアさせ、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、リストアするための手段と、
前記受信するための手段、前記処理するための手段、前記マージするための手段、前記識別するための手段、前記破棄するための手段、及び前記リストアするための手段を実行するように構成された少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記処理するための手段が、前記バックアップクラスタ内の複数の前記リコンシリエーションノードのそれぞれの内部でローカルに前記複製データレコードを処理することによって、前記データストレージノード間のノード間通信なしに前記複製データレコードを並行して処理する、請求項８に記載のシステム。
【請求項１０】
前記マージするための手段が、複数の期間にわたって作成された前記複製データレコード内の１つ以上のデータカラムに更新をマージすることによって、更新を前記複製データレコードにマージする、請求項８に記載のシステム。
【請求項１１】
前記更新されたデータレコードが、前記データベースの再作成を含む、請求項８に記載のシステム。
【請求項１２】
前記複製データレコードが、前記データストレージノードのそれぞれのデータベースキーを共有する、請求項８に記載のシステム。
【請求項１３】
前記プロダクションクラスタが、非リレーショナルデータベースクラスタを含む、請求項８に記載のシステム。
【請求項１４】
前記バックアップクラスタが、前記非リレーショナルデータベースクラスタのインスタンスを含む、請求項１３に記載のシステム。
【請求項１５】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
バックアップクラスタ内のリコンシリエーションノードによるデータベースバックアップ操作中に、単一キーの全ての複製が単一のノードによって受信されるように、プロダクションクラスタ内の複数のデータストレージノードのそれぞれからデータベースのコピーを表す複製データレコードを受信させ、
前記データストレージノード間のノード間通信なしに、前記複製データレコードを並行して処理させ、
更新を前記複製データレコードにマージさせ、
前記更新された複製データレコード内の、無効データレコード又は冗長データレコードを識別させ、
前記更新された複製データレコードから前記無効データレコード又は前記冗長データレコードを破棄して、更新されたデータレコードの単一コピーを作成させ、
前記更新されたデータレコードを前記データストレージノードのそれぞれに複製することによって、前記更新されたデータレコードの前記コピーを前記プロダクションクラスタにリストアさせ、前記更新されたデータレコードのそれぞれが整合し、それによって後続のリペアを不要にする、非一過性コンピュータ可読媒体。
【国際調査報告】
2021513168.tif 000008
2021513168.tif 000009