CN108494828A - 一种节点数据的更新方法、介质、装置和计算设备 - Google Patents
一种节点数据的更新方法、介质、装置和计算设备 Download PDFInfo
- Publication number
- CN108494828A CN108494828A CN201810159312.5A CN201810159312A CN108494828A CN 108494828 A CN108494828 A CN 108494828A CN 201810159312 A CN201810159312 A CN 201810159312A CN 108494828 A CN108494828 A CN 108494828A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- renewal time
- time
- safeguarded
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式提供了一种节点数据的更新方法、介质、装置和计算设备。该方法包括:确定第一节点的第一数据的更新时间,第一数据包括第一节点维护的至少一个数据;第一节点向第二节点发送第一数据的更新时间;第一节点接收第二节点发送的第二数据,第二数据包括第二节点维护的至少一个数据,第二数据的更新时间后于第一数据的更新时间;根据第二数据对第一节点的第一数据进行更新。通过上述方法,本发明的方法显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,从而缩短了节点间数据同步的时间。
Description
技术领域
本发明的实施方式涉及无线通信领域,更具体地,本发明的实施方式涉及一种节点数据的更新方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
流言(Gossip)通信协议是一种最终一致性协议,Gossip通信协议被广泛应用于大规模分布式系统。在Gossip通信协议中,通过网络中的各个节点之间的数据交换使得各个节点都从初始状态最终过渡到一致状态。其中,一致状态是指网络中各个节点维护的数据均与除自身以外的其他节点维护的数据一致。
目前,Gossip通信协议中主要采用以下两种协调机制进行数据同步:精确协调(Precise Reconciliation)和整体协调(Scuttlebutt Reconciliation)。下面分别针对在两种协调机制下对多个节点的数据同步的过程进行说明:
在精确协调的协调机制下,通常采用精确匹配的方法对多个节点的数据进行数据同步。以两个节点之间进行数据同步的过程为例,进行数据同步的两端节点需要交互各自维护的全量的数据,再将各自维护的全量的数据与接收到的对端节点的全量的数据进行精确对比,从而根据精确对比的结果来更新各自维护的数据。这种精确匹配的方法对通信带宽要求高,实施难度大,且在通信过程中容易存在冗余通信。
在整体协调的协调机制下,通常采用版本信息匹配的方法对多个节点的数据进行数据同步。以两个节点之间进行数据同步的过程为例,进行数据同步的两端节点需要交互各自维护的全部数据的最大版本信息,再将各自维护的全部数据信息的最大版本信息与对端节点的全部数据信息的最大版本信息进行对比,从而两端节点可以根据最大版本信息的对比结果来更新各自维护的数据。由于数据的版本信息并不能准确地反映该数据的更新时间,因此在一个节点维护的多个数据中可能会存在部分数据的最大版本相同但更新时间不同的情况。针对存在这种情况的节点,这种版本信息匹配的方法无法对这些节点维护的数据的更新时间做准确判断,甚至还可能会导致延迟较长时间才对更新时间较早的数据进行同步,造成收敛速度较慢。此外,在数据一致的多个节点进行交互时,由于这多个节点仍需要对各自维护的全部数据的最大版本信息进行交互,因此这种版本信息匹配的方法仍会导致通信带宽的浪费。
综上所述,目前Gossip通信协议中的两种协调机制均不能较好地对多个节点的数据进行数据同步。
发明内容
本发明实施例提供一种节点数据的更新方法、介质、装置和计算设备,用以解决目前Gossip通信协议中的两种协调机制均不能较好地对多个节点的数据进行数据同步的技术问题,实现多个节点间的数据同步,通过对节点数据的新旧程度的准确判断,从而显著地降低节点间数据同步时的数据通信量,提高数据更新速度,缩短节点间数据同步的时间。
在本发明实施方式的第一方面中,提供了一种节点数据的更新方法,包括:确定第一节点的第一数据的更新时间,第一数据包括第一节点维护的至少一个数据;第一节点向第二节点发送第一数据的更新时间;第一节点接收第二节点发送的第二数据,第二数据包括第二节点维护的至少一个数据,第二数据的更新时间后于第一数据的更新时间;根据第二数据对第一节点的第一数据进行更新。
在本发明的一个实施例中,确定第一节点的第一数据的更新时间之前,还包括:根据第一节点维护的全部数据的更新时间确定第一校验信息;第一节点接收第二节点发送的第二校验信息,第二校验信息为第二节点根据第二节点维护的全部数据的更新时间确定的;判断第一校验信息与第二校验信息是否一致;第一节点确定第一数据的更新时间,包括:当第一校验信息与第二校验信息不一致时,在第一节点维护的全部数据中选择出至少一个数据,将选择出的至少一个数据的更新时间确定为第一数据的更新时间。
在本发明的另一实施例中,第一校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA;第二校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA。
在本发明的又一个实施例中,在第一节点维护的全部数据中选择出至少一个数据,包括:从第一节点维护的全部数据中选择出至少一个更新时间先于阈值的数据;或者从第一节点维护的全部数据中按照更新时间从先到后的顺序选择出至少一个更新时间顺序靠后的数据;或者从第一节点维护的全部数据中随机选择出至少一个数据。
在本发明的再一个实施例中,第一节点判断第一校验信息与第二校验信息是否一致之后,还包括:当第一校验信息与第二校验信息一致时,第一节点确定不向第二节点发送第一数据的更新时间。
在本发明的一个实施例中,第一节点向第二节点发送第一数据的更新时间之后,还包括:第一节点接收第二节点发送的第三数据的更新时间,第三数据为第二节点维护的至少一个数据,第三数据的更新时间先于第一数据的更新时间;第一节点将第一节点维护的数据中更新时间后于第三数据的更新时间的数据确定为第四数据;第一节点向第二节点发送第四数据,第四数据用于对第二节点的第三数据进行更新。
在本发明的又一个实施例中,第一数据包括以下之一或组合:维护第一数据的节点的标识、第一数据的标识、第一数据的数据值、第一数据的更新时间的时间戳、更新第一数据的操作;第二数据包括以下之一或组合:维护第二数据的节点的标识、第二数据的标识、第二数据的数据值、第二数据的更新时间的时间戳、更新第二数据的操作。
对应第一方面,在本发明实施方式的第二方面中,提供了一种节点数据的更新方法,包括:第二节点接收第一节点发送的第一数据的更新时间,所述第一数据包括所述第一节点维护的至少一个数据;所述第二节点将所述第二节点维护的全部数据中更新时间后于所述第一数据的更新时间的至少一个数据确定为第二数据;所述第二节点向所述第一节点发送所述第二数据,所述第二数据用于对所述第一节点的所述第一数据进行更新。
在本发明的一个实施例中,所述第二节点接收第一节点发送的第一数据的更新时间之前,还包括:根据所述第二节点维护的全部数据的更新时间确定第二校验信息;所述第二节点向所述第一节点发送所述第二校验信息,所述第二校验信息用于所述第一节点判断所述第二校验信息与根据所述第一节点维护的全部数据的更新时间确定的第一校验信息是否一致。
在本发明的另一实施例中,所述第一校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA;所述第二校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA。
在本发明的又一个实施例中,所述第二节点接收第一节点发送的第一数据的更新时间之前,还包括:所述第二节点确定第三数据的更新时间,所述第三数据为所述第二节点维护的至少一个数据,所述第三数据的更新时间先于所述第一数据的更新时间;所述第二节点向所述第一节点发送所述第三数据的更新时间;所述第二节点接收所述第一节点发送的第四数据,所述第四数据为所述第一节点维护的数据中更新时间先于所述第三数据的更新时间的数据;所述第二节点根据所述第四数据对所述第三数据进行更新。
在本发明的再一个实施例中,所述第一数据包括以下之一或组合:维护所述第一数据的节点的标识、所述第一数据的标识、所述第一数据的数据值、所述第一数据的更新时间的时间戳、更新所述第一数据的操作;所述第二数据包括以下之一或组合:维护所述第二数据的节点的标识、所述第二数据的标识、所述第二数据的数据值、所述第二数据的更新时间的时间戳、更新所述第二数据的操作。
在本发明实施方式的第三方面中,还提供了一种节点数据的更新方法,包括:第一数据包括第一节点维护的多个数据段,并且所述多个数据段与多个更新时间一一对应,所述第一节点向第二节点发送所述第一数据中最后更新时间对应的数据段;所述第一节点接收所述第二节点发送的数据请求信息;所述第一节点响应于所述数据请求信息,向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
在本发明的一个实施例中,所述第一节点向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段,包括:所述第一节点根据所述第一数据中早于所述最后更新时间的每个更新时间的前后顺序,依次将每个更新时间对应的数据段发送给所述第二节点。
在本发明的另一实施例中,所述第一节点依次将每个更新时间对应的数据段发送给所述第二节点之后,还包括:所述第一节点接收所述第二节点发送的指示信息,所述指示信息用于指示所述第二节点当次接收的数据段的更新时间不后于所述第二节点维护的第二数据的更新时间;所述第一节点根据所述指示信息,停止向所述第二节点发送数据。
在本发明的又一个实施例中,所述第一节点向第二节点发送所述第一数据中最后更新时间对应的数据段之前,还包括:所述第一节点根据所述第一节点维护的全部数据段的更新时间确定第一校验信息;所述第一节点接收所述第二节点发送的第二校验信息,所述第二校验信息为所述第二节点根据所述第二节点维护的全部数据段的更新时间确定的;所述第一节点判断所述第一校验信息与所述第二校验信息是否一致;所述第一节点向第二节点发送所述第一数据中最后更新时间对应的数据段,包括:当所述第一校验信息与所述第二校验信息不一致时,所述第一节点从所述第一数据中选择出所述最后更新时间对应的数据段,向所述第二节点发送所述最后更新时间对应的数据段。
在本发明的再一个实施例中,所述第一校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA;所述第二校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA。
在本发明的其中一个实施例中,所述第一节点判断所述第一校验信息与所述第二校验信息是否一致之后,还包括:当所述第一校验信息与所述第二校验信息一致时,所述第一节点停止向所述第二节点发送数据。
在本发明的其中一个实施例中,所述第一节点向第二节点发送所述第一数据中最后更新时间对应的数据段之后,还包括:所述第一节点接收所述第二节点发送的第三数据,所述第三数据包括所述第二节点维护的至少一个数据段,所述第三数据的更新时间后于所述第一数据的更新时间;所述第一节点根据所述第三数据对所述第一节点维护的至少一个数据段进行更新。
在本发明的其中一个实施例中,所述第一数据包括以下之一或组合:维护所述第一数据的节点的标识、所述第一数据包括的多个数据段的标识、所述第一数据包括的多个数据段的数据值、所述第一数据包括的多个数据段对应的更新时间的时间戳、更新所述第一数据包括的多个数据段的操作;所述第二数据包括以下之一或组合:维护所述第二数据的节点的标识、所述第二数据包括的多个数据段的标识、所述第二数据包括的多个数据段的数据值、所述第二数据包括的多个数据段对应的更新时间的时间戳、更新所述第二数据包括的多个数据段的操作。
对应第三方面,在本发明实施方式的第四方面中,提供了一种节点数据的更新方法,包括:第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段,所述第一数据包括所述第一节点维护的多个数据段,所述多个数据段与多个更新时间一一对应;所述第二节点判断所述最后更新时间是否后于所述第二节点维护的第二数据的更新时间;当所述最后更新时间后于所述第二数据的更新时间时,所述第二节点根据所述第一数据对所述第二数据进行更新,并向所述第一节点发送数据请求信息,所述数据请求信息用于请求所述第一节点向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
在本发明的一个实施例中,所述第二节点向所述第一节点发送数据请求信息之后,还包括:所述第二节点接收所述第一节点发送的所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
在本发明的另一实施例中,所述第二节点接收所述第一节点发送的所述第一数据中早于所述最后更新时间的更新时间对应的数据段之后,还包括:若所述第二节点接收所述第一节点发送的所述第一数据中早于所述最后更新时间的更新时间对应的数据段的次数为多次,则所述第二节点在每次接收所述第一节点发送的所述第一数据中早于所述最后更新时间的更新时间对应的数据段时,判断当次接收的第一数据的更新时间是否后于所述第二数据的更新时间;当所述当次接收的第一数据的更新时间不后于所述第二数据的更新时间时,所述第二节点向所述第一节点发送指示信息,所述指示信息用于指示所述第二节点当次接收的第一数据的更新时间不后于所述第二数据的更新时间。
在本发明的又一个实施例中,所述第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段之前,还包括:所述第二节点根据所述第二节点维护的全部数据段的更新时间确定第二校验信息;所述第二节点向所述第一节点发送所述第二校验信息,所述第二校验信息用于所述第一节点判断所述第二校验信息与根据所述第一节点维护的全部数据段的更新时间确定的第一校验信息是否一致。
在本发明的再一个实施例中,所述第一校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA;所述第二校验信息包括以下之一或组合:信息摘要MD5、哈希值SHA。
在本发明的其中一个实施例中,所述第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段之后,还包括:所述第二节点将所述第二节点维护的数据段中更新时间后于所述第一数据的更新时间的至少一个数据确定为第三数据;所述第二节点向所述第一节点发送所述第三数据,所述第三数据用于所述第一节点对所述第一数据进行更新。
在本发明的其中一个实施例中,所述第一数据包括以下之一或组合:维护所述第一数据的节点的标识、所述第一数据包括的数据段的标识、所述第一数据包括的数据段的数据值、所述第一数据包括的数据段对应的更新时间的时间戳、更新所述第一数据包括的数据段的操作;
所述第二数据包括以下之一或组合:维护所述第二数据的节点的标识、所述第二数据包括的数据段的标识、所述第二数据包括的数据段的数据值、所述第二数据包括的数据段对应的更新时间的时间戳、更新所述第二数据包括的数据段的操作。
在本发明实施方式的第五方面中,提供了一种介质,该介质存储有计算机可执行指令,该计算机可执行指令可用于使所述计算机执行第一方面中第一节点执行的任一项方法,或者该计算机可执行指令可用于使所述计算机执行第二方面中第二节点执行的任一项方法,或者计算机可执行指令可用于使所述计算机执行第三方面中第一节点执行的任一项方法,或者计算机可执行指令还可用于使所述计算机执行第四方面中第二节点执行的任一项方法。
在本发明实施方式的第六方面中,提供了一种装置,包括:处理单元和收发单元,该装置可执行第一方面中第一节点执行的任一项方法,或者可执行第二方面中第二节点执行的任一项方法,或者可执行第三方面中第一节点执行的任一项方法,或者可执行第四方面中第二节点执行的任一项方法。
在本发明实施方式的第七方面中,提供了一种计算设备,该计算设备包括处理器、存储器以及收发机,其中该存储器,用于存储处理器执行的程序;该处理器,用于根据该存储器存储的程序,执行第一方面中第一节点执行的任一项方法,或者执行第二方面中第二节点执行的任一项方法,或者执行第三方面中第一节点执行的任一项方法,或者执行第四方面中第二节点执行的任一项方法。
通过本发明提供的技术方案,可以实现多个节点间的数据同步,并且还可以实现对节点数据的新旧程度的准确判断,从而显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1为本申请实施例涉及的一种通信系统的结构示意图;
图2为本申请实施例涉及的一种节点数据的更新方法的流程示意图;
图3为本申请实施例涉及的另一种节点数据的更新方法的流程示意图;
图4为本申请实施例涉及的又一种节点数据的更新方法的流程示意图;
图5为本申请实施例涉及的一种装置的结构示意图;
图6为本申请实施例涉及的一种介质的结构示意图;
图7为本申请实施例涉及的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种节点数据的更新方法、介质、装置和计算设备。在本文中,需要理解的是,所涉及的节点数据表示通信系统中各节点维护的数据。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,目前Gossip通信协议中精确协调所采用的精确匹配的方法对通信带宽要求高,实施难度大,易存在冗余通信,而整体协调所采用的版本信息匹配的方法虽然降低了对通信带宽的要求和实施难度,但这种方法收敛速度较慢,易导致通信带宽的浪费,因此这两种协调机制均不能较好地对多个节点的数据进行数据同步。
针对上述问题,本发明提供了一种节点数据的更新方法、介质、装置和计算设备,可以确定第一节点维护的第一数据的更新时间,以便第二节点将其维护的全部数据中更新时间后于第一数据的更新时间的至少一个数据确定为第二数据,并将该第二数据发送给第一节点,从而使第一节点可以根据第二数据对该第一节点的第一数据进行更新,实现了多个节点间的数据同步,同时通过对节点数据的新旧程度的准确判断,显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
此外,本发明还提供了另一种节点数据的更新方法、介质、装置和计算设备,可以向第二节点发送第一节点维护的第一数据中最后更新时间对应的数据段,以便第二节点判断该最后更新时间是否后于第二节点维护的第二数据的更新时间,如果是,根据第一数据对第二数据进行更新并向第一节点发送数据请求信息,这样第一节点可以响应于数据请求信息,向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段,从而第二节点可以继续更新第二数据,实现了多个节点间的数据同步,同时通过对节点数据的新旧程度的准确判断,显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
参考图1,本发明实施方式可以应用的场景例如可以为如图1所示的通信系统中多个节点间进行数据同步的场景,其中,该通信系统可以为应用Gossip通信协议的通信系统,该通信系统也可以为应用其他通信协议的通信系统。本发明实施例涉及的第一节点和第二节点,可以是图1所示的通信系统中的任意节点。第一节点和第二节点可以为相同类型的节点,也可以为不同类型的节点;第一节点的数量可以为一个或多个,第二节点的数量也可以为一个或多个,本实施例中并不限定。需要说明的是,实际应用中,第一节点也可以执行本发明实施例中第二节点侧的方法,第二节点也可以执行本发明实施例中第一节点侧的方法。
示例性方法
下面结合图1的应用场景,参考图1来描述根据本发明示例性实施方式的节点数据的更新方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本申请实施例提供了一种节点数据的更新方法,如图2所示,该方法包括:
S201、确定第一节点的第一数据的更新时间,第一数据包括第一节点维护的至少一个数据。
S202、第一节点向第二节点发送第一数据的更新时间。
S203、第二节点接收第一节点发送的第一数据的更新时间之后,将第二节点维护的全部数据中更新时间后于第一数据的更新时间的至少一个数据确定为第二数据。
S204、第二节点向第一节点发送第二数据。
S205、第一节点接收第二节点发送的第二数据之后,根据第二数据对第一节点的第一数据进行更新。
通过上述步骤,实现了多个节点间的数据同步,以及对节点数据的新旧程度的准确判断,从而显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
下面对照图2对本发明的详细实现进行说明。
S201中,在第一节点维护的全部数据中选择出至少一个数据,将选择出的至少一个数据的更新时间确定为第一数据的更新时间。
其中,第一数据包括第一节点维护的至少一个数据,第一数据包括但不限于以下之一或组合:维护第一数据的节点的标识、第一数据的标识、第一数据的数据值、第一数据的更新时间的时间戳、更新第一数据的操作。第一节点维护的全部数据中包括该第一节点直接获取的数据,和/或,该第一节点通过与其他节点进行交互获取到的数据。
以第一节点是应用Gossip通信协议的通信系统中的节点为例,该第一节点维护的第一数据可以采用数据结构信息(k,v,ts)来表示,其中k(即key)表示键值,也可以理解为数据名,v(即value)表示数据值,ts表示该数据的更新时间的时间戳,一个数据的ts值越大,该数据的更新时间越后,例如该第一节点维护的第一数据可以表示为(Name,Tom,1514459425952)、(Name,Marry,1514459426951)、(Age,23,1514459425960)等。该第一节点维护的第一数据也可以采用数据结构信息(k,v,ver)来表示,其中ver表示该数据的版本信息,也可以理解为该数据的更新时间的标识,k、v的含义与上文类似,此处不再赘述。
在第一节点维护的全部数据中选择出至少一个数据的方式包括多种,本发明实施例中并不限定,例如以下几种方式:
方式一:从第一节点维护的全部数据中选择出至少一个更新时间先于阈值的数据。
以第一节点维护的全部数据(k,v,ts)为(Name,Tom,1514459425952)、(Name,Marry,1514459426951)、(Age,23,1514459425960),阈值为1514459426000为例,从第一节点维护的全部数据中选择出的数据为(Name,Tom,1514459425952)和(Age,23,1514459425960)。
方式二:从第一节点维护的全部数据中按照更新时间从先到后的顺序选择出至少一个更新时间顺序靠后的数据。
以第一节点维护的全部数据(k,v,ts)为(Name,Tom,1514459425952)、(Name,Marry,1514459426951)、(Age,23,1514459425960)为例,按照更新时间从先到后将第一节点维护的全部数据排序如下:(Name,Tom,1514459425952)、(Age,23,1514459425960)、(Name,Marry,1514459426951),可以从第一节点维护的全部数据中选择出的一个更新时间顺序靠后的数据(Name,Marry,1514459426951)。或者,也可以从第一节点维护的全部数据中选择出至少一个更新时间顺序靠后的两个数据(Age,23,1514459425960)、(Name,Marry,1514459426951)。
方式三:从第一节点维护的全部数据中随机选择出至少一个数据。
以第一节点维护的全部数据(k,v,ts)为(Name,Tom,1514459425952)、(Name,Marry,1514459426951)、(Age,23,1514459425960)为例,从第一节点维护的全部数据中随机选择出两个数据(Name,Marry,1514459426951)和(Name,Tom,1514459425952)。
需要说明的是,除了从第一节点维护的全部数据中选择出至少一个数据之外,还可以从第一节点维护的部分数据中选择出至少一个数据,本发明实施例中并不限定。例如,可以是从第一节点维护的更新时间为T的数据中随机选择出至少一个数据;可以是从第一节点维护的多个数据组中的每个数据组内随机选择出至少一个数据,该每个数据组由至少一个更新时间处于预设范围内的数据组成,或者该每个数据组由至少一个更新时间相同的数据组成;可以是从第一节点维护的全部数据中按照更新时间从先到后的顺序选择出至少一个更新时间顺序靠前的数据。
在一种可能的实现方式中,在S201之前,第一节点根据第一节点维护的全部数据的更新时间确定第一校验信息,第二节点根据第二节点维护的全部数据的更新时间确定第二校验信息,并向第一节点发送第二校验信息,第一节点接收第二节点发送的第二校验信息之后,判断第一校验信息与第二校验信息是否一致。S201中,当第一校验信息与第二校验信息不一致时,在第一节点维护的全部数据中选择出至少一个数据,将选择出的至少一个数据的更新时间确定为第一数据的更新时间。这样,通过在多个节点进行数据同步之前对比这多个节点的数据,实现了仅在这多个节点的数据不一致的情况下继续进行数据同步,有效节省了通信带宽,提高了通信资源的利用率。
其中,第一校验信息包括但不限于以下之一或组合:信息摘要(MD5)、哈希值(SHA)。第二校验信息包括但不限于以下之一或组合:MD5、SHA。需要说明的是,除了MD5和SHA之外,此处还可以采用其他数值作为校验信息,本发明实施例中并不限定,例如其他数值可以是任意常数的标志位等。
以第一校验信息和第二校验信息为MD5为例,第一节点根据第一节点维护的全部数据中最大更新时间对应的数据来计算第一节点维护的第一数据的MD5,第二节点根据第二节点维护的全部数据中最大更新时间对应的数据来计算第二节点维护的第二数据的MD5,并向第一节点发送该第二数据的MD5,第一节点接收第二节点发送的该第二数据的MD5之后,判断该第一数据的MD5与该第二数据的MD5是否一致。S201中,当该第一数据的MD5与该第二数据的MD5不一致时,在第一节点维护的全部数据中随机选择出一个数据,将选择出的一个数据的更新时间确定为第一数据的更新时间。
可选的,当第一校验信息与第二校验信息一致时,此时第一节点维护的数据与第二节点维护的数据一致,第一节点确定不向第二节点发送第一数据的更新时间。通过上述方法,避免了多个节点在节点数据一致的情况下仍继续进行数据同步而造成的通信资源浪费,有效节省了通信带宽,提高了通信资源的利用率。
S202中,第一节点向第二节点发送第一数据的更新时间,第二节点接收第一节点发送的该第一数据的更新时间,以便后续可以根据该第一数据的更新时间确定第二数据。
其中,第二节点维护的数据中包括该第二节点直接获取的数据,和/或,该第二节点通过与其他节点进行交互获取到的数据。
在一种可能的实现方式中,在S202之后,第二节点确定第三数据的更新时间,向第一节点发送该第三数据的更新时间,其中,该第三数据为第二节点维护的至少一个数据,该第三数据的更新时间先于第一数据的更新时间。第一节点接收第二节点发送的第三数据的更新时间之后,将第一节点维护的数据中更新时间后于第三数据的更新时间的数据确定为第四数据,向第二节点发送第四数据,从而使第二节点可以根据第四数据对该第二节点维护的第三数据进行更新,实现了第一节点和第二节点间的数据同步,通过对这两个节点数据的新旧程度的进一步判断,进一步降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
相应地,在S202之后,若第二节点维护的数据中不存在第一节点维护的至少一个数据,则第二节点接收到第一节点发送的第一数据的更新时间之后,在第二节点维护的全部数据中增加第一数据,并将该第一数据的更新时间记录为系统初始时刻,以便后续第二节点将该新增的第一数据的更新时间作为第三数据的更新时间。
需要说明的是,本发明实施例中并不限定上述对第二节点维护的第三数据进行更新的过程,与S203至S205这三个步骤之间的时间关系。
S203中,第二节点接收第一节点发送的第一数据的更新时间之后,从第二节点维护的全部数据中选择出更新时间后于第一数据的更新时间的一个或多个数据确定为第二数据。
其中,第二数据包括但不限于以下之一或组合:维护第二数据的节点的标识、第二数据的标识、第二数据的数据值、第二数据的更新时间的时间戳、更新第二数据的操作。第二数据与上文S201中描述的第一数据类似,可参见上文S201中描述的第一数据,此处不再赘述。
S204中,第二节点向第一节点发送第二数据,第一节点接收第二节点发送的第二数据,以便后续可以根据该第二数据来对第一数据进行更新。
S205中,第一节点接收第二节点发送的第二数据之后,将第二数据合并到该第一节点维护的数据得到更新后的第一节点的第一数据。针对第一节点的第一数据中存在部分数据与接收到的第二数据存在差异,则采用接收到的第二数据替换这些存在差异的数据,并将这些替换后的数据的更新时间记录为当前时刻(即替换操作完成的时刻)。针对第一节点的第一数据中不存在接收到的第二数据,则将接收到的第二数据保存至该第一节点的第一数据中,并将这些数据的更新时间记录为当前时间(即数据保存操作完成的时刻)。
以第一节点的第一数据(Name,value,Age,ts)为(Name,Marry,23,1514459426951),接收到的第二数据(Name,value,Age,ts)为(Name,Marry,25,1514459427021)为例,将接收到的(Name,Marry,25,1514459427021)替换至第一节点的第一数据中,并将该数据的更新时间的时间戳记录为当前时间戳,得到更新后的第一节点的第一数据(Name,Marry,25,1514459428150)。
以第一节点的第一数据(Name,Age,ts)为(Marry,25,1514459426951),接收到的第二数据(Name,Adrress,ts)为(Marry,zhejiang,1514459427055)为例,将接收到的(Marry,zhejiang,1514459427055)保存至第一节点的第一数据中,并将该数据的更新时间的时间戳记录为当前时间戳,得到更新后的第一节点的第一数据(Marry,zhejiang,1514459429990)。
需要说明的是,除了上文描述的对第一节点的第一数据进行更新的方式之外,还可以通过其它方式对第一节点的第一数据进行更新,本发明实施例中并不限定。
举例说明一
以应用Gossip通信协议的通信系统中的两个节点q和p为例,第一节点为q,第二节点为p,图3为更新q和p维护的数据的流程示意图,如图3所示,具体过程如下:
S301、确定节点p维护的全部数据中最大更新时间戳对应的数据的集合Up(ts)。
S301中,节点p确定Up(ts)的具体过程可以表示为如下公式:
Up(ts)={(r,max(Up(r)))|r∈P}
公式中,r表示节点标识,max(Up(r))表示的是计算Node p保存的r节点的数据m(k)=(v,ts)中更新时间戳ts最大的集合。
可选的,在S301之前,对应用Gossip通信协议的通信系统中的参数进行全局定义。定义P={p,q,……}为该通信系统中所有节点的集合;定义m(k)=(v,ts),其中k为键,v为k对应的数据值,ts是更新时间戳,m(k)表示在ts时k更新为数据值v;定义Up(r)为节点p保存的r节点的所有m(k);定义Up(r)(k)表示k对应的(v,ts)。
可选的,在S301之前,在节点时间不回退的情况下,为了保证节点每次更新得到的数据的更新时间戳都是最大值,对集合P中的节点进行节点约束。具体为:集合P中的每个节点可以更新该节点维护的m(k)=(v,ts),除该节点之外的其他节点的m(k)=(v,ts)可以通过Gossip通信协议进行更新。集合P中的每个节点更新该节点维护的m(k)=(v,ts)时,ts是该节点获取该数据值v时的最大更新时间戳,即在节点时间不回退的情况下,每次获取该数据值v时ts都是最大值,从而避免了存在相同的Up(p)(k)=(v,ts)的情况。
S302、节点p确定集合Up(ts)对应的MD5,将集合Up(ts)对应的MD5发送给节点q。
S303、节点q确定节点q维护的全部数据中最大更新时间戳对应的数据的集合Uq(ts)={(r,max(Uq(r)))|r∈P},并确定集合Uq(ts)对应的MD5。
S304、节点q接收到集合Up(ts)对应的MD5之后,判断集合Up(ts)对应的MD5与集合Uq(ts)对应的MD5是否一致,如果一致则执行S305,如果不一致则执行S306。
S305、节点q确定终止与节点p之间的通信。
S306、节点q将Uq(ts)按照ts从大到小的顺序进行排序,根据Gossip通信协议规定的数据包的大小,按照ts从大到小的顺序依次将Uq(ts)的子集(即上文的中第一数据的更新时间)通过数据包发送给节点p。
S307、节点p接收Uq(ts)的子集,对比该Uq(ts)的子集与节点p维护的数据组成的集合Up(r)中的ts,将集合Up(r)中ts后于Uq(ts)的子集中的ts的数据确定为第二数据,组成第二数据的集合delta(p)。
具体的,节点p确定第二数据的集合delta(p)的过程可以采用如下公式表示:
delta(p)={(r,k,v,ts)|Up(r)(k)=(v,ts)where ts>max(Uq(r))}
S308、节点p将delta(p)发送给节点q,并将Up(ts)中与当前时间戳之间的差值最大的ts组成的子集发送给节点q,该子集(即上文中的第三数据的更新时间)可以表示为{ts|Up(r)(k)=(v,ts)where ts<max(Uq(r))}。
可选的,受限于数据包的大小,节点p可通过多个数据包将delta(p)发送给节点q。进一步的,节点p优先将delta(p)中与当前时间戳之间的差值最大的ts对应的数据组成的子集发送给节点q。
S309、节点q接收到delta(p)后,将该delta(p)与节点q维护的数据进行合并,得到合并后的数据集合。
S310、节点q接收到子集{ts|Up(r)(k)=(v,ts)where ts<max(Uq(r))}后,对比该子集与节点q维护的数据组成的集合Uq(r)中的ts,将集合Uq(r)中ts后于该子集中的ts的数据确定为第四数据delta(q),将集合delta(q)发送给节点p。
S311、节点p接收到delta(q)之后,将该delta(q)与节点p维护的数据进行合并,得到合并后的数据集合。
通过上述步骤S301至S311,完成了节点p与节点q之间的数据同步。根据Gossip通信协议的收敛性证明,在Clog(n)次数据同步后,该应用Gossip通信协议的通信系统中的每个节点都会获取到除自身外其他所有节点维护的数据。需要说明的是,本发明实施例并不限定上述步骤的先后顺序,上述步骤的先后顺序可根据实际应用进行调整。
举例说明二
以应用Gossip通信协议的通信系统中的两个节点P0和P1为例,第一节点为P0,第二节点为P1。在P0和P1进行数据同步之前,P0维护的数据集合如下表1所示:
表1
数据名k | 数据值v | 更新时间ver |
Name | Tom | 1514459425952 |
Age | 23 | 1514459425960 |
在P0和P1进行数据同步之前,P1维护的数据集合如下表2所示:
表2
数据名k | 数据值v | 更新时间ver |
Salary | 3000 | 1514459425852 |
Address | Zhejiang | 1514459426952 |
P0和P1之间的数据同步流程如下:
步骤1、P1确定自身维护的所有数据的最大更新时间的集合{(P0,1514459425960)},并计算该集合{(P0,1514459425960)}的MD5(即DIGEST1),将DIGEST1发送给P0。步骤2、P0确定自身维护的所有数据的最大更新时间的集合{(P1,1514459426952)},并计算该集合{(P1,1514459426952)}的MD5(即DIGEST2)。P0接收到DIGEST1之后,判断DIGEST1和DIGEST2是否一致,如果一致则P0确定中断与P1之间的通信,如果不一致则执行步骤3。在本例中,对表1和表2进行计算可知DEGIST1和DEGIST2不一致。
步骤3、P0将自身维护的所有数据的最大更新时间的集合{(P0,1514459425960)}发送给P1。
步骤4、P1接收到{(P0,1514459425960)}之后,将接收到的集合{(P0,1514459425960)}与P1维护的数据集合进行对比来确定第二数据。
由于此时P1维护的数据中不存在P0维护的数据,因此P1在该P1维护的全部数据中添加P0维护的数据,并添加的数据的更新时间记为系统初始时刻(0),即在该P1维护的数据集合中添加(P0,0),从而P1确定第二数据的集合为{(Salary,3000,1514459425852),(Address,Zhejiang,1514459426952)}。
步骤5、P1计算第三数据的更新时间得到{(P0,0)}。
步骤6、P1向P0发送集合{(Salary,3000,1514459425852),(Address,Zhejiang,1514459426952)}以及第三数据的更新时间发送给{(P0,0)}。
步骤7、P0接收到P1发送的集合{(Salary,3000,0),(Address,Zhejiang,0)}之后,将集合{(Salary,3000,0),(Address,Zhejiang,0)}合并到P0维护的数据集合中,如下表3所示:
表3
数据名k | 数据值v | 更新时间ver |
Name | Tom | 1514459425952 |
Age | 23 | 1514459425960 |
Salary | 3000 | 1514459425852 |
Address | Zhejiang | 1514459426952 |
步骤8、P0接收到P1发送的{(P0,0)}之后,根据第三数据的更新时间(P0,0)确定第四数据的集合为{(Name,Tom,1514459425952),(Age,23,1514459425960)},并将第四数据的集合发送给P1。
步骤9、P1接收到第四数据的集合{(Name,Tom,1514459425952),(Age,23,1514459425960)}之后,将第四数据的集合合并到P1维护的数据集合中,如下表4所示:
表4
数据名k | 数据值v | 更新时间ver |
Name | Tom | 1514459425952 |
Age | 23 | 1514459425960 |
Salary | 3000 | 1514459425852 |
Address | Zhejiang | 1514459426952 |
通过上述步骤1至步骤9,完成了节点P0与P1之间的数据同步。
举例说明一和举例说明二中,本发明实施例并不限定各个步骤的先后顺序,各个步骤的先后顺序可根据实际应用进行调整。
本发明提供的一种节点数据的更新方法,实现了多个节点间的数据同步,同时通过对节点数据的新旧程度的准确判断,显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
本申请实施例还提供了另一种节点数据的更新方法,如图4所示,该方法包括:
S401、第一数据包括第一节点维护的多个数据段,并且多个数据段与多个更新时间一一对应,第一节点向第二节点发送第一数据中最后更新时间对应的数据段。
S402、第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段之后,判断最后更新时间是否后于第二节点维护的第二数据的更新时间。
S403、当最后更新时间后于第二数据的更新时间时,第二节点根据第一数据对第二数据进行更新,并向第一节点发送数据请求信息,该数据请求信息用于请求第一节点向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段。
S404、第一节点接收第二节点发送的数据请求信息之后,响应于数据请求信息,向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段。
通过上述步骤,第一节点可以响应于数据请求信息,向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段,以便第二节点可以继续更新第二数据,进而实现了多个节点间的数据同步,以及对节点数据的新旧程度的准确判断,显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
下面对照图4对本发明的详细实现进行说明。
S401中,第一节点将第一数据包括的多个数据段按照更新时间的先后顺序进行排列,向第二节点发送第一数据包括的这多个数据段中最后更新时间对应的数据段。
其中,第一数据包括但不限于以下之一或组合:维护第一数据的节点的标识、第一数据包括的多个数据段的标识、第一数据包括的多个数据段的数据值、第一数据包括的多个数据段对应的更新时间的时间戳、更新第一数据包括的多个数据段的操作。此处的第一数据与图2所示的方法中的第一数据类似,相似之处可参见图2所示的方法中的第一数据,此处不再赘述。两者主要的区别在于:图4所示的方法中的第一数据包括第一节点维护的多个数据段,并且这多个数据段与多个更新时间一一对应,这样第一节点可以根据这多个数据段对应的更新时间依次向第二节点发送第一数据包括的数据段。
在一种可能的实现方式中,S401之前,第一节点根据第一节点维护的全部数据段的更新时间确定第一校验信息,第二节点根据第二节点维护的全部数据段的更新时间确定第二校验信息,并将第二校验信息发送给第一节点,第一节点接收第二节点发送的第二校验信息之后,判断第一校验信息与第二校验信息是否一致。当第一校验信息与第二校验信息不一致时,第一节点从第一数据中选择出最后更新时间对应的数据段,向第二节点发送最后更新时间对应的数据段。
其中,第一校验信息包括但不限于以下之一或组合:MD5、SHA。第二校验信息包括但不限于以下之一或组合:MD5、SHA。此处的第一校验信息和第二校验信息与图2所示的方法中的第一校验信息和第二校验信息类似,具体说明可参见图2所示的方法中的第一校验信息和第二校验信息,此处不再赘述。
可选的,当第一校验信息与第二校验信息一致时,此时第一节点维护的数据与第二节点维护的数据一致,第一节点停止向第二节点发送数据,从而避免了多个节点在节点数据一致的情况下仍继续进行数据同步而造成的通信资源浪费,有效节省了通信带宽,提高了通信资源的利用率。
在一种可能的实现方式中,S401之后,第一节点接收第二节点发送的第三数据,第三数据包括第二节点维护的至少一个数据段,第三数据的更新时间后于第一数据的更新时间。第一节点根据第三数据对第一节点维护的至少一个数据段进行更新。
S402中,第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段之后,判断接收到的最后更新时间是否后于第二节点维护的第二数据的更新时间。进一步的,第二节点判断接收到的最后更新时间是否后于第二节点维护的第二数据包括的多个数据段的更新时间。
其中,第二数据包括但不限于以下之一或组合:维护第二数据的节点的标识、第二数据包括的多个数据段的标识、第二数据包括的多个数据段的数据值、第二数据包括的多个数据段对应的更新时间的时间戳、更新第二数据包括的多个数据段的操作。
S403中,当第二节点接收到的最后更新时间后于第二数据的更新时间时,第二节点根据第一数据对第二数据进行更新,并向第一节点发送数据请求信息,该数据请求信息用于请求第一节点向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段。
在一种可能的实现方式中,S403之后,第二节点接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段。
S404中,第一节点向第二节点发送第一数据中最后更新时间对应的数据段的方式包括多种,本申请实施例并不限定,例如其中一种方式为:第一节点根据第一数据中早于最后更新时间的每个更新时间的前后顺序,依次将每个更新时间对应的数据段发送给第二节点。
相应地,若第二节点接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段的次数为多次,则第二节点在每次接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段时,判断当次接收的第一数据的更新时间是否后于第二数据的更新时间。当当次接收的第一数据的更新时间不后于第二数据的更新时间时,第二节点向第一节点发送指示信息,指示信息用于指示第二节点当次接收的第一数据的更新时间不后于第二数据的更新时间。第一节点接收第二节点发送的指示信息,根据指示信息,停止向第二节点发送数据。
可选的,在S404之后,第二节点接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段,从而可以将这些数据段更新到第二节点维护的数据中,进一步实现了多个节点间的数据同步。
本发明提供的另一种节点数据的更新方法,也实现了多个节点间的数据同步,以及对节点数据的新旧程度的准确判断,从而显著地降低了节点间数据同步时的数据通信量,提高了数据更新速度,缩短了节点间数据同步的时间。
通过上述两种节点数据的更新方法,可以较佳地实现多节点间的数据同步。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,介绍本发明提供了示例性实施的装置。
参考图5,本发明提供了一种示例性装置,该装置可以实现图2对应的对本发明示例性实施方式中第一节点执行的方法。参阅图5所示,该装置包括:处理单元和收发单元,其中,
处理单元,用于确定第一节点的第一数据的更新时间,第一数据包括第一节点维护的至少一个数据;
收发单元,用于向第二节点发送第一数据的更新时间;接收第二节点发送的第二数据,第二数据包括第二节点维护的至少一个数据,第二数据的更新时间后于第一数据的更新时间;
处理单元,还用于根据第二数据对第一节点的第一数据进行更新。
可选的,处理单元还用于:在确定第一节点的第一数据的更新时间之前,根据第一节点维护的全部数据的更新时间确定第一校验信息。收发单元还用于:接收第二节点发送的第二校验信息,第二校验信息为第二节点根据第二节点维护的全部数据的更新时间确定的。处理单元还用于:判断第一校验信息与第二校验信息是否一致。处理单元在确定第一数据的更新时间时,具体用于:当第一校验信息与第二校验信息不一致时,在第一节点维护的全部数据中选择出至少一个数据,将选择出的至少一个数据的更新时间确定为第一数据的更新时间。
可选的,第一校验信息包括以下之一或组合:MD5、SHA;第二校验信息包括以下之一或组合:MD5、SHA。
可选的,处理单元在第一节点维护的全部数据中选择出至少一个数据时,具体用于:从第一节点维护的全部数据中选择出至少一个更新时间先于阈值的数据;或者从第一节点维护的全部数据中按照更新时间从先到后的顺序选择出至少一个更新时间顺序靠后的数据;或者从第一节点维护的全部数据中随机选择出至少一个数据。
可选的,处理单元还用于:在判断第一校验信息与第二校验信息是否一致之后,当第一校验信息与第二校验信息一致时,确定不向第二节点发送第一数据的更新时间。
可选的,收发单元还用于:在向第二节点发送第一数据的更新时间之后,且接收第二节点发送的第二数据之前,接收第二节点发送的第三数据的更新时间,第三数据为第二节点维护的至少一个数据,第三数据的更新时间先于第一数据的更新时间;处理单元还用于:将第一节点维护的数据中更新时间后于第三数据的更新时间的数据确定为第四数据;收发单元还用于:向第二节点发送第四数据,第四数据用于对第二节点的第三数据进行更新。
可选的,第一数据包括以下之一或组合:维护第一数据的节点的标识、第一数据的标识、第一数据的数据值、第一数据的更新时间的时间戳、更新第一数据的操作。第二数据包括以下之一或组合:维护第二数据的节点的标识、第二数据的标识、第二数据的数据值、第二数据的更新时间的时间戳、更新第二数据的操作。
参考图5,该装置也可以实现图2对应的对本发明示例性实施方式中第二节点执行的方法。参阅图5所示,该装置包括:收发单元和处理单元,其中,
收发单元,用于接收第一节点发送的第一数据的更新时间,第一数据包括第一节点维护的至少一个数据;
处理单元,用于将第二节点维护的全部数据中更新时间后于第一数据的更新时间的至少一个数据确定为第二数据;
收发单元,还用于向第一节点发送第二数据,第二数据用于对第一节点的第一数据进行更新。
可选的,处理单元还用于:在收发单元接收第一节点发送的第一数据的更新时间之前,根据第二节点维护的全部数据的更新时间确定第二校验信息;收发单元还用于:向第一节点发送第二校验信息,第二校验信息用于第一节点判断第二校验信息与根据第一节点维护的全部数据的更新时间确定的第一校验信息是否一致。
可选的,第一校验信息包括以下之一或组合:MD5、SHA。第二校验信息包括以下之一或组合:MD5、SHA。
可选的,处理单元还用于:在收发单元接收第一节点发送的第一数据的更新时间之前,确定第三数据的更新时间,第三数据为第二节点维护的至少一个数据,第三数据的更新时间先于第一数据的更新时间;收发单元还用于:向第一节点发送第三数据的更新时间;接收第一节点发送的第四数据,第四数据为第一节点维护的数据中更新时间先于第三数据的更新时间的数据;处理单元还用于:根据第四数据对第三数据进行更新。
可选的,第一数据包括以下之一或组合:维护第一数据的节点的标识、第一数据的标识、第一数据的数据值、第一数据的更新时间的时间戳、更新第一数据的操作。第二数据包括以下之一或组合:维护第二数据的节点的标识、第二数据的标识、第二数据的数据值、第二数据的更新时间的时间戳、更新第二数据的操作。
参考图5,该装置也可以实现图4对应的对本发明示例性实施方式中第一节点执行的方法。参阅图5所示,该装置包括:收发单元和处理单元,其中,
收发单元,用于向第二节点发送第一数据中最后更新时间对应的数据段,其中第一数据包括第一节点维护的多个数据段,并且多个数据段与多个更新时间一一对应;接收第二节点发送的数据请求信息;
处理单元,用于响应于数据请求信息,通过收发单元向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段。
可选的,处理单元在通过收发单元向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段时,具体用于:根据第一数据中早于最后更新时间的每个更新时间的前后顺序,通过收发单元依次将每个更新时间对应的数据段发送给第二节点。
可选的,收发单元还用于:在处理单元通过收发单元依次将每个更新时间对应的数据段发送给第二节点之后,接收第二节点发送的指示信息,指示信息用于指示第二节点当次接收的数据段的更新时间不后于第二节点维护的第二数据的更新时间;处理单元还用于:根据指示信息,停止向第二节点发送数据。
可选的,处理单元还用于:在通过收发单元向第二节点发送第一数据中最后更新时间对应的数据段之前,根据第一节点维护的全部数据段的更新时间确定第一校验信息;收发单元还用于:接收第二节点发送的第二校验信息,第二校验信息为第二节点根据第二节点维护的全部数据段的更新时间确定的;处理单元还用于:判断第一校验信息与第二校验信息是否一致;处理单元在通过收发单元向第二节点发送第一数据中最后更新时间对应的数据段时,具体用于:当第一校验信息与第二校验信息不一致时,从第一数据中选择出最后更新时间对应的数据段,通过收发单元向第二节点发送最后更新时间对应的数据段。
可选的,第一校验信息包括以下之一或组合:MD5、SHA;第二校验信息包括以下之一或组合:MD5、SHA。
可选的,第一节点判断第一校验信息与第二校验信息是否一致之后,还包括:当第一校验信息与第二校验信息一致时,第一节点停止向第二节点发送数据。
可选的,收发单元还用于:在处理单元通过收发单元向第二节点发送第一数据中最后更新时间对应的数据段之后,接收第二节点发送的第三数据,第三数据包括第二节点维护的至少一个数据段,第三数据的更新时间后于第一数据的更新时间;处理单元还用于:根据第三数据对第一节点维护的至少一个数据段进行更新。
可选的,第一数据包括以下之一或组合:维护第一数据的节点的标识、第一数据包括的多个数据段的标识、第一数据包括的多个数据段的数据值、第一数据包括的多个数据段对应的更新时间的时间戳、更新第一数据包括的多个数据段的操作。第二数据包括以下之一或组合:维护第二数据的节点的标识、第二数据包括的多个数据段的标识、第二数据包括的多个数据段的数据值、第二数据包括的多个数据段对应的更新时间的时间戳、更新第二数据包括的多个数据段的操作。
参考图5,该装置还可以实现图4对应的对本发明示例性实施方式中第二节点执行的方法。参阅图5所示,该装置包括:收发单元和处理单元,其中,
收发单元,用于接收第一节点发送的第一数据中最后更新时间对应的数据段,第一数据包括第一节点维护的多个数据段,多个数据段与多个更新时间一一对应;
处理单元,用于判断最后更新时间是否后于第二节点维护的第二数据的更新时间;当最后更新时间后于第二数据的更新时间时,根据第一数据对第二数据进行更新,并通过收发单元向第一节点发送数据请求信息,数据请求信息用于请求第一节点向第二节点发送第一数据中早于最后更新时间的更新时间对应的数据段。
可选的,收发单元还用于:在处理单元通过收发单元向第一节点发送数据请求信息之后,接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段。
可选的,处理单元还用于:在收发单元接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段之后,若第二节点接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段的次数为多次,则在每次接收第一节点发送的第一数据中早于最后更新时间的更新时间对应的数据段时,判断当次接收的第一数据的更新时间是否后于第二数据的更新时间;收发单元还用于:当当次接收的第一数据的更新时间不后于第二数据的更新时间时,向第一节点发送指示信息,指示信息用于指示第二节点当次接收的第一数据的更新时间不后于第二数据的更新时间。
可选的,处理单元还用于:在收发单元接收第一节点发送的第一数据中最后更新时间对应的数据段之前,根据第二节点维护的全部数据段的更新时间确定第二校验信息;收发单元还用于:向第一节点发送第二校验信息,第二校验信息用于第一节点判断第二校验信息与根据第一节点维护的全部数据段的更新时间确定的第一校验信息是否一致。
可选的,第一校验信息包括以下之一或组合:MD5、SHA;第二校验信息包括以下之一或组合:MD5、SHA。
可选的,处理单元还用于:在收发单元接收第一节点发送的第一数据中最后更新时间对应的数据段之后,将第二节点维护的数据段中更新时间后于第一数据的更新时间的至少一个数据确定为第三数据;收发单元还用于:向第一节点发送第三数据,第三数据用于第一节点对第一数据进行更新。
可选的,第一数据包括以下之一或组合:维护第一数据的节点的标识、第一数据包括的数据段的标识、第一数据包括的数据段的数据值、第一数据包括的数据段对应的更新时间的时间戳、更新第一数据包括的数据段的操作;第二数据包括以下之一或组合:维护第二数据的节点的标识、第二数据包括的数据段的标识、第二数据包括的数据段的数据值、第二数据包括的数据段对应的更新时间的时间戳、更新第二数据包括的数据段的操作。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图6,本发明提供了一种示例性介质,该介质存储有计算机可执行指令,该计算机可执行指令可用于使所述计算机执行图2对应的本发明示例性实施方式中第一节点执行的任一项所述的方法,或者该计算机可执行指令可用于使所述计算机执行图2对应的本发明示例性实施方式中第二节点执行的任一项所述的方法,或者计算机可执行指令可用于使所述计算机执行图4对应的本发明示例性实施方式中第一节点执行的任一项所述的方法,或者计算机可执行指令还可用于使所述计算机执行图4对应的本发明示例性实施方式中第二节点执行的任一项所述的方法。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图7,本发明提供了一种示例性计算设备,该设备包括处理器、存储器以及收发机,其中该存储器,用于存储处理器执行的程序;该处理器,用于根据该存储器存储的程序,执行图2对应的本发明示例性实施方式中第一节点执行的任一项所述的方法,或者执行图2对应的本发明示例性实施方式中第二节点执行的任一项所述的方法,或者执行图4对应的本发明示例性实施方式中第一节点执行的任一项所述的方法,或者执行图4对应的本发明示例性实施方式中第二节点执行的任一项所述的方法;该收发机,用于在该处理器的控制下接收或发送数据。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种节点数据的更新方法,其特征在于,包括:
确定第一节点的第一数据的更新时间,所述第一数据包括所述第一节点维护的至少一个数据;
所述第一节点向第二节点发送所述第一数据的更新时间;
所述第一节点接收所述第二节点发送的第二数据,所述第二数据包括所述第二节点维护的至少一个数据,所述第二数据的更新时间后于所述第一数据的更新时间;
根据所述第二数据对所述第一节点的所述第一数据进行更新。
2.如权利要求1所述的方法,其特征在于,所述确定第一节点的第一数据的更新时间之前,还包括:
根据所述第一节点维护的全部数据的更新时间确定第一校验信息;
所述第一节点接收所述第二节点发送的第二校验信息,所述第二校验信息为所述第二节点根据所述第二节点维护的全部数据的更新时间确定的;
判断所述第一校验信息与所述第二校验信息是否一致;
所述第一节点确定第一数据的更新时间,包括:
当所述第一校验信息与所述第二校验信息不一致时,在所述第一节点维护的全部数据中选择出至少一个数据,将选择出的至少一个数据的更新时间确定为所述第一数据的更新时间。
3.如权利要求2所述的方法,其特征在于,所述在所述第一节点维护的全部数据中选择出至少一个数据,包括:
从所述第一节点维护的全部数据中选择出至少一个更新时间先于阈值的数据;或者
从所述第一节点维护的全部数据中按照更新时间从先到后的顺序选择出至少一个更新时间顺序靠后的数据;或者
从所述第一节点维护的全部数据中随机选择出至少一个数据。
4.如权利要求2所述的方法,其特征在于,所述第一节点判断所述第一校验信息与所述第二校验信息是否一致之后,还包括:
当所述第一校验信息与所述第二校验信息一致时,所述第一节点确定不向所述第二节点发送所述第一数据的更新时间。
5.如权利要求1所述的方法,其特征在于,所述第一节点向第二节点发送所述第一数据的更新时间之后,还包括:
所述第一节点接收所述第二节点发送的第三数据的更新时间,所述第三数据为所述第二节点维护的至少一个数据,所述第三数据的更新时间先于所述第一数据的更新时间;
所述第一节点将所述第一节点维护的数据中更新时间后于所述第三数据的更新时间的数据确定为第四数据;
所述第一节点向所述第二节点发送所述第四数据,所述第四数据用于对所述第二节点的所述第三数据进行更新。
6.一种节点数据的更新方法,其特征在于,包括:
第一数据包括第一节点维护的多个数据段,并且所述多个数据段与多个更新时间一一对应,所述第一节点向第二节点发送所述第一数据中最后更新时间对应的数据段;
所述第一节点接收所述第二节点发送的数据请求信息;
所述第一节点响应于所述数据请求信息,向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
7.一种节点数据的更新方法,其特征在于,包括:
第二节点接收第一节点发送的第一数据中最后更新时间对应的数据段,所述第一数据包括所述第一节点维护的多个数据段,所述多个数据段与多个更新时间一一对应;
所述第二节点判断所述最后更新时间是否后于所述第二节点维护的第二数据的更新时间;
当所述最后更新时间后于所述第二数据的更新时间时,所述第二节点根据所述第一数据对所述第二数据进行更新,并向所述第一节点发送数据请求信息,所述数据请求信息用于请求所述第一节点向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
8.一种第一节点,其特征在于,包括:
处理单元,用于确定第一节点的第一数据的更新时间,所述第一数据包括所述第一节点维护的至少一个数据;
收发单元,用于向第二节点发送所述第一数据的更新时间;接收所述第二节点发送的第二数据,所述第二数据包括所述第二节点维护的至少一个数据,所述第二数据的更新时间后于所述第一数据的更新时间;
所述处理单元,还用于根据所述第二数据对所述第一节点的所述第一数据进行更新。
9.一种第二节点,其特征在于,包括:
收发单元,用于接收第一节点发送的第一数据的更新时间,所述第一数据包括所述第一节点维护的至少一个数据;
处理单元,用于将所述第二节点维护的全部数据中更新时间后于所述第一数据的更新时间的至少一个数据确定为第二数据;
所述收发单元,还用于向所述第一节点发送所述第二数据,所述第二数据用于对所述第一节点的所述第一数据进行更新。
10.一种第一节点,其特征在于,包括:
第一数据包括第一节点维护的多个数据段,并且所述多个数据段与多个更新时间一一对应,收发单元,用于向第二节点发送所述第一数据中最后更新时间对应的数据段;接收所述第二节点发送的数据请求信息;
处理单元,用于响应于所述数据请求信息,通过所述收发单元向所述第二节点发送所述第一数据中早于所述最后更新时间的更新时间对应的数据段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810159312.5A CN108494828B (zh) | 2018-02-26 | 2018-02-26 | 一种节点数据的更新方法、介质、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810159312.5A CN108494828B (zh) | 2018-02-26 | 2018-02-26 | 一种节点数据的更新方法、介质、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108494828A true CN108494828A (zh) | 2018-09-04 |
CN108494828B CN108494828B (zh) | 2021-04-16 |
Family
ID=63340555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810159312.5A Active CN108494828B (zh) | 2018-02-26 | 2018-02-26 | 一种节点数据的更新方法、介质、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108494828B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071964A (zh) * | 2019-03-26 | 2019-07-30 | 罗克佳华科技集团股份有限公司 | 文件同步方法、装置、文件共享网络、文件共系统及存储介质 |
CN110912979A (zh) * | 2019-11-16 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN111447583A (zh) * | 2020-03-03 | 2020-07-24 | 中国海洋石油集团有限公司 | 一种隔水管监测系统时分复用的传输方法 |
CN112100056A (zh) * | 2020-08-14 | 2020-12-18 | 珠海金智维信息科技有限公司 | 应用评估方法、系统、装置、设备及介质 |
CN113839989A (zh) * | 2021-08-28 | 2021-12-24 | 西安交通大学 | 一种多节点数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447542A (zh) * | 2010-10-09 | 2012-05-09 | 中兴通讯股份有限公司 | 一种网络设备配置数据差异自识别的方法及系统 |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其系统 |
US8887282B1 (en) * | 2009-09-18 | 2014-11-11 | Trend Micro Incorporated | Techniques for protecting data in cloud computing environments |
CN104331494A (zh) * | 2014-11-17 | 2015-02-04 | 北京国双科技有限公司 | 一种更新数据的方法及系统 |
CN105553727A (zh) * | 2015-12-18 | 2016-05-04 | 北京奇虎科技有限公司 | 一种更新配置信息的方法、装置及系统 |
-
2018
- 2018-02-26 CN CN201810159312.5A patent/CN108494828B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8887282B1 (en) * | 2009-09-18 | 2014-11-11 | Trend Micro Incorporated | Techniques for protecting data in cloud computing environments |
CN102447542A (zh) * | 2010-10-09 | 2012-05-09 | 中兴通讯股份有限公司 | 一种网络设备配置数据差异自识别的方法及系统 |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其系统 |
CN104331494A (zh) * | 2014-11-17 | 2015-02-04 | 北京国双科技有限公司 | 一种更新数据的方法及系统 |
CN105553727A (zh) * | 2015-12-18 | 2016-05-04 | 北京奇虎科技有限公司 | 一种更新配置信息的方法、装置及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071964A (zh) * | 2019-03-26 | 2019-07-30 | 罗克佳华科技集团股份有限公司 | 文件同步方法、装置、文件共享网络、文件共系统及存储介质 |
CN110071964B (zh) * | 2019-03-26 | 2022-03-15 | 罗克佳华科技集团股份有限公司 | 文件同步方法、装置、文件共享网络、文件共系统及存储介质 |
CN110912979A (zh) * | 2019-11-16 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN110912979B (zh) * | 2019-11-16 | 2022-06-10 | 杭州安恒信息技术股份有限公司 | 一种解决多服务器资源同步冲突方法 |
CN111447583A (zh) * | 2020-03-03 | 2020-07-24 | 中国海洋石油集团有限公司 | 一种隔水管监测系统时分复用的传输方法 |
CN111447583B (zh) * | 2020-03-03 | 2022-08-02 | 中国海洋石油集团有限公司 | 一种隔水管监测系统时分复用的传输方法 |
CN112100056A (zh) * | 2020-08-14 | 2020-12-18 | 珠海金智维信息科技有限公司 | 应用评估方法、系统、装置、设备及介质 |
CN112100056B (zh) * | 2020-08-14 | 2024-05-14 | 珠海金智维信息科技有限公司 | 应用评估方法、系统、装置、设备及介质 |
CN113839989A (zh) * | 2021-08-28 | 2021-12-24 | 西安交通大学 | 一种多节点数据处理方法 |
CN113839989B (zh) * | 2021-08-28 | 2022-08-05 | 西安交通大学 | 一种多节点数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108494828B (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494828A (zh) | 一种节点数据的更新方法、介质、装置和计算设备 | |
CN108847925B (zh) | 一种基于树状结构的分片区块链生成方法 | |
US10204341B2 (en) | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees | |
CN106383665B (zh) | 数据存储系统中的数据存储方法及协调存储节点 | |
CN109949160A (zh) | 一种区块链的分片方法及装置 | |
CN107909369A (zh) | 基于跨链交易的共识方法、装置和存储介质 | |
CN108881169A (zh) | 基于区块链的时间分发和同步方法及系统、数据处理系统 | |
CN109391645A (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN108664660A (zh) | 时序数据库的分布式实现方法、装置、设备及存储介质 | |
CN109510876A (zh) | 一种基于pbft的联盟链分片方法及相应的联盟链 | |
CN103701913B (zh) | 数据同步方法及装置 | |
CN112118239B (zh) | 区块链共识方法及装置、电子设备、存储介质 | |
CN106611001A (zh) | 虚拟机数据库表数据一致性的校验方法、装置及系统 | |
CN106851816A (zh) | 同步方法、装置及系统 | |
CN108712506A (zh) | 区块链节点通信方法、装置及区块链节点 | |
CN111352760B (zh) | 一种数据处理的方法以及相关装置 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN110046062A (zh) | 分布式数据处理方法及系统 | |
CN108445788A (zh) | 一种酒店场景控制方法及相关装置 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN113269542A (zh) | 区块链系统的共识方法、装置以及存储介质 | |
CN109739684A (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
CN112069259A (zh) | 一种基于区块链的多云环境数据存储系统及方法 | |
CN106455042B (zh) | 一种节点间时间同步方法、无线传感网络及其节点 | |
CN105975276B (zh) | 分布式构建系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |