JP2020184325A - レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体 - Google Patents

レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP2020184325A
JP2020184325A JP2020069789A JP2020069789A JP2020184325A JP 2020184325 A JP2020184325 A JP 2020184325A JP 2020069789 A JP2020069789 A JP 2020069789A JP 2020069789 A JP2020069789 A JP 2020069789A JP 2020184325 A JP2020184325 A JP 2020184325A
Authority
JP
Japan
Prior art keywords
replica
node
processing target
group
target node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020069789A
Other languages
English (en)
Other versions
JP6940645B2 (ja
Inventor
ジョンリー イー,
Zhengli Yi
ジョンリー イー,
ペンファイ チェン,
Pengfei Zheng
ペンファイ チェン,
シンシン ワン,
Xinxing Wang
シンシン ワン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2020184325A publication Critical patent/JP2020184325A/ja
Application granted granted Critical
Publication of JP6940645B2 publication Critical patent/JP6940645B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

【課題】Raftプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体を提供する。【解決手段】方法は、第1のノードと第2のノードとを含む各レプリカグループに対応する処理対象ノードに対して、クリーンアップ対象レプリカを決定するステップと、各レプリカグループに対応する処理対象ノードに対して、レプリカグループの第1のノードによって記憶されるプライマリレプリカと第2のノードによって記憶されるセカンダリレプリカとを含む、レプリカグループのレプリカ構成情報を取得するステップと、各レプリカグループに対応する処理対象ノードに対して、対応するレプリカ構成情報に、対応するクリーンアップ対象レプリカが含まれているか否かを判断し、含まれていなければ、対応するクリーンアップ対象レプリカを削除するステップと、を含む。【選択図】図1

Description

本開示の実施例は、通信の分野に関し、特に、Raftプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体に関する。
ガーベッジクリーニングは、分散ブロックストレージシステム設計における重要な内容であり、従来のガーベッジクリーニング方法は、通常、データストレージノード(BlockServer)がメタデータサーバ(Master)に、当該データストレージノードにどのレプリカ(Replica)が含まれているかを問い合わせし、その後、これらのレプリカ情報に基づいて、Masterにないが、BlockServerにあるレプリカをクリーンアップする。このような単純にMasterを信頼する実現方法は、一定の問題が存在し、例えば、Masterのソフトウェアは、Bugが存在し、ディスクに故障が発生し、Masterのメタデータが破壊される可能性もある。これらの場合では、いずれもMasterのレプリカメタデータにエラーが発生することに至る可能性があり、Masterに記憶されているレプリカメタデータとBlockServer上のレプリカ情報が一致しなくなるため、BlockServerがローカルレプリカデータを誤削除することがある。最後に当該データストレージノードに属するレプリカグループのうちの残りのレプリカ数が全体のレプリカ数の半分より小さい場合、レプリカグループが利用できなくなり、さらにデータが紛失されることになる。
本開示の実施例は、Raftプロトコルに基づくレプリカ処理方法及びレプリカ処理ノード、分散ストレージシステム、サーバ、コンピュータ読み取り可能な記憶媒体を提供する。
第1の側面において、本開示の実施例は、Raftプロトコルに基づくレプリカ処理方法を提供し、当該レプリカ処理方法は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該レプリカグループが、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含むステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含むステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、を含む。
いくつかの実施例では、前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップが、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信するステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信するステップと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが、前記第1のレプリカリストにはないレプリカであるステップと、を含む。
いくつかの実施例では、前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップが、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにするステップを含む。
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするステップが、
当該レプリカグループの第1のノードが前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信するステップと、当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードが前記レプリカ構成情報をリターンするステップであって、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上であるステップと、を含む。
第2の側面において、本開示の実施例は、レプリカ処理ノードを提供し、前記レプリカ処理ノードは、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するための決定モジュールであって、当該レプリカグループが、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含む決定モジュールと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するための取得モジュールであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含む取得モジュールと、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断するための判断モジュールと、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するためのクリーンアップモジュールと、を含む。
いくつかの実施例では、前記決定モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するように構成され、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカである。
いくつかの実施例では、前記取得モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする。
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることが、当該レプリカグループの第1のノードが前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信し、当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードが前記取得モジュールに前記レプリカ構成情報をリターンすることを含み、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上である。
第3の側面において、本開示の実施例は、分散ストレージシステムを提供し、当該分散ストレージシステムは、メタデータサーバと、少なくとも一つのレプリカグループと、レプリカ処理ノードとを含み、各前記レプリカグループは、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含み、各レプリカグループに対応する処理対象ノードに対して、ガーベッジクリーニングがトリガされた後、前記レプリカ処理ノードが、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップと、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含むステップと、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、を実行する。
いくつかの実施例では、前記レプリカ処理ノードが、具体的には、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信し、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信し、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するように構成され、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカである。
いくつかの実施例では、前記レプリカ処理ノードが、具体的には、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノードに対応するレプリカグループの第1のノードにレプリカ構成情報取得要求を送信し、当該処理対象ノードに対応するレプリカグループの第1のノードが、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノードに前記レプリカ構成情報をリターンする。
いくつかの実施例では、前記レプリカ構成情報取得要求が、空ログを含み、当該処理対象ノードに対応するレプリカグループの第1のノードが、具体的には、前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信し、少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノードに前記レプリカ構成情報をリターンするように構成され、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上である。
いくつかの実施例では、前記分散ストレージシステムは、分散型コンセンサスプロトコルRaftに基づく分散ストレージシステムである。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、前記レプリカ処理ノードは、当該処理対象ノードである。
第4の側面において、本開示の実施例は、サーバを提供し、当該サーバは、一又は複数のプロセッサと、一又は複数のプログラムが記憶されている記憶装置と、を備え、前記一又は複数のプログラムが前記一又は複数のプロセッサにより実行される場合に、前記一又は複数のプロセッサが、上記のレプリカ処理方法を実現する。
第5の側面において、本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供し、前記プログラムがプロセッサにより実行される場合に、上記のレプリカ処理方法が実現される。
本開示の実施例により提供されるRaftプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体は、レプリカグループのデータ安全を確保することを前提としてクリーンアップ対象レプリカ(ガベージ)をクリーンアップし、メタデータサーバを盲目的に信頼してレプリカが誤削除される状況を効果的に回避することによって、レプリカグループの利用不可状況とデータ紛失状況との発生を効果的に防止する。
添付図面は本開示の実施例に対するさらなる理解を提供し、且つ明細書の一部となり、本開示の実施例とともに本開示を解釈し、本開示に対する制限を構成するものではない。図面を参照して詳細な例示的な実施例を説明することによって、以上の他の特徴や利点は、当業者にとってさらに明らかになる。
本開示の実施例により提供されるRaftプロトコルに基づくレプリカ処理方法のフローチャートである。 本開示の実施例におけるステップ11の具体的な実施方式のフローチャートである。 本開示の実施例におけるステップ12の具体的な実施方式のフローチャートである。 本開示の実施例により提供されるレプリカ処理方法の応用概略図である。 本開示の実施例により提供されるレプリカ処理ノードの概略構成図である。 本開示の実施例により提供される分散ストレージシステムの概略構成図である。 本開示の実施例により提供される別の分散ストレージシステムの概略構成図である。
当業者が本開示の技術案をより良く理解できるようにするために、以下の図面を組み合わせて本開示により提供されるRaftプロトコルに基づくレプリカ処理方法、レプリカ処理ノード、分散ストレージシステム、サーバ及びコンピュータ読み取り可能な記憶媒体を詳細に説明する。
以下では、図面を参照して例示的な実施例を更なる十分に説明するが、前記例示的な実施例は、異なる形式で表現することができ、且つ本明細書で説明される実施例に限定されると解釈されるべきではない。逆に、これらの実施例を提供する目的は、本開示を徹底的且つ完全になるようにし、当業者が本開示の範囲を十分に理解させることである。
本明細書で使用される「及び/又は」用語は、1又は複数の関連する列挙項目のいずれか及びすべての組み合わせを含む。
本明細書で使用される用語は、特定の実施例の説明のみに用いられ、本開示を限定することを意図しない。本明細書で使用されるように、文脈が別に明確に指摘されていない限り、単数形式の「一つ」と「当該」も複数の形式を含むことを意図している。また、本明細書で用語「含む」及び/又は「〜から生成される」が使用される場合、特徴、全体、ステップ、操作、要素、及び/又はコンポーネントが存在することを指定するが、1または複数の他の特徴、全体、ステップ、操作、要素、コンポーネント及び/又はグループの存在または追加を排除することはできないことを理解されたい。
本明細書の実施例は、本願の理想的な概略図を介して平面図及び/又は断面図を参照して説明することができる。よって、製造技術及び/又は許容範囲によって例示的な図面を修正することができる。よって、実施例は、図面に示す実施例に限定されなく、製造プロセスによって形成される配置の変更を含む。よって、図面に示す領域は、概略的な属性を有し、図面に示す領域の形状は、要素の領域の具体的な形状を示すが、限定することを意図するわけではない。
他に限定されない限り、本明細書で使用されるすべての用語(技術や科学用語を含む)の意味は、当業者が通常に理解している意味と同じである。また、一般的な辞書に限定されている用語は、関連技術及び本開示の背景における意味と一致する意味を有すると解釈されるべきであり、本明細書に明確に限定されない限り、理想化又は過度の形式上の意味を有すると解釈されないことを理解されたい。
図1は、本開示の実施例により提供されるRaftプロトコルに基づくレプリカ処理方法のフローチャートである。図1に示すように、当該レプリカ処理方法は、以下のようなステップを含む。
ステップ11、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該レプリカグループは、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含む。
分散型コンセンサスプロトコル、すなわちRaftプロトコルに基づく分散ストレージシステムにおいて、分散ストレージシステムは、一般に、少なくとも一つのレプリカグループ(Raft
Replica Group)を含み、各レプリカグループは、データをバックアップするように、データをアクセスするためのプライマリレプリカのマスタープロセスを含み、少なくとも一つのデータをアクセスするためのセカンダリレプリカのスレーブプロセスも含む。マスタープロセスはLeaderと呼ばれ、スレーブプロセスはFollowerと呼ばれる。本開示の実施例では、マスタープロセスは第1のノードと呼ばれ、スレーブプロセスは第2のノードと呼ばれる。本開示の実施例では、第1のノード、第2のノードは、データストレージノード(BlockServer)と総称されることもできる。
本開示の実施例では、各レプリカグループにおける各第2のノードに対して、ストレージポリシーに従って、当該第2のノードがメタデータサーバ(Master)によって当該レプリカグループからキック(kick)された後、当該第2のノードを処理対象ノードとする。
本開示の実施例では、ステップ11において、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。本開示の実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードであり、すなわちストレージポリシーに従って既にレプリカグループからキックされた第2のノードである。いくつかの実施例では、レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器、サーバ又はシステムなどであってもよい。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードである場合、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11において、当該処理対象ノード(レプリカ処理ノード)は、まず、当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカを決定し、その後、後続するステップを実行し、当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカ(Replica)を処理する。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードがレプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムである場合、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、まず、当該処理対象ノードにおけるクリーンアップ対象レプリカを決定し、その後、後続するステップを実行し、当該処理対象ノードにおけるクリーンアップ対象レプリカ(Replica)を処理する。
図2は、本開示の実施例におけるステップ11の具体的な実施方式のフローチャートである。いくつかの実施例では、図2に示すように、ステップ11は、ステップ11A〜ステップ11Cを含む。
ステップ11A、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信する。
分散ストレージシステムでは、分散ストレージシステムは、メタデータサーバ(Master)をさらに含み、メタデータサーバは、各レプリカグループの各第1のノードのすべてのレプリカメタデータ(レプリカリスト)と、各第2のノードのすべてのレプリカメタデータ(レプリカリスト)とを含む当該分散ストレージシステムのすべてのメタデータを記憶する。各レプリカグループにおける各第2のノードに対して、ストレージポリシーに従って、当該第2のノードがメタデータサーバによって当該レプリカグループからキックされた後、処理対象ノードとなり、メタデータサーバには、当該第2のノード(処理対象ノード)のレプリカリスト(第1のレプリカリスト)が依然として記憶されている。
本開示の実施例では、ステップ11Aにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信する。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Aにおいて、当該処理対象ノード(レプリカ処理ノード)は、メタデータサーバに該当ノードにおける第1のレプリカリストを問い合わせ、第1のレプリカリストは、メタデータサーバに記憶されている当該処理対象ノード(レプリカ処理ノード)のレプリカリストである。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Aにおいて、当該レプリカ処理ノードは、メタデータサーバに当該処理対象ノードにおける第1のレプリカリストを問い合わせ、第1のレプリカリストは、メタデータサーバに記憶されている当該処理対象ノードのレプリカリストである。
ステップ11B、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードの第1のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第1のレプリカリストを受信する。
本開示の実施例では、ステップ11Bにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードの第1のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第1のレプリカリストを受信する。いくつかの実施例では、第1のレプリカリストは、少なくとも一つのレプリカを含み、いくつかの実施例では、第1のレプリカリストにおけるレプリカの数は0である。第1のレプリカリストにおけるレプリカの数は、具体的は、実際の状況に応じて決定されるが、本開示の実施例はこれを限定しない。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Bにおいて、当該処理対象ノード(レプリカ処理ノード)は、当該処理対象ノードの第1のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第1のレプリカリストを受信する。
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Bにおいて、当該レプリカ処理ノードは、当該処理対象ノードの第1のレプリカリストの取得要求に基づいてメタデータサーバによってリターンされた第1のレプリカリストを受信する。
ステップ11C、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと取得された第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。
本開示の実施例では、ステップ11Cにおいて、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードは、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカである。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Cにおいて、当該処理対象ノード(レプリカ処理ノード)は、予め記憶されている第2のレプリカリストにおけるレプリカとメタデータサーバから取得された第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカを決定する。言い換えれば、当該処理対象ノード(レプリカ処理ノード)は、自身に記憶されている第2のレプリカリストにおけるレプリカと、取得されたメタデータサーバに記憶されている当該処理対象ノード(レプリカ処理ノード)の第1のレプリカリストにおけるレプリカを比較することによって、第2のレプリカリストにはあるが、第1のレプリカリストにはないレプリカを決定し、第2のレプリカリストにはあるが、第1のレプリカリストにはないレプリカをクリーンアップ対象レプリカとして決定する。
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ11Cにおいて、当該レプリカ処理ノードは、メタデータサーバに記憶されている当該処理対象ノードの第1のレプリカリストを取得した後、さらに、当該処理対象ノードに記憶されている第2のレプリカリストを取得し、その後、当該処理対象ノードに記憶されている第2のレプリカリストにおけるレプリカと、メタデータサーバに記憶されている当該処理対象ノードの第1のレプリカリストにおけるレプリカとに基づいて、クリーンアップ対象レプリカを決定する。
例えば、第1のレプリカリストは{ S2,S3,…,Sn}であり、その中、Snはレプリカを表示し、第2のレプリカリストは{ S1,S2,S3,…,Sn}であり、比較により、S1は第2のレプリカリストにはあるが、第1のレプリカリストにはないレプリカであり、すなわちS1はクリーンアップ対象レプリカであることが分かる。
ステップ12、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。
本開示の実施例では、ステップ12において、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。その中、当該レプリカ構成情報は、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含む。なお、本開示の実施例では、各レプリカグループに対して、当該レプリカグループの第1のノード及び各第2のノードには、いずれも当該レプリカグループのレプリカ構成情報が記憶される。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ12において、当該処理対象ノード(レプリカ処理ノード)は、当該処理対象ノード(レプリカ処理ノード)に対応するレプリカグループのレプリカ構成情報を取得する。
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ12において、当該レプリカ処理ノードが当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得する。
図3は、本開示の実施例におけるステップ12の具体的な実施方式のフローチャートである。いくつかの実施例では、図3に示すように、ステップ12は、以下のようなステップを含む。
ステップ12A、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信する。
ステップ12B、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが、当該処理対象ノードに対応するレプリカグループの第1のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ12Aにおいて、当該処理対象ノード(レプリカ処理ノード)は、決定されたクリーンアップ対象レプリカに基づいて、対応するレプリカグループの第1のノードにレプリカ構成情報取得要求を送信し、ステップ12Bにおいて、当該処理対象ノード(レプリカ処理ノード)は、当該対応するレプリカグループの第1のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ12Aにおいて、決定されたクリーンアップ対象レプリカに基づいて、当該処理対象ノードによって当該処理対象ノードに対応するレプリカグループの第1のノードにレプリカ構成情報取得要求を送信し、ステップ12Bにおいて、当該レプリカ処理ノードが、当該処理対象ノードに対応するレプリカグループの第1のノードがレプリカ構成情報取得要求に基づいてリターンされたレプリカ構成情報を受信する。
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、ステップ12Bの前に、ステップ12A1〜ステップ12A3をさらに含み、すなわち各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループの第1のノードがレプリカ構成情報取得要求に基づいてレプリカ構成情報をリターンするステップは、以下のようなステップを含む。
ステップ12A1、当該レプリカグループの第1のノードが空ログを当該レプリカグループの少なくとも一つの第2のノードに送信する。
ステップ12A1において、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループの第1のノードは、レプリカ処理ノードによって送信されたレプリカ構成情報取得要求を受信した後、レプリカ構成情報取得要求における空ログを当該レプリカグループの少なくとも一つの第2のノードに同期に送信し、空ログはRaft空ログである。
ステップ12A2、当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードがレプリカ処理ノードにレプリカ構成情報をリターンする。
ステップ12A2において、各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの少なくとも一つの第2のノードは、空ログを受信した後、空ログが受信された各第2のノードは、当該レプリカグループの第1のノードに同期空ログ確認情報をそれぞれ返信し、当該レプリカグループの第1のノードが少なくとも予め設定された数の第2のノードによってリターンされた同期空ログ確認情報を受信する場合、第2のノードの大半が当該空ログを受信することを示し、当該レプリカグループが正常であることを示すため、当該レプリカグループの第1のノードは、レプリカ処理ノードに当該レプリカグループのレプリカ構成情報をリターンすることができる。
各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第1のノードに空ログに書き込み、当該レプリカグループの第1のノードは、空ログを当該レプリカグループにおける各第2のノードに同期することによって、空ログが当該レプリカグループにおける第1のノード及び第2のノードに提出可能な数が予め設定された数以上であると判断された場合、当該レプリカグループが正常であることを示し、すなわち、空ログを書き込む方式によってレプリカグループが正常であるか否かを検出する。したがって、当該レプリカグループの第1のノードが当該レプリカグループの大半(少なくとも予め設定された数)の同期空ログ確認情報を受信した後、レプリカ構成情報をレプリカ処理ノードにリターンする。
ステップ12A2において、各レプリカグループに対して、前記予め設定された数は、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上である、上記の「少なくとも予め設定された数」は、予め設定された数以上であることを指すことは容易に理解することができる。
なお、各レプリカグループに対して、当該レプリカグループの第1のノードが空ログを受信した後、当該第1のノード自身は、同期空ログ確認情報を生成し、当該レプリカグループの各第2のノードは、空ログを受信した後、当該レプリカグループの各第2のノードも同期空ログ確認情報を生成する。当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合(当該第1のノードが同期空ログ確認情報を既に生成した場合、当該少なくとも予め設定された数の同期空ログ確認情報には、当該第1のノードによって生成された同期空ログ確認情報を含む)、レプリカ処理ノードにレプリカ構成情報をリターンする。
ステップ13、各レプリカグループに対応する処理対象ノードに対して、レプリカ処理ノードが当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除する。
いくつかの実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ13において、当該処理対象ノード(レプリカ処理ノード)は、当該処理対象ノード(レプリカ処理ノード)に対応するレプリカグループのレプリカ構成情報に当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノード(レプリカ処理ノード)は、当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノード(レプリカ処理ノード)におけるクリーンアップ対象レプリカを削除する。
いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器又はシステムであり、ガーベッジクリーニングがトリガされた後、各レプリカグループに対応する処理対象ノードに対して、ステップ13において、当該レプリカ処理ノードは、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報に当該処理対象ノードにおけるクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該レプリカ処理ノードは、当該処理対象ノードにおけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードにおけるクリーンアップ対象レプリカを削除する。
図4は、本開示の実施例により提供されるレプリカ処理方法の応用概略図である。図4は、Raftプロトコルに基づく分散ストレージシステムが一つのレプリカグループを含む場合を示し、図4に示すように、分散ストレージシステムは、メタデータサーバAと、レプリカグループBと、レプリカ処理ノードとを含み、その中、レプリカグループBは、第1のノード2と、第2のノード1と、第2のノード3と、第2のノード4とを含み、第2のノード1に位置するレプリカは、ストレージポリシーに従ってレプリカグループBからキックされ、当該第2のノード1は、処理対象ノード1となり、図4は、レプリカ処理ノードがレプリカグループBに対応する処理対象ノード1である場合を示し、レプリカ処理ノードがレプリカグループBに対応する処理対象ノード1であることを例として、ガーベッジクリーニングがトリガされた後、処理対象ノード1は、まず、メタデータサーバAは、メタデータサーバAに記憶されている該当ノード(処理対象ノード1)に対応する第1のレプリカリストを問い合わせ、処理対象ノード1が第1のレプリカリストを受信した後、自身に記憶されている第2のレプリカリストにおけるレプリカを、第1のレプリカリストにおけるレプリカと比較し、該当ノード(処理対象ノード1)におけるクリーンアップ対象レプリカを決定し、その後、対応するレプリカグループBの第1のノード2に一つの空ログを書き込み、第1のノード2は、空ログを第2のノード3と第2のノード4に同期に送信し、第2のノード3は、第1のノード2に同期空ログ確認情報を返信し、第2のノード4は、第1のノード2に同期空ログ確認情報を返信し、その後、第1のノード2は、処理対象ノード1にレプリカグループBのレプリカ構成情報を返信し、処理対象ノード1は、レプリカ構成情報にクリーンアップ対象レプリカが含まれているか否かを判断し、含まれている場合、当該クリーンアップ対象レプリカを削除しなく、そうでなければ、当該クリーンアップ対象レプリカを削除する。
本開示の実施例により提供されるレプリカ処理方法では、分散ストレージシステム内のレプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを決定した後、クリーンアップ対象レプリカを即時削除することではなく、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得して、当該レプリカ構成情報にクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該クリーンアップ対象レプリカを削除することは、レプリカグループのデータ安全を破壊することになることを示すため、当該処理対象ノードにおけるクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードにおけるクリーンアップ対象レプリカを安全に削除できることを示すため、当該処理対象ノードにおけるクリーンアップ対象レプリカを削除する。
本開示の実施例により提供されるレプリカ処理方法は、レプリカグループのデータ安全を確保することを前提としてクリーンアップ対象レプリカ(ガベージ)をクリーンアップし、メタデータサーバを盲目的に信頼してレプリカが誤削除される状況を効果的に回避することによって、レプリカグループの利用不可状況とデータ紛失状況との発生を効果的に防止する。
図5は、本開示の実施例により提供されるレプリカ処理ノードの概略構成図である。図5に示すように、当該レプリカ処理ノードは、上記のレプリカ処理方法を実現し、当該レプリカ処理ノードは、決定モジュール21と、取得モジュール22と、判断モジュール23と、クリーンアップモジュール24とを含む。
その中、決定モジュール21は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該レプリカグループは、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含む。
取得モジュール22は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得し、前記レプリカ構成情報は、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含む。
判断モジュール23は、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断しる。
クリーンアップモジュール24は、各レプリカグループに対応する処理対象ノードに対して、判断モジュール23が当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュール23が当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除しる。
いくつかの実施例では、決定モジュール21は、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが、前記第1のレプリカリストにはないレプリカである。
いくつかの実施例では、取得モジュール22は、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする。
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、各レプリカグループに対応する各第2のノードに対して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることは、当該レプリカグループの第1のノードが前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信し、当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードは、前記取得モジュール22に前記レプリカ構成情報をリターンすることを含む。
本開示の実施例では、各レプリカグループにおける各第2のノードに対して、ストレージポリシーに従って、当該第2のノードは、当該レプリカグループにキックされて処理対象ノードとなる。
本開示の実施例では、各レプリカグループに対応する処理対象ノードに対して、当該レプリカ処理ノードは、当該処理対象ノードであってもよい。いくつかの実施例では、当該レプリカ処理ノードは、レプリカグループに対応する処理対象ノードにおけるクリーンアップ対象レプリカを処理するための装置、機器、サーバ又はシステムなどであってもよい。
また、本開示の実施例により提供されるレプリカ処理ノードは、具体的には、上記のレプリカ処理方法を実現し、具体的には、上記のレプリカ処理方法の説明を参照することができ、ここでは詳細に説明しない。
図6は、本開示の実施例により提供される分散ストレージシステムの概略構成図である。図6に示すように、当該分散ストレージシステムは、上記のレプリカ処理方法を実現し、当該分散ストレージシステムは、メタデータサーバ31と、少なくとも一つのレプリカグループ32と、処理対象ノード323と、レプリカ処理ノード33とを含み、各レプリカグループ32は、プライマリレプリカを記憶するための第1のノード321と、セカンダリレプリカを記憶するための少なくとも一つの第2のノード322と、を含む。
各レプリカグループ32に対応する処理対象ノード323に対して、ガーベッジクリーニングがトリガされた後、当該レプリカ処理ノード33は、以下のステップ41〜ステップ43を実行する。
ステップ41、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定する。
ステップ42、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得し、前記レプリカ構成情報は、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含む。
ステップ43、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除する。
いくつかの実施例では、レプリカ処理ノード33は、具体的には、メタデータサーバ31に当該処理対象ノード323の第1のレプリカリストの取得要求を送信し、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバ31によってリターンされた第1のレプリカリストを受信し、当該処理対象ノード323によって記憶されている第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノード323に対応するクリーンアップ対象レプリカを決定し、当該処理対象ノード323に対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが、前記第1のレプリカリストにはないレプリカである。
いくつかの実施例では、レプリカ処理ノード33は、具体的には、決定された当該処理対象ノード323に対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノード323に対応するレプリカグループ32の第1のノード321にレプリカ構成情報取得要求を送信し、当該処理対象ノード323に対応するレプリカグループ32の第1のノード321は、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノード33に前記レプリカ構成情報をリターンする。
いくつかの実施例では、レプリカ構成情報取得要求は、空ログを含み、各レプリカグループに対応する処理対象ノード323に対して、当該処理対象ノード323に対応するレプリカグループ32の第1のノード321は、具体的には、前記空ログを当該レプリカグループ32の少なくとも一つの第2のノード322に送信し、少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノード33に前記レプリカ構成情報をリターンする。
本開示の実施例では、分散ストレージシステムは、分散型コンセンサスプロトコルRaftに基づく分散ストレージシステムである。
図7は、本開示の実施例により提供される別の分散ストレージシステムの概略構成図である。いくつかの実施例では、図7に示すように、各レプリカグループ32に対応する処理対象ノード323に対して、レプリカ処理ノード33は、当該処理対象ノード323である。
なお、図6及び図7は、いずれも複数の第2のノードを含む場合の一つのレプリカグループを示す。
また、本開示の実施例により提供される分散ストレージシステムでは、ガーベッジクリーニングがトリガされた後、レプリカ処理ノードは、上記のレプリカ処理方法を実現し、具体的には、上記のレプリカ処理方法の説明を参照することができ、ここでは詳細に説明しない。
本開示の実施例は、サーバをさらに提供し、当該サーバは、一又は複数のプロセッサと、一又は複数のプログラムが記憶されている記憶装置と、を備え、上記の一又は複数のプログラムが上記の一又は複数のプロセッサにより実行される場合に、上記の一又は複数のプロセッサは、上記のレプリカ処理方法を実現する。
本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、当該コンピュータプログラムが実行される場合に、上記のレプリカ処理方法を実現する。
当業者であれば、上記で開示された方法のすべて又はいくつかのステップ、システム、装置における機能モジュール/ユニットは、ソフトウェア、ファームウェア、ハードウェア、及び適切な組み合わせとして実施されてもよいことを理解されたい。ハードウェア実施形態において、上記の説明で提出した機能モジュール/ユニットの間の区分は、必ずしも物理コンポーネントの区分に対応するものではなく、例えば、1つの物理コンポーネントは、複数の機能を有してもよく、または1つの機能又はステップは、複数の物理コンポーネントによって連携して実行されてもよい。いくつかの物理コンポーネント又はすべての物理コンポーネントは、中央処理装置、デジタル信号プロセッサ、又はマイクロプロセッサなどのプロセッサによって実行されるソフトウェアとして実施されてもよく、又はハードウェアとして実施されてもよく、又は特定用途向け集積回路のような集積回路に実施されてもよい。このようなソフトウェアは、コンピュータ読み取り可能な媒体に配置されてもよく、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体(又は非一時的な媒体)と通信媒体(又は一時的な媒体)を含むことができる。当業者の周知の通り、用語であるコンピュータ記憶媒体は、情報(例えばコンピュータ読み取り可能なコマンド、データ構造、プログラムモジュール、又は他のデータ)を記憶するための任意の方法又は技術において実施される揮発性と非揮発性、リムーバブル媒体と非リムーバブル媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又は他の光ディスクメモリ、マグネットボックス、デープ、ディスクストレージ又は他の磁気メモリ装置、又は所望の情報を記憶し、コンピュータによってアクセスされることができる他の任意の媒体を含むことができるが、これらに限定されない。また、当業者が周知であることは、通信媒体は、通常、コンピュータ読み取り可能な媒体、データ構造、プログラムモジュール、又は例えば搬送波や他の伝送方式などの変調データ信号における他のデータを含み、且つ任意の情報配信媒体を含むことができる。
本明細書では、既に例示的な実施例が開示され、また具体的な用語が使用されているが、一般的な説明的な意味として解釈される ことのみに用いられ、且つ限定の目的には用いられることがない。いくつかの実施例において、当業者にとって明らかなことは、他に明確に指摘しない限り、特定の実施例と組み合わせて説明した特徴、特性及び/又は要素を単独に使用することができ、または他の実施例と組み合わせて説明した特徴、特性及び/又は要素と組み合わせて使用することができる。よって、当業者は、添付された請求項によって開示された本願の範囲を逸脱することなく、様々な形式および詳細な変更を行うことができる。

Claims (16)

  1. 各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該レプリカグループが、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含むステップと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含むステップと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、
    を含むRaftプロトコルに基づくレプリカ処理方法。
  2. 前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップが、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信するステップと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信するステップと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップであって、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカであるステップと、
    を含む請求項1に記載のレプリカ処理方法。
  3. 前記各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップが、
    各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにするステップを含む請求項1に記載のレプリカ処理方法。
  4. 前記レプリカ構成情報取得要求が、空ログを含み、
    各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするステップが、
    当該レプリカグループの第1のノードが前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信するステップと、
    当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードが前記レプリカ構成情報をリターンするステップであって、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上であるステップと、
    を含む請求項3に記載のレプリカ処理方法。
  5. 各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するための決定モジュールであって、当該レプリカグループが、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含む決定モジュールと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するための取得モジュールであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含む取得モジュールと、
    各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断するための判断モジュールと、
    各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていると判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、各レプリカグループに対応する処理対象ノードに対して、判断モジュールが当該処理対象ノードに対応するレプリカ構成情報に当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれていないと判断した場合、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するためのクリーンアップモジュールと、
    を含むレプリカ処理ノード。
  6. 前記決定モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信し、各レプリカグループに対応する処理対象ノードに対して、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカである請求項5に記載のレプリカ処理ノード。
  7. 前記取得モジュールが、具体的には、各レプリカグループに対応する処理対象ノードに対して、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該レプリカグループの第1のノードにレプリカ構成情報取得要求を送信して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンするようにする請求項5に記載のレプリカ処理ノード。
  8. 前記レプリカ構成情報取得要求が、空ログを含み、
    各レプリカグループに対応する処理対象ノードに対して、当該レプリカグループの第1のノードが前記レプリカ構成情報取得要求に基づいて前記レプリカ構成情報をリターンすることが、
    当該レプリカグループの第1のノードが前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信し、
    当該レプリカグループの第1のノードが少なくとも予め設定された数の同期空ログ確認情報を受信した場合、当該レプリカグループの第1のノードが前記取得モジュールに前記レプリカ構成情報をリターンすることを含み、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上である請求項7に記載のレプリカ処理ノード。
  9. メタデータサーバと、少なくとも一つのレプリカグループと、レプリカ処理ノードとを含み、各前記レプリカグループが、プライマリレプリカを記憶するための第1のノードと、セカンダリレプリカを記憶するための少なくとも一つの第2のノードとを含み、
    各レプリカグループに対応する処理対象ノードに対して、ガーベッジクリーニングがトリガされた後、前記レプリカ処理ノードが、
    当該処理対象ノードに対応するクリーンアップ対象レプリカを決定するステップと、
    当該処理対象ノードに対応するレプリカグループのレプリカ構成情報を取得するステップであって、前記レプリカ構成情報が、当該レプリカグループの第1のノードによって記憶されるプライマリレプリカと、当該レプリカグループの少なくとも一つの第2のノードによって記憶されるセカンダリレプリカとを含むステップと、
    当該処理対象ノードに対応するレプリカ構成情報に、当該処理対象ノードに対応するクリーンアップ対象レプリカが含まれているか否かを判断し、そうであれば、当該処理対象ノードに対応するクリーンアップ対象レプリカを保留し、そうでなければ、当該処理対象ノードに対応するクリーンアップ対象レプリカを削除するステップと、
    を実行する分散ストレージシステム。
  10. 前記レプリカ処理ノードが、具体的には、当該処理対象ノードの第1のレプリカリストの取得要求をメタデータサーバに送信し、当該処理対象ノードの第1のレプリカリストの取得要求に基づいて前記メタデータサーバによってリターンされた第1のレプリカリストを受信し、当該処理対象ノードによって記憶された第2のレプリカリストにおけるレプリカと前記第1のレプリカリストにおけるレプリカとに基づいて、当該処理対象ノードに対応するクリーンアップ対象レプリカを決定し、当該処理対象ノードに対応するクリーンアップ対象レプリカは、前記第2のレプリカリストにはあるが前記第1のレプリカリストにはないレプリカである請求項9に記載の分散ストレージシステム。
  11. 前記レプリカ処理ノードが、具体的には、決定された当該処理対象ノードに対応するクリーンアップ対象レプリカに基づいて、当該処理対象ノードに対応するレプリカグループの第1のノードにレプリカ構成情報取得要求を送信し、
    当該処理対象ノードに対応するレプリカグループの第1のノードが、前記レプリカ構成情報取得要求に基づいてレプリカ処理ノードに前記レプリカ構成情報をリターンする請求項9に記載の分散ストレージシステム。
  12. 前記レプリカ構成情報取得要求が、空ログを含み、
    当該処理対象ノードに対応するレプリカグループの第1のノードが、具体的には、
    前記空ログを当該レプリカグループの少なくとも一つの第2のノードに送信し、
    少なくとも予め設定された数の同期空ログ確認情報を受信した場合、前記レプリカ処理ノードに前記レプリカ構成情報をリターンし、前記予め設定された数が、当該レプリカグループの第1のノード及び第2のノードの合計数の半分以上である請求項11に記載の分散ストレージシステム。
  13. 前記分散ストレージシステムは、分散型コンセンサスプロトコルRaftに基づく分散ストレージシステムである請求項9から12のいずれか一項に記載の分散ストレージシステム。
  14. 各レプリカグループに対応する処理対象ノードに対して、前記レプリカ処理ノードが当該処理対象ノードである請求項9から12のいずれか一項に記載の分散ストレージシステム。
  15. 一又は複数のプロセッサと、
    一又は複数のプログラムが記憶されている記憶装置と、を備え、
    前記一又は複数のプログラムが前記一又は複数のプロセッサにより実行される場合に、前記一又は複数のプロセッサが、請求項1から4のいずれか一項に記載のレプリカ処理方法を実現するサーバ。
  16. コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
    前記プログラムが実行される場合に、請求項1から4のいずれか一項に記載のレプリカ処理方法を実現するコンピュータ読み取り可能な記憶媒体。
JP2020069789A 2019-04-30 2020-04-08 レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体 Active JP6940645B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910363193.X 2019-04-30
CN201910363193.XA CN110096237B (zh) 2019-04-30 2019-04-30 副本处理方法及节点、存储系统、服务器、可读介质

Publications (2)

Publication Number Publication Date
JP2020184325A true JP2020184325A (ja) 2020-11-12
JP6940645B2 JP6940645B2 (ja) 2021-09-29

Family

ID=67446681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020069789A Active JP6940645B2 (ja) 2019-04-30 2020-04-08 レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体

Country Status (4)

Country Link
US (1) US11119688B2 (ja)
JP (1) JP6940645B2 (ja)
KR (1) KR102289192B1 (ja)
CN (1) CN110096237B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112749178A (zh) * 2019-10-31 2021-05-04 华为技术有限公司 一种保证数据一致性的方法及相关设备
CN113656501B (zh) * 2021-08-18 2024-01-12 北京百度网讯科技有限公司 一种数据读取方法、装置、设备以及存储介质
CN113806316B (zh) * 2021-09-15 2022-06-21 星环众志科技(北京)有限公司 一种文件同步方法、设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318921A (ja) * 2000-05-10 2001-11-16 Misawa Homes Co Ltd データベースシステム及び端末装置
JP4153409B2 (ja) * 2003-11-28 2008-09-24 株式会社エクシング コンテンツ配信システム
US9355100B2 (en) * 2008-09-22 2016-05-31 Qualcomm Incorporated Methods and apparatus for reconciling versions of media context lists in communications networks
US11086898B2 (en) * 2013-03-13 2021-08-10 Amazon Technologies, Inc. Token-based admission control for replicated writes
US9135164B2 (en) * 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US9396202B1 (en) * 2013-12-27 2016-07-19 Google Inc. Weakly synchronized garbage collection and compaction for aggregated, replicated object stores
KR101592860B1 (ko) * 2015-01-23 2016-02-12 경북대학교 산학협력단 사물인터넷 기기를 이용한 분산형 데이터 저장 시스템 및 그 운영방법
US10884869B2 (en) * 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US9836366B2 (en) * 2015-10-27 2017-12-05 Netapp, Inc. Third vote consensus in a cluster using shared storage devices
CN105550229B (zh) * 2015-12-07 2019-05-03 北京奇虎科技有限公司 分布式存储系统数据修复的方法和装置
US10229009B2 (en) * 2015-12-16 2019-03-12 Netapp, Inc. Optimized file system layout for distributed consensus protocol
US10180812B2 (en) * 2016-06-16 2019-01-15 Sap Se Consensus protocol enhancements for supporting flexible durability options
US10402115B2 (en) * 2016-11-29 2019-09-03 Sap, Se State machine abstraction for log-based consensus protocols
US10416905B2 (en) * 2017-02-09 2019-09-17 Hewlett Packard Enterprise Development Lp Modifying membership of replication groups via journal operations
CN108415986B (zh) * 2018-02-11 2020-10-30 杭州朗和科技有限公司 一种数据处理方法、装置、系统、介质和计算设备
CN109347655B (zh) * 2018-09-11 2022-03-01 上海天旦网络科技发展有限公司 基于网络数据的故障恢复系统和方法及存储介质
EP3867759A1 (en) * 2018-10-15 2021-08-25 NetApp, Inc. Improving available storage space in a system with varying data redundancy schemes

Also Published As

Publication number Publication date
KR20200127122A (ko) 2020-11-10
CN110096237A (zh) 2019-08-06
US20200348849A1 (en) 2020-11-05
KR102289192B1 (ko) 2021-08-12
CN110096237B (zh) 2022-02-08
JP6940645B2 (ja) 2021-09-29
US11119688B2 (en) 2021-09-14

Similar Documents

Publication Publication Date Title
RU2686594C2 (ru) Файловая служба, использующая интерфейс совместного файлового доступа и передачи состояния представления
US9984140B1 (en) Lease based leader election system
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
JP6940645B2 (ja) レプリカ処理方法、ノード、ストレージシステム、サーバ及び読み取り可能な記憶媒体
US8346719B2 (en) Multi-node replication systems, devices and methods
EP2695083B1 (en) Cluster unique identifier
KR101923245B1 (ko) 투명한 장애 극복 기법
US9239767B2 (en) Selective database replication
US10567542B2 (en) Method for state based snapshot difference with restart capability
US20110225121A1 (en) System for maintaining a distributed database using constraints
KR101150146B1 (ko) 클라이언트가 서버와 상호작용하는 컴퓨터 구현 방법, 서버가 클라이언트와 상호작용하는 컴퓨터 구현 방법, 오브젝트를 공유하는 분산 파일 시스템 및 컴퓨터 판독가능 기록 매체
CN109547512B (zh) 一种基于NoSQL的分布式Session管理的方法及装置
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
US9367261B2 (en) Computer system, data management method and data management program
US10609123B2 (en) Hybrid quorum policies for durable consensus in distributed systems
CA2847597A1 (en) Clustered client failover
JP2014524078A (ja) 分散構成管理のための方法および装置
CN109407975B (zh) 写数据方法与计算节点以及分布式存储系统
JP2016521427A (ja) ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム
US20110225120A1 (en) System for maintaining a distributed database using leases
CN106325768B (zh) 一种双机存储系统及方法
JP6196389B2 (ja) 分散型ディザスタリカバリファイル同期サーバシステム
WO2021082465A1 (zh) 一种保证数据一致性的方法及相关设备
US11449241B2 (en) Customizable lock management for distributed resources
KR20230124099A (ko) 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을보장하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210902

R150 Certificate of patent or registration of utility model

Ref document number: 6940645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150