一种数据库的数据同步方法、设备和计算机存储介质与流程

文档序号:19418671发布日期:2019-12-14 01:11阅读:147来源:国知局
一种数据库的数据同步方法、设备和计算机存储介质与流程

本申请实施例涉及互联网技术领域,尤其涉及一种数据库的数据同步方法、设备和计算机存储介质。



背景技术:

随着互联网和电子摄像技术的发展,人脸识别技术得到广泛的应用,例如,可以应用到海关、银行、门禁等等各种需要身份识别的领域。

人脸识别技术中被广泛采用的区域特征分析算法,它融合计算机图像人脸识别处理技术与生物统计学原理于一体,利用计算机图像处理技术从视频中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,即人脸特征模板。利用已建成的人脸特征模板与被测者的人的面像进行特征分析,根据分析的结果来给出一个相似值,通过这个值即可确定是否为同一人。

自2012年后,人脸识别技术的应用呈现出了爆发式增长。2016年12月亚马逊推出线下无人售货便利店,顾客选好自己想要的商品后就可以通过人脸识别付款直接离开,无需排队结账。2017年阿里也在推出了无人超市,用射频识别(radiofrequencyidentification,rfid)和生物识别相结合的方案替代人类收银员。无人零售核心技术就是人脸识别,随着ai技术的更新普及,逐渐渗透到各行各业,人脸算法基本能满足现有产业的业务需求。

但亚马逊搭建起来的无人售货便利店至今仍未对外开放,因为它无法应对超过20个人同时购物的场景。目前在新零售行业,面对日趋增大的客流量,在于如何保证物联网终端设备(例如,银行、机场、超市、海关等等人脸识别终端)和云端服务器人脸数据库数据保持一致,满足在低网络带宽的消耗下,保证较高的同步性,同时满足灾备需求的成熟技术方案却很少。

现有技术中,有如下三种方法处理云端服务器的人脸数据库和人脸提取设备的人脸数据库的不一致性:

1)云端服务器的人脸数据库数量大于物联网终端设备的人脸数据库数据,将云端服务器多余的人脸数据库及人脸同步到物联网终端设备的人脸数据库。

2)云端服务器的人脸数据库少于物联网终端设备的人脸数据库,将物联网终端设备多余的人脸数据库进行排除。

3)云端服务器的人脸数据库等于物联网终端设备的人脸数据库,进行人脸数据库编号比对,防止出现人脸数据库数量相同,但是人脸数据库内容不同的情况。

现有技术方案能很好的解决单机系统,方案实现和维护都比较简单。但是,现有技术方案的人脸数量有限,无法横向扩展,检索并发度低,过滤条件无法灵活变化,尤其对大数据的人脸数据库,难以保障在低通信资源下的一致性同步,而且同步速度很慢。



技术实现要素:

鉴于上述问题,本申请实施例提供了一种数据库的数据同步方法、设备和计算机存储介质,克服了上述问题或者至少部分地解决了上述问题。

本申请的第一方面提供一种数据库的数据同步方法,云端服务器为其数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中,其中,所述数据库的数据同步方法包括:

所述云端服务器接收物联网终端设备请求数据同步时发送的所述物联网终端设备数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值;

当所述云端服务器确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,所述云端服务器确定一致性校验成功;

所述云端服务器在确定一致性校验成功之后,将其数据库的版本更新记录中最新更新记录对应的数据库的数据与一致性校验成功所对应版本的数据库的数据之间不同的数据发送给所述物联网终端设备,以使所述物联网终端设备将所述不同的数据加入到所述物联网终端设备发送的一致性校验成功的版本信息对应的数据库并作为所述物联网终端设备的最新版本的数据库,以实现与所述云端服务器的最新更新记录对应的数据库同步。

可选地,当所述云端服务器确定其数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,所述云端服务器确定一致性校验失败;

所述云端服务器在确定一致性校验失败之后,向所述物联网终端设备发送版本信息的回退指示,所述版本信息的回退指示用于指示所述物联网终端设备从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行数据库版本信息回退;所述云端服务器依次接收所述物联网终端设备每次进行数据库版本信息回退后发送的回退版本信息,并依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

可选地,当所述云端服务器对所述物联网终端设备发送的所有回退版本信息进行一致性校验均失败时,所述云端服务器将其数据库的版本更新记录中最新更新记录对应的数据库的数据发送给所述物联网终端设备,以使得所述物联网终端设备将其最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同,以实现数据库同步。

可选地,所述云端服务器接收所述物联网终端设备发送的所述第一版本信息之后,所述方法还包括:

所述云端服务器确定其数据库的版本更新记录是否存在与所述第一版本信息包括的所述时间戳相同的时间戳;

如果所述云端服务器确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳,获取所述相同时间戳对应的版本哈希值;

所述云端服务器确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值是否一致。

可选地,所述第一版本信息为所述物联网终端设备的数据库的最新的版本信息。

可选地,当所述物联网终端设备进行的数据库同步失败时,所述云端服务器接收所述物联网终端设备进行数据库版本信息回退后发送的回退版本信息,所述发送的回退版本信息包括其对应的时间戳和版本哈希值;

所述云端服务器对所述发送的回退版本信息进行一致性校验。

本申请的第二方面提供一种数据库的数据同步方法,云端服务器为其数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中,其中,所述数据库的数据同步方法包括:

物联网终端设备向所述云端服务器请求数据同步时发送所述物联网终端设备的数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值;

当所述云端服务器确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,所述物联网终端设备接收所述云端服务器发送的其数据库的版本更新记录中最新更新记录对应的数据库的数据与一致性校验成功所对应版本的数据库的数据之间不同的数据;

所述物联网终端设备将所述不同的数据加入到所述物联网终端设备发送的一致性校验成功的版本信息对应的数据库并作为所述物联网终端设备的最新版本的数据库,以实现与所述云端服务器的最新更新记录对应的数据库同步。

