(57)【特許請求の範囲】
【請求項１】
ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能であるデータ・コピーの方法であって、
前記デスティネーション・サーバにより、データ・ブロック識別、バージョン情報、及びホール情報を取得するステップであって、前記デスティネーション・サーバにより、データ・コピー要求を取得するステップを含み、前記データ・コピー要求は、前記データ・ブロック識別、前記バージョン情報、前記ホール情報、及びデータ・コピー開始バージョン番号を含み、前記バージョン情報は、データ・コピー終了バージョン番号を含む、ステップと、
前記データ・ブロック識別に対応するデータ・ブロックの前記データ・コピー終了バージョン番号が前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号より大きいと判定することに、及び前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号が前記デスティネーション・サーバにおいて前記データ・ブロック識別に対応する前記データ・ブロックの現在のバージョン番号と同一であると判定することに応答して、
前記ソース・サーバが前記データ・ブロック識別、前記バージョン情報、前記ホール情報に応じて対応するデータを探索するように、前記デスティネーション・サーバにより、前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を前記ソース・サーバへ送信するステップと、
前記データを搬送する、前記ソース・サーバにより送信される応答メッセージを前記デスティネーション・サーバにより受信し、前記応答メッセージに応じて前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に対応するホールへ前記データをコピーするするステップと
を備えることを特徴とする方法。
【請求項２】
前記応答メッセージは、前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの現在のバージョン番号を含み、
前記方法は、
前記デスティネーション・サーバにおける、前記データ・ブロックの前記現在のバージョン番号が、前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの前記現在のバージョン番号より大きい、またはこれに等しいと判定することに応答して、前記デスティネーション・サーバにより、前記デスティネーション・サーバにおける、前記データ・ブロックの前記現在のバージョン番号を、前記データ・ブロックの最新のバージョン番号に更新するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を取得した後に、
前記デスティネーション・サーバにより、前記データが前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に応じてコピーされるホールを決定するステップと、
前記ホールに重複するデータ・コピー要求をみつけた後に、重複するホールを１つの新規のホールにマージするステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記応答メッセージに応じて前記ホール情報に対応する前記ホールへ前記データをコピーした後に、前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を削除するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記ホール情報は、データ・オフセット位置、及びデータ・オフセット長を有することを特徴とする請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能であるデータ更新の方法であって、
前記デスティネーション・サーバにより、データ・ブロック識別、バージョン情報、及びホール情報を取得するステップであって、前記デスティネーション・サーバにより、データ・コピー要求を取得するステップを含み、前記データ・コピー要求は、前記データ・ブロック識別、前記バージョン情報、前記ホール情報、及びデータ・コピー開始バージョン番号を含み、前記バージョン情報は、データ・コピー終了バージョン番号を含む、ステップと、
前記データ・ブロック識別に対応するデータ・ブロックの前記データ・コピー終了バージョン番号が前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号より大きいと判定することに、及び前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号が前記デスティネーション・サーバにおいて前記データ・ブロック識別に対応する前記データ・ブロックの現在のバージョン番号と同一であると判定することに応答して、
前記ソース・サーバが前記データ・ブロック識別、前記バージョン情報、前記ホール情報に応じて対応するデータを探索するように、前記デスティネーション・サーバにより、前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を前記ソース・サーバへ送信するステップと、
前記デスティネーション・サーバにより送信される前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を前記ソース・サーバにより受信するステップと、
前記ソース・サーバにおける、前記データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号が、前記バージョン情報より大きい、またはこれに等しいと判定することに応答して、前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に応じて前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に対応するデータを前記ソース・サーバにより決定するステップと、
前記データを搬送する応答メッセージを前記デスティネーション・サーバへ前記ソース・サーバにより送信し、前記デスティネーション・サーバは前記応答メッセージに応じて前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に対応するホールへ前記データをコピーするステップと
を備えることを特徴とする方法。
【請求項７】
前記応答メッセージが前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの前記現在のバージョン番号を含むことによって、前記デスティネーション・サーバは、前記デスティネーション・サーバにおける、前記データ・ブロックの現在のバージョン番号が、前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの前記現在のバージョン番号より大きい、またはこれに等しいと判定すると、前記デスティネーション・サーバにおける、前記データ・ブロックの前記現在のバージョン番号を、前記データ・ブロックの最新のバージョン番号に更新する、請求項６に記載の方法。
【請求項８】
前記ホール情報は、データ・オフセット位置、及びデータ・オフセット長を有することを特徴とする請求項６または７に記載の方法。
【請求項９】
ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用できる、デスティネーション・サーバであって、
データ・ブロック識別、バージョン情報、及びホール情報を取得する取得モジュールであって、データ・コピー要求を取得し、前記データ・コピー要求は、前記データ・ブロック識別、前記バージョン情報、前記ホール情報、及びデータ・コピー開始バージョン番号を含み、前記バージョン情報は、データ・コピー終了バージョン番号を含む、取得モジュールと、
前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー終了バージョン番号が前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号より大きいと判定し、かつ前記データ・ブロック識別に対応する前記データ・ブロックの前記データ・コピー開始バージョン番号が、前記デスティネーション・サーバにおける、前記データ・ブロック識別に対応する前記データ・ブロックの現在のバージョン番号と同一であると判定することに応答して、
ソース・サーバが前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に応じて対応するデータを探索するように、前記ソース・サーバへ前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を送信する送信モジュールと、
前記データを搬送する、前記ソース・サーバにより送信される応答メッセージを受信し、前記応答メッセージに応じて前記データ・ブロック識別に対応するデータ・ブロックへ前記データをコピーするコピー・モジュールと
を備えたことを特徴とするデスティネーション・サーバ。
【請求項１０】
前記応答メッセージは、前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの現在のバージョン番号を含み、
前記コピー・モジュールは、前記デスティネーション・サーバにおける、前記データ・ブロックの前記現在のバージョン番号が、前記ソース・サーバにおける、前記データに対応する前記データ・ブロックの前記現在のバージョン番号より大きい、またはこれに等しいと判定すると、前記デスティネーション・サーバにおける、前記データ・ブロックの前記現在のバージョン番号を、前記データ・ブロックの最新のバージョン番号に更新することを特徴とする請求項９に記載のデスティネーション・サーバ。
【請求項１１】
前記取得モジュールは、前記データが前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報に応じてコピーされるホールを決定し、前記ホールに重複するデータ・コピー要求をみつけた後に重複するホールを１つの新規のホールにマージすることを特徴とする請求項９に記載のデスティネーション・サーバ。
【請求項１２】
前記コピー・モジュールは、前記データ・ブロック識別、前記バージョン情報、及び前記ホール情報を削除することを特徴とする請求項９に記載のデスティネーション・サーバ。
【請求項１３】
前記ホール情報は、データ・オフセット位置、及びデータ・オフセット長を有することを特徴とする請求項９ないし１２のいずれか一項に記載のデスティネーション・サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信分野に関し、さらに特に、分散ストレージ・システムに適用可能であるデータ・コピー方法及びデバイスに関する。
【背景技術】
【０００２】
背景
分散ストレージ・システムにおいては、データ・ブロックを複数のコピーで格納する。データ・ブロックの各更新は、複数のコピー間で一貫性を必要とする。コピーの数が少なくなっている、またはこれらのコピーのうちに特定のバージョンについて更新されたデータが不足しているものがある場合に、他のコピーからのデータ・コピーを行う必要がある。
【０００３】
現在、従来技術下でのデータ・コピーの前提条件は、ソース・サーバまたはデスティネーション・サーバがローカルにコピーされるローカル・データのバージョン、及びピアによりコピーされ維持されるデータのバージョンに基づきデータ増分または差分を計算することと、ピアからデータ増分または差分を取得することが可能である必要があることである。
【０００４】
ランダムな読み出し及び書き込みをサポートする分散ストレージ・システムに関して、従来技術は、ソース・サーバからデスティネーション・サーバへデータをプッシュする。ソース・サーバは、特に、データ更新速度がデータ・コピー速度より速い場合にコピーされたデータ量を増加させる、デスティネーション・サーバへ既存のブロック・データをプッシュする必要があり、また、予め設定されたデータ・コピー時間中にデータ・コピー・プロセスを完了することができない原因となる可能性がある。
【０００５】
本開示の実施態様において、出願人は、分散ストレージ・システムに関して、従来技術が以下の問題を有することがわかる。従来技術は、バージョン番号間の差に基づきデータ増分または差分を直接計算することができず、データの全コピーのみを行うことが可能であるため、コピーされるデータ量、及びコピー時間を増加させる。
【発明の概要】
【０００６】
概要
本開示は、ランダム・アクセスをサポートする分散ストレージ・システムにおけるデータ・コピーを実現するデータ・コピー方法及びデバイスを提供する。
【０００７】
上記の目的を達成するために、本開示は、少なくとも以下のステップを含む、データ・コピー方法を提供する。
【０００８】
デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得する。
【０００９】
デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータをみつけることができる。
【００１０】
デスティネーション・サーバは、データを搬送する応答メッセージをソース・サーバから受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。
【００１１】
デスティネーション・サーバは、つぎのものを含む、データ・ブロック識別、バージョン情報、及びホール情報を取得する。
【００１２】
デスティネーション・サーバは、データ・コピー要求を取得する。データ・コピー要求は、データ・ブロック識別、バージョン情報、及びホール情報を含む。
【００１３】
また、データ・コピー要求は、データ・コピー開始バージョン番号を含む。
【００１４】
バージョン情報は、データ・コピー終了バージョン番号を含む。
【００１５】
デスティネーション・サーバがデータ・ブロック識別、バージョン情報、及びホール情報を取得した後に、また方法は、以下の操作を含む。
【００１６】
デスティネーション・サーバは、データ・ブロック識別に対応するデータ・ブロックのデータ・コピー終了バージョン番号がデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号より大きいと判定し、かつデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号が、デスティネーション・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号と同一であると判定した後に、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信するステップを実行する。
【００１７】
応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含む。
【００１８】
デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいとデスティネーション・サーバが判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００１９】
デスティネーション・サーバがデータ・ブロック識別、バージョン情報、及びホール情報を取得した後に、また方法は、以下の操作を含む。
【００２０】
デスティネーション・サーバは、データがデータ・ブロック識別、バージョン情報、及びホール情報によりコピーされるホールを決定し、ホールに重複するデータ・コピー要求をみつけた後に重複するホールを１つの新規のホールにマージする。
【００２１】
応答メッセージに応じてホール情報に対応するホールへデータをコピーした後に、方法は、以下のことをさらに備える。
【００２２】
デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を削除する。
【００２３】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を有することができる。
【００２４】
また本開示は、ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能である、データ更新方法を提供する。
【００２５】
ソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報をデスティネーション・サーバから受信する。
【００２６】
ソース・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号が、バージョン情報より大きい、またはこれに等しいと判定すると、ソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するデータを決定する。
【００２７】
ソース・サーバは、データを搬送する応答メッセージをデスティネーション・サーバへ送信し、これによってデスティネーション・サーバは、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。
【００２８】
また応答メッセージがソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含むことによって、デスティネーション・サーバは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号がソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００２９】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を有することができる。
【００３０】
また本開示は、ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能であるデスティネーション・サーバを提供する。デスティネーション・サーバは、
データ・ブロック識別、バージョン情報、及びホール情報を取得する取得モジュールと、
ソース・サーバがデータ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索するように、ソース・サーバへデータ・ブロック識別、バージョン情報、及びホール情報を送信する送信モジュールと、
データを搬送する応答メッセージをソース・サーバから受信し、応答メッセージに応じてデータ・ブロック識別に対応するデータ・ブロックへデータをコピーするコピー・モジュールと、
を備える。
【００３１】
取得モジュールは、データ・コピー要求を取得する。データ・コピー要求は、データ・ブロック識別、バージョン情報、及びホール情報を含む。
【００３２】
またデータ・コピー要求は、データ・コピー開始バージョン番号を有する。
【００３３】
バージョン情報は、データ・コピー終了バージョン番号を有する。
【００３４】
さらに送信モジュールは、データ・ブロック識別に対応するデータ・ブロックのデータ・コピー終了バージョン番号がデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号より大きいと判定し、かつデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号が、デスティネーション・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号と同一であると判定した後に、ソース・サーバへデータ・ブロック識別、バージョン情報、及びホール情報を送信する。
【００３５】
応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を有する。
【００３６】
コピー・モジュールは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００３７】
デスティネーション・サーバは、データがデータ・ブロック識別、バージョン情報、及びホール情報に応じてコピーされるホールを決定し、ホールに重複するデータ・コピー要求をみつけた後に重複するホールを１つの新規のホールにマージする。
【００３８】
さらにデスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を削除する。
【００３９】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を含むことができる。
【００４０】
また本開示は、ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能であるソース・サーバを提供する。このソース・サーバは、
データ・ブロック識別、バージョン情報、及びホール情報をデスティネーション・サーバから受信する受信モジュールと、
ソース・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号が、バージョン情報より大きい、またはこれに等しいと判定すると、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するデータを取得する取得モジュールと、
データを搬送する応答メッセージをデスティネーション・サーバへ送信し、これによってデスティネーション・サーバがこの応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーするようにする送信モジュールと、
を備える。
【００４１】
また応答メッセージがソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含むことによって、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００４２】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を有することができる。
【００４３】
従来技術と比較して、本開示の例示的な実施形態は、以下の有利な技術効果を有する。
【００４４】
本開示の例示的な実施形態において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得し、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。デスティネーション・サーバは、データを搬送する、ソース・サーバにより送信される応答メッセージを受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。したがって、本開示の技術は、ランダム・アクセスのモード下でホールについてのデータのみをコピーし、全データをコピーする必要がない。本開示の技術は、データ・コピー量、及びデータ・コピー時間を削減し、データ・コピー効率を向上させる。
【図面の簡単な説明】
【００４５】
【図１】本開示の例示的な実施形態によるデータ・コピー方法のフローチャートである。
【図２】本開示の例示的な実施形態による重複するホールを統合する図である。
【図３】本開示の例示的な実施形態による別のデータ・コピー方法のフローチャートである。
【図４】本開示の例示的な実施形態によるデスティネーション・サーバの図である。
【図５】本開示の例示的な実施形態によるソース・サーバの図である。
【発明を実施するための形態】
【００４６】
詳細な説明
本開示の技術的な解決策は、本開示の例示的な実施形態の図面を参照することで、明確かつ完全に記述される。明らかに、本明細書に記述される例示的な実施形態は、本開示のすべての実施形態の代替のいくつかの実施形態に過ぎない。本開示の例示的な実施形態に基づき創造的な努力なしで当業者により得られる任意の他の実施形態は、本開示の保護範囲に属するものとする。
【００４７】
図１は、ソース・サーバ、及びデスティネーション・サーバの両方を含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能である、本開示の第一の例示的な実施形態によるデータ・コピー方法のフローチャートである。以下は、デスティネーション・サーバの観点からデータ・コピー方法を記述する。
【００４８】
この方法は、以下のステップを含む。
【００４９】
ステップＳ１０１において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得する。
【００５０】
データ・コピーを開始するときに、デスティネーション・サーバは、データ・コピー開始を求める端末により開始されるデータ・コピー要求を取得する。このデータ・コピー要求は、データ・ブロック識別、バージョン情報、ホール情報、及びデータ・ブロック・コピー開始バージョン番号を含む。バージョン情報は、データ・コピー終了バージョン番号を含む。
【００５１】
データ・ブロック識別、バージョン情報、及びホール情報を取得した後に、デスティネーション・サーバは、データ・ブロック識別に対応するデータ・ブロックのデータ・コピー終了バージョン番号がデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号より大きいかどうか、及びデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号が、デスティネーション・サーバにおけるデータ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号と同一であるかどうかを判定する。デスティネーション・サーバがデータ・ブロック識別に対応する情報を含まない場合に、デスティネーション・サーバはデータ・ブロック識別に対応するデータ・ブロックを含まないと判定され、データブロックの全体がコピーされることに留意する。
【００５２】
判定結果が肯定である場合に、データ・ブロック識別、バージョン番号、及びホール情報は、有効であり、以下のステップが引き続き実行される。
【００５３】
判定結果が否定である場合に、データ・ブロック識別、バージョン番号、及びホール情報は、無効であり、処理されない、または削除される。
【００５４】
さらに、ホール情報は、データ・オフセット位置、及びデータ・オフセット長を有する。デスティネーション・サーバは、データがデータ・ブロック識別、バージョン情報、及びホール情報に応じてコピーされるホールを決定し、ホールに重複するデータ・コピー要求をみつけた後に重複するホールを１つの新規のホールにマージする。
【００５５】
データ・コピー要求を取得した後に、デスティネーション・サーバは、データ・コピー要求内に含まれる、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータがコピーされるホールを決定する。デスティネーション・サーバは、ホールと重複するデータ・コピー要求があるかどうかを問い合わせる。すなわち、デスティネーション・サーバは、データ・ブロック識別がデータ・コピー要求内のものと同一であり、バージョン番号がデータ・コピー要求内のバージョン番号より小さく、ホール情報のデータ・オフセット位置、及びデータ・オフセット長がデータ・コピー要求内のホール情報のこれらと重複する、別のデータ・コピー要求があるかどうかを問い合わせる。そこに存在する場合に、重複するホールを１つのホールに統合する。すなわち、同一であるデータ・ブロック識別、バージョン情報、及びホール情報を含む重複するデータ・ブロックは、同一のデータ・ブロック識別、バージョン情報、及びホール情報を含む１つのホールにマージされる。マージされたホールのバージョン情報が最新のデータ・コピー要求のバージョン情報に対応するバージョン番号であることに留意する。
【００５６】
具体的に、図２で示されるように、部分的なカバレッジ、中間のカバレッジ、及び完全なカバレッジを有する１つのホールに、重複するホールをマージする。データがコピーされるホールは、データ・オフセット位置、及びデータ・オフセット長に応じて決定されることができる。デスティネーション・サーバがデータ・ブロック識別１、バージョン情報１６、及び対応するホール情報に応じて決定されるホールＶ２を取得すると、データ・ブロック識別１、バージョン情報、及び対応するホール情報に応じて決定されるホールＶ１があり、Ｖ２及びＶ１が重複することを見出し、Ｖ２及びＶ１を１つのホールに統合する。マージされたホールに対応するホール情報をホールＶ２に対応するホール情報へ更新する。すなわち、マージされたホールを新規に受信したデータ・コピー要求内で要求されるホールへ更新する。
【００５７】
具体的に、図２で示されるように、バージョン情報１６に対応するホールがバージョン情報１３に対応するホールより新しい場合に、Ｖ２及びＶ１は、１つのホールにマージされ、すなわち、Ｖ２は、Ｖ１と交差し、図２において示されるように３つのマージ方法を有する。
【００５８】
ステップＳ１０２において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。
【００５９】
デスティネーション・サーバがソース・サーバへデータ・ブロック識別、バージョン情報、及びホール情報を送信した後に、ソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータ・ブロック識別に対応するデータ・ブロックのバージョン情報に対応するバージョン下でホール情報に対応するデータを探索する。
【００６０】
ステップＳ１０３において、デスティネーション・サーバは、データを搬送する応答メッセージをソース・サーバから受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。
【００６１】
デスティネーション・サーバは、データを搬送する応答メッセージをソース・サーバから受信する。応答メッセージは、データ・ブロック識別、バージョン情報、ホール情報、及びデータを含む。デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じてホール情報に対応するホールへデータをコピーする。
【００６２】
データを応答メッセージに応じてホール情報に対応するホールへコピーした後に、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を削除する。
【００６３】
また応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を有する。デスティネーション・サーバは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００６４】
具体的に、また応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含む。たとえば、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号が１７であり、デスティネーション・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号が１８である場合に、データ・ブロックのバージョン番号は１８であり、このデータ・コピー・プロセスを完了する。デスティネーション・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号が１６である場合に、データ・コピー要求を受信し、要求が有効であると判定した後に、データ・コピー要求内に含まれるデータ・ブロック識別、バージョン情報、及びホール情報は、ソース・サーバへ送信される必要がある。
【００６５】
本開示の例示的な実施形態において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得し、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。デスティネーション・サーバは、データを搬送する、ソース・サーバにより送信される応答メッセージを受信し、この応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。したがって、本開示の技術は、ランダム・アクセスのモード下でホールについてのデータのみをコピーし、全データをコピーする必要がない。本開示の技術は、データ・コピー量、及びデータ・コピー時間を削減し、データ・コピー効率を向上させる。
【００６６】
図３は、ソース・サーバ、及びデスティネーション・サーバの両方を含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能である、本開示の第二の例示的な実施形態による別のデータ・コピー方法のフローチャートである。以下は、ソース・サーバの観点からデータ・コピー方法を記述する。
【００６７】
この方法は、以下のステップを含む。
【００６８】
ステップＳ３０１において、ソース・サーバは、デスティネーション・サーバにより送信される、データ・ブロック識別、バージョン情報、及びホール情報を受信する。
【００６９】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を含む。
【００７０】
ステップＳ３０２において、ソース・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号がバージョン情報より大きい、またはこれに等しいと判定すると、ソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するデータを決定する。
【００７１】
ソース・サーバは、ソース・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号が、バージョン情報より大きい、またはこれに等しいかどうかを判定する。判定結果が肯定である場合に、ソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に対応するデータを探索し、デスティネーション・サーバに送信される応答メッセージでデータを搬送する。判定結果が否定である場合に、ソース・サーバにおいてコピーされるデータがなく、失敗応答メッセージをデスティネーション・サーバへ送信する。
【００７２】
また応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含む。デスティネーション・サーバは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００７３】
本開示の例示的な実施形態において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得し、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。デスティネーション・サーバは、データを搬送する、ソース・サーバにより送信される応答メッセージを受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。したがって、本開示の技術は、ランダム・アクセスのモード下でホールについてのデータのみをコピーし、全データをコピーする必要がない。本開示の技術は、データ・コピー量、及びデータ・コピー時間を削減し、データ・コピー効率を向上させる。
【００７４】
第一の例示的な実施形態における同一の原理に基づき、また本開示は、ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能である、本開示の第三の例示的な実施形態によりデスティネーション・サーバを提供する。図４において示されるように、デスティネーション・サーバは、
データ・ブロック識別、バージョン情報、及びホール情報を取得する取得モジュール４１と、
ソース・サーバがデータ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索するように、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信する送信モジュール４２と、
データを搬送する応答メッセージをソース・サーバから受信し、応答メッセージに応じてデータ・ブロック識別に対応するデータ・ブロックへデータをコピーするコピー・モジュール４３と、
を備える。
【００７５】
取得モジュールは、データ・コピー要求を取得する。データ・コピー要求は、データ・ブロック識別、バージョン情報を含む。
【００７６】
またデータ・コピー要求は、データ・コピー開始バージョン番号を含む。
【００７７】
バージョン情報は、具体的にデータ・コピー終了バージョン番号を含む。
【００７８】
データ・ブロック識別に対応するデータ・ブロックのデータ・コピー終了バージョン番号がデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号より大きいと判定し、かつデータ・ブロック識別に対応するデータ・ブロックのデータ・コピー開始バージョン番号が、デスティネーション・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号と同一であると判定した後に、さらに送信モジュールは、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信する。
【００７９】
また応答メッセージは、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含む。
【００８０】
コピー・モジュールは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。
【００８１】
さらに取得モジュールは、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータがコピーされるホールを決定し、ホールに重複するデータ・コピー要求をみつけた後に重複するホールを１つの新規のホールにマージする。
【００８２】
さらにコピー・モジュールは、データ・ブロック識別、バージョン情報、及びホール情報を削除する。
【００８３】
ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を有する。
【００８４】
本開示の例示的な実施形態において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得し、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。デスティネーション・サーバは、データを搬送する、ソース・サーバにより送信される応答メッセージを受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。したがって、本開示の技術は、ランダム・アクセスのモード下でホールについてのデータのみをコピーし、全データをコピーする必要がない。本開示の技術は、データ・コピー量、及びデータ・コピー時間を削減し、データ・コピー効率を向上させる。
【００８５】
第二の例示的な実施形態における同一の原理に基づき、また本開示は、ソース・サーバ、及びデスティネーション・サーバを含むランダム・アクセスをサポートする分散ストレージ・システムに適用可能である、本開示の第三の例示的な実施形態によるデスティネーション・サーバを提供する。図５において示されるように、ソース・サーバは、
データ・ブロック識別、バージョン情報、及びホール情報をデスティネーション・サーバから受信する受信モジュール５１と、
ソース・サーバにおける、データ・ブロック識別に対応するデータ・ブロックの現在のバージョン番号が、バージョン情報より大きい、またはこれに等しいと判定すると、データ・ブロック識別、バージョン情報、及びホール情報に応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するデータを取得する取得モジュール５２と、
データを搬送する応答メッセージをデスティネーション・サーバへ送信し、これによってデスティネーション・サーバが応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーするようにする送信モジュール５３と、
を備える。
【００８６】
また応答メッセージがソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号を含むことによって、ソース・サーバは、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号が、ソース・サーバにおける、データに対応するデータ・ブロックの現在のバージョン番号より大きい、またはこれに等しいと判定すると、デスティネーション・サーバにおける、データ・ブロックの現在のバージョン番号を、データ・ブロックの最新のバージョン番号に更新する。ホール情報は、具体的にデータ・オフセット位置、及びデータ・オフセット長を有する。
【００８７】
本開示の例示的な実施形態において、デスティネーション・サーバは、データ・ブロック識別、バージョン情報、及びホール情報を取得し、データ・ブロック識別、バージョン情報、及びホール情報をソース・サーバへ送信し、これによってソース・サーバは、データ・ブロック識別、バージョン情報、及びホール情報に応じて対応するデータを探索する。デスティネーション・サーバは、データを搬送する、ソース・サーバにより送信される応答メッセージを受信し、応答メッセージに応じてデータ・ブロック識別、バージョン情報、及びホール情報に対応するホールへデータをコピーする。したがって、本開示の技術は、ランダム・アクセスのモード下でホールについてのデータのみをコピーし、全データをコピーする必要がない。本開示の技術は、データ・コピー量、及びデータ・コピー時間を削減し、データ・コピー効率を向上させる。
【００８８】
上記の実施形態の説明に基づき、ハードウェアにより、またはソフトウェアと必要な汎用ハードウェア・プラットフォームにより本開示を実施することができることは、当業者に明らかであろう。この理解に基づき、本開示の技術的な解決策は、本開示のさまざまな実施態様状況において記述される方法をコンピューティング・デバイス（パーソナル・コンピュータ、サーバ、またはネットワーク・デバイスなど）が実行することを可能にするコンピュータ可読インストラクションを格納する、不揮発性ストレージ・メディア（ＣＤ−ＲＯＭ、Ｕディスク、モバイル・ハードディスクなどであることができる）内に格納されることができる、ソフトウェア製品の形態で具現化されることができる。
【００８９】
図面が好ましい実施形態の概略図に過ぎないこと、及び図面内のモジュールまたはプロセスが本開示を実施するために必要ではないことを、当業者は理解するであろう。
【００９０】
実施態様状況において装置内のモジュールが実施態様状況の説明に従い実施態様状況において分散される装置に配置されることができる、または本実施態様と異なる１つ以上の装置内に対応して変更されることができることを、当業者は理解するであろう。上記の状況のモジュールは、１つのモジュールにマージされる、またはさらに複数のサブモジュールに分割されることができる。
【００９１】
上記で言及された本開示のシリアル番号は、説明のために過ぎず、実施態様状況の真価を表現しない。
【００９２】
上記の説明は、本開示のいくつかの特定の実施形態に過ぎない。しかしながら、本開示は、本明細書に記述される実施形態により制限されない。当業者に見出される任意の他の変更形態は、本開示の範囲内に入る。
【図１】
0006700308.tif 000002
【図２】
0006700308.tif 000003
【図３】
0006700308.tif 000004
【図４】
0006700308.tif 000005
【図５】
0006700308.tif 000006