JP7442466B2 - データ検証の方法および装置、ならびに記憶媒体 - Google Patents

データ検証の方法および装置、ならびに記憶媒体 Download PDF

Info

Publication number
JP7442466B2
JP7442466B2 JP2020572791A JP2020572791A JP7442466B2 JP 7442466 B2 JP7442466 B2 JP 7442466B2 JP 2020572791 A JP2020572791 A JP 2020572791A JP 2020572791 A JP2020572791 A JP 2020572791A JP 7442466 B2 JP7442466 B2 JP 7442466B2
Authority
JP
Japan
Prior art keywords
data block
verification
data
storage node
verified
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.)
Active
Application number
JP2020572791A
Other languages
English (en)
Other versions
JP2021529392A (ja
Inventor
ピンファン・ソン
ユエシェン・グ
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2021529392A publication Critical patent/JP2021529392A/ja
Application granted granted Critical
Publication of JP7442466B2 publication Critical patent/JP7442466B2/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • 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/0671In-line storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本出願は、2018年6月28日に出願され、「DATA VERIFICATION METHOD AND APPARATUS,AND STORAGE MEDIUM」と題された中国特許出願第201810687959.5号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
本発明は、コンピュータの分野に関し、より詳細には、データ検証の方法および装置、ならびに記憶媒体に関する。
大規模な分散ストレージシステムでは、入出力(IO)リンクが長く、ノードの数が多いため、単一のノードでのデータ破損の可能性が大幅に増加する。したがって、システムに記憶されているデータブロックの整合性を検証し、データブロックの複数のレプリカに整合性があるかどうかをチェックすることが非常に必要になる。しかしながら、データ検証自体は、分散ストレージシステムにおけるネットワークおよびストレージノードの追加の帯域幅リソースを占有する必要がある。分散ストレージシステムのユーザは、多くの場合、低遅延および高スループットを強く求めている。その結果、データ整合性検証を迅速に完了することができ、同時にユーザのフロントエンドでの読み取り/書き込み操作への影響を最小限に抑えるデータ検証の解決策が望まれる。
関連技術には、主に以下の2つのデータ検証の解決策がある。解決策I:検証プログラムは、すべてのレプリカが位置するストレージノードに、指定されたデータブロックの検証要求を送信し、ストレージノードは、レプリカ全体のデータを読み取り、CRC32/MD5などの検証アルゴリズムを使用して、レプリカデータ全体のチェックコードを計算し、それらを検証プログラムに返し、次いで、検証プログラムは、すべてのストレージノードによって返されたチェックコードを比較し、それらが同じであるかどうかを確認し、それらが異なる場合、複数のレプリカのデータは整合性がない。解決策II:検証プログラムは、データブロックにおいて2次スライスを実行し、検証プログラムは、チェックされていないスライスを選択し、すべてのレプリカが位置するストレージノードに、指定されたデータブロックの指定されたスライスの検証要求を送信し、ストレージノードは、レプリカの指定されたスライスのデータを読み取り、CRC32/MD5などの検証アルゴリズムを使用して、スライスデータのチェックコードを計算し、それらを検証プログラムに返し、検証プログラムは、すべてのストレージノードによって返されたチェックコードを比較し、それらが同じであるかどうかを確認し、それらが異なる場合、スライスは、再試行キューに加わり、さらに再試行される。最大再試行数を超えた後も、すべてのストレージノードによって返されるチェックコードが依然として異なる場合、複数のレプリカのデータは整合性がない。
上述の解決策Iでは、主に読み取り専用データの検証に使用される。ユーザがデータを継続的に更新する場合、ネットワーク上のデータ送信遅延のために、データブロックの複数のレプリカが位置するストレージノードの一部は、書き込み要求を受信していることがあり、一方で、一部は書き込み要求を受信していないことがある。したがって、短期間内に不整合が見つかるのが一般的である。この時点で、データ検証は、不正確な結論につながり得る不整合な結果をもたらし、したがって、誤検知を引き起こすことがある。加えて、この解決策は、検証要求ごとにレプリカ全体のデータを読み取り、これは、ストレージノードの多数のディスク帯域幅リソースを占有し、これによって、ユーザの通常の読み取り要求の性能に大きな不具合が発生する。
上述の解決策IIは、2次スライスおよび再試行を採用しており、これは、ユーザへの検証要求によって引き起こされる読み取りの不具合を低減し、動的なデータ変更によって引き起こされる誤検知を減少させる。それにもかかわらず、データ検証は、依然として、検証中のストレージノードの特定のディスクおよびネットワーク帯域幅を占有する。したがって、ユーザの読み取り/書き込み要求は、検証中のストレージノードにアクセスする必要があるので、性能の低下の問題が依然として存在する。
そのため、関連技術では、データ検証プロセス中にユーザのフロントエンドでの読み取り/書き込み操作が影響を受け、性能が低下する。
前述の問題に関して、効果的な解決策は提案されていない。
本発明の実施形態は、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術の技術的問題を少なくとも解決するために、データ検証の方法および装置、ならびに記憶媒体を提供する。
本発明の実施形態の一態様によれば、データ検証方法が提供され、データ検証方法は、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定することであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定することと、検証対象のデータブロックを検証することと、を含む。
本発明の実施形態の別の態様によれば、データ検証装置がさらに提供され、データ検証装置は、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定するように構成された決定モジュールであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定モジュールと、検証対象のデータブロックを検証するように構成された検証モジュールと、を含む。
本発明の実施形態の別の態様によれば、プログラム命令を記憶する記憶媒体がさらに提供され、プログラム命令は、実行時に、記憶媒体が位置するデバイスを制御して、上記のうちのいずれか1つに従ってデータ検証方法を実行する。
本発明の実施形態の別の態様によれば、プログラムを実行するように構成されたプロセッサがさらに提供され、プログラムは、実行時に、上記のうちのいずれか1つに従ってデータ検証方法を実行する。
本発明の実施形態では、検証対象のデータブロックを有するストレージノードを使用することは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードの様式を含み、決定された検証対象のデータブロックが位置するストレージノードは、検証対象のデータブロックの検証中に、多数の検証要求がいくつかのストレージノードに集中し、一部のストレージノードに過大な負荷がかかるという問題を引き起こすのを防止する、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含み、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的を達成し、それによって、読み取り/書き込み性能の向上という技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術における技術的問題を解決する。
本明細書に記載される図面は、本発明のさらなる理解を容易にすることを意図しており、本出願の一部を構成する。本発明の例示的な実施形態およびその説明は、本発明を説明するために使用され、本発明に対する不適切な制限と見なされることは意図していない。図面は以下のとおりである。
データ検証方法を実施するように構成されたコンピュータ端末(またはモバイルデバイス)のハードウェア構造のブロック図を示す図である。 本出願の実施形態1に従って提供されるデータ検証方法のフローチャートを示す図である。 本出願の任意選択的な実施形態に従って提供される単一ファイルの処理フローの概略図を示す図である。 本発明の一実施形態に従って提供されるデータ検証装置の構造ブロック図を示す図である。 本発明の一実施形態によるコンピュータ端末の構造ブロック図を示す図である。
当業者が本発明の技術的解決策をよりよく理解することを可能にするために、本発明の実施形態における技術的解決策について、本発明の実施形態における添付図面を参照して、以下に明確かつ完全に説明する。明らかに、記載される実施形態は、本発明の実施形態のすべてではなく一部にすぎない。創造的努力なしに本発明の実施形態に基づいて当業者によって取得可能なすべての他の実施形態は、本発明の保護範囲内に入るものとする。
本発明の明細書、特許請求の範囲、および前述の図面における「第1」および「第2」を含む用語は、類似の対象を区別するために使用され、必ずしも特定の順番または順序を説明するために使用されるのではないことに留意されたい。このように使用されるデータは、適切な状況下で交換可能であり、したがって、本明細書に記載される本発明の実施形態は、本明細書に例示または記載されるもの以外の順番で実施できることを理解されたい。加えて、「含む」および「有する」という用語、ならびにそれらの任意の変形は、非排他的な包括をカバーすることを意図している。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、またはデバイスは、必ずしも明示的に列挙されたステップまたはユニットに制限されるものではなく、明示的に列挙されていないか、またはそのようなプロセス、方法、製品、もしくはデバイスに固有の他のステップまたはユニットを含んでもよい。
まず、本出願の実施形態の説明に現れる名詞または用語のいくつかは、次のように説明される。
分散ストレージシステム:全体として外部にストレージサービスを提供する、いくつかのノードで構成されるシステムである。これは、通常、分散アルゴリズムを使用して、高可用性および高性能を提供し、一部のノードの障害に耐えることができ、例えば、マスタ制御ノードおよびストレージノードを含むことができる。
マスタ制御ノード:分散ストレージシステムにおけるメタデータを管理するノードであり、「マスタノード」とも称される。
ストレージノード:アプリケーションデータを分散ストレージシステムに記憶するノードであり、概して、いくつかの記憶媒体で構成される。
データブロック:分散ストレージシステムでは、データ分散のバランスのために、ファイルは固定サイズに従っていくつかのブロックに分割される。各ブロックは、データブロックと称され、これは、元のファイルの連続データの一部に対応する。
レプリカ:分散ストレージシステムでは、データセキュリティのために、データブロックが複製され、より多くのコピーが作成され、異なるストレージノードに記憶され、各コピーはレプリカと称される。
分散ストレージシステムには多数のノードおよびファイル、ならびに大量のデータがあるため、システム内のすべてのファイルを効率的かつ迅速に検証するために、本出願によって提供される検証プロセスは、分散ストレージシステムにおけるファイルのリストを取得し、次いで、各ファイルの検証タスクを作成し、それをスレッドプールに追加し、最後に、すべての検証タスクを高い同時性レベルNで同時に処理する。
関連技術では、データ検証の解決策は、データ検証プロセス中のユーザフロントエンドの読み取り/書き込み性能に影響を与える。この問題に関して、本出願の実施形態は、以下で詳細に説明される対応する解決策を提供する。
実施形態1
本発明の実施形態によれば、データ検証の方法の実施形態がさらに提供される。添付の図面のフローチャートに示されているステップは、コンピュータ実行可能命令のセットなど、コンピュータシステムにおいて実行できることに留意されたい。フローチャートに論理的な順序が示されているが、場合によっては、本明細書に示されているか、または記載されているステップは、異なる順番で実行されてもよい。
データ検証プロセス中に、ストレージノードは、データブロックを読み取り、検証要求に従ってチェックコードを計算する。しかしながら、分散ストレージシステムにはより多くのストレージノードがあり、データ検証は、検証中のストレージノードの一定量のディスクおよびネットワーク帯域幅を占有する。本出願では、ストレージノードが負荷分散されて、同時に実行されるより多くの検証タスクがいくつかのストレージノードに過剰に集中し、これにより一部のストレージノードに過度の負荷がかかることを防止する。本出願は、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させる。加えて、複数の検証タスクが検証要求を送信するとき、グローバルトラフィック制御様式を使用して、単位時間あたりの各ストレージノードでの検証要求の数を特定の範囲内で制御することができることを確実にし、単位時間あたりの各ストレージノードでのデータ検証によって発生する追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にする。言い換えれば、単一のストレージノードの場合、グローバルトラフィック制御様式によって、すべての検証タスクによって送信される検証要求の総数を許容範囲内に制限することができ、単一のストレージノードに過度の負荷がかかる問題を効果的に回避することができる。負荷分散処理様式がない場合、ほとんどの検証タスクが同じストレージノードに同時にアクセスすることがあり、次いで、グローバルトラフィック制御様式が単一のストレージノードに使用される場合、すべての検証タスクが遅くなり、クラスタの全体的な検証速度が遅くなることに留意されたい。負荷分散処理様式では、複数の検証タスクが検証のためにストレージノードに過剰に集中する状況が発生しないため、異なる検証タスク間の競合が低減し、クラスタの全体的な検証速度が効果的に向上する。
さらに、本出願は、あまりにも多くの検証要求が通常の読み取り/書き込み間隔に影響を与える状況を回避するために、バックオフ様式で再試行を実施する。前述の様々な様式のうちの1つ以上を通じて、本出願は、同時性の高いデータ検証プロセスによるストレージノードのディスクおよびネットワークリソースの占有を減少させ、それによって、同時に検証タスクの迅速な完了を維持しながら、データ検証プロセスがユーザフロントエンドでの読み取り/書き込み操作に与える影響を効果的に低減する。したがって、データ検証は、ユーザの知らないうちに正常に実行することができる。
上記の考えに基づいて、本出願の実施形態1で提供される方法の実施形態は、モバイル端末、コンピュータ端末、または同様のコンピューティング装置で実行することができる。図1は、データ検証方法を実施するように構成されたコンピュータ端末(またはモバイルデバイス)のハードウェア構造のブロック図を示す。図1に示されるように、コンピュータ端末10(またはモバイルデバイス10)は、1つ以上の(図には102a、102b、…、102nとして示される)プロセッサ102(プロセッサ102は、MCUのようなマイクロプロセッサ、またはFPGAのようなプログラマブルロジックデバイスなどの処理装置を含み得る)、データを記憶するためのメモリ104、および通信機能のための送信モジュール106を含み得るが、これらに制限されない。加えて、これは、ディスプレイ、入力/出力インターフェース(Input/output interface)、ユニバーサルシリアルバス(USB)ポート(I/Oインターフェースのポートのうちの1つとして含めることができる)、ネットワークインターフェース、電源、および/またはカメラも含み得る。当業者であれば、図1に示される構造が単なる例示であり、上述の電子装置の構造を制限するものではないことを理解することができる。例えば、コンピュータ端末10はまた、図1に示されるものよりも多いもしくは少ない構成要素を含んでいてもよく、または図1に示されるものとは異なる構成を有していてもよい。
前述の1つ以上のプロセッサ102および/または他のデータ処理回路は、本明細書では、概して「データ処理回路」と称され得ることに留意されたい。データ処理回路は、全体的または部分的に、ソフトウェア、ハードウェア、ファームウェア、または任意の他の組み合わせとして具体化することができる。加えて、データ処理回路は、単一の独立した処理モジュールであってもよく、またはコンピュータ端末10(もしくはモバイルデバイス)における他の構成要素のうちのいずれか1つに完全にまたは部分的に統合されてもよい。本出願の実施形態に関与するとき、データ処理回路は、一種のプロセッサ(例えば、インターフェースに接続された可変抵抗端子経路の選択)として制御される。
メモリ104は、本発明の実施形態におけるデータ検証方法に対応するプログラム命令/データ記憶装置などのソフトウェアプログラムおよびアプリケーションソフトウェアのモジュールを記憶するために使用され得る。プロセッサ102は、メモリ104に記憶されたソフトウェアプログラムおよびモジュールを実行して、様々な機能アプリケーションおよびデータ処理を実行し、すなわち、前述のアプリケーションプログラムのデータ検証方法を達成する。メモリ104は、高速ランダムアクセスメモリを含んでもよく、また、1つ以上の磁気記憶装置、フラッシュメモリなどの不揮発性メモリ、または他の不揮発性ソリッドステートメモリも含んでもよい。いくつかの例では、メモリ104は、プロセッサ102に対してリモートに配設されたメモリをさらに含んでいてもよい。これらのリモートメモリは、ネットワークを介してコンピュータ端末10に接続され得る。前述のネットワークの例は、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびこれらの組み合わせを含むが、これらに制限されない。
送信装置106は、ネットワークを介して、データを受信または送信するために使用される。前述のネットワークの例は、コンピュータ端末10の通信プロバイダによって提供される無線ネットワークを含み得る。一例では、送信装置106は、インターネットとの通信が妥当なものになるように、基地局を介して他のネットワークデバイスに接続することができるネットワークアダプタ(ネットワークインターフェースコントローラ、NIC)を含む。一例では、送信装置106は、無線様式でインターネットと通信するために使用される無線周波数(RF)モジュールであってもよい。
ディスプレイは、例えば、タッチスクリーン液晶ディスプレイ(LCD)であってもよく、これによって、ユーザは、コンピュータ端末10(またはモバイルデバイス)のユーザインターフェースと対話することができる。
前述の動作環境において、本出願は、図2に示されるようなデータ検証方法を提供する。図2は、本出願の実施形態1に従って提供されるデータ検証方法のフローチャートを示し、図2に示されるように、この方法は、以下を含む。
ステップS202:分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定することであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む。
前述の負荷分散戦略を使用して、分散ストレージシステム内のデータブロックを記憶するストレージノードに検証タスクを分散させることができることに留意されたい。例えば、特定のストレージノードに多数の検証タスクがある(検証タスクの数が閾値に達した)場合、または検証タスクが複雑である(検証タスクの複雑さが閾値を超えている)場合、ストレージノードを過負荷と見なすことができる。データブロックを検証する必要があるとき、ストレージノードに対応すべきであることが判明した場合、この時点ではデータブロックは検証されていない。しかしながら、データブロックに対応するストレージノードでの検証タスクがほんのわずかであるとき、または検証タスクが単純であるとき、データブロックを検証することができる。このようにして、一部のストレージノードに過度の負荷がかからないように、分散ストレージシステムにおけるストレージノードでの検証タスクを分散させることができる。
前述の分散ストレージシステムにおける負荷分散戦略を満たすストレージノードは、分散ストレージシステムにおける複数のストレージノードの中で、そのように制限されないが、より少ない(検証タスクの数が閾値未満である)、またはより単純な(検証タスクの複雑さが閾値未満である)検証タスクを有するストレージノードと見なすことができることに留意されたい。
データセキュリティのために、データブロックを複製し、複数のレプリカを作成することができる。各レプリカは、異なるストレージノードにそれぞれ記憶され、すなわち、各レプリカがストレージノードに対応する。したがって、本出願の任意選択的な実施形態では、前述のステップS202は、複数のデータブロックから第1のデータブロックを検証対象のデータブロックとして選択するように具体化することができ、第1のデータブロックは、レプリカが位置するストレージノードのうち、第1のストレージノードの数が所定の数に達するデータブロックであり、第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである。すなわち、決定された検証対象のデータブロックのレプリカが位置しているストレージノードのうち、検証タスクが少ないストレージノードの数が所定の数に達する。
必要に応じて、前述の所定の数をあらかじめ設定しておいてもよいことに留意されたい。本発明の任意選択的な実施形態では、前述の所定の数は、データブロックのすべてのレプリカの数であり得る。すなわち、前述の検証対象のデータブロックのすべてのレプリカが位置するストレージノードでは、検証タスクが少ないと見なすことができる。
本出願の任意選択的な実施形態では、第1のデータブロックは、複数のデータブロックから、第1のマッピングテーブルに従って、検証対象のデータブロックとして選択され得、第1のマッピングテーブルは、ストレージノードのアドレスとストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する。
データブロックを事前に先入れ先出しキューに記憶することができることに留意されたい。例えば、Mをストレージノードでの検証タスクの上限(検証タスクの最大数)とし、テーブルAを第1のマッピングテーブルとし、テーブルAの「キー」値は、ストレージノードのアドレスを表し、「キー」値に対応する「値」値は、ストレージノードにアクセスする同時検証タスクの数を表す。前述のステップS202は、以下のように具体化することができる。先入れ先出しキューからデータブロックを抽出し、抽出されたデータブロックのレプリカのアドレス情報が使用され、各レプリカのアドレス情報について、テーブルAの「キー」値の列または行で対応するレプリカのアドレス情報を検索し、アドレス情報が存在する場合、レプリカのアドレス情報に対応するストレージノードでの検証タスクの数が前述のMに達しているかどうかを判定し、前述のデータブロックのすべてのレプリカが位置するストレージノードでの検証タスクの数がMに達していないとき、テーブルA内の対応するストレージノードに対応する「値」値を1つ増加させ、この時点でのデータブロックは、検証対象のデータブロックであり、データブロックのすべてのレプリカが位置するストレージノードのうち、少なくとも1つのストレージノードでの検証タスクの数がMに達したとき、データブロックを前述の先入れ先出しキューの最後に挿入し、再度データブロックを抽出して、(データブロックのすべてのレプリカが位置するストレージノードでの検証タスクの数がMに達していない)抽出されたデータブロックが負荷分散戦略を満たすデータブロックになるまで、前述の検索および判定プロセスを続行する。
ステップS204:検証対象のデータブロックを検証する。
本出願の前述の実施形態1に開示された解決策において、分散ストレージシステムにおける所定のファイルに含まれる複数のデータブロックの中から検証対象のデータブロックを決定した後、検証対象のデータブロックを検証する。決定された検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードであり、この解決策は、負荷分散戦略に基づいて、検証対象のデータブロックの決定を達成することができる。
検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードであることに容易に気付き、すなわち、決定された検証対象のデータブロックが位置するストレージノードが分散ストレージシステムにおける負荷分散戦略を満たし、これは、前述の決定された検証対象のデータブロックが、実際に負荷分散戦略に基づいて決定されていることも意味する。したがって、本出願の実施形態で提供される前述の解決策を通じて、検証対象のデータブロックを検証するプロセス中に、多数の検証要求がいくつかのストレージノードに集中し、一部のストレージノードに過度の負荷を引き起こすという問題を回避することができ、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的を達成し、それによって、読み取り/書き込み性能の向上という技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術における技術的問題を解決する。
動的データ変更によって引き起こされる誤検知を低減し、送信トラフィックを低減するために、本発明の任意選択的な実施形態では、前述のステップS204は、データブロックスライスを取得するために、検証対象のデータブロックに対して2次スライスを実行し、データブロックスライスを検証するように具体化することができる。
ストレージノードにおけるデータ検証によって引き起こされる追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にするために、本出願は任意選択的な実施形態を提供することに留意されたい。すなわち、データブロックスライスを検証することは、データブロックスライスが位置するストレージノードにおける検証要求の数が検証要求の上限に達していないかどうかを判定し、判定結果が、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないということである場合、データブロックスライスを検証するように具体化することができる。すなわち、データブロックスライスが位置するストレージノードでの検証要求の数を特定の範囲内に制御することによって、ストレージノードでのデータ検証によって引き起こされる追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にすることができ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的をさらに達成し、それによって、読み取り/書き込み性能の向上の技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術の技術的な問題をより良好に解決する。
検証要求の上限は、単位時間あたりストレージノードに送信することができる検証要求の最大数であり得るが、そのように制限されないことに留意されたい。検証要求の前述の上限は、ストレージノードの特性に基づいて事前設定されてもよく、または経験に応じて設定されてもよいが、そのように制限されない。
ストレージノードのディスクおよびネットワークリソースの占有をより良好に減少させるために、さらに、単位時間あたりのストレージノードでの検証要求の数を特定の範囲内になるように制御することができることを確実にすることができ、それによって、単位時間あたりのストレージノードでの検証要求の数を許容範囲内になるように制御することができることを確実にすることができる。本発明の任意選択的な実施形態では、前述のデータブロックスライスが位置するストレージノードでの検証要求の数は、所定の期間内にゼロにリセットされる。
前述の単位時間における「単位」は、1秒、3秒、5秒、50ミリ秒など、任意の時間とすることができるが、そのように制限されないことに留意されたい。任意選択的に、前述の所定の期間は、単位時間と見なすことができるが、それによっては制限されない。
本発明の任意選択的な実施形態では、第2のマッピングテーブルに基づいて、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを判定することができ、第2のマッピングテーブルは、ストレージノードのアドレスと、ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する。
ストレージノードのアドレスは、第2のマッピングテーブル内の「キー」値として使用することができ、ストレージノードにアクセスする検証要求の数は、第2のマッピングテーブル内の「キー」値に対応する「値」値として使用することができるが、それによって制限されないことに留意されたい。
例えば、テーブルBを第2のマッピングテーブルとし、テーブルBの「キー」値は、ストレージノードのアドレスを表し、「キー」値に対応する「値」値は、ストレージノードにアクセスする検証要求の数を表し、Nを検証要求の上限(検証要求の最大数)とする。検証要求がストレージノードに送信される前に、ストレージノードのアドレス情報を使用してテーブルBを検索し、その期間にストレージノードに送信された検証要求の数がNに達するかどうかを確認し、Nに達していない場合、検証要求を送信し、ストレージノードのアドレスに対応するテーブルBの「値」値を1つ増加させ、Nに達した場合、一定の期間待ち、次いで、トラフィック制御条件が満たされるまでテーブルBを再度検索してから、検証要求を送信する。
前述のデータブロックスライスの検証後、チェックコードに整合性がない状況が発生する場合があることに留意されたい。この時点で、ユーザがデータブロックスライスに対応する間隔を変更している可能性が高く、データは動的に変化している。したがって、本出願の前述の実施形態では、前述のデータブロックスライスの検証後、前述の方法は、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行することをさらに含み得、バックオフ再試行様式は、データブロックスライスに対して遅延再試行を実行することである。
本出願の任意選択的な実施形態では、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行することは、検証再試行のプロセス中、現在の再試行の時間間隔は、現在の再試行の直前の先行再試行の時間間隔によって決定され、現在の再試行の時間間隔は、先行再試行の時間間隔よりも大きい、ように具体化することができる。
前述のバックオフ再試行様式でのデータブロックスライスにおける検証再試行によって、本出願は、再試行要求が多すぎて、前述のデータブロックスライスに対応する通常の読み取り/書き込み間隔に影響を与えることを回避し、前述のデータブロックスライスを連続的に監視する時間も増加し、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的をさらに達成し、それによって、読み取り/書き込み性能の向上の技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術の技術的な問題をより良好に解決する。
現在の再試行の時間間隔が、現在の再試行の直前の先行再試行の時間間隔によって決定されるステップは、以下のように具体化することができることに留意されたい:再帰関数処理を通じて、先行再試行の時間間隔から所定の値が取得され、所定の値および再試行の間隔の上限値のうちの小さい方が、現在の再試行の時間間隔である。
分散ストレージシステムには多数のノードおよびファイル、ならびに大量のデータがあるため、システム内のすべてのファイルを効率的かつ迅速に検証するために、分散ストレージシステムにおけるファイルのリストを取得した後、解決策は、各ファイルの検証タスクを作成し、それをスレッドプールに追加し、最後に、すべての検証タスクを高い同時性レベルで同時に処理することに留意されたい。ここで、図3は、本出願の任意選択的な実施形態に従って提供される単一ファイルの処理フローの概略図を示す。図3に示されるように、単一ファイルの処理フローは、以下を含む。
ステップ301:マスタノードからファイルのデータブロックリストを取得する。
ステップ302:データブロックリストに未処理のデータブロックがあるかどうかを判定し、判定結果が「はい」の場合、ステップ303に進み、判定結果が否定である場合、プロセスは終了する。
ステップ303:負荷分散戦略を満たすデータブロックを抽出する。
ステップ304:固定サイズに従ってデータブロックに対して2次スライスを実行する。
ステップ305:未処理のスライスがあるかどうかを判定し、判定結果が「はい」の場合、ステップ306に進み、判定結果が否定である場合、ステップ302に進む。
ステップ306:スライスを抽出し、いくつかのレプリカが位置するストレージノードにスライスのチェックコードを要求する(すべての要求はグローバルトラフィック制御を通過する必要がある)。
ステップ307:チェックコードに整合性がないかどうかを判定し、そうである場合、ステップ308に進み、そうでない場合、ステップ305に進む。
ステップ308:確認のためにバックオフ再試行を実行する。
単一の検証タスクごとに、最初にファイルのすべてのデータブロックと、これらのデータブロックのすべてのレプリカのアドレス情報がマスタノードを介して取得され、次いで、これらのデータブロックが先入れ先出しキューに挿入される。キューの場合、ストレージノードの負荷分散の原則に従って、毎回好適なデータブロックがキューから選択され、データブロックに対して2次スライスが実行され、次いで、すべてのスライスが整合性について順番に検証される。検証プロセス中、グローバルトラフィック制御が検証要求に課される。データブロックのすべてのスライスが検証されると、次のデータブロックを選択して、すべてのデータブロックが検証されるまで続行する。次いで、単一の検証タスクが終了する。
単一のスライスの検証プロセス中、最初に、検証要求が、レプリカが位置するストレージノードに送信される。検証要求は、データブロック名、データブロック内のスライスのオフセット、およびスライスの長さを含む。ストレージノードは、検証要求に従ってレプリカの指定されたスライスのデータを読み取り、チェックコードを計算し、次いで、スライスのチェックコードを返す。異なるレプリカのスライスのチェックコードが比較され、それらが異なる場合、確認のためにバックオフ再試行が実行される。整合性がないチェックノードを有することが最終的に確認されたスライスについて、警告メッセージが生成される。
すなわち、本出願の前述の実施形態では、フロントエンドの読み取り/書き込みへの影響は、主に、ストレージノードの負荷分散、検証要求のグローバルトラフィック制御、およびバックオフ再試行などの戦略を組み合わせることによって低減される。詳細がそれぞれ以下に記載されている。
(1)ストレージノードの負荷分散
同時に実行されるより多くの検証タスクがいくつかのストレージノードに多数の検証要求を集中させて、一部のストレージノードに過度の負荷がかかるのを防止するために、ストレージノードは、この任意選択的な解決策で負荷分散され、同じストレージノードに同時にアクセスできる検証タスクの最大数M(検証タスクの前述の上限に相当)を設定し、グローバルマッピングテーブルA(前述の第1のマッピングテーブルに相当)を作成し、テーブルAの「キー」は、ストレージノードのアドレスを表し、対応する「値」は、ストレージノードにアクセスする同時検証タスクの数を表す。これは、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させる。
単一の検証タスクでは、データブロックが先入れ先出しキューから抽出されるたびに、特定のレプリカが位置するストレージノードに同時アクセスし得る検証タスクの数がMに達したかどうかを確認するために、データブロックのいくつかのレプリカのアドレス情報を使用して、テーブルA内で検索する必要がある。データブロックのすべてのレプリカが位置するストレージノードでの検証タスクの数がMに達していない場合、テーブルA内のストレージノードに対応する「値」値が1つ増加し、データブロックが処理され、そうでない場合、データブロックは、キューの最後に挿入され、別のデータブロックが抽出されて、負荷分散戦略を満たすデータブロックが抽出されるまで、前述の負荷分散チェックが続行される。
(2)検証要求のグローバルトラフィック制御
この任意選択的な解決策では、検証プログラムのより多くの検証タスクが、検証要求を送信するときにグローバルトラフィック制御を通過する。単一のストレージノードの場合、グローバルトラフィック制御様式によって、すべての検証タスクによって送信される検証要求の数を許容範囲内に制限することができ、単一のストレージノードに過度の負荷がかかる問題を効果的に回避することができる。グローバルトラフィック制御は、検証プログラムによって単位時間あたり各ストレージノードに送信される検証要求の数を特定の範囲内に制御することができることを確実にするために使用され、それによって、各ストレージノードへのデータ検証によって引き起こされる追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にし、単位時間あたり単一のストレージノードに送信できる検証要求の最大数をN(検証要求の前述の上限に相当)として設定し、グローバルマッピングテーブルB(前述の第2のマッピングテーブルに相当)を作成し、テーブル内の「キー」は、ストレージノードのアドレスを表し、対応する「値」は、特定の時間範囲内のストレージノードにすべての検証タスクによって送信された検証要求の数を表す。短い時間間隔(例えば、1秒/1分)(前述の所定の期間に相当)で、テーブルB内のすべてのストレージノードに対応する統計結果がゼロにリセットされ、次いで、統計が再実行される。時間間隔は、タイムスライスと称される。
単一の検証タスクでは、検証プログラムが検証要求をストレージノードに送信する前に、ストレージノードのアドレス情報を使用してテーブルB内の検索を実行して、現在のタイムスライス内でストレージノードに送信された検証要求の数が上限Nに達したかどうかを確認する必要がある。それがNに達していない場合、検証要求が送信され、テーブルB内のストレージノードに対応する送信された要求の数が1つ増加し、そうでない場合、検証タスクは、しばらく待ち、次いで、実際に要求を送信する前に、トラフィック制御条件が満たされるまでテーブルB内で検索を再度実行する必要がある。
(3)バックオフ再試行
整合性がないチェックコードを有するスライスが見つかった場合、ユーザがスライスに対応する間隔を変更している可能性が高く、データは動的に変化している。この場合、この好ましい解決策は、再試行を実行する。それにもかかわらず、再試行要求が多すぎて、通常の読み取り/書き込み間隔に影響を与えることを回避し、スライスを継続的に監視するためのより長い時間枠を有するために、この好ましい解決策は、バックオフ様式で再試行を実行し、再試行の最大数をZ、再試行間隔の初期値をT0、上限をTm、および再帰関数をF(x)として設定し、n番目の再試行の間隔をTnとして設定し、Tn=F(Tn-1)、およびTn>=Tn-1とする。
再試行プロセス中、最初の再試行間隔をT1=T0とし、その後、各再試行間隔Tnについて、再帰関数F(x)に従って、先行再試行間隔Tn-1(先行再試行の時間間隔に相当)から暫定値Txが計算され、TxとTmのうちの小さい方の値が、再試行後にスライスが整合性検証に合格したことがわかるまで、または再試行回数がZに達するまで、この現在の再試行の実際の間隔(この現在の再試行の時間間隔に相当)として使用され、その後、再試行が終了する。
前述のM、N、およびZはすべてゼロよりも大きい整数であるが、それらはそのように制限されないことに留意されたい。
前述の方法の実行本体は、上記の図1に示される端末であっても、検証プログラムなどのプログラムであってもよいことに留意されたい。検証プログラムは、端末または端末とは別のサードパーティデバイスに位置し得るが、それによって制限されない。
前述の方法の実施形態では、説明を簡単にするために、それらはすべて一連の動作の組み合わせとして表されていることに留意されたい。しかしながら、当業者は、一部のステップが本発明に従って別の順番でまたは同時に実行され得るので、本発明は、記載された一連の動作によって制限されないことをわかっているはずである。次に、当業者は、本明細書に記載された実施形態がすべて好ましい実施形態であり、関与する動作およびモジュールが本発明によって必ずしも必要とされないこともわかっているはずである。
当業者であれば、上記の実装形態の様式の説明から、上記の実施形態に従った方法が、ソフトウェアおよび必要な一般的なハードウェアプラットフォームによって、また明らかにハードウェアによって実施することができることを明確に理解することができる。しかしながら、多くの場合、前者がより良好な実施様式である。そのような理解に基づいて、本質的に本発明の技術的解決策、または現在の技術に寄与するその部分は、ソフトウェア製品の形で具体化することができ、コンピュータソフトウェア製品は、端末デバイス(携帯電話、コンピュータ、サーバ、ネットワークデバイスなどであり得る)が本発明の各実施形態の方法を実行できるようにするためのいくつかの命令を含む記憶媒体(ROM/RAM、磁気ディスク、または光ディスクなど)に記憶される。
実施形態2
本発明の一実施形態によれば、前述のデータ検証方法を実施するための装置がさらに提供され、これは図4に示されている。図4は、本発明の一実施形態に従って提供されるデータ検証装置の構造ブロック図を示し、装置は、
分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定するように構成された決定モジュール42であって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定モジュール42を含む。
前述の負荷分散戦略を使用して、分散ストレージシステム内のデータブロックを記憶するストレージノードに検証タスクを分散させることができることに留意されたい。例えば、特定のストレージノードに多数の検証タスクがある(検証タスクの数が閾値に達した)場合、または検証タスクが複雑である(検証タスクの複雑さが閾値を超えている)場合、ストレージノードを過負荷と見なすことができる。データブロックを検証する必要があるとき、ストレージノードに対応すべきであることが判明した場合、この時点ではデータブロックは検証されていない。しかしながら、データブロックに対応するストレージノードでの検証タスクがほんのわずかであるとき、または検証タスクが単純であるとき、データブロックを検証することができる。このようにして、一部のストレージノードに過度の負荷がかからないように、分散ストレージシステムにおけるストレージノードでの検証タスクを分散させることができる。
前述の分散ストレージシステムにおける負荷分散戦略を満たすストレージノードは、分散ストレージシステムにおける複数のストレージノードの中で、そのように制限されないが、より少ない(検証タスクの数が閾値未満である)、またはより単純な(検証タスクの複雑さが閾値未満である)検証タスクを有するストレージノードと見なすことができることに留意されたい。
データセキュリティのために、データブロックを複製し、複数のレプリカを作成することができる。各レプリカは、異なるストレージノードにそれぞれ記憶され、すなわち、各レプリカがストレージノードに対応する。したがって、本出願の任意選択的な実施形態では、前述の決定モジュール42は、複数のデータブロックから第1のデータブロックを検証対象のデータブロックとして選択するためにさらに使用され、第1のデータブロックは、レプリカが位置するストレージノードのうち、第1のストレージノードの数が所定の数に達するデータブロックであり、第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである。すなわち、決定された検証対象のデータブロックのレプリカが位置しているストレージノードのうち、検証タスクが少ないストレージノードの数が所定の数に達する。
必要に応じて、前述の所定の数をあらかじめ設定しておいてもよいことに留意されたい。本発明の任意選択的な実施形態では、前述の所定の数は、データブロックのすべてのレプリカの数であり得る。すなわち、前述の検証対象のデータブロックのすべてのレプリカが位置するストレージノードでは、検証タスクが少ないと見なすことができる。
本出願の任意選択的な実施形態では、前述の決定モジュール42は、複数のデータブロックから、第1のマッピングテーブルに従って、検証対象のデータブロックとして第1のデータブロックを選択することができ、第1のマッピングテーブルは、ストレージノードのアドレスとストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する。
検証モジュール44は、前述の決定モジュール42に接続され、検証対象のデータブロックを検証するように構成される。
本出願の前述の実施形態2に開示された解決策では、決定モジュール42が、分散ストレージシステムにおける所定のファイルに含まれる複数のデータブロックの中から検証対象のデータブロックを決定した後、検証モジュール44が、検証対象のデータブロックを検証する。決定された検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードである。この解決策は、負荷分散戦略に基づいて、検証対象のデータブロックの決定を達成することができる。
検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードであることに容易に気付き、すなわち、決定された検証対象のデータブロックが位置するストレージノードが分散ストレージシステムにおける負荷分散戦略を満たし、これは、前述の決定された検証対象のデータブロックが実際に負荷分散戦略に基づいて決定されていることも意味する。したがって、本出願の実施形態で提供される前述の解決策を通じて、検証対象のデータブロックを検証するプロセス中に、多数の検証要求がいくつかのストレージノードに集中し、一部のストレージノードに過度の負荷を引き起こすという問題を回避することができ、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的を達成し、それによって、読み取り/書き込み性能の向上という技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術における技術的問題を解決する。
送信トラフィックを低減するために、本発明の任意選択的な実施形態では、検証モジュール44は、データブロックスライスを取得するために、検証対象のデータブロックに対して2次スライスを実行するように構成された処理ユニットと、前述の処理ユニットに接続され、データブロックスライスを検証するように構成された検証ユニットとを含む。
ストレージノードにおけるデータ検証によって引き起こされる追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にするために、本出願は任意選択的な実施形態を提供することに留意されたい。すなわち、前述の検証ユニットは、データブロックスライスが位置するストレージノードにおける検証要求の数が検証要求の上限に達していないかどうかを判定し、判定結果が、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないということである場合、データブロックスライスを検証するためにさらに使用される。すなわち、データブロックスライスが位置するストレージノードでの検証要求の数を特定の範囲内に制御することによって、ストレージノードでのデータ検証によって引き起こされる追加のリソースオーバーヘッドを許容範囲内で制御することができることを確実にすることができ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的をさらに達成し、それによって、読み取り/書き込み性能の向上の技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術の技術的な問題をより良好に解決する。
検証要求の上限は、単位時間あたりストレージノードに送信することができる検証要求の最大数であり得るが、そのように制限されないことに留意されたい。検証要求の前述の上限は、ストレージノードの特性に基づいて事前設定されてもよく、または経験に応じて設定されてもよいが、そのように制限されない。
ストレージノードのディスクおよびネットワークリソースの占有をより良好に減少させるために、さらに、単位時間あたりのストレージノードでの検証要求の数を特定の範囲内に制御することができることを確実にすることができ、それによって、単位時間あたりのストレージノードでの検証要求の数を許容範囲内に制御することができることを確実にすることができる。本発明の任意選択的な実施形態では、前述のデータブロックスライスが位置するストレージノードでの検証要求の数は、所定の期間内にゼロにリセットされる。
前述の単位時間における「単位」は、1秒、3秒、5秒、50ミリ秒など、任意の時間とすることができるが、そのように制限されないことに留意されたい。任意選択的に、前述の所定の期間は、単位時間と見なすことができるが、それによっては制限されない。
本発明の任意選択的な実施形態では、前述の検証ユニットは、第2のマッピングテーブルに基づいて、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを判定することができ、第2のマッピングテーブルは、ストレージノードのアドレスと、ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する。
ストレージノードのアドレスは、第2のマッピングテーブル内の「キー」値として使用することができ、ストレージノードにアクセスする検証要求の数は、第2のマッピングテーブル内の「キー」値に対応する「値」値として使用することができるが、それによって制限されないことに留意されたい。
前述のデータブロックスライスの検証後、チェックコードに整合性がない状況が発生する場合があることに留意されたい。この時点で、ユーザがデータブロックスライスに対応する間隔を変更している可能性が高く、データは動的に変化している。したがって、本出願の前述の実施形態では、前述のデータブロックスライスの検証後、前述の装置は、前述の検証ユニットに接続された再試行モジュールをさらに含み、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行するように構成され得、バックオフ再試行様式は、データブロックスライスに対して遅延再試行を実行することである。
本出願の任意選択的な実施形態では、検証再試行のプロセス中、現在の再試行の時間間隔は、現在の再試行の直前の先行再試行の時間間隔によって決定され、現在の再試行の時間間隔は、先行再試行の時間間隔よりも大きい。
前述のバックオフ再試行様式でのデータブロックスライスにおける検証再試行によって、本出願は、再試行要求が多すぎて、前述のデータブロックスライスに対応する通常の読み取り/書き込み間隔に影響を与えることを回避し、前述のデータブロックスライスを連続的に監視する時間も増加し、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的をさらに達成し、それによって、読み取り/書き込み性能の向上の技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術の技術的な問題をより良好に解決する。
現在の再試行の時間間隔が、現在の再試行の直前の先行再試行の時間間隔によって決定されるステップは、再帰関数処理を通じて先行再試行の時間間隔から所定の値が取得され、所定の値と再試行の間隔の上限値のうちの小さい方がこの再試行の時間間隔である、ように具体化することができることに留意されたい。
ここで、前述の決定モジュール42および検証モジュール44は、実施形態1のステップS202~S204に対応することに留意されたい。2つのモジュールおよび対応するステップによって達成される例および適用シナリオは同じであるが、前述の実施形態1によって開示される内容に制限されない。前述のモジュールは、装置の一部として実施形態1で提供されるコンピュータ端末10で実行することができる。
実施形態3
本発明の一実施形態は、コンピュータ端末を提供し、コンピュータ端末は、コンピュータ端末グループ内の任意のコンピュータ端末デバイスであり得る。任意選択的に、この実施形態では、前述のコンピュータ端末は、モバイル端末などの端末デバイスで置き換えられてもよい。
任意選択的に、この実施形態では、前述のコンピュータ端末は、コンピュータネットワーク内のより多くのネットワークデバイスのうちの少なくとも1つに位置し得る。
この実施形態では、前述のコンピュータ端末は、アプリケーションプログラムのデータ検証方法において、以下のステップ:分散ストレージシステムにおける所定のファイルに含まれる複数のデータブロックの中から検証対象のデータブロックを決定するステップであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードである、決定するステップと、検証対象のデータブロックを検証するステップと、のプログラムコードを実行することができる。
任意選択的に、図5は、本発明の一実施形態によるコンピュータ端末の構造ブロック図を示す。図5に示されるように、コンピュータ端末5は、1つ以上(図には1つのみが示されている)のプロセッサ52、メモリ54、および送信装置56を含み得る。
ここで、メモリ54は、本発明の実施形態におけるデータ検証の方法および装置に対応するプログラム命令/モジュールなどのソフトウェアプログラムおよびモジュールを記憶するために使用することができる。プロセッサ52は、メモリ54に記憶されたソフトウェアプログラムおよびモジュールを実行して、様々な機能アプリケーションおよびデータ処理を実行し、すなわち、アプリケーションプログラムの前述のデータ検証方法を達成する。メモリ54は、高速ランダムアクセスメモリを含んでもよく、また、1つ以上の磁気記憶装置、フラッシュメモリなどの不揮発性メモリ、または他の不揮発性ソリッドステートメモリも含んでもよい。いくつかの例では、メモリ54は、プロセッサに対してリモートに配設されたメモリをさらに含んでいてもよい。これらのリモートメモリは、ネットワークを介してコンピュータ端末5に接続され得る。前述のネットワークの例は、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびこれらの組み合わせを含むが、これらに制限されない。
プロセッサ52は、送信装置を介して、メモリに記憶された情報およびアプリケーションプログラムを呼び出して、以下のステップ実行することができる:分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定するステップであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定するステップ、および検証対象のデータブロックを検証するステップ。
任意選択的に、前述のプロセッサは、複数のデータブロックから第1のデータブロックを検証対象のデータブロックとして選択するステップであって、第1のデータブロックは、レプリカが位置するストレージノードのうちの第1のストレージノードの数が所定の数に達するデータブロックであり、第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである、選択するステップのプログラムコードを実行することもできる。
任意選択的に、前述のプロセッサは、複数のデータブロックから、第1のマッピングテーブルに従って、検証対象のデータブロックとして第1のデータブロックを選択するステップであって、第1のマッピングテーブルは、ストレージノードのアドレスとストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する、選択するステップのプログラムコードを実行することもできる。
任意選択的に、前述のプロセッサは、データブロックスライスを取得するために、検証対象のデータブロックに対して2次スライスを実行するステップと、データブロックスライスを検証するステップと、のプログラムコードを実行することもできる。
任意選択的に、前述のプロセッサは、データブロックスライスが位置するストレージノードにおける検証要求の数が検証要求の上限に達していないかどうかを判定し、判定結果が、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないということである場合、データブロックスライスを検証するステップのプログラムコードを実行することもできる。
任意選択的に、前述のプロセッサは、第2のマッピングテーブルに従って、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを判定するステップであって、第2のマッピングテーブルは、ストレージノードのアドレスと、ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する、判定するステップのプログラムコードを実行することもできる。
任意選択的に、前述のプロセッサは、データブロックスライスの検証後、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行するステップであって、バックオフ再試行様式は、データブロックスライスに対して遅延再試行を実行することである、実行するステップのプログラムコードを実行することもできる。
本出願の前述の実施形態1に開示された解決策において、分散ストレージシステムにおける所定のファイルに含まれる複数のデータブロックの中から検証対象のデータブロックを決定した後、検証対象のデータブロックが検証される。決定された検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードであり、この解決策は、負荷分散戦略に基づいて、検証対象のデータブロックの決定を達成することができる。
検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードであることに容易に気付き、すなわち、決定された検証対象のデータブロックが位置するストレージノードが分散ストレージシステムにおける負荷分散戦略を満たし、これは、前述の決定された検証対象のデータブロックが実際に負荷分散戦略に基づいて決定されていることも意味する。したがって、本出願の実施形態で提供される前述の解決策を通じて、検証対象のデータブロックを検証するプロセス中に、多数の検証要求がいくつかのストレージノードに集中し、一部のストレージノードに過度の負荷を引き起こすという問題を回避することができ、異なる検証タスク間の競合を効果的に低減し、分散ストレージシステムにおけるクラスタの全体的な検証速度を大幅に向上させ、ストレージノードのディスクおよびネットワークリソースの占有を減少させ、かつデータ検証プロセス中のユーザのフロントエンドでの読み取り/書き込み操作への影響を低減するという目的を達成し、それによって、読み取り/書き込み性能の向上という技術的効果を達成し、データ検証プロセス中にユーザのフロントエンドの読み取り/書き込み性能が影響を受ける関連技術における技術的問題を解決する。
当業者であれば、図5に示される構造は例示のためにすぎず、コンピュータ端末は、スマートフォン(アンドロイド(登録商標)電話、iOS電話など)、タブレットコンピュータ、ハンドヘルドコンピュータ、およびモバイルインターネットデバイス(MID)、PAD、および他の端末機器でもあり得ることを理解することができる。上記の電子デバイスの構造は、図5によって制限されない。例えば、コンピュータ端末5は、図5に示されるものよりも多いかもしくは少ない構成要素(ネットワークインターフェース、ディスプレイデバイスなど)をさらに含んでいてもよく、または図5に示されるものとは異なる構成を有していてもよい。
当業者であれば、前述の実施形態の様々な方法におけるステップのすべてまたは一部が、プログラムを介して端末デバイスの関連ハードウェアに命令することによって完了され得ることを理解することができる。プログラムは、コンピュータ可読記憶媒体に記憶することができ、これは、フラッシュディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光ディスクなどを含み得る。
実施形態4
本発明の実施形態は、記憶媒体をさらに提供する。任意選択的に、この実施形態では、前述の実施形態1で提供されるデータ検証方法によって実行されるプログラムコードを記憶するために、前述の記憶媒体が使用されてもよい。
任意選択的に、この実施形態では、前述の記憶媒体は、コンピュータネットワーク内のコンピュータ端末グループの任意のコンピュータ端末、またはモバイル端末グループの任意のモバイル端末に位置し得る。
任意選択的に、この実施形態では、記憶媒体は、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定するステップであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定するステップと、検証対象のデータブロックを検証するステップと、を実行するためのプログラムコードを記憶するように構成される。
任意選択的に、前述の記憶媒体は、複数のデータブロックから第1のデータブロックを検証対象のデータブロックとして選択するステップであって、第1のデータブロックは、レプリカが位置するストレージノードのうちの第1のストレージノードの数が所定の数に達するデータブロックであり、第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである、選択するステップを実行するためのプログラムコードを記憶するようにさらに構成される。
任意選択的に、前述の記憶媒体は、複数のデータブロックから、第1のマッピングテーブルに従って、検証対象のデータブロックとして第1のデータブロックを選択するステップであって、第1のマッピングテーブルは、ストレージノードのアドレスとストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する、選択するステップを実行するためのプログラムコードを記憶するようにさらに構成される。
任意選択的に、前述の記憶媒体は、データブロックスライスを取得するために、検証対象のデータブロックに対して2次スライスを実行するステップと、データブロックスライスを検証するステップと、を実行するためのプログラムコードを記憶するようにさらに構成される。
任意選択的に、前述の記憶媒体は、データブロックスライスが位置するストレージノードにおける検証要求の数が検証要求の上限に達していないかどうかを判定し、判定結果が、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないということである場合、データブロックスライスを検証するステップを実行するためのプログラムコードを記憶するようにさらに構成される。
任意選択的に、前述の記憶媒体は、第2のマッピングテーブルに従って、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを決定するステップであって、第2のマッピングテーブルは、ストレージノードのアドレスと、ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する、決定するステップを実行するためのプログラムコードを記憶するようにさらに構成される。
任意選択的に、前述の記憶媒体は、データブロックスライスの検証後、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行するステップであって、バックオフ再試行様式は、データブロックスライスに対して遅延再試行を実行することである、実行するステップを実行するためのプログラムコードを記憶するようにさらに構成される。
実施形態5
この実施形態は、プロセッサを提供し、プロセッサは、実行時に、前述の実施形態1で提供されるデータ検証方法によって実行されるプログラムコードを実行するプログラムを実行するために使用される。
任意選択的に、この実施形態では、前述のプロセッサは、コンピュータネットワーク内のコンピュータ端末グループの任意のコンピュータ端末、またはモバイル端末グループの任意のモバイル端末に位置し得る。
任意選択的に、この実施形態では、プロセッサは、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定するステップであって、検証対象のデータブロックが位置するストレージノードは、分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定するステップと、検証対象のデータブロックを検証するステップと、のプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、複数のデータブロックから第1のデータブロックを検証対象のデータブロックとして選択するステップであって、第1のデータブロックは、レプリカが位置するストレージノードのうちの第1のストレージノードの数が所定の数に達するデータブロックであり、第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである、選択するステップのプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、複数のデータブロックから、第1のマッピングテーブルに従って、検証対象のデータブロックとして第1のデータブロックを選択するステップであって、第1のマッピングテーブルは、ストレージノードのアドレスとストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する、選択するステップのプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、データブロックスライスを取得するために、検証対象のデータブロックに対して2次スライスを実行するステップと、データブロックスライスを検証するステップと、のプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、データブロックスライスが位置するストレージノードにおける検証要求の数が検証要求の上限に達していないかどうかを判定し、判定結果が、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないということである場合、データブロックスライスを検証するステップのプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、第2のマッピングテーブルに従って、データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを判定するステップであって、第2のマッピングテーブルは、ストレージノードのアドレスと、ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する、判定するステップのプログラムコードを実行するように構成される。
任意選択的に、この実施形態では、プロセッサは、データブロックスライスの検証後、バックオフ再試行様式でデータブロックスライスに対して検証再試行を実行するステップであって、バックオフ再試行様式は、データブロックスライスに対して遅延再試行を実行することである、実行するステップのプログラムコードを実行するように構成される。
簡潔な説明のために、前述の方法の実施形態はすべて一連の動作の組み合わせとして表されていることに留意されたい。しかしながら、当業者は、一部のステップが本出願に従って代替の順番でまたは並列に実行され得るので、本出願は、記載された一連の動作によって制限されないことをわかっているはずである。次に、当業者は、本明細書に記載された実施形態がすべて好ましい実施形態であり、関与する動作およびモジュールが本出願によって必ずしも必要とされないこともわかっているはずである。
本発明の実施形態の通し番号は、単に説明のためのものであり、実施形態の品質の順番を表すものではない。
本発明の前述の実施形態では、各実施形態の説明は、それ自体の重要性を有する。一実施形態に詳細に説明されていない任意の部分については、他の実施形態の関連する説明を参照することができる。
本出願に提供されるいくつかの実施形態では、開示された技術的内容は、他の様式で実施され得ることを理解されたい。ここで、上記で説明した装置の実施形態は、単なる例示である。例えば、ユニットの分割は、単に論理的な機能の分割にすぎない。実際の実装では、他の分割様式が存在し得る。例えば、複数のユニットもしくは構成要素が、結合されてもよく、または別のシステムに統合されてもよく、または一部の特徴が、無視されるか、もしくは実装されなくてもよい。加えて、表示もしくは記載された相互結合、直接結合、または通信接続は、なんらかのインターフェースを通じて達成され得、ユニットもしくはモジュールの間接結合もしくは通信接続は、電気的な形態または他の形態であってもよい。
個別の構成要素として説明されているユニットは、物理的に分離されていてもされていなくてもよく、ユニットとして表示される構成要素は、物理的なユニットであってもそうでなくてもよい。すなわち、それらは1つの場所に位置していてもよく、または複数のネットワークユニットに分散されてもよい。ユニットのいくつかまたはすべては、実施形態の解決策の目的を達成するための実際の必要性に従って選択されてもよい。
さらに、本発明の様々な実施形態の機能ユニットが、1つの処理ユニットに統合されてもよく、または各ユニットが、物理的に単独に存在してもよく、または2つ以上のユニットが1つのユニットに統合されてもよい。前述の統合されたユニットは、ハードウェアまたはソフトウェア機能ユニットの形態で実装され得る。
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、それらは、コンピュータ可読記憶媒体に記憶され得る。そのような理解に基づいて、本質的に本発明の技術的解決策、または現在の技術に寄与する部分、または全体的もしくは部分的な技術的解決策は、ソフトウェア製品の形態で具体化することができ、コンピュータソフトウェア製品は、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)が本発明の各実施形態に記載されている方法のステップの全部または一部を実行できるようにするためのいくつかの命令を含む記憶媒体に記憶される。前述の記憶媒体は、USBフラッシュディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、モバイルハードディスク、磁気ディスク、光ディスク、またはプログラムコードを記憶し得る他の媒体を含む。
前述の実施形態は、単に本発明の好ましい実施形態である。当業者にとって、本発明の原理から逸脱せずに、いくつかの改善および修正がなされ得ることに留意されたい。これらの改善および修正もまた、本発明の保護範囲内に収まると見なされるべきである。
10 コンピュータ端末
102A プロセッサ
102B プロセッサ
102N プロセッサ
102 プロセッサ
104 メモリ
42 決定モジュール
44 検証モジュール
5 コンピュータ端末
52 プロセッサ
54 メモリ
56 送信装置