可选地,当所述云端服务器确定其数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,所述物联网终端设备接收所述云端服务器发送的版本信息回退指示;

所述物联网终端设备根据版本信息的回退指示和其本地版本更新记录从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行数据库版本信息回退;所述物联网终端设备依次向所述云端服务器发送每次进行数据库版本信息回退后的回退版本信息,以便所述云端服务器依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

可选地,当所述物联网终端设备发送的所有回退版本信息进行的一致性校验均失败时,所述物联网终端设备接收所述云端服务器发送的其数据库的版本更新记录中最新更新记录对应的数据库的数据;

所述物联网终端设备将其最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同,以实现数据库同步。

可选地,所述物联网终端设备将其最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同具体包括:

所述物联网终端设备确定存在于所述云端服务器的最新更新记录对应的所述数据库中但不存在于所述物联网终端设备的最新版本的数据库的新数据时,所述物联网终端设备将所述新数据加入到所述物联网终端设备的最新版本的数据库中;和/或

所述物联网终端设备确定同时存在于所述云端服务器的最新更新记录对应的所述数据库和所述物联网终端设备的最新版本的数据库的重复数据时,所述物联网终端设备保持所述物联网终端设备的最新版本的数据库中所述重复数据不变;和/或

所述物联网终端设备确定存在于所述物联网终端设备的最新版本的数据库中但不存在于所述云端服务器的最新更新记录对应的所述数据库的多余数据,所述物联网终端设备排除所述物联网终端设备的最新版本的数据库中所述多余数据。

可选地,所述第一版本信息为所述物联网终端设备的数据库的最新的版本信息。

可选地,当所述物联网终端设备进行的数据库同步失败时,所述物联网终端设备进行数据库版本信息的回退,向所述云端服务器发送所述物联网终端设备进行数据库版本信息的回退后的回退版本信息,所述发送的回退版本信息包括其对应的时间戳和版本哈希值,以便所述云端服务器对所述发送的回退版本信息进行一致性校验。

本申请的第三方面提供一种云端服务器,包括:

设置模块,用于为所述云端服务器的数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中;

接收模块,用于接收物联网终端设备请求数据同步时发送的所述物联网终端设备的数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值;

校验模块,用于当确定所述云端服务器的数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,确定一致性校验成功;

发送模块,用于在所述校验模块确定一致性校验成功之后,将所述云端服务器的数据库的版本更新记录中最新更新记录对应的数据库的数据与一致性校验成功所对应版本的数据库的数据之间不同的数据发送给所述物联网终端设备,以使得所述物联网终端设备将所述不同的数据加入到所述物联网终端设备发送的一致性校验成功的版本信息对应的数据库作为所述物联网终端设备的最新版本的数据库,以实现与所述云端服务器的最新更新记录对应的数据库同步。

可选地,所述校验模块,还用于确定所述云端服务器的数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定所述云端服务器的数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,确定一致性校验失败;

所述发送模块,还用于在所述校验模块确定一致性校验失败之后,向所述物联网终端设备发送版本信息的回退指示,所述版本信息的回退指示用于指示所述物联网终端设备从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行数据库版本信息回退;

所述接收模块,还用于依次接收所述物联网终端设备每次进行数据库版本信息回退后发送的回退版本信息;

所述校验模块,还用于依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

可选地,所述发送模块,还用于当所述校验模块对所述物联网终端设备发送的所有回退版本信息进行的一致性校验均失败时,将所述云端服务器的数据库版本更新记录中最新更新记录对应的数据库的数据发送给所述物联网终端设备,以使得所述物联网终端设备将其最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同,以实现数据库同步。

可选地,所述校验模块,还用于在所述接收模块接收所述物联网终端设备发送的所述第一版本信息之后,确定所述云端服务器的数据库的版本更新记录是否存在与所述第一版本信息包括的所述时间戳相同的时间戳;如果确定所述云端服务器的数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳,获取所述相同时间戳对应的版本哈希值;确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值是否一致。

可选地,所述第一版本信息为所述物联网终端设备的数据库的最新的版本信息。

可选地,所述接收模块,还用于当所述物联网终端设备进行的数据库同步失败时,接收所述物联网终端设备进行数据库版本信息回退后发送的回退版本信息,所述发送的回退版本信息包括其对应的时间戳和版本哈希值;

所述校验模块,还用于对所述发送的回退版本信息进行一致性校验。

本申请的第四方面提供一种物联网终端设备,云端服务器为其数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中,其中,所述物联网终端设备包括:

发送模块,用于向所述云端服务器请求数据同步时发送所述物联网终端设备的数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值;

接收模块,用于当所述云端服务器确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,接收所述云端服务器发送的其数据库的版本更新记录中最新更新记录对应的数据库的数据与一致性校验成功所对应版本的数据库的数据之间不同的数据;

同步模块,用于将所述不同的数据加入到所述物联网终端设备发送的一致性校验成功的版本信息对应的数据库作为所述物联网终端设备的最新版本的数据库,以实现与所述云端服务器的最新更新记录对应的数据库同步。

可选地,所述接收模块,还用于当所述云端服务器确定其数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定其数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,接收所述云端服务器发送的版本信息回退指示;

所述物联网终端设备还包括:回退模块,用于根据版本信息的回退指示和所述物联网终端设备本地版本更新记录从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行数据库版本信息回退;

所述发送模块,还用于依次向所述云端服务器发送每次进行数据库版本信息回退后的回退版本信息,以便所述云端服务器依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

可选地,所述接收模块,还用于当所述发送模块将所述物联网终端设备所有回退版本信息都发给所述云端服务器且所述云端服务器进行的全部回退版本信息一致性校验均失败时,接收所述云端服务器发送的其数据库版本更新记录中最新更新记录对应的数据库的数据;

所述同步模块,还用于将所述物联网终端设备的最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同,以实现数据库同步。

