JP2022500775A - 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器 - Google Patents

分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器 Download PDF

Info

Publication number
JP2022500775A
JP2022500775A JP2021514604A JP2021514604A JP2022500775A JP 2022500775 A JP2022500775 A JP 2022500775A JP 2021514604 A JP2021514604 A JP 2021514604A JP 2021514604 A JP2021514604 A JP 2021514604A JP 2022500775 A JP2022500775 A JP 2022500775A
Authority
JP
Japan
Prior art keywords
target
node
data
adjacent node
adjacent
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
JP2021514604A
Other languages
English (en)
Other versions
JP7214295B2 (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2022500775A publication Critical patent/JP2022500775A/ja
Application granted granted Critical
Publication of JP7214295B2 publication Critical patent/JP7214295B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0869Validating the configuration within one network element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本願の実施例では、分散型システムのデータ同期方法、装置、コンピュータ可読媒体、及び電子機器が提供されている。該方法は、ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するステップと、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定するステップであって、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものである、ステップと、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するステップと、を含む。

Description

本願は、2019年7月15日に国家知識産権局に提出された、出願番号が201910636195.1であり、発明の名称が「分散型システムのデータ同期方法、装置、媒体、電子機器」である中国特許出願に基づく優先権を主張し、その全ての内容は参照することにより本願に組み込まれる。
本願は、コンピュータ技術分野に関し、特に、分散型システムのデータ同期方法、装置、媒体、及び電子機器に関する。
分散型システムは、ネットワークを介して通信を行い、共通のタスクを完了するために協調して動作する1組のコンピュータノードで構成されるシステムである。分散型システムでは、各ノードのいずれもデータの計算又は記憶に用いられる。また、分散型システムでは、ノード間でデータを同期する処理が必要な場合がある。例えば、ブロックチェーンシステムでは、新たなブロックチェーンノードが参加すると、他のブロックチェーンノードからデータを同期する必要がある。
本願は、分散型システムのデータ同期方法及び装置、コンピュータ可読記憶媒体、電子機器を提供して、少なくとも分散型システムにおけるデータ同期にかかる時間を短縮し、同期効率を向上させることができることを目的とする。
本願のその他の特徴及び利点は、以下の詳細な説明により明らかになり、又は、部分的に本願の実践により把握される。
本願の実施例の一態様によれば、分散型システムのデータ同期方法が提供されている。前記方法は、
ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するステップと、
前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定するステップであって、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものである、ステップと、
前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するステップと、を含む。
本願の実施例の一態様によれば、分散型システムのデータ同期装置が提供されている。前記装置は、ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するように構成された取得モジュールと、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定し、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものであるように構成された決定モジュールと、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択するように構成された選択モジュールと、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するように構成された同期モジュールと、を含む。
本願の実施例の一態様によれば、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、該コンピュータプログラムには、実行可能命令が含まれ、該実行可能命令がプロセッサによって実行されると、上記実施例に記載の分散型システムのデータ同期方法を実現させる。
本願の実施例の一態様によれば、電子機器が提供されている。前記電子機器は、1つ又は複数のプロセッサと、前記プロセッサの実行可能命令を記憶するためのメモリと、を備え、前記実行可能命令が、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、上記実施例に記載の分散型システムのデータ同期方法を実現させる。
図面を参照しながらその例示的な実施例を詳細に説明することにより、本願の上記及びその他の特徴及び利点は、より明らかになる。
本願の実施例による分散型システムのデータ同期方法の適用シナリオの模式図である。 本願の実施例による分散型システムのデータ同期のフローチャートである。 本願の実施例による図2に示すステップ210の詳細なフローチャートである。 本願の実施例による図2に示すステップ220の詳細なフローチャートである。 本願の実施例による図2に示すステップ230の詳細なフローチャートである。 本願の実施例によるブロックヘッダデータ同期の詳細なフローチャートである。 本願の実施例による完全ブロックデータ同期の詳細なフローチャートである。 本願の実施例による分散型システムのデータ同期装置のブロック図である。 本願の実施例による上記方法を実現させるコンピュータ可読記憶媒体である。 本願の実施例による上記方法を実現する電子機器の例示的なブロック図である。
以下、図面を参照して、例示的な実施例をより完全に説明する。しかしながら、例示的な実施例は、様々な形態で実施され、本明細書に記載の実施形態に限定されるものとして理解されるべきではない。逆に、これらの実施形態を提供することにより、本願が全面的かつ完全になり、例示的な実施例の構想が全面的に当業者に伝えられる。図面において、明瞭にするために、一部の部品の大きさを拡大するか変形させる場合がある。図面において、同一の符号が同一又は類似の構成を表しているので、それらの詳細な説明を省略する。
なお、説明される特徴、構成又は特性は、任意の適切な方式で1つ又は複数の実施例に組み合わせることができる。以下の説明において、多くの具体的な細部を提供することにより、本願の実施例に対する十分な理解を提供する。しかしながら、当業者が認識すべきものとして、本願の構成を実施するには、上記特定の細部のうち1つ又は複数がなくてもよいし、又は、他の方法、部品などを採用してもよい。他の場合には、本願の各態様をあいまいにしないように、公知の構成、方法、又は処理を詳しく示したり説明したりしない。
従来の分散型システムでは、ノード間のデータ同期処理に、通常、データ同期速度が遅く、同期効率が低いという問題が存在する。
これに鑑みて、本願は、上述した分散型システムにおけるノードのデータ同期速度が遅く、データ同期効率が低いという技術的問題を解決できる分散型システムのデータ同期方法、装置、媒体、及び電子機器を提供している。
まず、分散型システムのデータ同期方法の適用シナリオについて説明する。
図1は、分散型システムのデータ同期方法の適用シナリオの模式図である。
図1に示すように、シナリオ100は、分散型システムにおける一部であり、ここで、電子機器101、102、103、104、及び105は、それぞれ、分散型システムにおけるノードであり、前記電子機器は、スマートフォン、タブレットコンピュータ、ノートパソコンなどのポータブルモバイル機器であってもよいし、コンピュータ機器、フィールド端末、デスクトップコンピュータ、サーバ、ワークステーションなどの据え置き型機器であってもよい。本願の実施環境は、分散型システム全体の任意1つのノードであってもよい。図1に示すように、スマートフォン101をデータ同期のターゲットノードとしてもよい。この場合、デスクトップコンピュータ102、ノートパソコン103、タブレットコンピュータ104、及びワークステーション105が、スマートフォン101の隣接ノードとなる。本願によれば、スマートフォン101は、データ同期を行う過程において、まず、デスクトップコンピュータ102、ノートパソコン103、タブレットコンピュータ104及びワークステーション105のそれぞれとの過去のデータ同期の過去データ同期情報を同時に取得し、次に、前記過去データ同期情報に基づいて、前記隣接ノードから前記スマートフォン101へデータを同期する効率をはかるための選択重み値を決定し、最後に、前記選択重み値に基づいて、前記スマートフォン101へデータを同期するためのターゲット隣接ノードを選択し、データ同期過程を完了する。
注意すべきものとして、本願において、分散型システムにおける各ノード間のデータ伝送は、通信接続のような接続(例えば有線通信の通信ネットワークの接続又は無線通信の通信ネットワークの接続)により実現されてもよい。
本願の第1態様によれば、分散型システムのデータ同期方法が提供されている。
分散型システムのデータ同期方法のフローチャートである図2を参照されたい。該データ同期方法の実行主体は、分散型システムに含まれる、データ同期が必要なノードであってもよく、例えば、いずれかのノードとして機能する電子機器であってもよい。該データ同期方法は、以下のステップを含んでもよい。
ステップ210で、ターゲットノードに接続された隣接ノードの過去データ同期情報を取得する。
ステップ220で、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定し、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものである。
ステップ230で、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する。
以下、上記の実施ステップについて詳細に説明する。
ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するステップ210について、
具体的には、前記ターゲットノードとは、分散型システムにおける、データ同期が必要なノードであり、例えば、ブロックチェーンシステムにおけるいずれかのノードである。前記隣接ノードとは、前記分散型システムにおける、前記ターゲットノードに接続された他のノードである。
例示的な一実施例では、ステップ210において、ターゲットノードに接続された隣接ノードの過去データ同期情報を取得する過程は、図3に示すように完了することができ、具体的に以下のステップを含む。
ステップ2101で、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得する。
一実施例の具体的な実現において、前記分散型システムは、ブロックチェーンシステムを含んでもよく、前記ターゲットデータは、ブロックデータを含んでもよい。前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することは、以下のように実現されてもよい。
まず、ターゲットノードにおけるブロックチェーン台帳の第1ブロックヘッダ高さを取得する。次に、ターゲットノードに接続された隣接ノードにおけるブロックチェーン台帳の第2ブロックヘッダ高さを取得する。最後に、前記第1ブロックヘッダ高さと前記第2ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出する。
具体的には、ブロックチェーンシステムは、分散型システムの1種であり、その主な役割がデータの記憶である。保存する必要がある任意のデータは、ブロックチェーンに書き込まれてもよく、ブロックチェーンから読み出されてもよい。ブロックチェーンにおけるデータは、主にブロックの形で存在し、即ち、1つのブロックは、ブロックチェーンデータ全体の基本単位である。1つのブロックは、1つのブロックヘッダと、1つのブロック本体とを含み、ここで、ブロックヘッダには、現在ブロックの特徴値データ、例えば、現在時間、ブロックヘッダ高さ、前のブロックのハッシュ、及びブロック本体のハッシュなどが記録されるが、ブロック本体には、保存する必要がある実際のデータが記録される。ブロックチェーンにおけるブロックが厳密な順序で1方向に接続されることで、データチェーンが形成される。ブロックチェーンシステムでは、一定時間毎に1つのブロックが生成され、生成された新たなブロックが、直前に生成されたブロックの後に接続され、時間の経過とともに、ブロックチェーンデータが絶えずに更新される。また、ブロックチェーンシステムでは、新たなサーバがブロックチェーンネットワークに参加して1つのノードとなった後、新たに参加したノードがブロックチェーンシステムにおけるブロックデータを同期する必要がある。また、ブロックチェーンデータの絶え間ない更新に伴って、ブロックチェーンシステムにおける各ノードもブロックデータを絶えずに更新する必要がある。
ブロックチェーンデータでは、各々のブロックデータがユニークであるため、各ブロックデータのアイデンティティは、ブロックヘッダにおけるブロックヘッダ高さ又はハッシュ値によって識別可能である。ここで、ブロックチェーンデータにおけるブロックヘッダ高さは、ブロックの絶え間ない更新に伴って、段階的に増加し、即ち、1つのブロックが生成されるたびに、生成された新たなブロックのブロックヘッダ高さは1つ増加する。これに基づいて、本願は、ブロックヘッダ高さを利用することにより、ブロックチェーンシステムにおける前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出する。
具体的には、ターゲットノードにおけるブロックチェーン台帳の第1ブロックヘッダ高さと、ターゲットノードに接続された隣接ノードにおけるブロックチェーン台帳の第2ブロックヘッダ高さとをそれぞれ取得し、前記第1ブロックヘッダ高さと第2ブロックヘッダ高さとの大きさを比較し、第2ブロックヘッダ高さが第1ブロックヘッダ高さよりも大きい場合は、前記ターゲットノードに接続された隣接ノードには、前記ターゲットノードへ同期する必要があるブロックデータが存在することを表す。
ターゲットノードに接続された隣接ノードの過去データ同期情報を取得する過程では、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得することができる。このようにすると、候補隣接ノードの選択重み値を決定して、前記候補隣接ノードの中からターゲット隣接ノードを選択するだけで、データ同期の見込みがない隣接ノードをフィルタリングして除去することができ、不要な過去データ同期情報の取得を低減し、システムの記憶及び計算の負荷を軽減しつつ、前記過去データ同期情報の利用率を向上させるという利点がある。
ステップ2102で、前記候補隣接ノードの過去データ同期情報を取得する。
上記のような実施例では、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得する利点は、前記隣接ノードの過去データ同期情報を取得する前に、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、全ての隣接ノードの中から、データ同期の見込みがある候補隣接ノードをさらに決定できることである。このようにすると、データ同期の見込みがない隣接ノードをフィルタリングして除去することができ、不要な過去データ同期情報の取得を低減し、システムの記憶及び計算の負荷を軽減しつつ、前記過去データ同期情報の利用率を向上させるという利点がある。
前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定するステップであって、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものであるステップ220について、
例示的な一実施例では、前記過去データ同期情報は、ターゲットノードと前記隣接ノードとの過去のデータ同期過程におけるエラー回数を含んでもよく、ステップ220において、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定する過程は、図4に示すように、具体的に以下のステップを含んでもよい。
ステップ2201で、前記エラー回数がエラー回数の閾値を超えていない隣接ノードを検出する。
本実施例において、前記エラー回数とは、ターゲットノードと前記隣接ノードとの過去のデータ同期過程におけるエラー回数である。具体的には、分散型システムにおけるノードとノードとの間でデータ同期を行う際に、ノード自体の障害やデータ伝送ネットワークの障害などにより、例えば、データ同期要求がタイムアウトしたり、データの同期ダウンロード中に異常が発生したり、ノードへのアクセスが失敗したりするノード同期失敗は避けられない。
本実施例では、前記エラー回数の閾値を設定することにより、ターゲットノードに接続された隣接ノードを選別し、即ち、前記エラー回数がある一定数を超えた隣接ノードをフィルタリングして、前記エラー回数がある一定数を超えていない隣接ノードを残し、最終的に、残された隣接ノードを後続のターゲット隣接ノード決定の候補としてもよい。前記エラー回数の閾値は、実際の状況に応じて設定されてもよく、例えば、3回に設定される。隣接ノード1、隣接ノード2、隣接ノード3、及び隣接ノード4の過去のデータ同期過程におけるエラー回数がそれぞれ4回、3回、1回、及び0回である場合、最終的に残された隣接ノードは、隣接ノード2、隣接ノード3、及び隣接ノード4であってもよい。
ステップ2202で、前記過去データ同期情報に基づいて、前記エラー回数が前記エラー回数の閾値を超えていない隣接ノードの選択重み値を決定する。
上記のような実施例によれば、エラー回数の閾値を設定して、データ同期に常にエラーが発生した隣接ノードをフィルタリングして除去し、前記エラー回数の少ない隣接ノードを残すことで、後続の同期過程におけるデータの同期成功率を向上させることができ、前記選択重み値を計算するためのシステムの負担を低減することもでき、さらに、システムの計算の負荷を軽減し、データ同期効率を向上させる。
例示的な一実施例では、前記過去データ同期情報は、過去データ伝送速度を含んでもよく、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定することは、以下の式によって、前記隣接ノードの選択重み値を計算することを含んでもよく、

Figure 2022500775
ここで、Wは、i番目の隣接ノードの選択重み値を表し、jは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期を表し、mは、ターゲットノードとi番目の隣接ノードとの過去のm回目のデータ同期を表し、nは、ターゲットノードとi番目の隣接ノードとの過去の直近n回のデータ同期の回数を表し、Sは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期過程における過去データ伝送速度を表す。
具体的には、前記過去データ伝送速度とは、過去のデータ同期過程において伝送されたターゲットデータの大きさとデータ伝送時間との比であってもよいが、データ伝送時間とは、ターゲットノードが前記ターゲットデータを完全に受信した時点と、ターゲット隣接ノードに前記ターゲットデータのダウンロードを要求した時点との差であってもよい。例えば、あるデータ同期過程において、ターゲットノードがターゲット隣接ノードにターゲットデータのダウンロードを要求した時点が2019年7月1日12時00分00秒であり、ターゲットノードが前記ターゲットデータを完全に受信した時点が2019年7月1日12時00分03秒である場合、データ伝送時間は3.00秒であり、前記ターゲットデータの大きさが30Mbであれば、今回の過去データ伝送速度は10Mb/sである。
一実施例の具体的な実現において、ターゲットノードとある隣接ノードとの過去の直近5回のデータ同期過程におけるデータ伝送速度の平均値を、前記隣接ノードの選択重み値とするようにしてもよい。表1に示すように、ターゲットノードとある隣接ノードとの過去の直近5回のデータ同期過程におけるデータ伝送速度は、それぞれ、10Mb/s、30Mb/s、20Mb/s、15Mb/s、25Mb/sである。従って、計算することにより、前記選択重み値がW=20であると決定することができる。

Figure 2022500775
上記のような実施例によれば、前記隣接ノードの過去の直近n回のデータ同期の平均データ伝送速度を、前記選択重み値を決定する要因として計算することにより、前記隣接ノードのデータ同期効率をよくはかることができる。これにより、ターゲット隣接ノードをより適切に選択し、さらに、データ同期効率を向上させる。
例示的な一実施例では、前記過去データ同期情報は、過去データ伝送速度と過去データ要求時点とを含んでもよく、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定することは、以下の式によって、前記隣接ノードの選択重み値を計算することを含んでもよい。

Figure 2022500775
ここで、Wは、i番目の隣接ノードの選択重み値を表し、jは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期を表し、mは、ターゲットノードとi番目の隣接ノードとの過去のm回目のデータ同期を表し、nは、ターゲットノードとi番目の隣接ノードとの過去の直近n回のデータ同期の回数を表し、Sは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期過程における過去データ伝送速度を表し、tは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期の過去データ要求時点を表し、tは、前記i番目の隣接ノードの選択重み値の計算時点を表す。
具体的には、本実施例において、前記過去データ伝送速度とは、データ同期過程において伝送されたターゲットデータの大きさとデータ伝送時間との比であってもよい。前記過去データ要求時点は、過去のデータ同期過程においてターゲットノードがi番目の隣接ノードにターゲットデータのダウンロードを要求した時点であってもよく、本実施例では、主に前記i番目の隣接ノードの選択重み値の計算時点から、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期の過去データ要求時点までの時間長をはかるために用いられる。前記時間長は、前記ターゲットノードとi番目の隣接ノードとの間でデータ同期を行った頻度をはかることができ、つまり、前記時間長が短いほど、前記ターゲットノードとi番目の隣接ノードとの間でデータ同期を行った頻度が高くなることを表す。
一実施例の具体的な実現においては、ターゲットノードとi番目の隣接ノードとの過去の直近5回のデータ同期過程におけるデータ伝送速度の平均値と、前記i番目の隣接ノードの選択重み値の計算時点から、ターゲットノードとi番目の隣接ノードとの過去の直近5回のデータ同期の過去データ要求時点までの時間長の平均値との和を、前記隣接ノードの選択重み値とするようにしてもよい。表2に示すように、ターゲットノードとi番目の隣接ノードとの過去の直近5回のデータ同期過程におけるデータ伝送速度は、それぞれ、10Mb/s、30Mb/s、20Mb/s、15Mb/s、25Mb/sである。ターゲットノードが過去の直近5回でi番目の隣接ノードにターゲットデータのダウンロードを要求した時点は、それぞれ、2019年7月1日12時00分00秒、2019年7月1日12時00分10秒、2019年7月1日12時00分20秒、2019年7月1日12時00分30秒、2019年7月1日12時00分40秒である。

Figure 2022500775
前記i番目の隣接ノードの選択重み値の計算時点tが2019年7月1日12時00分50秒である場合、本実施例の計算式によって、前記隣接ノードの選択重み値がW=50であることを計算することができる。
上記のような実施例によれば、前記隣接ノードの過去の直近n回のデータ同期の平均データ伝送速度を、前記選択重み値を決定する要因として計算することにより、前記隣接ノードのデータ同期効率をよくはかることができる。しかしながら、ある隣接ノードのデータ伝送速度が高すぎると、他のノードが常にこの隣接ノードをターゲット隣接ノードとして選択することになり、これにより、ノードの負荷が重すぎてデータ同期効率が低下してしまう。データ伝送速度が高い隣接ノードについて、ターゲット隣接ノードとして選択された回数が頻繁になり、さらに、この隣接ノードの選択重み値の計算時点から、ターゲットノードとこの隣接ノードとの過去のj回目のデータ同期の過去データ要求時点までの時間長が短くなる。これに基づいて、前記ターゲットノードが前記隣接ノードへデータ同期を要求した過去データ要求時点を、前記選択重み値を決定する他の要因とすることにより、分散型システムにおけるターゲットノードに接続された隣接ノードのリソースのバランスをとり、ある隣接ノードが過度に利用されることによる前記隣接ノードの負荷が重すぎることを防ぐことができる。以上のような実施例に基づいて、より良好な隣接ノードを選択することができる。
上述したように、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定する方式は、任意であってもよく、以上に示した例に限定されないことが理解できる。
前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するステップ230について、
例示的な一実施例では、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択することは、図5に示すようなステップを含んでもよい。
図5は、本願の実施例によるステップ230の詳細なフローチャートであり、具体的に以下のステップを含む。
ステップ2301で、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得する。
一実施例の具体的な実現において、前記分散型システムは、ブロックチェーンシステムを含んでもよく、前記ターゲットデータは、ブロックデータを含んでもよい。前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することは、以下のように実現されてもよい。
ターゲットノードにおけるブロックチェーン台帳の第1ブロックヘッダ高さと、ターゲットノードに接続された隣接ノードにおけるブロックチェーン台帳の第2ブロックヘッダ高さとをそれぞれ取得する。そして、前記第1ブロックヘッダ高さと前記第2ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出し、第2ブロックヘッダ高さが第1ブロックヘッダ高さよりも大きい場合は、前記ターゲットノードに接続された隣接ノードには、前記ターゲットノードへ同期する必要があるブロックデータが存在することを表し、前記ターゲットノードへ同期する必要があるブロックデータが存在する隣接ノードを候補隣接ノードとする。
ステップ2302で、前記候補隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択する。
一実施例の具体的な実現において、前記候補隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択することは、以下のように実現されてもよい。
前記候補隣接ノードの選択重み値に基づいて、前記候補隣接ノードを大きい順にソートし、前記選択重み値が最も大きい隣接ノードをターゲット隣接ノードとする。
上記のような実施例によれば、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得する。これにより、選択されたターゲット隣接ノードのデータ不全に起因してデータ同期が失敗したことを回避することができ、さらにコンピュータネットワークリソースの浪費を低減させる。
例示的な一実施例では、前記分散型システムは、ブロックチェーンシステムを含んでもよく、前記ターゲットデータは、完全なブロックデータを含んでもよく、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期することは、以下のように実現されてもよい。
前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択し、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期する。
例示的な一実施例では、前記分散型システムは、ブロックチェーンシステムを含んでもよく、前記ターゲットデータは、ブロックヘッダデータと完全なブロックデータとを含んでもよく、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期することは、以下のように実現されてもよい。
前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記ブロックヘッダデータを同期するための第1ターゲット隣接ノードを選択し、前記第1ターゲット隣接ノードから前記ブロックヘッダデータを同期する。
前記ブロックヘッダデータを同期した後、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択し、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期する。
一実施例の具体的な実現において、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する前に、
ターゲットノードにおけるブロックチェーン台帳の、完全なブロックデータを有する第3ブロックヘッダ高さを取得するステップと、
ターゲットノードにおけるブロックチェーン台帳の第4ブロックヘッダ高さを取得するステップと、
前記第3ブロックヘッダ高さと前記第4ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードが、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があるか否かを検出するステップとを実現してもよい。前記第3ブロックヘッダ高さが第4ブロックヘッダ高さよりも小さい場合は、前記ターゲットノードが、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があることを表す。
説明すべきものとして、ターゲットノードにおけるブロックチェーン台帳には、完全なブロックデータを有するブロックと、完全なブロックデータを有しないブロックとが存在し、ここで、完全なブロックデータを有するブロックは、ブロックヘッダとブロック本体とを含むが、完全なブロックデータを有しないブロックは、ブロックヘッダだけを含む。したがって、この具体的な実施例において、前記第3ブロックヘッダ高さとは、完全なブロックデータを有するブロックのブロックヘッダの高さを指し、前記第4ブロックヘッダ高さとは、完全なブロックデータを有しないブロックのブロックヘッダの高さを指す。完全なブロックデータを有するブロックのブロックヘッダの高さが、完全なブロックデータを有しないブロックのブロックヘッダの高さよりも小さい場合は、前記ターゲットノードには、完全なブロックデータを有しないブロックが存在することを表し、さらに、前記ターゲットノードが、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があることを表す。
以下、分散型システムがブロックチェーンシステムである場合を例として、本願の実施例におけるデータ同期方式について詳細に説明する。ここで、該実施例では、ブロックデータを同期する過程が、ブロックヘッダデータを同期する過程と、完全なブロックデータを同期する過程とを含む場合を例として説明する。
一実施例の具体的な実現において、ターゲットノードがブロックヘッダデータを同期する具体的な実現は、図6に示すようなフローで繰り返し実施してもよく、前記フローは、具体的に以下のステップを含む。
ステップ610で、ローカルのブロックチェーン台帳のブロックヘッダ高さを取得する。
ステップ620で、ターゲットノードに接続された各隣接ノードの選択重み値を計算してソートする。
ステップ630で、全ての隣接ノードには、自ノードに必要な次のブロックヘッダデータが含まれるか否かをチェックし、自ノードに必要な次のブロックヘッダデータが含まれる場合、ステップ640を実行し、自ノードに必要な次のブロックヘッダデータが含まれない場合、ステップ610を実行して、次の同期サイクルを行う。
ステップ640で、選択重み値が最も高く、かつ、必要なブロックヘッダデータが存在する隣接ノードを決定する。
ステップ650で、前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信し、前記要求の時点を記録し、最も早いデータ同期ダウンロード要求の時点を削除する。
ステップ660で、ブロックヘッダデータを受信し、正当なブロックヘッダデータをローカルのブロックチェーン台帳に書き込む。
ステップ670で、今回のブロックヘッダデータ同期のデータ伝送速度を計算する。
注意すべきものとして、上記のようなステップ650を当業者がより容易に理解するために、ここでは具体的な例を挙げて説明する。例えば、前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信する前に、過去に前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信した要求履歴が3回存在し、かつ前記3回の要求履歴の要求時点が、それぞれ、2019年7月1日12時00分00秒、2019年7月1日12時01分01秒、2019年7月1日12時02分01秒であり、ここで、2019年7月1日12時00分00秒が、初回に前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信した要求時点である。2019年7月1日12時03分01秒に前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を再度送信すると、この時点、即ち2019年7月1日12時03分01秒を記録し、初回に前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信した要求時点、即ち2019年7月1日12時00分00秒を削除する。最終的に記録された直近3回で前記隣接ノードへブロックヘッダデータ同期ダウンロードの要求を送信した要求時点は、それぞれ、2019年7月1日12時01分01秒、2019年7月1日12時02分01秒、及び2019年7月1日12時03分01秒である。
一実施例の具体的な実現において、ターゲットノードが完全なブロックデータを同期する具体的な実現は、図7に示すようなフローで繰り返し実施してもよい。前記フローは、具体的に以下のステップを含む。
ステップ710で、ローカルのブロックチェーン台帳のブロックヘッダ高さと、完全なブロックデータのブロックヘッダ高さとを取得する。
ステップ720で、前記ブロックヘッダ高さが、完全なブロックデータのブロックヘッダ高さよりも高いか否かを検出し、前記ブロックヘッダ高さが、完全なブロックデータのブロックヘッダ高さよりも高い場合、ステップ730を実行し、前記ブロックヘッダ高さが、完全なブロックデータのブロックヘッダ高さよりも高くない場合、ステップ710を実行して、次の同期サイクルを行う。
ステップ730で、ターゲットノードに接続された各隣接ノードの選択重み値を計算してソートする。
ステップ740で、ソートされた隣接ノードに前記ターゲットノードの次の完全なブロックデータが含まれるか否かを検出し、前記ターゲットノードの次の完全なブロックデータが含まれる場合、ステップ750を実行し、前記ターゲットノードの次の完全なブロックデータが含まれない場合、ステップ710を実行して、次の同期サイクルを行う。
ステップ750で、選択重み値が最も高く、かつ、必要な完全なブロックデータが存在する隣接ノードを決定する。
ステップ760で、前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信し、前記要求の時点を記録し、最も早いデータ同期ダウンロード要求の時点を削除する。
ステップ770で、前記完全なブロックデータを受信し、正当で完全なブロックデータを完全なブロックデータのバッファに記憶する。
ステップ780で、今回の完全なブロックデータ同期のデータ伝送速度を計算し、最も早い完全なブロックデータ同期のデータ伝送速度を削除する。
注意すべきものとして、上記のようなステップ760を当業者がより容易に理解するために、ここでは具体的な例を挙げて説明する。例えば、前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信する前に、過去に前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信した要求履歴が3回存在し、かつ前記3回の要求履歴の要求時点が、それぞれ、2019年7月1日12時00分00秒、2019年7月1日12時01分01秒、2019年7月1日12時02分01秒であり、ここで、2019年7月1日12時00分00秒が、初回に前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信した要求時点である。2019年7月1日12時03分01秒に前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を再度送信すると、この時点、即ち2019年7月1日12時03分01秒を記録し、初回に前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信した要求時点、即ち2019年7月1日12時00分00秒を削除する。最終的に記録された直近3回で前記隣接ノードへ完全なブロックデータ同期ダウンロードの要求を送信した要求時点は、それぞれ、2019年7月1日12時01分01秒、2019年7月1日12時02分01秒、及び2019年7月1日12時03分01秒である。
上記のような実施例では、前記完全なブロックデータを同期する前にブロックヘッダデータを同期することによる利点が2つある。1つは、完全なブロックデータは、データ量が大きく、安全性の要求が高いため、ブロックチェーンシステムに新たに追加されたターゲットノードに対して完全なブロックデータの同期を行うとき、データ同期時間が長く、データ同期要求が拒否されてしまうことが非常に起こりやすい。しかしながら、ブロックヘッダデータは、データ量が小さく、安全性の要求が高くないため、ブロックチェーンシステムに新たに追加されたターゲットノードに対してデータ同期を行うのに非常に好適である。もう1つは、ターゲットノードがまずブロックヘッダデータを同期することは、前記ターゲットノードが、前記ターゲットノードへ前記完全なブロックデータを同期するためのターゲット隣接ノードを選択する必要があるか否かを検出することに役立ち、前記ターゲットノードが、前記ターゲットノードへ前記完全なブロックデータを同期するためのターゲット隣接ノードを選択する必要がないことを検出すると、前記ターゲットノードが隣接ノードの選択重み値を計算する必要がないため、コンピュータリソースを節約する。
一実施例の具体的な実現において、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期することは、以下のように実現されてもよい。
前記第2ターゲット隣接ノードにおける完全なブロックデータをダウンロードし、前記完全なブロックデータの正当性を検証し、正当で完全なブロックデータを前記ターゲットノードのブロックデータバッファに追加し、前記ブロックデータバッファに記憶されているデータに基づいて、前記ターゲットノードへ前記完全なブロックデータを同期する。
一実施例の具体的な実現において、前記ブロックデータバッファに記憶されているデータに基づいて、前記ターゲットノードへ前記完全なブロックデータを同期することは、以下のように実現されてもよい。
前記ターゲットノードにおけるブロックチェーン台帳で示されたブロック順序に従って、前記ブロックデータバッファから相応のブロックデータを読み出して、前記ターゲットノードのブロックチェーン台帳に書き込む。
例示的な一実施例では、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期することは、以下のように実現されてもよい。
前記ターゲットデータに対するダウンロード要求を前記ターゲット隣接ノードに送信することにより、前記ターゲット隣接ノードに、前記ダウンロード要求に基づいて前記ターゲットノードへ前記ターゲットデータを送信させる。
一実施例の具体的な実現において、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する過程において、前記ターゲットデータの同期が失敗すると、前記ターゲットノードと前記ターゲット隣接ノードとのデータ同期のエラー回数を記録する。
前記ターゲットデータの同期が失敗することとは、データ同期要求がタイムアウトしたことであってもよいし、データの同期ダウンロード過程に異常が発生したことであってもよいし、ターゲット隣接ノードへのアクセスに失敗したことであってもよい。
一実施例の具体的な実現において、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する過程において、前記ターゲットデータの同期が成功すると、前記ターゲットノードと前記ターゲット隣接ノードとのデータ同期のデータ伝送速度及びデータ要求時点を記録する。
上述したように、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する方式は、任意であってもよく、以上に示したものに限定されないことが理解できる。
以上のように、本願の実施例の構成では、ターゲットノードに接続された隣接ノードの過去データ同期情報に基づいて、各隣接ノードに対して、前記隣接ノードから前記ターゲットノードへのデータ同期の同期効率を反映できる選択重み値を決定し、異なる隣接ノードに対応する選択重み値に基づいて、前記ターゲットノードへデータを同期できるターゲット隣接ノードを最終的に決定することにより、各ノードの過去データ同期情報を総合的に考慮しながら、適切な隣接ノードを選択してデータ同期を行うことができ、例えば、各ノードの実際の輻輳状況及び負荷状況等の情報を考慮して、比較的科学的、合理的なターゲット隣接ノードを選択することができる。これにより、分散型システムにおけるデータ同期の時間を短縮し、同期効率を向上させることができる。さらに、従来技術に存在する分散型システムにおけるノードのデータ同期速度が遅く、データ同期効率が低いという技術的問題を解決することができる。
以下、本願の上記実施例における分散型システムのデータ同期方法を実行することに用いることができる本願の装置の実施例を紹介する。本願の装置の実施例に開示されていない細部については、本願の上記分散型システムのデータ同期方法の実施例を参照されたい。
図8は、本願の一実施例による分散型システムのデータ同期装置のブロック図である。
図8に示すように、本願の一実施例による分散型システムのデータ同期装置800は、取得モジュール810と、決定モジュール820と、選択モジュール830と、同期モジュール840とを含む。
ここで、取得モジュール810は、ターゲットノードに接続された隣接ノードの過去データ同期情報を取得し、決定モジュール820は、前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定し、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものであり、選択モジュール830は、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、同期モジュール840は、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する。
本願のいくつかの実施例では、前述の構成に基づいて、選択モジュール830は、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得し、前記候補隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、取得モジュール810は、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得する検出モジュールと、前記候補隣接ノードの過去データ同期情報を取得する実行モジュールと、を含む。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータがブロックデータを含み、前記検出モジュールは、ターゲットノードにおけるブロックチェーン台帳の第1ブロックヘッダ高さを取得し、ターゲットノードに接続された隣接ノードにおけるブロックチェーン台帳の第2ブロックヘッダ高さを取得し、前記第1ブロックヘッダ高さと前記第2ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記過去データ同期情報は、ターゲットノードと前記隣接ノードとの過去のデータ同期過程におけるエラー回数を含み、前記決定モジュール820は、前記エラー回数がエラー回数の閾値を超えていない隣接ノードを検出し、前記過去データ同期情報に基づいて、前記エラー回数が前記エラー回数の閾値を超えていない隣接ノードの選択重み値を決定するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記過去データ同期情報は、過去データ伝送速度及び過去データ要求時点を含み、前記決定モジュール820は、以下の式によって、前記隣接ノードの選択重み値を計算するように構成される。

Figure 2022500775
ここで、Wは、i番目の隣接ノードの選択重み値を表し、jは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期を表し、mは、ターゲットノードとi番目の隣接ノードとの過去のm回目のデータ同期を表し、nは、ターゲットノードとi番目の隣接ノードとの過去の直近n回のデータ同期の回数を表し、Sは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期過程における過去データ伝送速度を表し、tは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期の過去データ要求時点を表し、tは、前記i番目の隣接ノードの選択重み値の計算時点を表す。
本願のいくつかの実施例では、前述の構成に基づいて、前記同期モジュール840は、前記ターゲットデータに対するダウンロード要求を前記ターゲット隣接ノードに送信することにより、前記ターゲット隣接ノードに、前記ダウンロード要求に基づいて前記ターゲットノードへ前記ターゲットデータを送信させるように構成され、前記方法は、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する過程において、前記ターゲットデータの同期が失敗すると、前記ターゲットノードと前記ターゲット隣接ノードとのデータ同期のエラー回数を記録するステップをさらに含む。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータが完全なブロックデータを含み、前記選択モジュール830は、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択するように構成され、前記同期モジュール840は、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータがブロックヘッダデータと完全なブロックデータとを含み、前記選択モジュール830は、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記ブロックヘッダデータを同期するための第1ターゲット隣接ノードを選択するように構成され、前記同期モジュール840は、前記第1ターゲット隣接ノードから前記ブロックヘッダデータを同期するように構成される。
前記選択モジュール830は、さらに、前記ブロックヘッダデータを同期した後に、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択するように構成され、前記同期モジュール840は、さらに、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータが完全なブロックデータを含み、前記選択モジュール830は、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する前に、ターゲットノードにおけるブロックチェーン台帳の、完全なブロックデータを有する第3ブロックヘッダ高さを取得し、ターゲットノードにおけるブロックチェーン台帳の第4ブロックヘッダ高さを取得し、前記第3ブロックヘッダ高さと前記第4ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があるか否かを検出するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータが完全なブロックデータを含み、前記同期モジュール840は、前記第2ターゲット隣接ノードにおける完全なブロックデータをダウンロードし、前記完全なブロックデータの正当性を検証し、正当で完全なブロックデータを前記ターゲットノードのブロックデータバッファに追加し、前記ブロックデータバッファに記憶されているデータに基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するように構成される。
本願のいくつかの実施例では、前述の構成に基づいて、前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータが完全なブロックデータを含み、前記同期モジュール840は、前記ターゲットノードにおけるブロックチェーン台帳で示されたブロック順序に従って、前記ブロックデータバッファから相応のブロックデータを読み出し、前記ターゲットノードのブロックチェーン台帳に書き込むように構成される。
注意すべきものとして、上記の詳細な説明には、分散型システムのデータ同期方法、及び分散型システムのデータ同期装置の若干のモジュールが言及されているが、このような分割は、強制的ではない。実際には、本願の実施形態によれば、上述した2つ以上のモジュール及び機能は、1つのモジュールで具現化されてもよい。逆に、上述した1つのモジュールの特徴及び機能は、さらに、複数のモジュールによって具現化されるように分割されてもよい。モジュールとして示される部品は、物理ユニットであってもよいし、物理ユニットではなくてもよく、同じ箇所に位置してもよいし、複数のネットワークユニットに分布してもよい。実際の必要に応じてそのうちの一部又は全部のモジュールを選択して本願の構成の目的を達成することができる。当業者であれば創造的な労働をすることなく、理解して実施することができる。
別の態様として、本願では、さらに、本明細書の上記方法を実現することが可能なプログラム製品を記憶したコンピュータ可読記憶媒体が提供されている。いくつかの可能な実施形態では、本願の各態様は、プログラムコードが含まれるプログラム製品の形で実現されてもよく、前記プログラム製品が端末機器で実行されると、前記プログラムコードは、本明細書の上記「例示的な方法」部分に説明された本願の様々な例示的な実施形態によるステップを前記端末機器に実行させる。
図9は、本願の実施形態による上記方法を実現するためのプログラム製品900を示している。図9に示すように、プログラム製品900は、プログラムコードが含まれる携帯型コンパクトディスク読み出し専用メモリ(CD−ROM)を用いてもよく、例えば、パソコンのような端末機器で実行されることができる。しかしながら、本願のプログラム製品は、これに限定されるものではなく、本明細書において、可読記憶媒体は、プログラムを含むか又は記憶した任意の有形の媒体であってもよく、該プログラムは、命令実行システム、装置、又はデバイスによって用いられるか、これらと組み合わせて用いられてもよい。
前記プログラム製品は、1つ又は複数の可読媒体の任意の組み合わせを用いてもよい。可読媒体は、可読信号媒体又は可読記憶媒体であってもよい。可読記憶媒体は、例えば、電気、磁気、光、電磁、赤外線、又は半導体のシステム、装置、又はデバイス、或いは、上記の任意の組み合わせであってもよいが、これらに限定されない。可読記憶媒体のより具体的な例(非網羅的なリスト)は、1つ又は複数の導線を有する電気的接続、携帯型ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、携帯型コンパクトディスク読み出し専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせを含む。
コンピュータ可読信号媒体は、ベースバンドで、又はキャリアの一部として伝搬されるデータ信号を含んでもよく、このデータ信号において可読プログラムコードが運ばれる。このような伝搬されるデータ信号は、様々な形式を用いてもよく、電磁信号、光信号、又は上記の任意の適切な組み合わせを含むが、これらに限定されない。可読信号媒体は、可読記憶媒体以外の任意の可読媒体であってもよい。該可読媒体は、命令実行システム、装置、又はデバイスによって用いられるか、これらと組み合わせて用いられるプログラムを送信、伝播、又は伝送することができる。
可読媒体に含まれるプログラムコードは、無線、有線、光ケーブル、RFなど、又は上記の任意の適切な組み合わせを含むが、これらに限定されない任意の適切な媒体で伝送されてもよい。
本願の処理を実行するためのプログラムコードを、1つ又は複数のプログラミング言語の任意の組み合わせで作成してもよい。前記プログラミング言語は、Java、C++などのようなオブジェクト指向のプログラミング言語を含み、「C」言語又は類似したプログラミング言語のような通常の手続き型プログラミング言語も含む。プログラムコードは、完全にユーザコンピューティング機器で実行されてもよいし、部分的にユーザ機器で実行されてもよいし、独立したソフトウェアパッケージとして実行されてもよいし、部分的にユーザコンピューティング機器でかつ部分的に遠隔コンピューティング機器で実行されてもよいし、完全に遠隔コンピューティング機器又はサーバで実行されてもよい。遠隔コンピューティング機器に関する場合、遠隔コンピューティング機器は、ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)を含める任意の種類のネットワークを介して、ユーザコンピューティング機器に接続されてもよいし、又は外部のコンピューティング機器に接続されてもよい(例えば、インターネットサービスプロバイダを利用して、インターネットを介して接続される)。
別の態様として、本願では、さらに、上記のような方法を実現することが可能な電子機器が提供されている。
当業者であれば理解できるように、本願の様々な態様は、システム、方法、又はプログラム製品として実現されてもよい。したがって、本願の様々な態様は、具体的に、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、マイクロコードなどを含む)、又はハードウェアとソフトウェアとを組み合わせた実施形態として実現されてもよく、ここで、「回路」、「モジュール」、又は「システム」と総称することができる。
以下、図10を参照しながら、本願のこの実施形態による電子機器1000を説明する。図10に示す電子機器1000は、一例にすぎず、本願の実施例の機能及び使用範囲を制限するものではない。
図10に示すように、電子機器1000は、汎用コンピューティング機器として表現される。電子機器1000のコンポーネントは、少なくとも1つの処理ユニット1010と、少なくとも1つの記憶ユニット1020と、異なるシステムコンポーネント(記憶ユニット1020及び処理ユニット1010を含む)を接続するバス1030とを含むが、これらに限定されない。
ここで、前記記憶ユニットには、プログラムコードが記憶されており、前記プログラムコードは、前記処理ユニット1010によって実行されることで、前記処理ユニット1010に、本明細書の上記「実施例の方法」部分で説明した本願の各例示的な実施形態によるステップを実行させることが可能である。
記憶ユニット1020は、例えば、ランダムアクセスメモリ(RAM)1021及び/又はキャッシュメモリ1022などの揮発性メモリ形式の可読媒体を含んでもよく、読み出し専用メモリ(ROM)1023をさらに含んでもよい。
記憶ユニット1020は、1組(少なくとも1つ)のプログラムモジュール1025を有するプログラム/ユーティリティ1024をさらに含んでもよく、このようなプログラムモジュール1025は、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、その他のプログラムモジュール、及びプログラムデータを含むが、これらに限定されない。これらの例のそれぞれ又は組み合わせには、ネットワーク環境の実現が含まれ得る。
バス1030は、いくつかのバス構造の1つ又は複数であってもよく、記憶ユニットバス又は記憶ユニットコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、処理ユニット、又は複数種のバス構造のいずれかを用いたローカルバスを含む。
電子機器1000は、1つ又は複数の外部機器1200(例えば、キーボード、ポインティングデバイス、ブルートゥース(登録商標)機器など)と通信してもよいし、ユーザが該電子機器1000と対話することを可能にする1つ又は複数の機器と通信してもよいし、及び/又は、該電子機器1000が1つ又は複数の他のコンピューティング機器と通信することを可能にする任意の機器(例えば、ルータ、モデムなど)と通信してもよい。このような通信は、入力/出力(I/O)インタフェース1050を介して行うことができる。また、電子機器1000は、ネットワークアダプタ1060を介して、1つ又は複数のネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又は公衆ネットワーク、例えばインターネット)と通信してもよい。図示するように、ネットワークアダプタ1060は、バス1030を介して、電子機器1000の他のモジュールと通信する。理解すべきものとして、図示されないが、電子機器1000と組み合わせて、マイクロコード、デバイスドライバ、冗長処理ユニット、外部磁気ディスクドライブアレイ、RAIDシステム、磁気テープドライブ、及びデータバックアップストレージシステムなどを含むが、これらに限定されない他のハードウェア及び/又はソフトウェアモジュールを使用してもよい。
以上の実施形態の説明により、ここで説明した例示的な実施形態がソフトウェアによって実現されてもよいし、ソフトウェアを必要なハードウェアと組み合わせるような方式で実現されてもよいことは、当業者であれば容易に理解することができる。したがって、本願の実施形態による構成は、ソフトウェア製品の形で表現することができ、該ソフトウェア製品は、不揮発性記憶媒体(CD−ROM、Uディスク、モバイルハードディスクなどであってもよい)、又はネットワークに記憶されてもよく、本願の実施形態による方法を1台のコンピューティング機器(パソコン、サーバ、端末装置、又はネットワーク機器などであってもよい)に実行させる若干の命令を含む。
また、上記の図面は、本願の例示的な実施例による方法に含まれる処理の模式的な説明にすぎず、制限するものではない。上記の図面に示される処理は、これらの処理の時間的順序を示すか又は限定するものではないことを容易に理解することができる。また、これらの処理は、例えば、複数のモジュールにおいて同期的に又は非同期的に実行されてもよいことも容易に理解することができる。
理解すべきものとして、本願は、以上で説明されて図面に示された精確な構成に限定されるものではなく、その範囲から逸脱することなく、様々な修正及び変更を行うことが可能である。本願の範囲は、添付の特許請求の範囲によってのみ限定される。
800 分散型システムのデータ同期装置
810 取得モジュール
820 決定モジュール
830 選択モジュール
840 同期モジュール
900 プログラム
1010 処理ユニット
1020 記憶ユニット
1022 キャッシュ
1040 表示ユニット
1050 I/Oインタフェース
1060 ネットワークアダプタ
1200 外部機器