Claims (11)

  1. データ検証装置によって実行されるデータ検証方法であって、
    前記データ検証装置の決定モジュールによって、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定することであって、前記検証対象のデータブロックが位置するストレージノードは、前記分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含み、前記決定することは、
    前記複数のデータブロックから第1のデータブロックを前記検証対象のデータブロックとして選択することであって、前記第1のデータブロックは、レプリカが位置するストレージノードのうち、第1のストレージノードの数が所定の数に達するデータブロックであり、前記第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである、選択することを含む、決定することと、
    前記データ検証装置の検証モジュールによって、前記検証対象のデータブロックを検証することと、
    を含む、方法
  2. 前記所定の数は、前記データブロックのすべてのレプリカの数である、請求項1に記載の方法。
  3. 前記第1のデータブロックは、前記複数のデータブロックから、第1のマッピングテーブルに従って、前記検証対象のデータブロックとして選択され、前記第1のマッピングテーブルは、ストレージノードのアドレスと前記ストレージノードにアクセスする同時検証タスクの数との間の対応関係を記憶する、請求項1または2に記載の方法。
  4. データ検証装置によって実行されるデータ検証方法であって、
    前記データ検証装置の決定モジュールによって、分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定することであって、前記検証対象のデータブロックが位置するストレージノードは、前記分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含む、決定することと、
    前記データ検証装置の検証モジュールによって、前記検証対象のデータブロックを検証することであって、
    データブロックスライスを取得するために、前記検証対象のデータブロックに対して2次スライスを実行することと、
    前記データブロックスライスを検証することと、
    を含む、検証することと、
    を含む、方法
  5. 前記データブロックスライスを検証するステップが、
    前記データブロックスライスが位置するストレージノードでの検証要求の数が検証要求の上限に達していないかどうかを判定することと、
    前記判定の結果が、前記データブロックスライスが位置するストレージノードでの前記検証要求の数が前記検証要求の上限に達していないということである場合、前記データブロックスライスを検証することと、を含む、請求項4に記載の方法。
  6. 前記データブロックスライスが位置するストレージノードでの前記検証要求の数が、所定の期間内にゼロにリセットされる、請求項5に記載の方法。
  7. 第2のマッピングテーブルに従って、前記データブロックスライスが位置するストレージノードでの前記検証要求の数が、前記検証要求の上限に達していないかどうかを判定することであって、前記第2のマッピングテーブルは、前記ストレージノードのアドレスと、前記ストレージノードにアクセスする検証要求の数との間の対応関係を記憶する、決定すること、を含む、請求項5または6に記載の方法。
  8. 前記データブロックスライスを検証するステップの後、前記方法が、
    前記データ検証装置の再試行モジュールによって、バックオフ再試行様式で前記データブロックスライスに対して検証再試行を実行することであって、前記バックオフ再試行様式は、前記データブロックスライスに対して遅延再試行を実行することである、実行すること、をさらに含む、請求項4に記載の方法。
  9. バックオフ再試行様式で前記データブロックスライスに対して検証再試行を実行するステップが、
    検証再試行のプロセス中、現在の再試行の直前の先行再試行の時間間隔によって前記現在の再試行の時間間隔を決定することであって、前記現在の再試行の前記時間間隔が、前記先行再試行の前記時間間隔よりも大きい、決定すること、を含む、請求項8に記載の方法。
  10. 分散ストレージシステムにおける所定のファイルに対応する複数のデータブロックの中から検証対象のデータブロックを決定し、前記複数のデータブロックから、第1のデータブロックを前記検証対象のデータブロックとして選択するように構成された決定モジュールであって、前記検証対象のデータブロックが位置するストレージノードは、前記分散ストレージシステムにおける負荷分散戦略を満たすストレージノードを含み、前記第1のデータブロックは、レプリカが位置するストレージノードのうち、第1のストレージノードの数が所定の数に達するデータブロックであり、前記第1のストレージノードは、検証タスクの数が検証タスクの上限に達していないストレージノードである、決定モジュールと、
    前記検証対象のデータブロックを検証するように構成された検証モジュールと、
    を含む、データ検証装置。
  11. 記憶媒体であって、前記記憶媒体は、その中にプログラム命令を記憶し、前記プログラム命令は、実行時に、請求項1~9のいずれか一項に記載のデータ検証方法を実行するために、前記記憶媒体が位置するデバイスを制御する、記憶媒体。