可选地,为实现所述同步模块将所述物联网终端设备的最新版本的数据库更新与所述云端服务器的最新更新记录对应的数据库相同,所述同步模块用于:

确定存在于所述云端服务器的最新更新记录对应的所述数据库中但不存在于所述物联网终端设备的最新版本的数据库的新数据时,将所述新数据加入到所述物联网终端设备的最新版本的数据库中;和/或

确定同时存在于所述云端服务器的最新更新记录对应的所述数据库和所述物联网终端设备的最新版本的数据库的重复数据时,保持所述物联网终端设备的最新版本的数据库中所述重复数据不变;和/或

确定存在于所述物联网终端设备的最新版本的数据库中但不存在于所述云端服务器的最新更新记录对应的所述数据库的多余数据,排除所述物联网终端设备的最新版本的数据库中所述多余数据。

可选地,所述第一版本信息为所述物联网终端设备的数据库的最新的版本信息。

可选地,所述回退模块,还用于当所述同步模块进行的数据库同步失败时,进行数据库版本信息的回退;

所述发送模块,还用于向所述云端服务器发送所述回退模块进行数据库版本信息的回退后的回退版本信息,所述发送的回退版本信息包括其对应的时间戳和版本哈希值,以便所述云端服务器对所述发送的回退版本信息进行一致性校验。

本申请的第五方面提供一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据库的数据同步方法的步骤。

本申请的第六方面提供一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据库的数据同步方法的步骤。

本申请的第七方面提供一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述数据库的数据同步方法的步骤。

本申请的第八方面提供一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述数据库的数据同步方法的步骤。

上述描述的数据库的数据同步方法、设备和计算机存储介质,为数据库的版本信息设置时间戳和版本哈希值,只有当物联网终端设备的数据库和云端服务器的数据库这两个数据库的各自的某个版本信息的时间戳和版本哈希值均一致(即相同)时,才确定它们一致性校验通过,然后基于该一致校验通过所对应的版本,所述云端服务器将其数据库的版本更新记录中最新更新记录对应的数据库的数据与一致性校验成功所对应版本的数据库的数据之间不同的数据(即差异数据)发送给物联网终端设备,物联网终端设备根据所接收的差异数据基于其一致校验通过所对应的版本进行数据库的同步,这样,物联网终端设备的最新版本数据库能同步于云端服务器的最新版本数据库,因此,可以确保云端服务器和物联网终端设备在低网络带宽消耗下,尽可能保证它们数据库的数据同步,对于数据量大的资源会有很好的一致性保障。而且,所述云端服务器在进行一致性校验成功后,仅仅发送其最新版本的数据库与一致性校验成功时数据库之间的差异数据,所以可以降低资源占用率,提高同步速度。

上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一实施例的一种数据库同步系统100的结构示意图;

图2为本申请另一实施例的一种数据库的数据同步方法流程示意图;

图3为本申请另一实施例的一种数据库的数据同步系统的结构示意图;

图4为本申请另一实施例的一种计算机设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。另外,本文中术语“系统”和“网络”在本文中常被可互换使用。

为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

如图1所示,为本申请一实施例的一种数据库同步系统100的结构示意图,所述数据库同步系统100可以包括物联网终端设备101、102、103,网络104和云端服务器105。网络104用以在物联网终端设备101、102、103和云端服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用物联网终端设备101、102、103通过网络104与云端服务器105交互,以接收或发送消息等。物联网终端设备101、102、103上可以安装有各种通讯客户端应用(app),例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

物联网终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)、无线自组织网络(adhoc网络)等。当然,本领域技术人员应能理解上述终端设备仅为举例,其他现有的或今后可能出现的终端设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

可选地,物联网终端设备101、102、103可以为人脸识别设备,例如,应用到海关、银行、门禁等等各种需要身份识别的人脸识别设备,人脸识别设备一般包括网络摄像机(ipcamera,ipc)和芯片,所述ipc用于获取人的脸部生物特征,所述芯片用于处理所述ipc获取的脸部生物特征以及与所述云端服务器105进行通信。

云端服务器105可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

如图2所示,为本申请另一实施例的一种数据库同步方法的流程示意图,本实施例的数据库同步方法不仅仅可以应用于人脸数据,还可以应用于商品图片数据、人体指纹数据或人体虹膜数据等等,则数据库用于存储图片、文件和/或向量文件,其中,向量文件是指图片特征向量的文件或文件特征向量的文件,数据库同步是指同步存储的图片、文件和/或向量文件,但为描述方便,下述实施例以人脸数据为例进行说明,则数据库可以为人脸数据库,人脸数据库存储的可以是人脸图片和/或人脸图片特征向量的向量文件,物联网终端设备可以为人脸识别设备,结合图1,该数据库同步方法的具体过程可以如下所述。

人脸识别设备通过其存储模块存储人脸数据库,云端服务器通过其存储模块存储人脸数据库,该人脸识别设备和该云端服务器的人脸数据库分别存储各自的人脸数据以及每个人脸数据对应的哈希值,其中,该人脸数据包括人脸图片或人脸向量信息,其中,该人脸向量信息是从人脸照片中识别提取出的一组特征值。为使得该人脸识别设备的人脸数据库能与该云端服务器的人脸数据库同步,该人脸识别设备与该云端服务器在通信建立时,协商数据存储格式,例如,该人脸识别设备与该云端服务器协商它们的人脸数据库的人脸数据均采用人脸图片或人脸向量信息。

该人脸识别设备和该云端服务器还各自存储各自的人脸数据库的操作记录日志,所述操作记录日志用于记录人脸数据库各自操作记录,例如同步操作记录和修改操作记录,例如,其中,修改操作记录可以包括增加人脸数据记录和/或删除人脸数据记录,该人脸识别设备或该云端服务器的人脸数据库每修改操作一次,就得到对应一个版本的人脸数据库,该人脸识别设备或该云端服务器存储修改操作后的人脸数据库的数据。