Claims (17)

  1. 電子機器が実行する、複数のノードを含む分散型システムのデータ同期方法であって、
    ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するステップと、
    前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定するステップであって、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものである、ステップと、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するステップと、
    を含む方法。
  2. 前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択することは、
    前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得するステップと、
    前記候補隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択するステップと、
    を含む請求項1に記載の方法。
  3. 前記候補隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択することは、
    選択重み値が最も高い候補隣接ノードを前記ターゲット隣接ノードとして決定するステップを含む、
    請求項2に記載の方法。
  4. ターゲットノードに接続された隣接ノードの過去データ同期情報を取得する前記ステップは、
    前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することにより、前記ターゲットノードへデータを同期する必要がある候補隣接ノードを取得するステップと、
    前記候補隣接ノードの過去データ同期情報を取得するステップと、
    を含む請求項1に記載の方法。
  5. 前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータは、ブロックデータを含み、
    前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出することは、
    前記ターゲットノードにおけるブロックチェーン台帳の第1ブロックヘッダ高さを取得するステップと、
    前記ターゲットノードに接続された隣接ノードにおけるブロックチェーン台帳の第2ブロックヘッダ高さを取得するステップと、
    前記第1ブロックヘッダ高さと前記第2ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードに接続された各隣接ノードには、前記ターゲットノードへ同期する必要があるデータが存在するか否かを検出するステップと、を含む、
    請求項4に記載の方法。
  6. 前記過去データ同期情報は、前記ターゲットノードと前記隣接ノードとの過去のデータ同期過程におけるエラー回数を含み、
    前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定する前記ステップは、
    前記エラー回数がエラー回数の閾値を超えていない隣接ノードを検出するステップと、
    前記過去データ同期情報に基づいて、前記エラー回数が前記エラー回数の閾値を超えていない隣接ノードの選択重み値を決定するステップと、を含む、
    請求項1に記載の方法。
  7. 前記過去データ同期情報は、過去データ伝送速度及び過去データ要求時点を含み、
    前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定する前記ステップは、以下の式によって、前記隣接ノードの選択重み値を計算するステップを含み、

    Figure 2022500775
    ここで、Wは、i番目の隣接ノードの選択重み値を表し、jは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期を表し、mは、ターゲットノードとi番目の隣接ノードとの過去のm回目のデータ同期を表し、nは、ターゲットノードとi番目の隣接ノードとの過去の直近n回のデータ同期の回数を表し、Sは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期過程における過去データ伝送速度を表し、tは、ターゲットノードとi番目の隣接ノードとの過去のj回目のデータ同期の過去データ要求時点を表し、tは、前記i番目の隣接ノードの選択重み値の計算時点を表す、
    請求項1に記載の方法。
  8. 前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期することは、
    前記ターゲットデータに対するダウンロード要求を前記ターゲット隣接ノードに送信することにより、前記ターゲット隣接ノードに、前記ダウンロード要求に基づいて前記ターゲットノードへ前記ターゲットデータを送信させるステップを含み、
    前記方法は、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する過程において、前記ターゲットデータの同期が失敗すると、前記ターゲットノードと前記ターゲット隣接ノードとのデータ同期のエラー回数を記録するステップをさらに含む、
    請求項1に記載の方法。
  9. 前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータは、ブロックヘッダデータと完全なブロックデータとを含み、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する前記ステップは、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記ブロックヘッダデータを同期するための第1ターゲット隣接ノードを選択し、前記第1ターゲット隣接ノードから前記ブロックヘッダデータを同期するステップと、
    前記ブロックヘッダデータを同期した後に、前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択し、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期するステップと、を含む、
    請求項1乃至4のいずれか1項に記載の方法。
  10. 前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する前に、
    前記ターゲットノードにおけるブロックチェーン台帳の、完全なブロックデータを有する第3ブロックヘッダ高さを取得するステップと、
    前記ターゲットノードにおけるブロックチェーン台帳の第4ブロックヘッダ高さを取得するステップと、
    前記第3ブロックヘッダ高さと前記第4ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があるか否かを検出するステップと、
    をさらに含む請求項9に記載の方法。
  11. 前記第3ブロックヘッダ高さと前記第4ブロックヘッダ高さとの大きさを比較することにより、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択する必要があるか否かを検出する前記ステップは、
    前記第3ブロックヘッダ高さが第4ブロックヘッダ高さよりも小さい場合、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択するステップをさらに含む、
    請求項10に記載の方法。
  12. 前記分散型システムは、ブロックチェーンシステムを含み、前記ターゲットデータは、完全なブロックデータを含み、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択し、前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期する前記ステップは、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するための第2ターゲット隣接ノードを選択し、前記第2ターゲット隣接ノードから前記完全なブロックデータを同期するステップを含む、
    請求項1乃至4のいずれか1項に記載の方法。
  13. 前記第2ターゲット隣接ノードから前記完全なブロックデータを同期することは、
    前記第2ターゲット隣接ノードにおける完全なブロックデータをダウンロードするステップと、
    前記完全なブロックデータの正当性を検証するステップと、
    正当で完全なブロックデータを前記ターゲットノードのブロックデータバッファに追加し、前記ブロックデータバッファに記憶されているデータに基づいて、前記ターゲットノードへ前記完全なブロックデータを同期するステップと、
    を含む請求項9又は12に記載の方法。
  14. 前記ブロックデータバッファに記憶されているデータに基づいて、前記ターゲットノードへ前記完全なブロックデータを同期することは、
    前記ターゲットノードにおけるブロックチェーン台帳で示されたブロック順序に従って、前記ブロックデータバッファから相応のブロックデータを読み出して、前記ターゲットノードのブロックチェーン台帳に書き込むステップを含む、
    請求項13に記載の方法。
  15. 分散型システムのデータ同期装置であって、
    ターゲットノードに接続された隣接ノードの過去データ同期情報を取得するように構成された取得モジュールと、
    前記過去データ同期情報に基づいて、前記隣接ノードの選択重み値を決定し、前記選択重み値が、前記隣接ノードから前記ターゲットノードへデータを同期する効率をはかるためのものであるように構成された決定モジュールと、
    前記隣接ノードの選択重み値に基づいて、前記ターゲットノードへデータを同期するためのターゲット隣接ノードを選択するように構成された選択モジュールと、
    前記ターゲット隣接ノードにおけるターゲットデータを前記ターゲットノードに同期するように構成された同期モジュールと、
    を含む装置。
  16. コンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、該コンピュータプログラムには、実行可能命令が含まれ、該実行可能命令がプロセッサによって実行されると、請求項1乃至14のいずれか1項に記載の方法を実施させるコンピュータ可読記憶媒体。
  17. 電子機器であって、
    プロセッサと、
    前記プロセッサの実行可能命令を記憶するためのメモリと、を備え、
    前記プロセッサは、前記実行可能命令を実行することにより、請求項1乃至14のいずれか1項に記載の方法を実施するように構成される、
    電子機器。
