(57)【要約】      （修正有）【課題】Ｒａｆｔプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体を提供する。【解決手段】方法は、第１のノードと第２のノードとを含む各レプリカグループに対応する処理対象ノードに対して、クリーンアップ対象レプリカを決定するステップと、各レプリカグループに対応する処理対象ノードに対して、レプリカグループの第１のノードによって記憶されるプライマリレプリカと第２のノードによって記憶されるセカンダリレプリカとを含む、レプリカグループのレプリカ構成情報を取得するステップと、各レプリカグループに対応する処理対象ノードに対して、対応するレプリカ構成情報に、対応するクリーンアップ対象レプリカが含まれているか否かを判断し、含まれていなければ、対応するクリーンアップ対象レプリカを削除するステップと、を含む。【選択図】図１
2020184325.tif 000002
【特許請求の範囲】
【請求項１】
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該レプリカグループが、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含むステップと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含むステップと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、
を含むＲａｆｔプロトコルに基づくレプリカ処理方法。
【請求項２】
前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップが、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信するステップと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信するステップと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカであるステップと、
を含む請求項１に記載のレプリカ処理方法。
【請求項３】
前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップが、
各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにするステップを含む請求項１に記載のレプリカ処理方法。
【請求項４】
前記レプリカ構成情報取得要求が、空ログを含み、
各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするステップが、
当該レプリカグループの第１のノードが前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信するステップと、
当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードが前記レプリカ構成情報をリターンするステップであって、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上であるステップと、
を含む請求項３に記載のレプリカ処理方法。
【請求項５】
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するための決定モジュールであって、当該レプリカグループが、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含む決定モジュールと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するための取得モジュールであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含む取得モジュールと、
各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断するための判断モジュールと、
各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するためのクリーンアップモジュールと、
を含むレプリカ処理ノード。
【請求項６】
前記決定モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカである請求項５に記載のレプリカ処理ノード。
【請求項７】
前記取得モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする請求項５に記載のレプリカ処理ノード。
【請求項８】
前記レプリカ構成情報取得要求が、空ログを含み、
各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることが、
当該レプリカグループの第１のノードが前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信し、
当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードが前記取得モジュールに前記レプリカ構成情報をリターンすることを含み、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上である請求項７に記載のレプリカ処理ノード。
【請求項９】
メタデータサーバと、少なくとも一つのレプリカグループと、レプリカ処理ノードとを含み、各前記レプリカグループが、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含み、
各レプリカグループに対応する処理対象ノードに対して、ガーベッジクリーニングがトリガされた後、前記レプリカ処理ノードが、
当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップと、
当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含むステップと、
当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、
を実行する分散ストレージシステム。
【請求項１０】
前記レプリカ処理ノードが、具体的には、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信し、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信し、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカである請求項９に記載の分散ストレージシステム。
【請求項１１】
前記レプリカ処理ノードが、具体的には、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノードに対応するレプリカグループの第１のノードにレプリカ構成情報取得要求を送信し、
当該処理対象ノードに対応するレプリカグループの第１のノードが、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノードに前記レプリカ構成情報をリターンする請求項９に記載の分散ストレージシステム。
【請求項１２】
前記レプリカ構成情報取得要求が、空ログを含み、
当該処理対象ノードに対応するレプリカグループの第１のノードが、具体的には、
前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信し、
少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノードに前記レプリカ構成情報をリターンし、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上である請求項１１に記載の分散ストレージシステム。
【請求項１３】
前記分散ストレージシステムは、分散型コンセンサスプロトコルＲａｆｔに基づく分散ストレージシステムである請求項９から１２のいずれか一項に記載の分散ストレージシステム。
【請求項１４】
各レプリカグループに対応する処理対象ノードに対して、前記レプリカ処理ノードが当該処理対象ノードである請求項９から１２のいずれか一項に記載の分散ストレージシステム。
【請求項１５】
一又は複数のプロセッサと、
一又は複数のプログラムが記憶されている記憶装置と、を備え、
前記一又は複数のプログラムが前記一又は複数のプロセッサにより実行される場合に、前記一又は複数のプロセッサが、請求項１から４のいずれか一項に記載のレプリカ処理方法を実現するサーバ。
【請求項１６】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記プログラムが実行される場合に、請求項１から４のいずれか一項に記載のレプリカ処理方法を実現するコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施例は、通信の分野に関し、特に、Ｒａｆｔプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
ガーベッジクリーニングは、分散ブロックストレージシステム設計における重要な内容であり、従来のガーベッジクリーニング方法は、通常、データストレージノード（ＢｌｏｃｋＳｅｒｖｅｒ）がメタデータサーバ（Ｍａｓｔｅｒ）に、当該データストレージノードにどのレプリカ（Ｒｅｐｌｉｃａ）が含まれているかを問い合わせし、その後、これらのレプリカ情報に基づいて、Ｍａｓｔｅｒにないが、ＢｌｏｃｋＳｅｒｖｅｒにあるレプリカをクリーンアップする。このような単純にＭａｓｔｅｒを信頼する実現方法は、一定の問題が存在し、例えば、Ｍａｓｔｅｒのソフトウェアは、Ｂｕｇが存在し、ディスクに故障が発生し、Ｍａｓｔｅｒのメタデータが破壊される可能性もある。これらの場合では、いずれもＭａｓｔｅｒのレプリカメタデータにエラーが発生することに至る可能性があり、Ｍａｓｔｅｒに記憶されているレプリカメタデータとＢｌｏｃｋＳｅｒｖｅｒ上のレプリカ情報が一致しなくなるため、ＢｌｏｃｋＳｅｒｖｅｒがローカルレプリカデータを誤削除することがある。最後に当該データストレージノードに属するレプリカグループのうちの残りのレプリカ数が全体のレプリカ数の半分より小さい場合、レプリカグループが利用できなくなり、さらにデータが紛失されることになる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本開示の実施例は、Ｒａｆｔプロトコルに基づくレプリカ処理方法及びレプリカ処理ノード、分散ストレージシステム、サーバ、コンピュータ読み取り可能な記憶媒体を提供する。
【課題を解決するための手段】
【０００４】
第１の側面において、本開示の実施例は、Ｒａｆｔプロトコルに基づくレプリカ処理方法を提供し、当該レプリカ処理方法は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該レプリカグループが、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含むステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含むステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、を含む。
【０００５】
いくつかの実施例では、前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップが、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信するステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信するステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが、前記第１のレプリカリストにはないレプリカであるステップと、を含む。
【０００６】
いくつかの実施例では、前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップが、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにするステップを含む。
【０００７】
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするステップが、
当該レプリカグループの第１のノードが前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信するステップと、当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードが前記レプリカ構成情報をリターンするステップであって、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上であるステップと、を含む。
【０００８】
第２の側面において、本開示の実施例は、レプリカ処理ノードを提供し、前記レプリカ処理ノードは、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するための決定モジュールであって、当該レプリカグループが、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含む決定モジュールと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するための取得モジュールであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含む取得モジュールと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断するための判断モジュールと、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するためのクリーンアップモジュールと、を含む。
【０００９】
いくつかの実施例では、前記決定モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するように構成され、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカである。
【００１０】
いくつかの実施例では、前記取得モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする。
【００１１】
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることが、当該レプリカグループの第１のノードが前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信し、当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードが前記取得モジュールに前記レプリカ構成情報をリターンすることを含み、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上である。
【００１２】
第３の側面において、本開示の実施例は、分散ストレージシステムを提供し、当該分散ストレージシステムは、メタデータサーバと、少なくとも一つのレプリカグループと、レプリカ処理ノードとを含み、各前記レプリカグループは、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含み、各レプリカグループに対応する処理対象ノードに対して、ガーベッジクリーニングがトリガされた後、前記レプリカ処理ノードが、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップと、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含むステップと、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、を実行する。
【００１３】
いくつかの実施例では、前記レプリカ処理ノードが、具体的には、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信し、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信し、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するように構成され、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカである。
【００１４】
いくつかの実施例では、前記レプリカ処理ノードが、具体的には、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノードに対応するレプリカグループの第１のノードにレプリカ構成情報取得要求を送信し、当該処理対象ノードに対応するレプリカグループの第１のノードが、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノードに前記レプリカ構成情報をリターンする。
【００１５】
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、当該処理対象ノードに対応するレプリカグループの第１のノードが、具体的には、前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信し、少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノードに前記レプリカ構成情報をリターンするように構成され、前記予め設定された数が、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上である。
【００１６】
いくつかの実施例では、前記分散ストレージシステムは、分散型コンセンサスプロトコルＲａｆｔに基づく分散ストレージシステムである。
【００１７】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、前記レプリカ処理ノードは、当該処理対象ノードである。
【００１８】
第４の側面において、本開示の実施例は、サーバを提供し、当該サーバは、一又は複数のプロセッサと、一又は複数のプログラムが記憶されている記憶装置と、を備え、前記一又は複数のプログラムが前記一又は複数のプロセッサにより実行される場合に、前記一又は複数のプロセッサが、上記のレプリカ処理方法を実現する。
【００１９】
第５の側面において、本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供し、前記プログラムがプロセッサにより実行される場合に、上記のレプリカ処理方法が実現される。
【発明の効果】
【００２０】
本開示の実施例により提供されるＲａｆｔプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体は、レプリカグループのデータ安全を確保することを前提としてクリーンアップ対象レプリカ（ガベージ）をクリーンアップし、メタデータサーバを盲目的に信頼してレプリカが誤削除される状況を効果的に回避することによって、レプリカグループの利用不可状況とデータ紛失状況との発生を効果的に防止する。
【図面の簡単な説明】
【００２１】
添付図面は本開示の実施例に対するさらなる理解を提供し、且つ明細書の一部となり、本開示の実施例とともに本開示を解釈し、本開示に対する制限を構成するものではない。図面を参照して詳細な例示的な実施例を説明することによって、以上の他の特徴や利点は、当業者にとってさらに明らかになる。
【図１】本開示の実施例により提供されるＲａｆｔプロトコルに基づくレプリカ処理方法のフローチャートである。
【図２】本開示の実施例におけるステップ１１の具体的な実施方式のフローチャートである。
【図３】本開示の実施例におけるステップ１２の具体的な実施方式のフローチャートである。
【図４】本開示の実施例により提供されるレプリカ処理方法の応用概略図である。
【図５】本開示の実施例により提供されるレプリカ処理ノードの概略構成図である。
【図６】本開示の実施例により提供される分散ストレージシステムの概略構成図である。
【図７】本開示の実施例により提供される別の分散ストレージシステムの概略構成図である。
【発明を実施するための形態】
【００２２】
当業者が本開示の技術案をより良く理解できるようにするために、以下の図面を組み合わせて本開示により提供されるＲａｆｔプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体を詳細に説明する。
【００２３】
以下では、図面を参照して例示的な実施例を更なる十分に説明するが、前記例示的な実施例は、異なる形式で表現することができ、且つ本明細書で説明される実施例に限定されると解釈されるべきではない。逆に、これらの実施例を提供する目的は、本開示を徹底的且つ完全になるようにし、当業者が本開示の範囲を十分に理解させることである。
【００２４】
本明細書で使用される「及び／又は」用語は、１又は複数の関連する列挙項目のいずれか及びすべての組み合わせを含む。
【００２５】
本明細書で使用される用語は、特定の実施例の説明のみに用いられ、本開示を限定することを意図しない。本明細書で使用されるように、文脈が別に明確に指摘されていない限り、単数形式の「一つ」と「当該」も複数の形式を含むことを意図している。また、本明細書で用語「含む」及び／又は「〜から生成される」が使用される場合、特徴、全体、ステップ、操作、要素、及び／又はコンポーネントが存在することを指定するが、1または複数の他の特徴、全体、ステップ、操作、要素、コンポーネント及び／又はグループの存在または追加を排除することはできないことを理解されたい。
【００２６】
本明細書の実施例は、本願の理想的な概略図を介して平面図及び／又は断面図を参照して説明することができる。よって、製造技術及び／又は許容範囲によって例示的な図面を修正することができる。よって、実施例は、図面に示す実施例に限定されなく、製造プロセスによって形成される配置の変更を含む。よって、図面に示す領域は、概略的な属性を有し、図面に示す領域の形状は、要素の領域の具体的な形状を示すが、限定することを意図するわけではない。
【００２７】
他に限定されない限り、本明細書で使用されるすべての用語（技術や科学用語を含む）の意味は、当業者が通常に理解している意味と同じである。また、一般的な辞書に限定されている用語は、関連技術及び本開示の背景における意味と一致する意味を有すると解釈されるべきであり、本明細書に明確に限定されない限り、理想化又は過度の形式上の意味を有すると解釈されないことを理解されたい。
【００２８】
図１は、本開示の実施例により提供されるＲａｆｔプロトコルに基づくレプリカ処理方法のフローチャートである。図１に示すように、当該レプリカ処理方法は、以下のようなステップを含む。
ステップ１１、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該レプリカグループは、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含む。
【００２９】
分散型コンセンサスプロトコル、すなわちＲａｆｔプロトコルに基づく分散ストレージシステムにおいて、分散ストレージシステムは、一般に、少なくとも一つのレプリカグループ（Ｒａｆｔ
Ｒｅｐｌｉｃａ Ｇｒｏｕｐ）を含み、各レプリカグループは、データをバックアップするように、データをアクセスするためのプライマリレプリカのマスタープロセスを含み、少なくとも一つのデータをアクセスするためのセカンダリレプリカのスレーブプロセスも含む。マスタープロセスはＬｅａｄｅｒと呼ばれ、スレーブプロセスはＦｏｌｌｏｗｅｒと呼ばれる。本開示の実施例では、マスタープロセスは第１のノードと呼ばれ、スレーブプロセスは第２のノードと呼ばれる。本開示の実施例では、第１のノード、第２のノードは、データストレージノード（ＢｌｏｃｋＳｅｒｖｅｒ）と総称されることもできる。
【００３０】
本開示の実施例では、各レプリカグループにおける各第２のノードに対して、ストレージポリシーに従って、当該第２のノードがメタデータサーバ（Ｍａｓｔｅｒ）によって当該レプリカグループからキック（ｋｉｃｋ）された後、当該第２のノードを処理対象ノードとする。
【００３１】
本開示の実施例では、ステップ１１において、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。本開示の実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードであり、すなわちストレージポリシーに従って既にレプリカグループからキックされた第２のノードである。いくつかの実施例では、レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器、サーバ又はシステムなどであってもよい。
【００３２】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードである場合、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１において、当該処理対象ノード（レプリカ処理ノード）は、まず、当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカを決定し、その後、後続するステップを実行し、当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカ（Ｒｅｐｌｉｃａ）を処理する。
【００３３】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードがレプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムである場合、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、まず、当該処理対象ノードにおけるクリーンアップ対象レプリカを決定し、その後、後続するステップを実行し、当該処理対象ノードにおけるクリーンアップ対象レプリカ（Ｒｅｐｌｉｃａ）を処理する。
【００３４】
図２は、本開示の実施例におけるステップ１１の具体的な実施方式のフローチャートである。いくつかの実施例では、図２に示すように、ステップ１１は、ステップ１１Ａ〜ステップ１１Ｃを含む。
ステップ１１Ａ、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信する。
【００３５】
分散ストレージシステムでは、分散ストレージシステムは、メタデータサーバ（Ｍａｓｔｅｒ）をさらに含み、メタデータサーバは、各レプリカグループの各第１のノードのすべてのレプリカメタデータ（レプリカリスト）と、各第２のノードのすべてのレプリカメタデータ（レプリカリスト）とを含む当該分散ストレージシステムのすべてのメタデータを記憶する。各レプリカグループにおける各第２のノードに対して、ストレージポリシーに従って、当該第２のノードがメタデータサーバによって当該レプリカグループからキックされた後、処理対象ノードとなり、メタデータサーバには、当該第２のノード（処理対象ノード）のレプリカリスト（第１のレプリカリスト）が依然として記憶されている。
【００３６】
本開示の実施例では、ステップ１１Ａにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信する。
【００３７】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ａにおいて、当該処理対象ノード（レプリカ処理ノード）は、メタデータサーバに該当ノードにおける第１のレプリカリストを問い合わせ、第１のレプリカリストは、メタデータサーバに記憶されている当該処理対象ノード（レプリカ処理ノード）のレプリカリストである。
【００３８】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ａにおいて、当該レプリカ処理ノードは、メタデータサーバに当該処理対象ノードにおける第１のレプリカリストを問い合わせ、第１のレプリカリストは、メタデータサーバに記憶されている当該処理対象ノードのレプリカリストである。
【００３９】
ステップ１１Ｂ、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第１のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第１のレプリカリストを受信する。
【００４０】
本開示の実施例では、ステップ１１Ｂにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードの第１のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第１のレプリカリストを受信する。いくつかの実施例では、第１のレプリカリストは、少なくとも一つのレプリカを含み、いくつかの実施例では、第１のレプリカリストにおけるレプリカの数は０である。第１のレプリカリストにおけるレプリカの数は、具体的は、実際の状況に応じて決定されるが、本開示の実施例はこれを限定しない。
【００４１】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ｂにおいて、当該処理対象ノード（レプリカ処理ノード）は、当該処理対象ノードの第１のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第１のレプリカリストを受信する。
【００４２】
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ｂにおいて、当該レプリカ処理ノードは、当該処理対象ノードの第１のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第１のレプリカリストを受信する。
【００４３】
ステップ１１Ｃ、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと取得された第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。
【００４４】
本開示の実施例では、ステップ１１Ｃにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが前記第１のレプリカリストにはないレプリカである。
【００４５】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ｃにおいて、当該処理対象ノード（レプリカ処理ノード）は、予め記憶されている第２のレプリカリストにおけるレプリカとメタデータサーバから取得された第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカを決定する。言い換えれば、当該処理対象ノード（レプリカ処理ノード）は、自身に記憶されている第２のレプリカリストにおけるレプリカと、取得されたメタデータサーバに記憶されている当該処理対象ノード（レプリカ処理ノード）の第１のレプリカリストにおけるレプリカを比較することによって、第２のレプリカリストにはあるが、第１のレプリカリストにはないレプリカを決定し、第２のレプリカリストにはあるが、第１のレプリカリストにはないレプリカをクリーンアップ対象レプリカとして決定する。
【００４６】
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１１Ｃにおいて、当該レプリカ処理ノードは、メタデータサーバに記憶されている当該処理対象ノードの第１のレプリカリストを取得した後、さらに、当該処理対象ノードに記憶されている第２のレプリカリストを取得し、その後、当該処理対象ノードに記憶されている第２のレプリカリストにおけるレプリカと、メタデータサーバに記憶されている当該処理対象ノードの第１のレプリカリストにおけるレプリカとに基づいて、クリーンアップ対象レプリカを決定する。
【００４７】
例えば、第１のレプリカリストは{ Ｓ２，Ｓ３，…，Ｓｎ}であり、その中、Ｓｎはレプリカを表示し、第２のレプリカリストは{ Ｓ１，Ｓ２，Ｓ３，…，Ｓｎ}であり、比較により、Ｓ１は第２のレプリカリストにはあるが、第１のレプリカリストにはないレプリカであり、すなわちＳ１はクリーンアップ対象レプリカであることが分かる。
【００４８】
ステップ１２、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。
【００４９】
本開示の実施例では、ステップ１２において、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。その中、当該レプリカ構成情報は、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含む。なお、本開示の実施例では、各レプリカグループに対して、当該レプリカグループの第１のノード及び各第２のノードには、いずれも当該レプリカグループのレプリカ構成情報が記憶される。
【００５０】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１２において、当該処理対象ノード（レプリカ処理ノード）は、当該処理対象ノード（レプリカ処理ノード）に対応するレプリカグループのレプリカ構成情報を取得する。
【００５１】
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１２において、当該レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。
【００５２】
図３は、本開示の実施例におけるステップ１２の具体的な実施方式のフローチャートである。いくつかの実施例では、図３に示すように、ステップ１２は、以下のようなステップを含む。
ステップ１２Ａ、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信する。
【００５３】
ステップ１２Ｂ、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが、当該処理対象ノードに対応するレプリカグループの第１のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
【００５４】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１２Ａにおいて、当該処理対象ノード（レプリカ処理ノード）は、決定されたクリーンアップ対象レプリカに基づいて、対応するレプリカグループの第１のノードにレプリカ構成情報取得要求を送信し、ステップ１２Ｂにおいて、当該処理対象ノード（レプリカ処理ノード）は、当該対応するレプリカグループの第１のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
【００５５】
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１２Ａにおいて、決定されたクリーンアップ対象レプリカに基づいて、当該処理対象ノードによって当該処理対象ノードに対応するレプリカグループの第１のノードにレプリカ構成情報取得要求を送信し、ステップ１２Ｂにおいて、当該レプリカ処理ノードが、当該処理対象ノードに対応するレプリカグループの第１のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
【００５６】
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、ステップ１２Ｂの前に、ステップ１２Ａ１〜ステップ１２Ａ３をさらに含み、すなわち各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループの第１のノードがレプリカ構成情報取得要求に基づいてレプリカ構成情報をリターンするステップは、以下のようなステップを含む。
ステップ１２Ａ１、当該レプリカグループの第１のノードが空ログを当該レプリカグループの少なくとも一つの第２のノードに送信する。
【００５７】
ステップ１２Ａ１において、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループの第１のノードは、レプリカ処理ノードによって送信されたレプリカ構成情報取得要求を受信した後、レプリカ構成情報取得要求における空ログを当該レプリカグループの少なくとも一つの第２のノードに同期に送信し、空ログはＲａｆｔ空ログである。
【００５８】
ステップ１２Ａ２、当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードがレプリカ処理ノードにレプリカ構成情報をリターンする。
【００５９】
ステップ１２Ａ２において、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの少なくとも一つの第２のノードは、空ログを受信した後、空ログが受信された各第２のノードは、当該レプリカグループの第１のノードに同期空ログ確認情報をそれぞれ返信し、当該レプリカグループの第１のノードが少なくとも予め設定された数の第２のノードによってリターンされた同期空ログ確認情報を受信する場合、第２のノードの大半が当該空ログを受信することを示し、当該レプリカグループが正常であることを示すため、当該レプリカグループの第１のノードは、レプリカ処理ノードに当該レプリカグループのレプリカ構成情報をリターンすることができる。
【００６０】
各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第１のノードに空ログに書き込み、当該レプリカグループの第１のノードは、空ログを当該レプリカグループにおける各第２のノードに同期することによって、空ログが当該レプリカグループにおける第１のノード及び第２のノードに提出可能な数が予め設定された数以上であると判断された場合、当該レプリカグループが正常であることを示し、すなわち、空ログを書き込む方式によってレプリカグループが正常であるか否かを検出する。したがって、当該レプリカグループの第１のノードが当該レプリカグループの大半（少なくとも予め設定された数）の同期空ログ確認情報を受信した後、レプリカ構成情報をレプリカ処理ノードにリターンする。
【００６１】
ステップ１２Ａ２において、各レプリカグループに対して、前記予め設定された数は、当該レプリカグループの第１のノード及び第２のノードの合計数の半分以上である、上記の「少なくとも予め設定された数」は、予め設定された数以上であることを指すことは容易に理解することができる。
【００６２】
なお、各レプリカグループに対して、当該レプリカグループの第１のノードが空ログを受信した後、当該第１のノード自身は、同期空ログ確認情報を生成し、当該レプリカグループの各第２のノードは、空ログを受信した後、当該レプリカグループの各第２のノードも同期空ログ確認情報を生成する。当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合（当該第１のノードが同期空ログ確認情報を既に生成した場合、当該少なくとも予め設定された数の同期空ログ確認情報には、当該第１のノードによって生成された同期空ログ確認情報を含む）、レプリカ処理ノードにレプリカ構成情報をリターンする。
【００６３】
ステップ１３、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除する。
【００６４】
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１３において、当該処理対象ノード（レプリカ処理ノード）は、当該処理対象ノード（レプリカ処理ノード）に対応するレプリカグループのレプリカ構成情報に当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノード（レプリカ処理ノード）は、当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノード（レプリカ処理ノード）におけるクリーンアップ対象レプリカを削除する。
【００６５】
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ１３において、当該レプリカ処理ノードは、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報に当該処理対象ノードにおけるクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該レプリカ処理ノードは、当該処理対象ノードにおけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードにおけるクリーンアップ対象レプリカを削除する。
【００６６】
図４は、本開示の実施例により提供されるレプリカ処理方法の応用概略図である。図４は、Ｒａｆｔプロトコルに基づく分散ストレージシステムが一つのレプリカグループを含む場合を示し、図４に示すように、分散ストレージシステムは、メタデータサーバＡと、レプリカグループＢと、レプリカ処理ノードとを含み、その中、レプリカグループＢは、第１のノード２と、第２のノード１と、第２のノード３と、第２のノード４とを含み、第２のノード１に位置するレプリカは、ストレージポリシーに従ってレプリカグループＢからキックされ、当該第２のノード１は、処理対象ノード１となり、図４は、レプリカ処理ノードがレプリカグループＢに対応する処理対象ノード１である場合を示し、レプリカ処理ノードがレプリカグループＢに対応する処理対象ノード１であることを例として、ガーベッジクリーニングがトリガされた後、処理対象ノード１は、まず、メタデータサーバＡは、メタデータサーバＡに記憶されている該当ノード（処理対象ノード１）に対応する第１のレプリカリストを問い合わせ、処理対象ノード１が第１のレプリカリストを受信した後、自身に記憶されている第２のレプリカリストにおけるレプリカを、第１のレプリカリストにおけるレプリカと比較し、該当ノード（処理対象ノード１）におけるクリーンアップ対象レプリカを決定し、その後、対応するレプリカグループＢの第１のノード２に一つの空ログを書き込み、第１のノード２は、空ログを第２のノード３と第２のノード４に同期に送信し、第２のノード３は、第１のノード２に同期空ログ確認情報を返信し、第２のノード４は、第１のノード２に同期空ログ確認情報を返信し、その後、第１のノード２は、処理対象ノード１にレプリカグループＢのレプリカ構成情報を返信し、処理対象ノード１は、レプリカ構成情報にクリーンアップ対象レプリカが含まれているか否かを判断し、含まれている場合、当該クリーンアップ対象レプリカを削除しなく、そうでなければ、当該クリーンアップ対象レプリカを削除する。
【００６７】
本開示の実施例により提供されるレプリカ処理方法では、分散ストレージシステム内のレプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを決定した後、クリーンアップ対象レプリカを即時削除することではなく、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得して、当該レプリカ構成情報にクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該クリーンアップ対象レプリカを削除することは、レプリカグループのデータ安全を破壊することになることを示すため、当該処理対象ノードにおけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードにおけるクリーンアップ対象レプリカを安全に削除できることを示すため、当該処理対象ノードにおけるクリーンアップ対象レプリカを削除する。
【００６８】
本開示の実施例により提供されるレプリカ処理方法は、レプリカグループのデータ安全を確保することを前提としてクリーンアップ対象レプリカ（ガベージ）をクリーンアップし、メタデータサーバを盲目的に信頼してレプリカが誤削除される状況を効果的に回避することによって、レプリカグループの利用不可状況とデータ紛失状況との発生を効果的に防止する。
【００６９】
図５は、本開示の実施例により提供されるレプリカ処理ノードの概略構成図である。図５に示すように、当該レプリカ処理ノードは、上記のレプリカ処理方法を実現し、当該レプリカ処理ノードは、決定モジュール２１と、取得モジュール２２と、判断モジュール２３と、クリーンアップモジュール２４とを含む。
【００７０】
その中、決定モジュール２１は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該レプリカグループは、プライマリレプリカを記憶するための第１のノードと、セカンダリレプリカを記憶するための少なくとも一つの第２のノードとを含む。
【００７１】
取得モジュール２２は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得し、前記レプリカ構成情報は、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含む。
【００７２】
判断モジュール２３は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断しる。
【００７３】
クリーンアップモジュール２４は、各レプリカグループに対応する処理対象ノードに対して、判断モジュール２３が当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュール２３が当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除しる。
【００７４】
いくつかの実施例では、決定モジュール２１は、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第１のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが、前記第１のレプリカリストにはないレプリカである。
【００７５】
いくつかの実施例では、取得モジュール２２は、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第１のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする。
【００７６】
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、各レプリカグループに対応する各第２のノードに対して、当該レプリカグループの第１のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることは、当該レプリカグループの第１のノードが前記空ログを当該レプリカグループの少なくとも一つの第２のノードに送信し、当該レプリカグループの第１のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第１のノードは、前記取得モジュール２２に前記レプリカ構成情報をリターンすることを含む。
【００７７】
本開示の実施例では、各レプリカグループにおける各第２のノードに対して、ストレージポリシーに従って、当該第２のノードは、当該レプリカグループにキックされて処理対象ノードとなる。
【００７８】
本開示の実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであってもよい。いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器、サーバ又はシステムなどであってもよい。
【００７９】
また、本開示の実施例により提供されるレプリカ処理ノードは、具体的には、上記のレプリカ処理方法を実現し、具体的には、上記のレプリカ処理方法の説明を参照することができ、ここでは詳細に説明しない。
【００８０】
図６は、本開示の実施例により提供される分散ストレージシステムの概略構成図である。図６に示すように、当該分散ストレージシステムは、上記のレプリカ処理方法を実現し、当該分散ストレージシステムは、メタデータサーバ３１と、少なくとも一つのレプリカグループ３２と、処理対象ノード３２３と、レプリカ処理ノード３３とを含み、各レプリカグループ３２は、プライマリレプリカを記憶するための第１のノード３２１と、セカンダリレプリカを記憶するための少なくとも一つの第２のノード３２２と、を含む。
【００８１】
各レプリカグループ３２に対応する処理対象ノード３２３に対して、ガーベッジクリーニングがトリガされた後、当該レプリカ処理ノード３３は、以下のステップ４１〜ステップ４３を実行する。
ステップ４１、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。
【００８２】
ステップ４２、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得し、前記レプリカ構成情報は、当該レプリカグループの第１のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第２のノードによって記憶されるセカンダリレプリカとを含む。
【００８３】
ステップ４３、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除する。
【００８４】
いくつかの実施例では、レプリカ処理ノード３３は、具体的には、メタデータサーバ３１に当該処理対象ノード３２３の第１のレプリカリストの取得要求を送信し、当該処理対象ノードの第１のレプリカリストの取得要求に基づいて前記メタデータサーバ３１によってリターンされた第１のレプリカリストを受信し、当該処理対象ノード３２３によって記憶されている第２のレプリカリストにおけるレプリカと前記第１のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノード３２３に対応するクリーンアップ対象レプリカを決定し、当該処理対象ノード３２３に対応するクリーンアップ対象レプリカは、前記第２のレプリカリストにはあるが、前記第１のレプリカリストにはないレプリカである。
【００８５】
いくつかの実施例では、レプリカ処理ノード３３は、具体的には、決定された当該処理対象ノード３２３に対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノード３２３に対応するレプリカグループ３２の第１のノード３２１にレプリカ構成情報取得要求を送信し、当該処理対象ノード３２３に対応するレプリカグループ３２の第１のノード３２１は、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノード３３に前記レプリカ構成情報をリターンする。
【００８６】
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、各レプリカグループに対応する処理対象ノード３２３に対して、当該処理対象ノード３２３に対応するレプリカグループ３２の第１のノード３２１は、具体的には、前記空ログを当該レプリカグループ３２の少なくとも一つの第２のノード３２２に送信し、少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノード３３に前記レプリカ構成情報をリターンする。
【００８７】
本開示の実施例では、分散ストレージシステムは、分散型コンセンサスプロトコルＲａｆｔに基づく分散ストレージシステムである。
【００８８】
図７は、本開示の実施例により提供される別の分散ストレージシステムの概略構成図である。いくつかの実施例では、図７に示すように、各レプリカグループ３２に対応する処理対象ノード３２３に対して、レプリカ処理ノード３３は、当該処理対象ノード３２３である。
【００８９】
なお、図６及び図７は、いずれも複数の第２のノードを含む場合の一つのレプリカグループを示す。
【００９０】
また、本開示の実施例により提供される分散ストレージシステムでは、ガーベッジクリーニングがトリガされた後、レプリカ処理ノードは、上記のレプリカ処理方法を実現し、具体的には、上記のレプリカ処理方法の説明を参照することができ、ここでは詳細に説明しない。
【００９１】
本開示の実施例は、サーバをさらに提供し、当該サーバは、一又は複数のプロセッサと、一又は複数のプログラムが記憶されている記憶装置と、を備え、上記の一又は複数のプログラムが上記の一又は複数のプロセッサにより実行される場合に、上記の一又は複数のプロセッサは、上記のレプリカ処理方法を実現する。
【００９２】
本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、当該コンピュータプログラムが実行される場合に、上記のレプリカ処理方法を実現する。
【００９３】
当業者であれば、上記で開示された方法のすべて又はいくつかのステップ、システム、装置における機能モジュール／ユニットは、ソフトウェア、ファームウェア、ハードウェア、及び適切な組み合わせとして実施されてもよいことを理解されたい。ハードウェア実施形態において、上記の説明で提出した機能モジュール／ユニットの間の区分は、必ずしも物理コンポーネントの区分に対応するものではなく、例えば、１つの物理コンポーネントは、複数の機能を有してもよく、または１つの機能又はステップは、複数の物理コンポーネントによって連携して実行されてもよい。いくつかの物理コンポーネント又はすべての物理コンポーネントは、中央処理装置、デジタル信号プロセッサ、又はマイクロプロセッサなどのプロセッサによって実行されるソフトウェアとして実施されてもよく、又はハードウェアとして実施されてもよく、又は特定用途向け集積回路のような集積回路に実施されてもよい。このようなソフトウェアは、コンピュータ読み取り可能な媒体に配置されてもよく、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体（又は非一時的な媒体）と通信媒体（又は一時的な媒体）を含むことができる。当業者の周知の通り、用語であるコンピュータ記憶媒体は、情報（例えばコンピュータ読み取り可能なコマンド、データ構造、プログラムモジュール、又は他のデータ）を記憶するための任意の方法又は技術において実施される揮発性と非揮発性、リムーバブル媒体と非リムーバブル媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又は他の光ディスクメモリ、マグネットボックス、デープ、ディスクストレージ又は他の磁気メモリ装置、又は所望の情報を記憶し、コンピュータによってアクセスされることができる他の任意の媒体を含むことができるが、これらに限定されない。また、当業者が周知であることは、通信媒体は、通常、コンピュータ読み取り可能な媒体、データ構造、プログラムモジュール、又は例えば搬送波や他の伝送方式などの変調データ信号における他のデータを含み、且つ任意の情報配信媒体を含むことができる。
【００９４】
本明細書では、既に例示的な実施例が開示され、また具体的な用語が使用されているが、一般的な説明的な意味として解釈される ことのみに用いられ、且つ限定の目的には用いられることがない。いくつかの実施例において、当業者にとって明らかなことは、他に明確に指摘しない限り、特定の実施例と組み合わせて説明した特徴、特性及び／又は要素を単独に使用することができ、または他の実施例と組み合わせて説明した特徴、特性及び／又は要素と組み合わせて使用することができる。よって、当業者は、添付された請求項によって開示された本願の範囲を逸脱することなく、様々な形式および詳細な変更を行うことができる。
【図１】
2020184325.tif 000003
【図２】
2020184325.tif 000004
【図３】
2020184325.tif 000005
【図４】
2020184325.tif 000006
【図５】
2020184325.tif 000007
【図６】
2020184325.tif 000008
【図７】
2020184325.tif 000009