该云端服务器的人脸数据库的修改操作以版本哈希值的形式记录到操作日志中,例如,该云端服务器针对每个版本的人脸数据库,分别根据各个版本的人脸数据库的全部人脸数据的哈希值和预定的计算公式生成对应的版本哈希值,即每个版本的人脸数据库和版本哈希值一一对应。该云端服务器针对每个版本的人脸数据库,分别生成包括修改操作时间和其对应的版本哈希值的版本信息,即每个版本信息包括一次人脸数据库的修改操作的时间戳和该时间戳对应的人脸数据库的版本哈希值。因此,如果两个版本的人脸数据库所包括的人脸数据相同,则该云端服务器为所述两个版本的人脸数据库生成相同的版本哈希值;当两个版本的人脸数据库所包括的人脸数据不相同时,该云端服务器分别为所述两个版本的人脸数据库生成的两个版本哈希值不相同,即版本哈希值不同体现了不同版本的人脸数据库的人脸数据的差异性,例如,第一版本的人脸数据库包括1-10号人脸数据,而第二版本的人脸数据库包括1-15号人脸数据。

在本申请的另一实施例中,该版本信息还包括对应的操作记录信息,例如,所述操作记录信息包括从创建上个版本的人脸数据库时间到本次修改操作的所有修改操作信息。

该云端服务器在命令触发或定时机制下计算每个版本的人脸数据库的版本哈希值,生成对应的版本信息并存储,并记录操作日志。

例如,该云端服务器将所有版本信息记录在人脸数据库的版本更新记录中,例如,通过版本信息列表存储在存储模块中,记录版本的操作也存储在操作日志中,并通过存储模块存储所述操作日志。

人脸识别设备针对其人脸数据库的每次修改操作,也会保存每次修改后的人脸数据库,每个修改后的人脸数据库称为一个版本的人脸数据库,该人脸识别设备分别根据各个版本的人脸数据库的全部人脸数据的哈希值和预定的计算公式生成对应的版本哈希值,即每个版本的人脸数据库和版本哈希值一一对应,该预定计算公式可以由该人脸识别设备和该云端服务器协商确定。该人脸识别设备针对每个版本的人脸数据库,分别生成包括修改操作时间和其对应的版本哈希值的版本信息,即每个版本信息包括一次人脸数据库的修改操作的时间戳和该时间戳对应的人脸数据库的版本哈希值。因此,如果两个版本的人脸数据库所包括的人脸数据相同,则该人脸识别设备为所述两个版本的人脸数据库生成相同的版本哈希值;当两个版本的人脸数据库所包括的人脸数据不相同时,该人脸识别设备分别为所述两个版本的人脸数据库生成的两个版本哈希值不相同,即版本哈希值不同体现了不同版本的人脸数据库的人脸数据的差异性,例如,第一版本的人脸数据库包括1-10号人脸数据,而第二版本的人脸数据库包括1-15号人脸数据。

该人脸识别设备将所有版本信息存储在人脸数据库的版本更新记录中,例如通过版本信息列表存储所有版本的人脸数据库的版本信息,在本地存储版本信息列表和操作记录日志。

步骤201,云端服务器确定人脸识别设备的人脸数据库是否进行初始同步,如果是,执行步骤205,如果不是初始同步,执行步骤202。

例如,所述人脸识别设备向所述云端服务器发送人脸数据库同步请求,所述人脸数据库同步请求携带所述人脸识别设备的身份信息。

所述云端服务器接收所述人脸数据库同步请求后,根据所述人脸数据库同步请求携带的所述人脸识别设备的身份信息,查询所述云端服务器保存的操作记录日志是否有记录给所述人脸识别设备发送过同步数据的同步记录,如果所述云端服务器保存的操作记录日志没有同步记录,所述云端服务器确定所述人脸识别设备是初始同步,执行步骤205,如果所述云端服务器保存的操作记录日志有同步记录,所述云端服务器确定所述人脸识别设备不是初始同步,执行步骤202。

步骤202,人脸识别设备向云端服务器发送其人脸数据库的版本信息,所述版本信息包括与所述版本信息对应的时间戳和版本哈希值。

其中,所述人脸识别设备向所述云端服务器发送的所述版本信息可以为所述人脸识别设备发送所述人脸数据库同步请求时的第一版本信息,例如,所述第一版本信息为所述人脸识别设备的人脸数据库最新版本的版本信息,所述最新版的版本信息既可以是记录在版本信息列表中时间排序上距离当前时间最近的版本信息(即所述版本信息列表中最后一次记录的版本信息),也可以没有记录在版本信息列表中,而是所述人脸识别设备当前生成的版本信息,包括当前时间戳和根据人脸数据库当前所有的人脸数据生成的版本哈希值。

在本申请的另一实施例中,所述人脸识别设备向所述云端服务器发送的所述版本信息可以是所述人脸识别设备进行人脸数据库版本信息回退后发送的回退版本信息,所述回退版本信息包括当前回退版本对应的时间戳和版本哈希值,具体内容在后续步骤中进行描述。

当所述版本信息为所述人脸识别设备发送所述人脸数据库同步请求时的第一版本信息时,所述人脸识别设备可以通过所述人脸数据库同步请求携带所述第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值。

在本申请的另一实施例中,所述人脸识别设备可以在发送所述人脸数据库同步请求之后,向所述云端服务器发送所述第一版本信息。例如,所述人脸识别设备可以在发送所述人脸数据库同步请求之后,收到所述云端服务器发送的指示时,发送所述第一版本信息,其中,所述指示用于指示所述人脸识别设备发送其人脸数据库的版本信息。

步骤203,所述云端服务器确定其人脸数据库的版本更新记录是否存在与所述人脸识别设备发送的版本信息包括的所述时间戳相同的时间戳。