JP2021514604A 2019-07-15 2020-06-15 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器 Active JP7214295B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910636195.1A CN110365768B (zh) 2019-07-15 2019-07-15 分布式系统的数据同步方法、装置、介质、电子设备
CN201910636195.1 2019-07-15
PCT/CN2020/096119 WO2021008285A1 (zh) 2019-07-15 2020-06-15 分布式系统的数据同步方法、装置、介质、电子设备

Publications (2)

Publication Number Publication Date
JP2022500775A true JP2022500775A (ja) 2022-01-04
JP7214295B2 JP7214295B2 (ja) 2023-01-30

Family

ID=68219259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021514604A Active JP7214295B2 (ja) 2019-07-15 2020-06-15 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器

Country Status (6)

Country Link
US (1) US11645303B2 (ja)
JP (1) JP7214295B2 (ja)
KR (1) KR102476531B1 (ja)
CN (2) CN110365768B (ja)
SG (1) SG11202101244WA (ja)
WO (1) WO2021008285A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
CN110888892B (zh) * 2019-11-15 2023-06-16 腾讯科技(深圳)有限公司 一种区块同步方法、装置及存储介质
CN110928950A (zh) * 2019-11-25 2020-03-27 深圳壹账通智能科技有限公司 区块链交易信息管理方法、装置、计算机设备及存储介质
CN111159289B (zh) * 2019-12-17 2024-03-01 深圳前海微众银行股份有限公司 一种区块同步的方法及装置
CN111147392B (zh) * 2019-12-25 2021-08-24 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置、设备及可读存储介质
CN111241593A (zh) * 2020-01-02 2020-06-05 支付宝(杭州)信息技术有限公司 用于区块链节点的数据同步方法及装置
CN111241115B (zh) * 2020-01-07 2022-02-22 腾讯科技(深圳)有限公司 数据同步方法、装置、设备及存储介质
CN111294390B (zh) * 2020-01-17 2021-11-23 腾讯科技(深圳)有限公司 一种区块数据快速同步方法、装置、设备及存储介质
CN111338574B (zh) * 2020-02-20 2022-07-08 平安科技(深圳)有限公司 基于区块链的数据自修复方法、装置、介质及电子设备
CN111061813B (zh) * 2020-03-16 2020-07-07 支付宝(杭州)信息技术有限公司 用于区块链网络中的数据同步的方法、装置和计算设备
CN111400106B (zh) * 2020-03-27 2023-07-28 百度国际科技(深圳)有限公司 一种区块链账本同步方法、装置以及电子设备
CN111475575B (zh) 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN111708844B (zh) * 2020-08-24 2020-12-01 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置及设备
CN111935315B (zh) * 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 区块同步方法及装置
CN112115367B (zh) * 2020-09-28 2024-04-02 北京百度网讯科技有限公司 基于融合关系网络的信息推荐方法、装置、设备和介质
US11194791B1 (en) * 2020-10-23 2021-12-07 Coinbase Crypto Services, LLC. Blockchain orchestrator computer system
CN112417052B (zh) * 2020-12-03 2021-08-20 腾讯科技(深圳)有限公司 区块链网络中的数据同步方法、装置、设备及存储介质
CN112231414B (zh) * 2020-12-14 2022-02-25 腾讯科技(深圳)有限公司 区块链系统的数据同步方法、装置、可读介质及电子设备
CN112765222B (zh) * 2021-04-07 2021-07-20 暗链科技(深圳)有限公司 基于区块链的数据传输方法、存储介质及电子设备
CN113532549B (zh) * 2021-08-27 2022-07-08 南京邮电大学 一种新能源汽车用动力电池测试系统
KR102651602B1 (ko) * 2021-12-13 2024-03-26 고려대학교 산학협력단 저궤도 위성군의 시각 동기화 방법 및 그 장치
CN114281256A (zh) * 2021-12-20 2022-04-05 广州炒米信息科技有限公司 基于分布式存储系统的数据同步方法、装置、设备及介质
CN114281260A (zh) * 2021-12-23 2022-04-05 广州炒米信息科技有限公司 应用于分布式存储系统的存储方法、装置、设备及介质
CN114979180B (zh) * 2022-05-24 2024-05-17 超聚变数字技术有限公司 数据同步方法、系统及设备
CN115086350B (zh) * 2022-06-13 2024-01-19 亿度科创(深圳)有限公司 一种区块链节点数据同步方法、设备及存储介质
CN115174594B (zh) * 2022-07-07 2024-03-29 广州炒米信息科技有限公司 分布式系统的数据同步方法、装置、设备及介质
KR102629868B1 (ko) 2023-03-20 2024-01-30 새한프라텍 주식회사 분진 제거겸용 수지 분쇄재 결정화장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306151A (ja) * 1998-04-27 1999-11-05 Fujitsu Ltd 分散オブジェクト処理装置及びプログラム記憶媒体
JP2013186692A (ja) * 2012-03-08 2013-09-19 Hitachi Systems Ltd 仮想マシン提供システム
JPWO2012086041A1 (ja) * 2010-12-22 2014-05-22 富士通株式会社 同期処理方法
JPWO2014076838A1 (ja) * 2012-11-19 2017-01-05 株式会社日立システムズ 仮想マシン同期システム
JP2017073000A (ja) * 2015-10-07 2017-04-13 株式会社デンソー 並列化方法、並列化ツール、車載装置
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7594800A (en) * 1999-10-22 2001-05-08 Microsoft Corporation A method for communicating with multiple network nodes
US7542432B2 (en) * 2005-10-27 2009-06-02 Alcatel Lucent Resource matched topology database synchronization in communications networks having topology state routing protocols
JP5279888B2 (ja) 2011-12-26 2013-09-04 株式会社フジ医療器 マッサージ機
JP5585631B2 (ja) 2012-10-11 2014-09-10 キヤノンマーケティングジャパン株式会社 錠剤供給装置、錠剤供給方法および除電ユニット、除電方法。
CN103281707B (zh) * 2013-06-07 2015-08-19 北京交通大学 面向轨道交通基础设施服役状态检测的接入网构建方法
US10268410B2 (en) * 2014-10-20 2019-04-23 Netapp, Inc. Efficient modification of storage system metadata
CN105592488B (zh) * 2014-10-24 2018-10-26 南京中兴软件有限责任公司 一种时钟网络的建立方法、装置及通信节点
US9686124B2 (en) * 2015-09-22 2017-06-20 Veniam, Inc. Systems and methods for managing a network of moving things
US10437788B2 (en) * 2015-12-08 2019-10-08 Sap Se Automatic detection, retry, and resolution of errors in data synchronization
US10021184B2 (en) * 2015-12-31 2018-07-10 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US20170329635A1 (en) * 2016-05-13 2017-11-16 University Of Utah Research Foundation Systems and methods for distributed computing
CN106506638B (zh) * 2016-11-04 2020-01-07 江苏通付盾科技有限公司 区块链中的区块存储方法及装置
KR101930825B1 (ko) * 2017-01-23 2018-12-19 주식회사 데일리인텔리전스 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법
CN106792714A (zh) * 2017-03-02 2017-05-31 重庆邮电大学 一种针对WSN中Sybil攻击的安全时间同步方法
US10102265B1 (en) * 2017-04-12 2018-10-16 Vijay K. Madisetti Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing
CN112041833A (zh) * 2017-10-16 2020-12-04 因特比有限公司 用于促进区块链之间的数据传输的方法和系统
CN107819829B (zh) * 2017-10-17 2020-07-07 上海点融信息科技有限责任公司 访问区块链的方法、系统、区块链节点设备及用户终端
CN108737498A (zh) * 2018-04-18 2018-11-02 中国地质大学(武汉) 一种基于区块链的p2p安全下载检测方法及系统
CN108848184B (zh) * 2018-06-29 2020-08-28 北京金山安全软件有限公司 一种基于信任机制的区块链节点同步方法及装置
CN109241185B (zh) 2018-08-27 2021-03-30 武汉达梦数据库股份有限公司 一种数据同步的方法以及数据同步装置
US10951408B2 (en) * 2018-09-05 2021-03-16 Nec Corporation Method and system for publicly verifiable proofs of retrievability in blockchains
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN109450664B (zh) * 2018-10-09 2022-07-12 北京医拍智能科技有限公司 一种基于区块链p2p网络的数据协同处理方法及装置
CN109274754B (zh) * 2018-10-11 2021-05-04 上海保险交易所股份有限公司 用于在区块链网络中同步数据的方法、设备和存储介质
EP3560143B1 (en) * 2018-12-13 2021-09-15 Advanced New Technologies Co., Ltd. Data isolation in a blockchain network
CN109889589B (zh) 2019-02-18 2021-11-23 闪联信息技术工程中心有限公司 一种基于区块链实现嵌入式硬件ota升级系统及方法
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306151A (ja) * 1998-04-27 1999-11-05 Fujitsu Ltd 分散オブジェクト処理装置及びプログラム記憶媒体
JPWO2012086041A1 (ja) * 2010-12-22 2014-05-22 富士通株式会社 同期処理方法
JP2013186692A (ja) * 2012-03-08 2013-09-19 Hitachi Systems Ltd 仮想マシン提供システム
JPWO2014076838A1 (ja) * 2012-11-19 2017-01-05 株式会社日立システムズ 仮想マシン同期システム
JP2017073000A (ja) * 2015-10-07 2017-04-13 株式会社デンソー 並列化方法、並列化ツール、車載装置
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置
US20210176160A1 (en) * 2018-06-29 2021-06-10 Beijing Kingsoft Internet Security Software Co., Ltd. Method and device for synchronizing node of blockchain