JP2020572791A 2018-06-28 2019-06-14 データ検証の方法および装置、ならびに記憶媒体 Active JP7442466B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810687959.5 2018-06-28
CN201810687959.5A CN110659151B (zh) 2018-06-28 2018-06-28 数据校验方法及装置,存储介质
PCT/CN2019/091227 WO2020001287A1 (zh) 2018-06-28 2019-06-14 数据校验方法及装置,存储介质

Publications (2)

Publication Number Publication Date
JP2021529392A JP2021529392A (ja) 2021-10-28
JP7442466B2 true JP7442466B2 (ja) 2024-03-04

Family

ID=68986038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020572791A Active JP7442466B2 (ja) 2018-06-28 2019-06-14 データ検証の方法および装置、ならびに記憶媒体

Country Status (5)

Country Link
US (1) US11537304B2 (ja)
EP (1) EP3817255A4 (ja)
JP (1) JP7442466B2 (ja)
CN (1) CN110659151B (ja)
WO (1) WO2020001287A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429435B1 (en) * 2020-02-04 2022-08-30 Amazon Technologies, Inc. Distributed execution budget management system
CN112713964B (zh) * 2020-12-22 2022-08-05 潍柴动力股份有限公司 数据校验加速方法、装置、计算机设备及存储介质
CN113204371B (zh) * 2021-05-28 2023-09-19 金蝶软件(中国)有限公司 一种访问控制方法、相关装置及存储介质
CN113391767B (zh) * 2021-06-30 2022-10-28 北京百度网讯科技有限公司 数据一致性的校验方法、装置、电子设备及可读存储介质
CN114153647B (zh) * 2021-09-24 2022-08-02 深圳市木浪云科技有限公司 云存储系统的快速数据校验方法、装置及系统
CN114780021B (zh) * 2022-03-25 2022-11-29 北京百度网讯科技有限公司 副本修复方法、装置、电子设备及存储介质
CN116668521B (zh) * 2023-07-25 2023-10-31 广东广宇科技发展有限公司 一种基于数据结构的分布式多元数据快速传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040718A (ja) 2006-08-04 2008-02-21 Nippon Telegr & Teleph Corp <Ntt> 負荷分散制御装置および方法
US20110289366A1 (en) 2010-05-19 2011-11-24 Cleversafe, Inc. Memory utilization balancing in a dispersed storage network
US20120117351A1 (en) 2010-11-09 2012-05-10 Cleversafe, Inc. Balancing memory utilization in a dispersed storage network
JP2016526720A (ja) 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
JP2017010425A (ja) 2015-06-25 2017-01-12 富士通株式会社 制御プログラム、情報処理装置および制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200626B1 (en) * 2004-01-22 2007-04-03 Unisys Corporation System and method for verification of a quiesced database copy
US8301791B2 (en) * 2007-07-26 2012-10-30 Netapp, Inc. System and method for non-disruptive check of a mirror
US9098519B2 (en) * 2008-09-16 2015-08-04 File System Labs Llc Methods and apparatus for distributed data storage
US8694467B2 (en) 2010-03-31 2014-04-08 Xerox Corporation Random number based data integrity verification method and system for distributed cloud storage
US8386835B2 (en) 2010-05-17 2013-02-26 Oracle International Corporation System and method for end-to-end data integrity in a network file system
US8555142B2 (en) 2010-06-22 2013-10-08 Cleversafe, Inc. Verifying integrity of data stored in a dispersed storage memory
US9015499B2 (en) 2010-11-01 2015-04-21 Cleversafe, Inc. Verifying data integrity utilizing dispersed storage
US8910031B1 (en) 2011-03-29 2014-12-09 Emc Corporation DIF-CRC based fast hashing
US8589761B2 (en) 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8468423B2 (en) 2011-09-01 2013-06-18 International Business Machines Corporation Data verification using checksum sidefile
US9514132B2 (en) * 2012-01-31 2016-12-06 International Business Machines Corporation Secure data migration in a dispersed storage network
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
US9448877B2 (en) 2013-03-15 2016-09-20 Cisco Technology, Inc. Methods and apparatus for error detection and correction in data storage systems using hash value comparisons
CN104239148B (zh) * 2013-06-06 2018-05-18 腾讯科技(深圳)有限公司 一种分布式任务调度方法及装置
CN103731505A (zh) * 2014-01-17 2014-04-16 中国联合网络通信集团有限公司 一种数据分布式存储方法及系统
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US9880904B2 (en) * 2014-12-12 2018-01-30 Ca, Inc. Supporting multiple backup applications using a single change tracker
US10437671B2 (en) * 2015-06-30 2019-10-08 Pure Storage, Inc. Synchronizing replicated stored data
CN105530294A (zh) * 2015-12-04 2016-04-27 中科院成都信息技术股份有限公司 一种海量数据分布式存储的方法
US10496484B2 (en) 2016-08-05 2019-12-03 Sandisk Technologies Llc Methods and apparatus for error detection for data storage devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040718A (ja) 2006-08-04 2008-02-21 Nippon Telegr & Teleph Corp <Ntt> 負荷分散制御装置および方法
US20110289366A1 (en) 2010-05-19 2011-11-24 Cleversafe, Inc. Memory utilization balancing in a dispersed storage network
US20120117351A1 (en) 2010-11-09 2012-05-10 Cleversafe, Inc. Balancing memory utilization in a dispersed storage network
JP2016526720A (ja) 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
JP2017010425A (ja) 2015-06-25 2017-01-12 富士通株式会社 制御プログラム、情報処理装置および制御方法