当所述云端服务器确定其人脸数据库的版本更新记录不存在与所述人脸识别设备发送的版本信息包括的所述时间戳相同的时间戳,所述云端服务器确定一致性校验失败,执行步骤207。

当所述云端服务器确定其人脸数据库的版本更新记录存在与所述人脸识别设备发送的版本信息包括的所述时间戳相同的时间戳,在所述版本更新记录中获取所述相同时间戳对应的版本哈希值,执行步骤204。

例如,当所述人脸识别设备发送的版本信息为所述第一版本信息时,所述云端服务器确定其人脸数据库的版本更新记录是否存在与所述第一版本信息包括的所述时间戳相同的时间戳。如果所述云端服务器确定其人脸数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳,所述云端服务器确定一致性校验失败,执行步骤207。如果所述云端服务器确定其人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳,获取所述相同时间戳对应的版本哈希值,执行步骤204。

在本申请的另一实施例中,当所述人脸识别设备向所述云端服务器发送的所述版本信息为所述人脸识别设备某次进行人脸数据库版本信息的回退后的回退版本信息,所述云端服务器确定其人脸数据库的版本更新记录是否存在与所述回退版本信息包括的时间戳相同的时间戳。如果所述云端服务器确定其人脸数据库的版本更新记录不存在与所述回退版本信息包括的所述时间戳相同的时间戳,所述云端服务器确定一致性校验失败,执行步骤207。如果所述云端服务器确定其人脸数据库的版本更新记录存在与所述回退版本信息包括的所述时间戳相同的时间戳,获取所述相同时间戳对应的版本哈希值,执行步骤204。

步骤204,所述云端服务器确定所述相同时间戳对应的版本哈希值与所述人脸识别设备发送的版本信息包括的版本哈希值是否一致。

当所述云端服务器确定所述相同时间戳对应的版本哈希值与所述人脸识别设备发送的版本信息包括的版本哈希值不一致时,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备发送的版本信息所对应的人脸数据库所包括的人脸数据不一样,所述云端服务器确定一致性校验失败,执行步骤207。

当所述云端服务器确定所述相同时间戳对应的版本哈希值与所述人脸识别设备发送的版本信息包括的版本哈希值一致(即相同)时,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备发送的版本信息所对应的人脸数据库所包括的人脸数据一样,所述云端服务器确定一致性校验成功,执行步骤205。

例如,当所述人脸识别设备发送的版本信息为所述第一版本信息时,所述云端服务器确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值是否一致。如果所述云端服务器确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备的所述第一版本信息所对应的人脸数据库所包括的人脸数据不一样,所述云端服务器确定一致性校验失败,执行步骤207。如果所述云端服务器确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备的所述第一版本信息所对应的人脸数据库所包括的人脸数据一样,所述云端服务器确定一致性校验成功,执行步骤205。

在本申请的另一实施例中,当所述人脸识别设备向所述云端服务器发送的所述版本信息为所述人脸识别设备某次进行人脸数据库版本信息的回退后的回退版本信息,所述云端服务器确定所述相同时间戳对应的版本哈希值与所述回退版本信息包括的版本哈希值是否一致。如果所述云端服务器确定所述相同时间戳对应的版本哈希值与所述回退版本信息包括的版本哈希值不一致,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备的所述回退版本信息所对应的人脸数据库所包括的人脸数据不一样,所述云端服务器确定一致性校验失败,执行步骤207。如果所述云端服务器确定所述相同时间戳对应的版本哈希值与所述回退版本信息包括的版本哈希值一致,表示所述云端服务器的所述相同时间戳对应的人脸数据库所包括的人脸数据与所述人脸识别设备的所述回退版本信息所对应的人脸数据库所包括的人脸数据一样,所述云端服务器确定一致性校验成功,执行步骤205。

步骤205,所述人脸识别设备将其人脸数据库同步所述云端服务器的记录的最新版本对应的人脸数据库。

不论是针对第一版本信息一致性校验,还是针对回退版本信息的一致性校验,当所述云端服务器确定一致性校验成功时,所述人脸识别设备将其人脸数据库更新为与所述云端服务器的记录的最新版本对应的人脸数据库相同。

例如,不论是针对第一版本信息一致性校验,还是针对回退版本信息的一致性校验,当所述云端服务器确定一致性校验成功时,所述云端服务器将其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的数据与一致性校验成功时对应版本的人脸数据库的数据之间不同的数据(即差异数据)发送给所述人脸识别设备,所述人脸识别设备收到所述云端服务器发送的所述不同的数据后,将所述不同的数据加入到所述人脸识别设备发送的一致性校验成功的版本信息对应的人脸数据库,所述人脸识别设备将加入所述不同的数据后的人脸数据库记录为所述人脸识别设备的最新版本的人脸数据库,并保存对应的版本信息,实现所述人脸识别设备的最新版本的人脸数据库与所述云端服务器的最新更新记录对应的人脸数据库同步,即它们的人脸数据库包括的人脸数据相同。

因此,当所述云端服务器确定一致性校验成功时,即表示当前进行一致性校验比较的所述人脸识别设备的人脸数据库与所述云端服务器的人脸数据库所包括的人脸数据相同,所述人脸识别设备的人脸数据库与所述云端服务器的人脸数据库达到一致,所述人脸识别设备基于该一致版本的人脸数据库进行同步,例如,所述云端服务器将其最新版本的人脸数据库与所述云端服务器的进行一致性校验比较时版本的人脸数据库之间的不同数据(即差异数据)发送给所述人脸识别设备,以便所述人脸识别设备将其人脸数据库同步于所述云端服务器的最新更新记录对应的人脸数据库,由于所述云端服务器仅仅将所述不同数据(即差异数据)发送给所述人脸识别设备,因此可以节省资源,避免占用较多的通信资源,提高发送速度,而且所述人脸识别设备更新其人脸数据库由于仅仅加入差异数据,所以更新速度也能提高。