Also Published As

Publication number Publication date
WO2021008285A1 (zh) 2021-01-21
SG11202101244WA (en) 2021-03-30
CN110365768A (zh) 2019-10-22
CN110798509B (zh) 2021-09-17
KR20210042161A (ko) 2021-04-16
US20210141804A1 (en) 2021-05-13
CN110798509A (zh) 2020-02-14
CN110365768B (zh) 2021-07-06
KR102476531B1 (ko) 2022-12-13
US11645303B2 (en) 2023-05-09
JP7214295B2 (ja) 2023-01-30

Similar Documents

Publication Publication Date Title
JP2022500775A (ja) 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器
CN110609872B (zh) 用于同步节点数据的方法和装置
CN107729570B (zh) 用于服务器的数据迁移方法和装置
CN110601978B (zh) 流量分发控制方法和装置
US11314451B2 (en) Method and apparatus for storing data
US8838727B2 (en) Maintaining referential integrity
US9560127B2 (en) Systems, methods and algorithms for logical movement of data objects
US20150134799A1 (en) Path selection for network service requests
CN111338834B (zh) 数据存储方法和装置
CN111124299A (zh) 数据存储管理方法、装置、设备、系统及存储介质
CN104079623A (zh) 多级云存储同步控制方法及系统
CN111444148B (zh) 基于MapReduce的数据传输方法和装置
US11740827B2 (en) Method, electronic device, and computer program product for recovering data
US9715477B2 (en) Shared-bandwidth multiple target remote copy
CN112187842B (zh) 局域网数据处理系统与局域网数据处理方法
US10218799B2 (en) Optimizing client distance to network nodes
CN108694102A (zh) 一种基于Nexus服务的数据操作方法、设备、系统和介质
CN115361284B (zh) 一种基于sdn的虚拟网络功能的部署调整方法
CN111314457B (zh) 设置虚拟私有云的方法和装置
CN110968265B (zh) 分片扩容方法、装置及电子设备
US10169155B2 (en) System and method for synchronization in a cluster environment
JP2018011148A (ja) 情報処理装置、通信方法決定プログラムおよび通信方法決定方法
WO2013145222A1 (ja) 情報処理装置およびデータ保存処理プログラム
CN117971526A (zh) 中断触发设备确定方法和装置
CN116567288A (zh) 信息生成方法和装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220816

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230112

R150 Certificate of patent or registration of utility model

Ref document number: 7214295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150