数据同步方法及装置、分布式系统与流程

文档序号:18868184发布日期:2019-10-14 18:51阅读:165来源:国知局
数据同步方法及装置、分布式系统与流程
本发明涉及安防监控领域,特别涉及一种数据同步方法及装置、分布式系统。
背景技术
:目前,在安防监控领域中,可以采用人脸识别技术判断视频监控区域中采集的目标人脸信息是否与黑名单中的人脸信息匹配,该黑名单中的人脸信息可以为逃犯的人脸信息或偷盗者的人脸信息等,在判断出目标人脸信与黑名单中的人脸信息匹配后,对目标人脸信息进行报警,进而可以由警察等人员对该目标人脸信息对应的人进行抓捕。为了提高人脸识别技术的运算速度,上述人脸识别技术可以采用分布式系统实现。例如,该分布式系统可以包括:数据存储节点、服务管理节点和多个计算节点。其中,数据存储节点中存储有大量的经过建模处理得到的人脸模型数据,可以将该人脸模型数据中的某些数据标记在黑名单中。该数据存储节点可以将人脸模型数据同步到每个计算节点,每个计算节点可以将这些人脸模型数据作为基础数据使用。服务管理节点可以将人脸比对任务下发到多个计算节点中的空闲的计算节点中,该计算节点可以将人脸比对任务中的人脸信息分析后与计算节点中存储的人脸模型数据进行比对,进而可以判断出人脸分析任务中的人脸信息是否与黑面单中的数据对应。但是,若数据存储节点中的某些数据进行了更新,数据存储节点会将更新的数据同步到每个计算节点中,若在同步的过程中,某个计算节点的数据同步失败,该计算节点会丢失未同步的数据,最终会导致各个计算节点中的数据不一致。技术实现要素:本申请提供了一种数据同步方法及装置、分布式系统,可以解决分布式系统中各个计算节点中的数据不一致问题。所述技术方案如下:第一方面,提供了一种数据同步方法,应用于分布式系统中的第一计算节点,所述分布式系统包括:数据存储节点和多个计算节点,所述第一计算节点为所述多个计算节点中的任一计算节点,所述方法包括:接收所述数据存储节点发送的当前版本号,所述当前版本号为所述数据存储节点中存储的数据更新后,所述数据存储节点生成的版本号;当所述版本号高于所述第一计算节点存储的第一版本号时,向所述数据存储节点发送数据更新请求,所述数据更新请求中携带有所述第一版本号,所述数据更新请求用于请求所述第一版本号指示的数据与所述当前版本号指示的数据同步;接收所述数据存储节点发送的数据更新响应,所述数据更新响应基于所述第一版本号指示的数据与所述当前版本号指示的数据中的区别数据生成;基于所述数据更新响应,同步所述第一计算节点与所述数据存储节点中的数据;当同步成功时,将所述第一版本号更新为所述当前版本号;当同步失败时,禁止所述第一版本号进行更新。可选的,所述分布式系统还包括:服务管理节点,所述接收所述数据存储节点发送的当前版本号,包括:接收所述服务管理节点从所述数据存储节点获取的所述当前版本号;和/或,所述接收所述数据存储节点发送的当前版本号,包括:周期性的向所述数据存储节点发送版本号获取请求;接收所述数据存储节点发送的当前版本号。可选的,所述方法还包括:在同步失败后,重新向所述数据存储节点发送所述数据更新请求。可选的,所述数据更新响应包括:数据删除指令和数据删除标识,所述数据删除标识用于指示所述数据存储节点中所述当前版本号指示的数据较所述第一版本号指示的数据的减少的数据,所述基于所述数据更新响应,同步所述第一计算节点与所述数据存储节点中的数据,包括:在所述第一版本号指示的数据中查询与所述数据删除标识对应的第一目标数据;根据所述数据删除指令,删除所述第一目标数据。可选的,所述数据更新响应包括:数据增加指令和待增加数据,所述待增加数据为所述数据存储节点中所述当前版本号指示的数据较所述第一版本号指示的数据的增加的数据,所述基于所述数据更新响应,同步所述第一计算节点与所述数据存储节点中的数据,包括:根据所述数据增加指令,在所述第一版本号指示的数据中增加所述待增加数据。可选的,所述数据更新响应包括:数据替换指令、数据替换标识以及待替换数据,所述待替换数据为所述数据存储节点中所述当前版本号指示的数据与所述第一版本号指示的数据中不同的数据,所述基于所述数据更新响应,将所述差分数据以及所述第一版本号指示的数据进行整合,包括:在所述第一版本号指示的数据中查询与所述数据替换标识对应的第二目标数据;根据所述数据替换指令,将所述第二目标数据替换为所述待替换数据。可选的,所述版本号为所述数据存储节点生成的时间戳。第二方面,提供了一种数据同步方法,应用于分布式系统中的数据存储节点,所述分布式系统包括:所述数据存储节点和多个计算节点,所述方法包括:在所述数据存储节点中存储的数据更新后,生成当前版本号;向第一计算节点发送所述当前版本号,所述第一计算节点为所述多个计算节点中任一计算节点;接收所述第一计算节点发送的数据更新请求,所述数据更新请求为所述第一计算节点在确定出所述当前版本号高于所述第一计算节点存储的第一版本号后,所述第一计算节点生成的请求,所述数据更新请求中携带有所述第一版本号,所述数据更新请求用于请求所述第一版本号指示的数据与所述当前版本号指示的数据同步;基于所述数据更新请求生成数据更新响应,所述数据更新响应基于所述第一版本号指示的数据与所述当前版本号指示的数据中的区别数据生成;向所述第一计算节点发送所述数据更新响应。可选的,所述分布式系统还包括:服务管理节点,所述向第一计算节点发送所述当前版本号,包括:通过所述服务管理节点向所述第一计算节点发送当前版本号;和/或,所述向第一计算节点发送所述当前版本号,包括:在接收到所述第一计算节点发送的版本号获取请求后,向所述第一计算节点发送所述当前版本号。可选的,所述基于所述数据更新请求生成数据更新响应,包括:基于所述数据更新请求,在预设的版本号列表中查询从所述第一版本号到所述当前版本号中所有的版本号对应的历史数据更新响应;将所述所有版本号对应的数据更新响应整合得到所述数据更新响应;其中,所述预设的版本号列表中记录有多个版本号和多个历史数据更新响应,所述多个版本号与所述多个历史数据更新响应一一对应,对于任一历史数据更新响应,所述历史数据更新响应基于对应版本号指示的数据与前一版本号指示的数据的区别数据生成。可选的,所述版本号为所述数据存储节点生成的时间戳。第三方面,提供了一种数据同步装置,应用于分布式系统中的第一计算节点,所述分布式系统包括:数据存储节点和多个计算节点,所述第一计算节点为所述多个计算节点中的任一计算节点,所述装置包括:第一接收模块,用于接收所述数据存储节点发送的当前版本号,所述当前版本号为所述数据存储节点中存储的数据更新后,所述数据存储节点生成的版本号;第一发送模块,用于当所述版本号高于所述第一计算节点存储的第一版本号时,向所述数据存储节点发送数据更新请求,所述数据更新请求中携带有所述第一版本号,所述数据更新请求用于请求所述第一版本号指示的数据与所述当前版本号指示的数据同步;第二接收模块,用于接收所述数据存储节点发送的数据更新响应,所述数据更新响应基于所述第一版本号指示的数据与所述当前版本号指示的数据中的区别数据生成;同步模块,用于基于所述数据更新响应,同步所述第一计算节点与所述数据存储节点中的数据;更新模块,用于当同步成功时,将所述第一版本号更新为所述当前版本号;禁止模块,用于当同步失败时,禁止所述第一版本号进行更新。可选的,所述分布式系统还包括:服务管理节点,所述第一接收模块,用于:接收所述服务管理节点从所述数据存储节点获取的所述当前版本号;和/或,所述第一接收模块,用于:周期性的向所述数据存储节点发送版本号获取请求;接收所述数据存储节点发送的当前版本号。可选的,所述装置还包括:第二发送模块,用于在同步失败后,重新向所述数据存储节点发送所述数据更新请求。可选的,所述数据更新响应包括:数据删除指令和数据删除标识,所述数据删除标识用于指示所述数据存储节点中所述当前版本号指示的数据较所述第一版本号指示的数据的减少的数据,所述同步模块,用于:在所述第一版本号指示的数据中查询与所述数据删除标识对应的第一目标数据;根据所述数据删除指令,删除所述第一目标数据。可选的,所述数据更新响应包括:数据增加指令和待增加数据,所述待增加数据为所述数据存储节点中所述当前版本号指示的数据较所述第一版本号指示的数据的增加的数据,所述同步模块,用于:根据所述数据增加指令,在所述第一版本号指示的数据中增加所述待增加数据。可选的,所述数据更新响应包括:数据替换指令、数据替换标识以及待替换数据,所述待替换数据为所述数据存储节点中所述当前版本号指示的数据与所述第一版本号指示的数据中不同的数据,所述同步模块,用于:在所述第一版本号指示的数据中查询与所述数据替换标识对应的第二目标数据;根据所述数据替换指令,将所述第二目标数据替换为所述待替换数据。可选的,所述版本号为时间戳。第四方面,提供了一种数据同步装置,应用于分布式系统中的数据存储节点,所述分布式系统包括:所述数据存储节点和多个计算节点,所述装置包括:第一生成模块,用于在所述数据存储节点中存储的数据更新后,生成当前版本号;第一发送模块,用于向第一计算节点发送所述当前版本号,所述第一计算节点为所述多个计算节点中任一计算节点;接收模块,用于接收所述第一计算节点发送的数据更新请求,所述数据更新请求为所述第一计算节点在确定出所述当前版本号高于所述第一计算节点存储的第一版本号后,所述第一计算节点生成的请求,所述数据更新请求中携带有所述第一版本号,所述数据更新请求用于请求所述第一版本号指示的数据与所述当前版本号指示的数据同步;第二生成模块,用于基于所述数据更新请求生成数据更新响应,所述数据更新响应基于所述第一版本号指示的数据与所述当前版本号指示的数据中的区别数据生成;第二发送模块,用于向所述第一计算节点发送所述数据更新响应。可选的,所述分布式系统还包括:服务管理节点,所述第一发送模块,用于:通过所述服务管理节点向所述第一计算节点发送当前版本号;和/或,所述第一发送模块,用于:在接收到所述第一计算节点发送的版本号获取请求后,向所述第一计算节点发送所述当前版本号。可选的,所述第二生成模块,用于:基于所述数据更新请求,在预设的版本号列表中查询从所述第一版本号到所述当前版本号中所有的版本号对应的历史数据更新响应;将所述所有版本号对应的数据更新响应整合得到所述数据更新响应;其中,所述预设的版本号列表中记录有多个版本号和多个历史数据更新响应,所述多个版本号与所述多个历史数据更新响应一一对应,对于任一历史数据更新响应,所述历史数据更新响应基于对应版本号指示的数据与前一版本号指示的数据的区别数据生成。可选的,所述版本号为时间戳。第五方面,提供了一种分布式系统,包括:数据存储节点和多个计算节点,每个所述计算节点包括:第三方面所述的数据同步装置,所述数据存储节点包括:第四方面所述的数据同步装置。本发明实施例提供的技术方案带来的有益效果是:本发明实施例提供的数据同步方法及装置、分布式系统,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种分布式系统的结构示意图;图2是本发明实施例提供的一种数据同步方法的流程图;图3是本发明实施例提供的另一种数据同步方法的流程图;图4是本发明实施例提供的又一种数据同步方法的流程图;图5a是本发明实施例提供的一种数据同步装置的框图;图5b是本发明实施例提供的另一种数据同步装置的框图;图6是本发明另一实施例提供的一种数据同步装置的框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。请参考图1,图1是本发明实施例提供的一种分布式系统10的结构示意图,该分布式系统可以包括:数据存储节点101和多个计算节点102。该数据存储节点101可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。计算节点102也可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。实际应用中,该分布式系统还包括:服务管理节点103,该服务管理节点103可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。数据存储节点101与每个计算节点102建立有通信连接,数据存储节点101与服务管理节点103建立有通信连接,服务管理节点103与每个计算节点102建立有通信连接。需要说明的是,本发明实施例中所谓的通信连接,可以是通过有线网络或者无线网络建立的通信连接。图2是本发明实施例提供的一种数据同步方法的流程图,该方法应用于如图1所示的分布式系统10中的第一计算节点,该第一计算节点为多个计算节点102中的任一计算节点,如图2所示,该方法可以包括:步骤201、接收数据存储节点发送的当前版本号。该当前版本号为数据存储节点中存储的数据更新后,数据存储节点生成的版本号。步骤202、当该当前版本号高于第一计算节点存储的第一版本号时,向数据存储节点发送数据更新请求。该数据更新请求中携带有第一版本号,数据更新请求用于请求第一版本号指示的数据与当前版本号指示的数据同步。步骤203、接收数据存储节点发送的数据更新响应。该数据更新响应基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成。步骤204、基于数据更新响应,同步第一计算节点与数据存储节点中的数据。步骤205、当同步成功时,将第一版本号更新为当前版本号。步骤206、当同步失败时,禁止第一版本号进行更新。综上所述,本发明实施例提供的数据同步方法,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。图3是本发明实施例提供的另一种数据同步方法的流程图,该方法应用于如图1所示的分布式系统10中的数据存储节点101,如图2所示,该方法可以包括:步骤301、在数据存储节点中存储的数据更新后,生成当前版本号。步骤302、向第一计算节点发送当前版本号。该第一计算节点为多个计算节点中任一计算节点。步骤303、接收第一计算节点发送的数据更新请求。该数据更新请求为第一计算节点在确定出当前版本号高于第一计算节点存储的第一版本号后,第一计算节点生成的请求,该数据更新请求中携带有第一版本号,该数据更新请求用于请求第一版本号指示的数据与当前版本号指示的数据同步。步骤304、基于数据更新请求生成数据更新响应。该数据更新响应基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成。步骤305、向第一计算节点发送数据更新响应。综上所述,本发明实施例提供的数据同步方法,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。图4是本发明实施例提供的又一种数据同步方法的流程图,该方法应用于如图1所示的分布式系统10,该分布式系统包括:数据存储节点101和多个计算节点102,本发明实施例以第一计算节点为例进行示意性说明,如图4所示,该方法可以包括:步骤401、在数据存储节点中存储的数据更新后,数据存储节点生成当前版本号。在本发明实施例中,若分布式系统中的数据存储节点中存储的数据进行了更新,该数据存储节点可以生成相应的版本号。可选的,该版本号可以为数据存储节点生成的时间戳,在数据存储节点中存储的数据更新后,该数据存储节点可以基于当前时间点生成当前版本号。实际应用中,该版本号还可以为字符串,本发明实施例对此不作限定。需要说明的是,当该版本号为数据存储节点生成的时间戳时,为了保证数据存储节点生成的版本号的正确率,需要保证数据存储节点中的时间的正确性。示例的,通常可以采用网络时间协议(英文:networktimeprotocol;简称:ntp)校时服务器保证该数据存节点中的时间的正确性,该ntp校时服务器可以周期性的向服务存储节点发送时间信息,若该时间信息中的时间与数据存储节点中的时间相同时,则数据存储节点不修改时间;若该时间信息中的时间与数据存储节点中的时间不同时,则数据存储节点可以将时间修改为该时间信息中的时间,使得数据存节点中的时间与ntp校时服务器中的时间保持一致。例如,当数据存储节点中的时间被认为强行修改时,若该数据存节点接收到了ntp校时服务器发送的时间信息,该数据存节点可以对时间进行修改,使得修改后的时间与ntp校时服务器中的时间保持一致。步骤402、数据存储节点向第一计算节点发送当前版本号。在本发明实施例中,由于分布式系统还可以包括:服务管理节点,因此为了减小数据存储节点的运算负荷,数据存储节点可以通过服务管理节点向第一计算节点发送当前版本号。此时,该数据存储节点向第一计算节点发送当前版本号的方式可以包括:步骤a1、数据存储节点向服务管理节点发送当前版本号。在本发明实施例中,服务管理节点在接收到数据存储节点发送的当前版本号后,服务管理节点需要判断该当前版本号的格式是否正确,当该当前版本号的格式正确时,执行步骤b1;当该当前版本号格式不正确时,结束动作。步骤b1、服务管理节点将该当前版本号发送给第一计算节点。通过上述步骤a1与步骤b1,可以将数据存储节点生成的当前版本号发送给第一计算节点。实际应用中,可能会出现服务管理节点宕机的情况,导致服务管理节点无法向第一计算节点发送当前版本号;也可能会出现数据存储节点与服务管理节点之间的通信连接断开的情况,也会导致服务管理节点无法向第一计算节点发送当前版本号。因此,为了避免服务管理节点出现无法向第一计算节点发送当前版本号的情况,该数据存储节点向第一计算节点发送当前版本号的方式可以包括:步骤a2、第一计算节点周期性的向数据存储节点发送版本号获取请求。步骤b2、数据存储节点在接收到第一计算节点发送的版本号获取请求后,向第一计算节点发送当前版本号。通过上述步骤a2与步骤b2,若服务管理节点无法向第一计算节点发送当前版本号,第一计算节点可以直接从数据存储节点中获取当前版本号。步骤403、第一计算节点检测该当前版本号是否高于第一计算节点存储的第一版本号。在本发明实施例中,第一计算节点在接收到当前版本号后,该第一计算节点可以检测该当前版本号是否高于第一计算节点存储的第一版本号,示例的,当该当前版本号高于第一版本号时,执行步骤404;当该当前版本号不高于第一版本号时,第一计算节点删除该当前版本号,并结束动作。步骤404、当该当前版本号高于第一版本号时,第一计算节点向数据存储节点发送数据更新请求。在本发明实施例中,当该当前版本号高于第一版本号时,第一计算节点可以先生成数据更新请求,然后将该数据更新请求发送给数据存储节点。实际应用中,为了避免第一计算节点由于同步失败而造成数据的丢失,该数据更新请求中可以携带有第一版本号,该数据更新请求用于请求第一版本号指示的数据与当前版本号指示的数据同步,也即是,用于请求第一计算节点中的数据与数据存储节点中的数据同步,进而使得第一计算节点能够在数据丢失的情况下,通过数据更新请求重新获取丢失的数据。步骤405、数据存储节点基于数据更新请求生成数据更新响应。在本发明实施例中,数据存储节点在接收到第一计算节点发送的数据更新请求后,数据存储节点可以基于该数据更新请求生成数据更新响应。实际应用中,在数据存储节点存储的数据更新后,该数据存储节点不仅可以生成版本号,也可以生成与该版本号对应的历史数据更新响应,该历史数据更新响应基于对应版本号指示的数据与前一版本号指示的数据的区别数据生成。可以将版本号与历史数据更新响应记录在数据存储节点中存储的预设的版本号列表中,示例的,该版本号列表中记录的版本号与历史数据更新响应的方式可以参考表1。例如,版本号为xx02时,对应的数据更新响应为历史数据更新响应1。表1版本号历史数据更新响应xx02历史数据更新响应1xx35历史数据更新响应2xx59历史数据更新响应3通常情况下,数据存储节点在每次数据更新后均会生产版本号与数据更新响应,因此该版本号列表中可以记录有多个版本号和多个历史数据更新响应,该多个版本号与多个历史数据更新响应一一对应。例如,版本号为:xx02,与历史数据更新响应1对应;版本号为:xx35,与历史数据更新响应2对应;版本号为:xx59,与历史数据更新响应3对应。对于任一历史数据更新响应,历史数据更新响应基于对应版本号指示的数据与前一版本号指示的数据的区别数据生成。例如,历史数据更新响应3基于版本号xx59指示的数据与版本号xx35指示的数据的区别数据生成。进一步的,该数据存储节点基于数据更新请求生成数据更新响应,包括:数据存储节点基于数据更新请求,在预设的版本号列表中查询从第一版本号到当前版本号中所有的版本号对应的历史数据更新响应;数据存节点将所有版本号对应的数据更新响应整合得到数据更新响应。例如,当第一版本号为:xx02,当前版本号为:xx59时,第一版本号到当前版本号所有的版本号对应的历史数据更新响应为:历史数据更新响应1、历史数据更新响应2和历史数据更新响应3,数据存节点可以先将该历史数据更新响应1、历史数据更新响应2和历史数据更新响应3整合得到数据更新响应,然后向第一计算节点发送该整合得到的数据更新响应。实际应用中,数据存储节点还可以在查询得到所有的版本号对应的历史数据更新响应后,不对该所有的版本号对应的历史数据更新响应进行整合,而是依次将该所有的版本号对应的历史数据更新响应发送给第一计算节点,本发明实施例对此不作限定。步骤406、数据存储节点向第一计算节点发送数据更新响应。在本发明实施例中,在数据存储节点基于数据更新请求生成数据更新响应后,数据存储节点可以向第一计算节点发送该数据更新响应。步骤407、第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据。实际应用中,由于数据存储节点中存储的数据量较大,如果直接将数据存储节点中更新后的所有数据发送给第一计算节点,会严重影响同步效率,因此为了提高同步效率,本发明实施例中的数据更新响应可以包括:操作指令和待更新的数据信息,使得第一计算节点在根据操作指令同步待更新的数据信息后,便可以实现第一计算节点与数据存储节点中的数据同步,此时,第一计算节点仅需要获取数据存储节点中更改的数据,无需获取数据存储节点中未更改的数据,因此有效的提高了同步效率。在本发明实施例中,对数据存储节点中的数据进行更新的方式有多种,相应的第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据的方式也有多种,本发明实施例以以下三种可实现方式为例进行示意性说明:在第一种可实现方式中,当需要对数据存储节点存储的数据中删除某个数据时,该数据更新响应可以包括:数据删除指令和数据删除标识,该数据删除标识用于指示数据存储节点中当前版本号指示的数据较第一版本号指示的数据的减少的数据。该第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据的方式可以包括:步骤a3、第一计算节点在第一版本号指示的数据中查询与数据删除标识对应的第一目标数据。实际应用中,数据存储节点存储的数据均具有数据标识,在数据存储节点存储的数据同步到第一计算节点后,该第一计算节点中的数据也具有相应的数据标识。因此,在本发明实施例中,当对数据存储节点中的某个数据进行删除时,数据更新响应中的数据删除标识可以指示该数据存储节点中需要删除的数据,通过该数据删除标识可以在第一计算节点中查询到相应的数据。步骤b3、第一计算节点根据数据删除指令,删除第一目标数据。在本发明实施例中,在第一计算节点中查询到与数据删除标识对应的第一目标数据后,第一计算节点可以根据数据删除指令对该第一目标数据进行删除。通过步骤a3至步骤b3,可以在第一计算节点中删除与数据存储节点中所要删除的数据的相同数据。实际应用中,第一计算节点在接收到数据更新响应后,对该数据更新响应进行解析,若解析出该数据更新响应包括:数据删除指令和数据删除标识,则执行上述步骤a3至步骤b3。在第二种可实现方式中,当需要对数据存储节点存储的数据中增加某个数据时,该数据更新响应可以包括:数据增加指令和待增加数据,该待增加数据为数据存储节点中当前版本号指示的数据较第一版本号指示的数据的增加的数据。该第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据的方式可以包括:步骤a4、第一计算节点根据数据增加指令,在第一版本号指示的数据中增加待增加数据。通过步骤a4,可以在第一计算节点中增加与数据存储节点中所要增加的数据的相同数据。实际应用中,第一计算节点在接收到数据更新响应后,对该数据更新响应进行解析,若解析出该数据更新响应包括:数据删除指令和数据删除标识,则执行上述步骤a4。在第三种可实现方式中,当需要对数据存储节点存储的数据中替换某个数据时,该数据更新响应可以包括:数据替换指令、数据替换标识以及待替换数据,待替换数据为数据存储节点中当前版本号指示的数据与第一版本号指示的数据中不同的数据。该第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据的方式可以包括:步骤a5、第一计算节点在第一版本号指示的数据中查询与数据替换标识对应的第二目标数据。实际应用中,若数据存储节点中的某个数据进行了替换,替换前的数据与替换后的数据的数据标识可以不变,也即是,仅对数据存储节点中的某个数据进行替换,并不更改数据标识。因此,在本发明实施例中,当对数据存储节点中的某个数据进行替换时,数据更新响应中数据替换标识可以指示该数据存储节点中需要替换的数据,通过该数据替换标识可以在第一计算节点中查询到相应的数据。步骤b5、第一计算节点根据数据替换指令,将第二目标数据替换为待替换数据。在本发明实施例中,在第一计算节点中查询到与数据替换标识对应的第二目标数据后,第一计算节点可以根据数据替换指令将第二目标数据替换为待替换的数据。通过步骤a5至步骤b5,可以在第一计算节点中替换与数据存储节点中所要替换的数据的相同数据。需要说明的是,由于本发明实施例不对替换前后的数据标识进行更改,因此该待替换数据的数据标识与第二目标数据的数据标识相同。实际应用中,第一计算节点在接收到数据更新响应后,对该数据更新响应进行解析,若解析出该数据更新响应包括:数据替换指令、数据替换标识以及待替换数据,则执行上述步骤a5至步骤b5。步骤408、第一计算节点判断同步是否成功。在本发明实施例中,第一计算节点可以判断同步是否成功,当同步成功时,执行步骤409;当同步失败时,执行步骤410。步骤409、当同步成功时,第一计算节点将第一版本号更新为当前版本号。在本发明实施例中,当同步成功时,第一计算节点需要将第一版本号更新为当前版本号,避免了后续进行同步过程中同步相同的数据。步骤410、当同步失败时,第一计算节点禁止第一版本号进行更新。在本发明实施例中,在第一计算节点禁止第一版本号进行更新后,第一计算节点可以立刻重新向数据存储节点发送数据更新请求;也可以在重新接收到数据存储节点发送的新的当前版本号后,向数据存储节点发送数据更新请求。此后,重复执行上述步骤405至步骤408后,第一计算节点可以获取到在数据同步失败后未同步的数据。在相关技术中,若分布式系统关机,该分布式系统中的计算节点中的数据会丢失,在该分布式系统重新启动后,该分部式系统中的存节点需要重新将所有的数据同步到每个计算节点中,进而导致了分布式系统的同步效率较低。而在本发明实施例中,在第一计算节点将第一版本号更新为当前版本号后,第一计算节点可以将更新后的版本号与同步成功后的数据存储在第一计算节点的本地,若分布式系统重新启动后,重复执行上述步骤402至步骤408便可以同步计算节点与数据存储节点中的数据,无需同步所有的数据,因此有效的提高了分布式系统的同步效率。需要说明的是,本发明实施例提供的数据同步方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本
技术领域
的技术人员在本公开揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本公开的保护范围之内,因此不再赘述。综上所述,本发明实施例提供的数据同步方法,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。图5a是本发明实施例提供的一种数据同步装置500的框图,应用于如图1所示的分布式系统10中的第一计算节点,该第一计算节点为多个计算节点102中的任一计算节点,如图5a所示,该数据同步装置500可以包括:第一接收模块501,用于接收数据存储节点发送的当前版本号,当前版本号为数据存储节点中存储的数据更新后,数据存储节点生成的版本号。第一发送模块502,用于当版本号高于第一计算节点存储的第一版本号时,向数据存储节点发送数据更新请求,数据更新请求中携带有第一版本号,数据更新请求用于请求第一版本号指示的数据与当前版本号指示的数据同步。第二接收模块503,用于接收数据存储节点发送的数据更新响应,数据更新响应基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成。同步模块504,用于基于数据更新响应,同步第一计算节点与数据存储节点中的数据。更新模块505,用于当同步成功时,将第一版本号更新为当前版本号。禁止模块506,用于当同步失败时,禁止所述第一版本号进行更新。综上所述,本发明实施例提供的数据同步装置,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。可选的,分布式系统还包括:服务管理节点,第一接收模块501,用于:接收服务管理节点从数据存储节点获取的当前版本号。和/或,第一接收模块501,用于:周期性的向数据存储节点发送版本号获取请求;接收数据存储节点发送的当前版本号。可选的,如图5b所示,图5b是本发明实施例提供的另一种数据同步装置500的框图,该数据同步装置500还可以包括:第二发送模块507,用于在同步失败后,重新向数据存储节点发送数据更新请求。可选的,数据更新响应包括:数据删除指令和数据删除标识,数据删除标识用于指示数据存储节点中当前版本号指示的数据较第一版本号指示的数据的减少的数据,同步模块504,用于:在第一版本号指示的数据中查询与数据删除标识对应的第一目标数据;根据数据删除指令,删除第一目标数据。可选的,数据更新响应包括:数据增加指令和待增加数据,待增加数据为数据存储节点中当前版本号指示的数据较第一版本号指示的数据的增加的数据,同步模块504,用于:根据数据增加指令,在第一版本号指示的数据中增加待增加数据。可选的,数据更新响应包括:数据替换指令、数据替换标识以及待替换数据,待替换数据为数据存储节点中当前版本号指示的数据与第一版本号指示的数据中不同的数据,同步模块504,用于:在第一版本号指示的数据中查询与数据替换标识对应的第二目标数据;根据数据替换指令,将第二目标数据替换为待替换数据。综上所述,本发明实施例提供的数据同步装置,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。图6是本发明另一实施例提供的一种数据同步装置600的框图,应用于如图1所示的分布式系统10中的数据存储节点101,如图6所示,该数据同步装置600可以包括:第一生成模块601,用于在数据存储节点中存储的数据更新后,生成当前版本号。第一发送模块602,用于向第一计算节点发送当前版本号,第一计算节点为多个计算节点中任一计算节点。接收模块603,用于接收第一计算节点发送的数据更新请求,数据更新请求为第一计算节点在确定出当前版本号高于第一计算节点存储的第一版本号后,第一计算节点生成的请求,数据更新请求中携带有第一版本号,数据更新请求用于请求第一版本号指示的数据与当前版本号指示的数据同步。第二生成模块604,用于基于数据更新请求生成数据更新响应,数据更新响应基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成。第二发送模块605,用于向第一计算节点发送数据更新响应。综上所述,本发明实施例提供的数据同步装置,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。可选的,分布式系统还包括:服务管理节点,第一发送模块602,用于:通过服务管理节点向第一计算节点发送当前版本号。和/或,第一发送模块602,用于:在接收到第一计算节点发送的版本号获取请求后,向第一计算节点发送当前版本号。可选的,第二生成模块604,用于:基于数据更新请求,在预设的版本号列表中查询从第一版本号到当前版本号中所有的版本号对应的历史数据更新响应;将所有版本号对应的数据更新响应整合得到数据更新响应;其中,预设的版本号列表中记录有多个版本号和多个历史数据更新响应,多个版本号与多个历史数据更新响应一一对应,对于任一历史数据更新响应,历史数据更新响应基于对应版本号指示的数据与前一版本号指示的数据的区别数据生成。综上所述,本发明实施例提供的数据同步装置,第一计算节点在向数据存储节点发送数据获取请求中携带了第一计算节点存储的第一版本号,该数据更新请求可以请求第一版本号指示的数据与当前版本号指示的数据同步,数据存储节点基于第一版本号指示的数据与当前版本号指示的数据中的区别数据生成相应的数据更新响应,以指示第一计算节点基于数据更新响应,同步第一计算节点与数据存储节点中的数据,当同步失败时,禁止第一版本号进行更新,则该第一计算节点在下次同步的过程中,可以获取第一版本号指示的数据与新的当前版本号指示的数据中的区别数据,从而可以获取在数据同步失败后未同步的数据,进而使得各个计算节点中的数据保持一致。本发明实施例还提供了一种分布式系统,该分布式系统可以包括:数据存储节点和多个计算节点,每个计算节点可以包括:图5a或图5b示出的数据同步装置,数据存储节点可以包括:图6示出的数据同步装置。可选的,该分布式系统还可以包括:服务管理节点,用于接收数据存储节点发送的当前版本号;向每个计算节点发送该当前版本号。该分布式系统的结构可以参考图1示出的分布式系统。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本发明实施例提供了一种计算机设备,该计算机设备可以为如图1所示的视频监控系统10中的第一计算节点,该第一计算节点为多个计算节点102中的任一计算节点,该计算机设备包括:至少一个处理器;和至少一个存储器;其中,该至少一个存储器存储有一个或多个程序;至少一个处理器,用于执行至少一个存储器上所存存储的程序,以实现图2或图4示出的数据同步方法。本发明实施例提供了一种计算机设备,该计算机设备可以为如图1所示的分布式系统10中的数据存储节点101,该计算机设备包括:至少一个处理器;和至少一个存储器;其中,该至少一个存储器存储有一个或多个程序;至少一个处理器,用于执行至少一个存储器上所存存储的程序,以实现图3或图4示出的数据同步方法。本发明实施例还提供了一种存储介质,该存储介质为非易失性存储介质,该存储介质中存储有代码指令,该代码指令由处理器执行,以执行图2、图3或图4示出的数据同步方法。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1