在本申请的另一实施例中,不论是针对第一版本信息一致性校验,还是针对回退版本信息的一致性校验,当所述云端服务器确定一致性校验成功时,所述云端服务器可以将其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的所有数据发送给所述人脸识别设备。

所述人脸识别设备收到所述云端服务器发送的其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的所有数据后,所述人脸识别设备确定存在于所述云端服务器的最新更新记录对应的所述人脸数据库中但不存在于所述人脸识别设备发送的一致性校验成功的版本信息对应的人脸数据库的新数据(即差异数据)和同时存在于所述云端服务器的最新更新记录对应的所述人脸数据库和所述人脸识别设备发送的一致性校验成功的版本信息对应的人脸数据库的重复数据。所述人脸识别设备将所述新数据加入到所述人脸识别设备发送的一致性校验成功的版本信息对应的人脸数据库,而保持所述重复数据不变,所述人脸识别设备将加入所述新数据后的人脸数据库记录为所述人脸识别设备的最新版本的人脸数据库。

由于所述人脸识别设备更新其人脸数据库由于仅仅加入差异数据,所以更新速度能提高。

步骤206,所述人脸识别设备在进行其人脸数据库同步更新时,确定是否同步更新成功。

如果更新成功,所述人脸识别设备将同步更新后的人脸数据库记录为最新版本的人脸数据库,并生成相应的版本信息,该版本信息包括时间戳和根据同步更新后的人脸数据库的人脸数据生成的版本哈希值。

如果更新失败,执行步骤207。

步骤207,所述云端服务器向所述人脸识别设备发送版本信息的回退指示,所述人脸识别设备根据本地操作记录回退历史版本对应的人脸数据库,重新进入步骤202,直到回退到某个回退版本信息的一致性校验成功或者所有回退版本信息的一致性校验全部失败。

例如,当所述人脸识别设备收到所述云端服务器发送的所述版本信息的回退指示时,所述人脸识别设备根据版本信息的回退指示和其本地版本更新记录从距离当前一致性校验失败的版本信息(例如所述第一版本信息)包括的所述时间戳最近的回退版本信息开始依次进行人脸数据库版本信息回退;所述人脸识别设备依次向所述云端服务器发送每次进行人脸数据库版本信息回退后的回退版本信息,所述云端服务器依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

例如,所述人脸识别设备的本地的版本更新记录共记录n个版本信息,其中,n为大于等于1的整数,例如n为10-100的任意整数。每个版本信息对应所述人脸识别设备的一个版本的人脸数据库,每个版本信息包括时间戳和版本哈希值。例如,可以将n个版本信息按照各自包含的时间戳进行先后时间顺序的排序,例如,第一版本信息、第二版本信息、第三版本信息、。。。、第n版本信息,其中,第一版本信息包含的时间戳距离当前时间最近,第n版本信息包含的时间戳距离当前时间最久,例如,第一版本信息包含的时间戳为2019年8月10日14:30:30,第二版本信息包含的时间戳为2019年7月10日12:57:30,第三版本信息包含的时间戳为2019年6月1日20:19:45,。。。,第n版本信息包含的时间戳为2018年1月20日16:25:43。

假设所述云端服务器确定所述第一版本信息的一致性校验失败,则所述云端服务器向所述人脸识别设备发送版本信息的回退指示,所述人脸识别设备根据其版本更新记录回退到所述第二版本信息,向所述云端服务器发送所述第二版本信息,然后所述云端服务器对所述第二版本信息进行一致性校验;当所述云端服务器确定所述第二版本信息的一致性校验也失败时,所述云端服务器再次向所述人脸识别设备发送版本信息的回退指示,所述人脸识别设备根据其版本更新记录回退到所述第三版本信息,所述人脸识别设备向所述云端服务器发送所述第三版本信息,然后所述云端服务器对所述第三版本信息进行一致性校验,依次类推,所述人脸识别设备依次进行版本信息的回退并向所述云端服务器对发送回退后的回退版本信息,然后所述云端服务器对每次接收的回退版本信息进行一致性校验,直到所述人脸识别设备回退某个回退版本信息且所述云端服务器对该回退版本信息进行一致性校验成功,才进入人脸数据库的同步过程。

在本申请的另一实施例中,当所述云端服务器对所述人脸识别设备发送的所有回退版本信息进行一致性校验均失败时,所述云端服务器将其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的所有数据发送给所述人脸识别设备,所述人脸识别设备将其最新版本的人脸数据库更新与所述云端服务器的最新更新记录对应的人脸数据库相同,以实现人脸数据库同步。

例如,所述人脸识别设备接收所述云端服务器发送的其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的所有数据后,所述人脸识别设备确定存在于所述云端服务器的最新更新记录对应的所述人脸数据库中但不存在于所述人脸识别设备的最新版本的人脸数据库的新数据,所述人脸识别设备将所述新数据加入到所述人脸识别设备的最新版本的人脸数据库中;和/或,所述人脸识别设备确定同时存在于所述云端服务器的最新更新记录对应的所述人脸数据库和所述人脸识别设备的最新版本的人脸数据库的重复数据,所述人脸识别设备保持所述人脸识别设备的最新版本的人脸数据库中所述重复数据不变;和/或,所述人脸识别设备确定存在于所述人脸识别设备的最新版本的人脸数据库中但不存在于所述云端服务器的最新更新记录对应的所述人脸数据库的多余数据,所述人脸识别设备排除所述人脸识别设备的最新版本的人脸数据库中所述多余数据。

其中,所述人脸识别设备在同步过程中排除其人脸数据库中数据的排除操作并非从所述人脸识别设备的操作记录日志中删除或清除掉,而是将被数据移出哈希值计算范围,例如,所述人脸识别设备建立有人脸库文件夹和待删除文件夹,将被排除的数据移到待删除文件夹,而计算版本哈希值则是基于所述人脸库文件夹,这样当中途网络不稳定,随时可以根据操作记录回退至更新前状态,当等到新的版本校验成功后,再将待删除文件夹中被排除的数据从操作记录日志中清除。