Also Published As

Publication number Publication date
WO2020001287A1 (zh) 2020-01-02
EP3817255A1 (en) 2021-05-05
US11537304B2 (en) 2022-12-27
JP2021529392A (ja) 2021-10-28
US20210117093A1 (en) 2021-04-22
CN110659151B (zh) 2023-05-02
CN110659151A (zh) 2020-01-07
EP3817255A4 (en) 2022-03-30

Similar Documents

Publication Publication Date Title
JP7442466B2 (ja) データ検証の方法および装置、ならびに記憶媒体
US10942828B2 (en) Method for storing data shards, apparatus, and system
US11385803B2 (en) Cycling out dispersed storage processing units from access pools to perform expensive operations
US10169151B2 (en) Utilizing request deadlines in a dispersed storage network
EP3668056B1 (en) Method and device for transmitting data processing request
US20170155719A1 (en) Selectively setting dsn slice data in motion within dsn memory based on conditions at the final data rest points
US8780701B2 (en) Communication apparatus and packet distribution method
JP2008234158A (ja) ストレージ装置及び記憶領域配置方法
WO2018121456A1 (zh) 一种数据存储方法、服务器以及存储系统
WO2015196686A1 (zh) 一种数据存储方法以及一种数据存储管理服务器
WO2019148716A1 (zh) 数据传输方法、服务器及存储介质
CN110275680B (zh) 一种双控双活存储系统
US10069947B2 (en) Method and apparatus for processing data packet based on parallel protocol stack instances
EP3214865A1 (en) Cluster arbitration method and multi-cluster coordination system
US10216593B2 (en) Distributed processing system for use in application migration
US9898205B1 (en) Scheduling of commands in a storage area network to minimize latency
US20130238871A1 (en) Data processing method and apparatus, pci-e bus system, and server
JP6256167B2 (ja) データセンターネットワークにおけるリスク軽減
CN116909953A (zh) 一种多路径规划方法、装置及介质
CN106484310B (zh) 一种存储阵列操作方法和装置
CN104468674A (zh) 数据迁移方法及装置
CN107465743B (zh) 一种处理请求的方法和装置
CN104348906A (zh) 一种分布式系统中数据协商方法及装置
CN107203559B (zh) 一种划分数据条带的方法和装置
US10579309B2 (en) Method for increasing throughput in a distributed storage network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240110

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: 20240122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240220

R150 Certificate of patent or registration of utility model

Ref document number: 7442466

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150