因此,上述描述的人脸数据库同步方法,在云端服务器的人脸数据库的版本信息和人脸识别设备的版本信息进行一致性校验失败时或同步过程中如果出现错误时,人脸识别设备可以进行其人脸数据库的版本信息的依次回退,重新以回退的版本信息进行一致性校验和人脸数据库的数据同步,直到找到一个回退版本信息能一致性校验成功和同步数据成功,因此,可以确保云端服务器和人脸识别设备在低网络带宽消耗下,尽可能保证它们人脸数据库的数据同步,对于人脸等数据量大的资源会有很好的一致性保障。而且,所述云端服务器在进行一致性校验成功后,仅仅发送其最新版本的人脸数据库与一致性校验成功时人脸数据库之间的差异数据,所以可以降低资源占用率,提高同步速度。

如图3所示,为本申请另一实施例的一种数据库同步系统的结构示意图,所述数据库同步系统包括通过网络30相互通信的云端服务器31和物联网终端设备32,所述网络30可以为移动通信网络或互联网。

本实施例的数据库同步系统不仅仅可以应用于人脸数据,还可以应用于商品图片数据、人体指纹数据或人体虹膜数据等等,但为描述方便,下述实施例以人脸数据为例进行说明,则数据库可以为人脸数据库,物联网终端设备可以为人脸识别设备。

所述云端服务器31可以包括通过总线相互连接的设置模块311、接收模块312、校验模块313、发送模块314和存储模块315。

所述物联网终端设备32为人脸识别设备,可以包括通过总线相互连接的发送模块321、接收模块322、回退模块323和存储模块324。

所述存储模块315,用于存储所述云端服务器31的人脸数据库的各个版本信息,每个版本信息包括与所述版本信息对应的时间戳和版本哈希值,例如,所述存储模块315可以将所有版本信息,例如,存储在版本更新记录中,例如,通过版本信息列表的形式进行保存。所述存储模块315还可以用于存储所述云端服务器31的人脸数据库的操作日志

所述设置模块311,用于为所述云端服务器31的人脸数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中。

所述接收模块312,用于接收所述人脸识别设备32请求人脸数据同步时发送的其人脸数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值。

所述校验模块313,用于确定所述云端服务器31的人脸数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定所述云端服务器31的人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,确定一致性校验失败。

所述发送模块314,用于在所述校验模块313确定一致性校验失败之后,向所述人脸识别设备32发送版本信息的回退指示,所述版本信息的回退指示用于指示所述人脸识别设备32从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行人脸数据库版本信息回退。

所述接收模块312,还用于依次接收所述人脸识别设备32每次进行人脸数据库版本信息回退后发送的回退版本信息。

所述校验模块313,还用于依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

所述校验模块313,还用于当确定所述云端服务器31的人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,确定一致性校验成功。

所述发送模块314,还用于在所述校验模块313确定一致性校验成功之后,将所述云端服务器31的人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的数据与一致性校验成功时对应版本的人脸数据库的数据之间不同的数据发送给所述人脸识别设备32,以使得所述人脸识别设备32将所述不同的数据加入到所述人脸识别设备32发送的一致性校验成功的版本信息对应的人脸数据库作为所述人脸识别设备32的最新版本的人脸数据库,以实现与所述云端服务器31的最新更新记录对应的人脸数据库同步。

在本申请的另一实施例中,所述发送模块314,还用于当所述校验模块313对所述人脸识别设备发送的所有回退版本信息进行的一致性校验均失败时,将所述云端服务器31的人脸数据库版本更新记录中最新更新记录对应的人脸数据库的数据发送给所述人脸识别设备32,以使得所述人脸识别设备32将其最新版本的人脸数据库更新与所述云端服务器31的最新更新记录对应的人脸数据库相同,以实现人脸数据库同步。

在本申请的另一实施例中,所述校验模块313,还用于在所述接收模块312接收所述人脸识别设备32发送的所述第一版本信息之后,确定所述云端服务器31的人脸数据库的版本更新记录是否存在与所述第一版本信息包括的所述时间戳相同的时间戳;如果确定所述云端服务器31的人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳,获取所述相同时间戳对应的版本哈希值;确定所述相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值是否一致。

在本申请的另一实施例中,所述第一版本信息为所述人脸识别设备的人脸数据库的最新的版本信息。

在本申请的另一实施例中,所述接收模块312,还用于当所述人脸识别设备32进行的人脸数据库同步失败时,接收所述人脸识别设备32进行人脸数据库版本信息的回退后再次发送的回退版本信息,所述再次发送的回退版本信息包括其对应的时间戳和版本哈希值。

所述校验模块313,还用于对所述再次发送的回退版本信息进行一致性校验。

对应的,所述人脸识别设备32的各个模块的功能可以如下所述。

云端服务器为其人脸数据库的每次版本更新设置更新时间戳和对应于时间戳的版本哈希值并存储在版本更新记录中。

所述发送模块321,用于向所述云端服务器31请求人脸数据同步时发送所述人脸识别设备32的人脸数据库的第一版本信息,所述第一版本信息包括与所述第一版本信息对应的时间戳和版本哈希值。

所述接收模块322,用于当所述云端服务器31确定其人脸数据库的版本更新记录不存在与所述第一版本信息包括的所述时间戳相同的时间戳时,或确定其人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳但该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值不一致时,接收所述云端服务器31发送的版本信息回退指示。

所述回退模块323,用于根据版本信息的回退指示和所述人脸识别设备32本地版本更新记录从距离所述第一版本信息包括的所述时间戳最近的回退版本信息开始依次进行人脸数据库版本信息回退。

所述存储模块324,用于存储所述人脸识别设备32的人脸数据库的版本更新记录,所述人脸识别设备32的人脸数据库的所述版本更新记录包括所述人脸识别设备32的人脸数据库的各个历史版本信息,每个版本信息包括所述人脸识别设备32的人脸数据库修改时的时间戳和对应的版本哈希值。

所述发送模块321,还用于依次向所述云端服务器31发送每次进行人脸数据库版本信息回退后的回退版本信息,以便所述云端服务器31依次对每次接收的回退版本信息进行一致性校验,直到确定一个回退版本信息一致性校验成功,其中,每个回退版本信息包括其对应的时间戳和版本哈希值。

当所述云端服务器31确定其人脸数据库的版本更新记录存在与所述第一版本信息包括的所述时间戳相同的时间戳且该相同时间戳对应的版本哈希值与所述第一版本信息包括的版本哈希值一致时,一致性校验成功。

所述接收模块322,还用于当所述一致性校验成功时,接收所述云端服务器31发送的其人脸数据库的版本更新记录中最新更新记录对应的人脸数据库的数据与一致性校验成功时对应版本的人脸数据库的数据之间不同的数据。

所述同步模块325,用于将所述不同的数据加入到所述人脸识别设备32发送的一致性校验成功的版本信息对应的人脸数据库作为所述人脸识别设备32的最新版本的人脸数据库,以实现与所述云端服务器31的最新更新记录对应的人脸数据库同步。

所述接收模块322,还用于当所述发送模块321将所述人脸识别设备32所有回退版本信息都发给所述云端服务器31且所述云端服务器31进行的全部回退版本信息一致性校验均失败时,接收所述云端服务器31发送的其人脸数据库版本更新记录中最新更新记录对应的人脸数据库的所有数据。

所述同步模块325,还用于将所述人脸识别设备32的最新版本的人脸数据库更新与所述云端服务器31的最新更新记录对应的人脸数据库相同,以实现人脸数据库同步。

本实施例中,为实现所述同步模块将所述人脸识别设备的最新版本的人脸数据库更新与所述云端服务器的最新更新记录对应的人脸数据库相同,所述同步模块325用于:确定存在于所述云端服务器31的最新更新记录对应的所述人脸数据库中但不存在于所述人脸识别设备32的最新版本的人脸数据库的新数据、同时存在于所述云端服务器31的最新更新记录对应的所述人脸数据库和所述人脸识别设备32的最新版本的人脸数据库的重复数据和/或存在于所述人脸识别设备32的最新版本的人脸数据库中但不存在于所述云端服务器31的最新更新记录对应的所述人脸数据库的多余数据;将所述新数据加入到所述人脸识别设备32的最新版本的人脸数据库中,和/或保持所述人脸识别设备32的最新版本的人脸数据库中所述重复数据不变,和/或排除所述人脸识别设备32的最新版本的人脸数据库中所述多余数据。

所述第一版本信息为所述人脸识别设备的人脸数据库的最新的版本信息。

所述回退模块323,还用于当所述同步模块325进行的人脸数据库同步失败时,再次进行人脸数据库版本信息的回退。

所述发送模块321,还用于向所述云端服务器31发送所述回退模块323再次进行人脸数据库版本信息的回退后的回退版本信息,所述再次发送的回退版本信息包括其对应的时间戳和版本哈希值,以便所述云端服务器31对所述再次发送的回退版本信息进行一致性校验。

上述仅仅描述所述云端服务器31和所述人脸识别设备32所包括模块的一些概括功能,具体如何实现它们人脸数据库的同步过程,可以参考前述实施例描述的人脸数据库的同步方法的具体内容,在此不再赘述。

因此,上述描述的数据库同步系统,在云端服务器的数据库的版本信息和物联网终端设备的版本信息进行一致性校验失败时或同步过程中如果出现错误时,物联网终端设备可以进行其数据库的版本信息的依次回退,重新以回退的版本信息进行一致性校验和数据库的数据同步,直到找到一个回退版本信息能一致性校验成功和同步数据成功,因此,可以确保云端服务器和物联网终端设备在低网络带宽消耗下,尽可能保证它们数据库的数据同步,对于等数据量大的资源会有很好的一致性保障。而且,所述云端服务器在进行一致性校验成功后,仅仅发送其最新版本的数据库与一致性校验成功时数据库之间的差异数据,所以可以降低资源占用率,提高同步速度。

为解决上述技术问题,本申请实施例还提供一种计算机设备,具体请参阅图4,图4为本申请另一实施例的一种计算机设备基本结构框图。

所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的所述计算机设备4是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备4可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括非易失性存储器(non-volatilememory)或易失性存储器,例如,闪存(flashmemory)、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦写可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦写可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、可编程只读存储器(programmableread-onlymemory,prom)、磁性存储器、磁盘、光盘等,所述ram可以包括静态ram或动态ram。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储模块,例如,该所述计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该所述计算机设备4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储模块也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如用于执行数据库的数据同步方法的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。

在本申请实施例中,该处理器42可以是中央处理单元(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42还可以是其他通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,例如单片机等。

该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述存储器41用于存储程序代码或指令,所述程序代码包括计算机操作指令,所述处理器42用于执行所述存储器41存储的程序代码或指令或者处理数据,例如运行执行数据库的数据同步方法的程序代码。

本文描述的总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该总线系统可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

本申请的另一实施例还提供一种计算机可读介质,计算机可读介质可以是计算机可读信号介质或者计算机可读介质。计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图3对应的执行数据库的数据同步方法中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。

计算机可读介质包含但不限于电子、磁性、光学、电磁、红外的存储器或半导体系统、设备或者装置,或者前述的任意适当组合,所述存储器用于存储程序代码或指令,所述程序代码包括计算机操作指令,所述处理器用于执行所述存储器存储的程序代码或指令。

所述存储器和所述处理器的定义,可以参考前述计算机设备实施例的描述,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1