数据同步方法、装置、电子设备及计算机可读存储介质与流程

文档序号:26406674发布日期:2021-08-24 16:21阅读:79来源:国知局
数据同步方法、装置、电子设备及计算机可读存储介质与流程

本公开实施例涉及数据处理技术领域,具体涉及一种数据同步方法、装置、电子设备及计算机可读存储介质。



背景技术:

随着网络科学技术和数据技术的发展,经常需要对于数据存储量较大的数据库或者其他数据存储组件进行数据读写、增量数据同步等操作。现有技术中采用的增量数据同步方法或者只能保证数据列有序,或者性能较差无法满足用户对于数据读写质量和速度的要求,或者完全放弃了列之间的顺序,且容易产生数据的冲突和不一致。尤其在数据量越来越庞大的当下,亟需一种既能够保证相互依赖数据的顺序性,又能提供分组并发的数据同步方法。



技术实现要素:

本公开实施例提供一种数据同步方法、装置、电子设备及计算机可读存储介质。

第一方面,本公开实施例中提供了一种数据同步方法。

具体的,所述数据同步方法,包括:

获取待同步数据,其中,所述待同步数据包括至少一组待同步数据组,所述待同步数据组包括与不同标识对应的待同步子数据;

计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作;

遍历所述待同步数据中的待同步数据组,完成数据同步。

结合第一方面,本公开实施例在第一方面的第一种实现方式中,所述计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作,还包括:

将所述待同步子数据的哈希值存入相应标识哈希值集合中,并使其指向写入所述待同步数据组的数据空间。

结合第一方面和第一方面的第一种实现方式,本公开实施例在第一方面的第二种实现方式中,所述计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作,包括:

计算所述待同步数据组中待同步子数据的哈希值;

将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;

若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中;

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中。

结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中,包括:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间;

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述合并数据空间;

若相应标识哈希值集合中存在与一个待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的目标数据空间,将所述待同步数据组写入所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中,包括:

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,将所述待同步数据组写入所述新数据空间中,将所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使所述待同步子数据的哈希值指向所述新数据空间。

结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作之前,还包括:

若确定不存在与所述待同步子数据的标识相应的哈希值集合,创建与所述待同步子数据的标识相应的哈希值集合。

结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式和第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,还包括:

响应于接收到数据并发读写操作请求,基于写入所述待同步数据组的一个或多个数据空间执行数据并发读写操作。

第二方面,本公开实施例中提供了一种数据同步装置。

具体的,所述数据同步装置,包括:

获取模块,被配置为获取待同步数据,其中,所述待同步数据包括至少一组待同步数据组,所述待同步数据组包括与不同标识对应的待同步子数据;

写入模块,被配置为计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作;

遍历模块,被配置为遍历所述待同步数据中的待同步数据组,完成数据同步。

结合第二方面,本公开实施例在第二方面的第一种实现方式中,所述写入模块还被配置为:

将所述待同步子数据的哈希值存入相应标识哈希值集合中,并使其指向写入所述待同步数据组的数据空间。

结合第二方面和第二方面的第一种实现方式,本公开实施例在第二方面的第二种实现方式中,所述写入模块被配置为:

计算所述待同步数据组中待同步子数据的哈希值;

将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;

若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中;

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中。

结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中的部分,被配置为:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间;

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述合并数据空间;

若相应标识哈希值集合中存在与一个待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的目标数据空间,将所述待同步数据组写入所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,所述若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中的部分,被配置为:

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,将所述待同步数据组写入所述新数据空间中,将所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使所述待同步子数据的哈希值指向所述新数据空间。

结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述写入模块之前,还包括:

创建模块,被配置为若确定不存在与所述待同步子数据的标识相应的哈希值集合,创建与所述待同步子数据的标识相应的哈希值集合。

结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式和第二方面的第五种实现方式,本公开在第二方面的第六种实现方式中,还包括:

读写模块,被配置为响应于接收到数据并发读写操作请求,基于写入所述待同步数据组的一个或多个数据空间执行数据并发读写操作。

第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持数据同步装置执行上述数据同步方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据同步装置还可以包括通信接口,用于数据同步装置与其他设备或通信网络通信。

第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储数据同步装置所用的计算机指令,其包含用于执行上述数据同步方法为数据同步装置所涉及的计算机指令。

本公开实施例提供的技术方案可包括以下有益效果:

上述技术方案通过计算待同步数据组中待同步子数据的哈希值,并借助与预设的具有相应标识的哈希值集合中哈希值的比较,以及数据空间的设计和数据空间与哈希值集合中哈希值之间的对应来有效实现增量数据的高速且高质量的同步。该技术方案不仅能够保证相互依赖数据的顺序性,还能够实现数据的分组并发,因此能够满足用户对于数据读写和数据同步质量和速度的要求。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。

附图说明

结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:

图1示出根据本公开一实施方式的数据同步方法的流程图;

图2示出根据本公开一实施方式的对待同步数据组(a1,b1)进行数据同步的示意图;

图3示出根据本公开一实施方式的对待同步数据组(a2,b2)进行数据同步的示意图;

图4示出根据本公开一实施方式的对待同步数据组(a2,b3)进行数据同步的示意图;

图5示出根据本公开一实施方式的对待同步数据组(a1,b2)进行数据同步的示意图;

图6示出根据本公开一实施方式的数据同步装置的结构框图;

图7是适于用来实现根据本公开一实施方式的数据同步方法的计算机系统的结构示意图。

具体实施方式

下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。

在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。

另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。

本公开实施例提供的技术方案通过计算待同步数据组中待同步子数据的哈希值,并借助与预设的具有相应标识的哈希值集合中哈希值的比较,以及数据空间的设计和数据空间与哈希值集合中哈希值之间的对应来有效实现增量数据的高速且高质量的同步。该技术方案不仅能够保证相互依赖数据的顺序性,还能够实现数据的分组并发,因此能够满足用户对于数据读写和数据同步质量和速度的要求。

图1示出根据本公开一实施方式的数据同步方法的流程图,如图1所示,所述数据同步方法包括以下步骤s101-s103:

在步骤s101中,获取待同步数据,其中,所述待同步数据包括至少一组待同步数据组,所述待同步数据组包括与不同标识对应的待同步子数据;

在步骤s102中,计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作;

在步骤s103中,遍历所述待同步数据中的待同步数据组,完成数据同步。

上文提及,随着网络科学技术和数据技术的发展,经常需要对于数据存储量较大的数据库或者其他数据存储组件进行数据读写、增量数据同步等操作。现有技术中采用的增量数据同步方法或者只能保证数据列有序,或者性能较差无法满足用户对于数据读写质量和速度的要求,或者完全放弃了列之间的顺序,且容易产生数据的冲突和不一致。尤其在数据量越来越庞大的当下,亟需一种既能够保证相互依赖数据的顺序性,又能提供分组并发的数据同步方法。

考虑到上述问题,在该实施方式中,提出一种数据同步方法,该方法通过计算待同步数据组中待同步子数据的哈希值,并借助与预设的具有相应标识的哈希值集合中哈希值的比较,以及数据空间的设计和数据空间与哈希值集合中哈希值之间的对应来有效实现增量数据的高速且高质量的同步。该技术方案不仅能够保证相互依赖数据的顺序性,还能够实现数据的分组并发,因此能够满足用户对于数据读写和数据同步质量和速度的要求。

在本公开一实施方式中,所述数据同步方法可适用于对于数据执行同步操作的计算机、计算设备、电子设备、服务器、服务集群等设备。

在本公开一实施方式中,所述待同步数据指的是需要执行同步操作的、需要进行同步读写的数据。例如,所述待同步数据可以为某一具有一个或多个字段的数据库中的一行或者几行数据,在该示例中,所述数据库的不同列对应不同的字段,也可以说所述数据库的不同列具有不同的标识信息,当然,在其他示例中,所述标识信息也可以为具有其他意义的标识信息,所述数据库的每一行数据可看成是一个数据组,该数据组由对应不同字段或者不同标识信息的数据组成,即在该示例中,所述待同步数据包括至少一组待同步数据组,其中,所述待同步数据组包括与不同标识对应的待同步子数据。假设某一数据库中只存在两列数据,每列数据对应不同的字段或标识信息,所述待同步数据包括多组待同步数据组,每组待同步数据组包括与两个不同标识对应的待同步子数据,比如,所述待同步数据可以包括以下多个待同步数据组:(a1,b1)(a2,b2)(a2,b3)(a1,b2)(a5,b5)...,每个待同步数据组包括两个对应不同字段的数据,比如,待同步数据组(a1,b1)包括对应字段a的数据a1和对应字段b的数据b1,待同步数据组(a2,b2)包括对应字段a的数据a2和对应字段b的数据b2,等等。为了便于描述,下文均以该示例中的待同步数据组为例对于本公开技术方案进行解释和说明。

在本公开一实施方式中,所述哈希值集合指的是用于存储已存储数据的哈希值,与待同步数据的哈希值进行对比以判断是否存在重复数据的集合。为了方便检测待同步即新读写数据与已存储数据之间的重复性或相关性,其中,所述相关性指的是,存在a、b、c三个数据元组,如果两数据元组间可以通过相等的关键字,使a、b、c组成一个集合,则a、b、c存在相关性,相反,假设有数据元组a和b,如果数据元组a和b不相关,即数据元组a和b内的数据完全不相同,则无论以什么顺序执行,都不会冲突,也不会有相互影响,则a和b不存在相关性。在该实施方式中,哈希值集合的数量与标识信息的数量相一致。比如,对于上文示例,字段的数量为2,则哈希值集合的数量也为2。需要注意的是,在进行哈希值对比时,相同字段的数据的哈希值之间进行比较,比如,对于上文示例,待同步数据组中的数据所属字段为a和b,哈希值集合包括与字段a对应的哈希值集合a和与字段b对应的哈希值集合b,对于某一待同步数据组(a1,b1),计算其待同步子数据的哈希值hash(a1)和hash(b1),将hash(a1)与哈希值集合a中的哈希值进行对比,将hash(b1)与哈希值集合b中的哈希值进行对比。

在该实施方式中,根据哈希值的对比结果执行所述待同步数据组的写入操作,即将所述待同步数据组写入相应的数据空间中,然后遍历所述待同步数据中的所有待同步数据组,即可完成数据的同步。由于待同步数据组的写入具有先后顺序,且会生成相应的数据写入时间,因此,所述数据空间内部的数据是有序的,从而便于后续从所述数据空间中准确地获取数据。

在本公开一实施方式中,所述步骤s102,即计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作的步骤,还包括:

将所述待同步子数据的哈希值存入相应标识哈希值集合中,并使其指向写入所述待同步数据组的数据空间。

为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,在该实施方式中,在根据哈希值的对比结果执行所述待同步数据组的写入操作之后,还将已经执行了写入操作的待同步子数据的哈希值存入相应标识的哈希值集合中。另外,为了明确已执行写入操作的数据的存储位置,在将已经执行了写入操作的待同步子数据的哈希值存入相应标识的哈希值集合中之后,还使所述哈希值指向写入所述待同步数据组的数据空间,建立所述哈希值与数据空间之间的对应关系。

在本公开一实施方式中,所述步骤s102,即计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作的步骤,包括以下步骤:

计算所述待同步数据组中待同步子数据的哈希值;

将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;

若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中;

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中。

在该实施方式中,在对于所述待同步数据组执行写入操作时,首先计算所述待同步数据组中每个待同步子数据的哈希值;然后将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,说明所述待同步子数据与已存储数据之间存在重复性或相关性,此时可将所述待同步数据组写入所述目标哈希值所指向的数据空间中;若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,说明所述待同步子数据与已存储数据之间不存在重复性或相关性,此时需创建一个新数据空间,然后将所述待同步数据组写入所述新数据空间中。

进一步地,在本公开一实施方式中,所述若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中的步骤,包括以下步骤:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间;

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述合并数据空间;

若相应标识哈希值集合中存在与一个待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的目标数据空间,将所述待同步数据组写入所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

在该实施方式中,根据所述待同步子数据的哈希值与相应标识哈希值集合中哈希值的不同对应情况,来执行所述待同步数据组写入操作。具体地:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,也就是说,所有待同步子数据的哈希值均能在相应标识哈希值集合中找到对应的目标哈希值,说明所有待同步子数据与已存储数据之间均存在重复性或相关性,此时无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的数据空间中即可。但由于所述待同步子数据可能不止一个,所述目标哈希值可能也不止一个,因此所述目标哈希值所指向的数据空间可能为一个或多个。若所述目标哈希值所指向的目标数据空间为一个,则可直接将所述待同步数据组写入至所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间;但若所述目标哈希值所指向的目标数据空间为两个或多个,则需首先对于所述两个或多个目标数据空间进行合并,得到一个合并数据空间,然后将所述待同步数据组写入至所述合并数据空间中,最后使所述目标哈希值以及之前指向所述一个或多个数据空间的哈希值均指向所述合并数据空间。

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,也就是说,部分待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,说明部分待同步子数据与已存储数据之间存在重复性或相关性,此时也无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的数据空间中即可。与上一情况类似,由于所述待同步子数据可能不止一个,所述目标哈希值可能也不止一个,因此所述目标哈希值所指向的数据空间可能为一个或多个。若所述目标哈希值所指向的目标数据空间为一个,则可直接将所述待同步数据组写入至所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间;但若所述目标哈希值所指向的目标数据空间为两个或多个,则需首先对于所述两个或多个目标数据空间进行合并,得到一个合并数据空间,然后将所述待同步数据组写入至所述合并数据空间中,最后使所述目标哈希值以及之前指向所述一个或多个数据空间的哈希值均指向所述合并数据空间。与上一情况不同的是,由于只有部分待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,因此,为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,还需将不存在对应目标哈希值的所述待同步子数据的哈希值写入至相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向写入所述待同步数据组的目标数据空间或者合并数据空间。

若相应标识哈希值集合中只存在与一个待同步子数据的哈希值对应的目标哈希值,也就是说,只有一个待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,说明该待同步子数据与已存储数据之间存在重复性或相关性,此时也无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的目标数据空间中,并使所述目标哈希值指向所述目标数据空间即可。但为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,还需要将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

也就是说,只要相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,只需将所述待同步数据组写入所述目标哈希值指向的数据空间中,将不存在对应目标哈希值的待同步子数据的哈希值写入至相应标识哈希值集合中,并建立相关哈希值与数据空间之间的对应关系即可,而无需新建数据空间。

进一步地,在本公开一实施方式中,所述若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中的步骤,包括以下步骤:

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,将所述待同步数据组写入所述新数据空间中,将所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使所述待同步子数据的哈希值指向所述新数据空间。

与上一实施方式不同,在该实施方式中,相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,当然也就不会存在目标哈希值指向的、可以直接写入数据的目标数据空间。此时,就需要创建一个新数据空间,将所述待同步数据组写入至所述新数据空间中,然后将所述待同步子数据的哈希值均写入相应标识的哈希值集合中,以用于对于后续待同步数据的哈希值进行对比,确定是否存在重复数据,并使所述待同步子数据的哈希值指向所述新数据空间。

也就是说,若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,就需要新建数据空间,将待同步子数据的哈希值写入至相应标识哈希值集合中,并建立待同步子数据的哈希值与新数据空间之间的对应关系。

在本公开一实施方式中,所述步骤s102,即计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作的步骤之前,还包括:

若确定不存在与所述待同步子数据的标识相应的哈希值集合,创建与所述待同步子数据的标识相应的哈希值集合。

在所述数据同步方法实施之初,或者之前存储的数据不涉及某一标识信息对应的数据,也就是说,如果确定不存在与所述待同步子数据的标识相应的哈希值集合,则需创建与所述待同步子数据的标识相应的哈希值集合,以存储相应标识的待同步子数据的哈希值。

在本公开一实施方式中,所述方法还包括以下步骤:

响应于接收到数据并发读写操作请求,基于写入所述待同步数据组的一个或多个数据空间执行数据并发读写操作。

上文提及,具有重复性或者相关性的待同步数据组将会写入同一数据空间中,而不具有重复性或者相关性的待同步数据组将会写入不同数据空间中,也就是说,将会存在一个或多个相互独立的数据空间。因此,在接收到数据并发读写操作请求后,可基于所述一个或多个相互独立的数据空间来执行数据并发读写操作,从而提高数据读写的质量和速度。

接下来以上文示例为例对于本公开技术方案的整体流程进行说明。如上文所述,假设所述待同步数据包括以下多个待同步数据组:(a1,b1)(a2,b2)(a2,b3)(a1,b2)(a5,b5)...,其中,每个待同步数据组中包括两个分别对应字段a和字段b的待同步子数据,与字段a对应的哈希值集合a和与字段b对应的哈希值集合b均为空。那么在基于上述待同步数据进行数据同步操作时,首先提取所述待同步数据中的第一个待同步数据组(a1,b1),分别计算所述待同步数据组(a1,b1)中待同步子数据a1和b1的哈希值hash(a1)和hash(b1),将hash(a1)与哈希值集合a中的哈希值进行对比,将hash(b1)与哈希值集合b中的哈希值进行对比,发现哈希值集合a和哈希值集合b中均没有与hash(a1)和hash(b1)对应的哈希值,此时,创建一个新数据空间bucket1,将待同步数据组(a1,b1)写入至bucket1中,将hash(a1)和hash(b1)分别写入至哈希值集合a和哈希值集合b中,并使hash(a1)和hash(b1)指向bucket1,如图2所示。

然后提取所述待同步数据中的第二个待同步数据组(a2,b2),分别计算所述待同步数据组(a2,b2)中待同步子数据a2和b2的哈希值hash(a2)和hash(b2),将hash(a2)与哈希值集合a中的哈希值进行对比,将hash(b2)与哈希值集合b中的哈希值进行对比,发现哈希值集合a和哈希值集合b中均没有与hash(a2)和hash(b2)对应的哈希值,此时,需再创建一个新数据空间bucket2,将待同步数据组(a2,b2)写入至bucket2中,将hash(a2)和hash(b2)分别写入至哈希值集合a和哈希值集合b中,并使hash(a2)和hash(b2)指向bucket2,如图3所示。

然后提取所述待同步数据中的第三个待同步数据组(a2,b3),分别计算所述待同步数据组(a2,b3)中待同步子数据a2和b3的哈希值hash(a2)和hash(b3),将hash(a2)与哈希值集合a中的哈希值进行对比,将hash(b3)与哈希值集合b中的哈希值进行对比,发现哈希值集合a中存在与hash(a2)对应的哈希值,但哈希值集合b中没有与hash(b3)对应的哈希值,此时,无需创建新的数据空间,而是提取哈希值集合a中哈希值hash(a2)所指向的数据空间bucket2,将待同步数据组(a2,b3)写入至bucket2中,将不存在对应哈希值的hash(b3)写入至哈希值集合b中,并使hash(b3)指向bucket2,如图4所示。

然后提取所述待同步数据中的第四个待同步数据组(a1,b2),分别计算所述待同步数据组(a1,b2)中待同步子数据a1和b2的哈希值hash(a1)和hash(b2),将hash(a1)与哈希值集合a中的哈希值进行对比,将hash(b2)与哈希值集合b中的哈希值进行对比,发现哈希值集合a中存在与hash(a1)对应的哈希值,哈希值集合b中也存在与hash(b2)对应的哈希值,此时,也无需创建新的数据空间,而是提取哈希值集合a中哈希值hash(a1)所指向的数据空间bucket1和哈希值集合b中哈希值hash(b2)所指向的数据空间bucket2,将数据空间bucket1和数据空间bucket2合并得到合并数据空间bucket3,将待同步数据组(a1,b2)写入至bucket3中,并使hash(a1)和hash(b2)以及之前指向bucket1和bucket2的hash(b1)、hash(a2)和hash(b3)均指向bucket3,如图5所示。

对于所述待同步数据中其他待同步数据组按照上述步骤操作,即可完成所述待同步数据的数据同步。

需要说明的是,以上说明均以字段数量为2为例,对于字段或者标识信息为3或者更多的情况,均可按照上述说明同理类推,本公开对其不再赘述。

下述为本公开装置实施例,可以用于执行本公开方法实施例。

图6示出根据本公开一实施方式的数据同步装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述数据同步装置包括:

获取模块601,被配置为获取待同步数据,其中,所述待同步数据包括至少一组待同步数据组,所述待同步数据组包括与不同标识对应的待同步子数据;

写入模块602,被配置为计算所述待同步数据组中待同步子数据的哈希值,根据所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值的对比,对于所述待同步数据组执行写入操作;

遍历模块603,被配置为遍历所述待同步数据中的待同步数据组,完成数据同步。

上文提及,随着网络科学技术和数据技术的发展,经常需要对于数据存储量较大的数据库或者其他数据存储组件进行数据读写、增量数据同步等操作。现有技术中采用的增量数据同步方法或者只能保证数据列有序,或者性能较差无法满足用户对于数据读写质量和速度的要求,或者完全放弃了列之间的顺序,且容易产生数据的冲突和不一致。尤其在数据量越来越庞大的当下,亟需一种既能够保证相互依赖数据的顺序性,又能提供分组并发的数据同步方法。

考虑到上述问题,在该实施方式中,提出一种数据同步装置,该装置通过计算待同步数据组中待同步子数据的哈希值,并借助与预设的具有相应标识的哈希值集合中哈希值的比较,以及数据空间的设计和数据空间与哈希值集合中哈希值之间的对应来有效实现增量数据的高速且高质量的同步。该技术方案不仅能够保证相互依赖数据的顺序性,还能够实现数据的分组并发,因此能够满足用户对于数据读写和数据同步质量和速度的要求。

在本公开一实施方式中,所述数据同步装置可实现为对于数据执行同步操作的计算机、计算设备、电子设备、服务器、服务集群等设备。

在本公开一实施方式中,所述待同步数据指的是需要执行同步操作的、需要进行同步读写的数据。例如,所述待同步数据可以为某一具有一个或多个字段的数据库中的一行或者几行数据,在该示例中,所述数据库的不同列对应不同的字段,也可以说所述数据库的不同列具有不同的标识信息,当然,在其他示例中,所述标识信息也可以为具有其他意义的标识信息,所述数据库的每一行数据可看成是一个数据组,该数据组由对应不同字段或者不同标识信息的数据组成,即在该示例中,所述待同步数据包括至少一组待同步数据组,其中,所述待同步数据组包括与不同标识对应的待同步子数据。假设某一数据库中只存在两列数据,每列数据对应不同的字段或标识信息,所述待同步数据包括多组待同步数据组,每组待同步数据组包括与两个不同标识对应的待同步子数据,比如,所述待同步数据可以包括以下多个待同步数据组:(a1,b1)(a2,b2)(a2,b3)(a1,b2)(a5,b5)...,每个待同步数据组包括两个对应不同字段的数据,比如,待同步数据组(a1,b1)包括对应字段a的数据a1和对应字段b的数据b1,待同步数据组(a2,b2)包括对应字段a的数据a2和对应字段b的数据b2,等等。为了便于描述,下文均以该示例中的待同步数据组为例对于本公开技术方案进行解释和说明。

在本公开一实施方式中,所述哈希值集合指的是用于存储已存储数据的哈希值,与待同步数据的哈希值进行对比以判断是否存在重复数据的集合。为了方便检测待同步即新读写数据与已存储数据之间的重复性或相关性,其中,所述相关性指的是,存在a、b、c三个数据元组,如果两数据元组间可以通过相等的关键字,使a、b、c组成一个集合,则a、b、c存在相关性,相反,假设有数据元组a和b,如果数据元组a和b不相关,即数据元组a和b内的数据完全不相同,则无论以什么顺序执行,都不会冲突,也不会有相互影响,则a和b不存在相关性。在该实施方式中,哈希值集合的数量与标识信息的数量相一致。比如,对于上文示例,字段的数量为2,则哈希值集合的数量也为2。需要注意的是,在进行哈希值对比时,相同字段的数据的哈希值之间进行比较,比如,对于上文示例,待同步数据组中的数据所属字段为a和b,哈希值集合包括与字段a对应的哈希值集合a和与字段b对应的哈希值集合b,对于某一待同步数据组(a1,b1),计算其待同步子数据的哈希值hash(a1)和hash(b1),将hash(a1)与哈希值集合a中的哈希值进行对比,将hash(b1)与哈希值集合b中的哈希值进行对比。

在该实施方式中,根据哈希值的对比结果执行所述待同步数据组的写入操作,即将所述待同步数据组写入相应的数据空间中,然后遍历所述待同步数据中的所有待同步数据组,即可完成数据的同步。由于待同步数据组的写入具有先后顺序,且会生成相应的数据写入时间,因此,所述数据空间内部的数据是有序的,从而便于后续从所述数据空间中准确地获取数据。

在本公开一实施方式中,所述写入模块602还可被配置为:

将所述待同步子数据的哈希值存入相应标识哈希值集合中,并使其指向写入所述待同步数据组的数据空间。

为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,在该实施方式中,在根据哈希值的对比结果执行所述待同步数据组的写入操作之后,还将已经执行了写入操作的待同步子数据的哈希值存入相应标识的哈希值集合中。另外,为了明确已执行写入操作的数据的存储位置,在将已经执行了写入操作的待同步子数据的哈希值存入相应标识的哈希值集合中之后,还使所述哈希值指向写入所述待同步数据组的数据空间,建立所述哈希值与数据空间之间的对应关系。

在本公开一实施方式中,所述写入模块602可被配置为:

计算所述待同步数据组中待同步子数据的哈希值;

将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;

若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中;

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中。

在该实施方式中,在对于所述待同步数据组执行写入操作时,首先计算所述待同步数据组中每个待同步子数据的哈希值;然后将所述待同步子数据的哈希值与相应标识哈希值集合中的哈希值进行对比;若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,说明所述待同步子数据与已存储数据之间存在重复性或相关性,此时可将所述待同步数据组写入所述目标哈希值所指向的数据空间中;若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,说明所述待同步子数据与已存储数据之间不存在重复性或相关性,此时需创建一个新数据空间,然后将所述待同步数据组写入所述新数据空间中。

进一步地,在本公开一实施方式中,所述若相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,将所述待同步数据组写入所述目标哈希值指向的数据空间中的部分可被配置为:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间;

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的一个或多个数据空间,对其进行合并,将所述待同步数据组写入合并数据空间中,并使所述目标哈希值以及指向所述一个或多个数据空间的哈希值均指向所述合并数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述合并数据空间;

若相应标识哈希值集合中存在与一个待同步子数据的哈希值对应的目标哈希值,获取所述目标哈希值指向的目标数据空间,将所述待同步数据组写入所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间,将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

在该实施方式中,根据所述待同步子数据的哈希值与相应标识哈希值集合中哈希值的不同对应情况,来执行所述待同步数据组写入操作。具体地:

若相应标识哈希值集合中存在与所有待同步子数据的哈希值对应的目标哈希值,也就是说,所有待同步子数据的哈希值均能在相应标识哈希值集合中找到对应的目标哈希值,说明所有待同步子数据与已存储数据之间均存在重复性或相关性,此时无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的数据空间中即可。但由于所述待同步子数据可能不止一个,所述目标哈希值可能也不止一个,因此所述目标哈希值所指向的数据空间可能为一个或多个。若所述目标哈希值所指向的目标数据空间为一个,则可直接将所述待同步数据组写入至所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间;但若所述目标哈希值所指向的目标数据空间为两个或多个,则需首先对于所述两个或多个目标数据空间进行合并,得到一个合并数据空间,然后将所述待同步数据组写入至所述合并数据空间中,最后使所述目标哈希值以及之前指向所述一个或多个数据空间的哈希值均指向所述合并数据空间。

若相应标识哈希值集合中存在与两个或两个以上待同步子数据的哈希值对应的目标哈希值,也就是说,部分待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,说明部分待同步子数据与已存储数据之间存在重复性或相关性,此时也无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的数据空间中即可。与上一情况类似,由于所述待同步子数据可能不止一个,所述目标哈希值可能也不止一个,因此所述目标哈希值所指向的数据空间可能为一个或多个。若所述目标哈希值所指向的目标数据空间为一个,则可直接将所述待同步数据组写入至所述目标数据空间中,并使所述目标哈希值指向所述目标数据空间;但若所述目标哈希值所指向的目标数据空间为两个或多个,则需首先对于所述两个或多个目标数据空间进行合并,得到一个合并数据空间,然后将所述待同步数据组写入至所述合并数据空间中,最后使所述目标哈希值以及之前指向所述一个或多个数据空间的哈希值均指向所述合并数据空间。与上一情况不同的是,由于只有部分待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,因此,为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,还需将不存在对应目标哈希值的所述待同步子数据的哈希值写入至相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向写入所述待同步数据组的目标数据空间或者合并数据空间。

若相应标识哈希值集合中只存在与一个待同步子数据的哈希值对应的目标哈希值,也就是说,只有一个待同步子数据的哈希值能在相应标识哈希值集合中找到对应的目标哈希值,说明该待同步子数据与已存储数据之间存在重复性或相关性,此时也无需新建数据空间,只需将所述待同步数据组直接写入所述目标哈希值所指向的目标数据空间中,并使所述目标哈希值指向所述目标数据空间即可。但为了对于后续待同步数据的哈希值进行对比,以确定是否存在重复数据,还需要将不存在对应目标哈希值的所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使写入相应标识的哈希值集合中的待同步子数据的哈希值指向所述目标数据空间。

也就是说,只要相应标识哈希值集合中存在与所述待同步子数据的哈希值对应的目标哈希值,只需将所述待同步数据组写入所述目标哈希值指向的数据空间中,将不存在对应目标哈希值的待同步子数据的哈希值写入至相应标识哈希值集合中,并建立相关哈希值与数据空间之间的对应关系即可,而无需新建数据空间。

进一步地,在本公开一实施方式中,所述若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,并将所述待同步数据组写入所述新数据空间中的部分可被配置为:

若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,创建新数据空间,将所述待同步数据组写入所述新数据空间中,将所述待同步子数据的哈希值写入相应标识的哈希值集合中,并使所述待同步子数据的哈希值指向所述新数据空间。

与上一实施方式不同,在该实施方式中,相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,当然也就不会存在目标哈希值指向的、可以直接写入数据的目标数据空间。此时,就需要创建一个新数据空间,将所述待同步数据组写入至所述新数据空间中,然后将所述待同步子数据的哈希值均写入相应标识的哈希值集合中,以用于对于后续待同步数据的哈希值进行对比,确定是否存在重复数据,并使所述待同步子数据的哈希值指向所述新数据空间。

也就是说,若相应标识哈希值集合中不存在与所述待同步子数据的哈希值对应的目标哈希值,就需要新建数据空间,将待同步子数据的哈希值写入至相应标识哈希值集合中,并建立待同步子数据的哈希值与新数据空间之间的对应关系。

在本公开一实施方式中,所述写入模块602之前,还包括:

创建模块,被配置为若确定不存在与所述待同步子数据的标识相应的哈希值集合,创建与所述待同步子数据的标识相应的哈希值集合。

在所述数据同步方法实施之初,或者之前存储的数据不涉及某一标识信息对应的数据,也就是说,如果确定不存在与所述待同步子数据的标识相应的哈希值集合,则需创建与所述待同步子数据的标识相应的哈希值集合,以存储相应标识的待同步子数据的哈希值。

在本公开一实施方式中,所述装置还包括:

读写模块,被配置为响应于接收到数据并发读写操作请求,基于写入所述待同步数据组的一个或多个数据空间执行数据并发读写操作。

上文提及,具有重复性或者相关性的待同步数据组将会写入同一数据空间中,而不具有重复性或者相关性的待同步数据组将会写入不同数据空间中,也就是说,将会存在一个或多个相互独立的数据空间。因此,在接收到数据并发读写操作请求后,可基于所述一个或多个相互独立的数据空间来执行数据并发读写操作,从而提高数据读写的质量和速度。

需要说明的是,以上说明均以字段数量为2为例,对于字段或者标识信息为3或者更多的情况,均可按照上述说明同理类推,本公开对其不再赘述。

本公开实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;其中,

所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方法步骤。

图7是适于用来实现根据本公开一实施方式的数据同步方法的计算机系统的结构示意图。

如图7所示,计算机系统700包括处理单元701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行上述实施方式中的各种处理。在ram703中,还存储有系统700操作所需的各种程序和数据。处理单元701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。其中,所述处理单元701可实现为cpu、gpu、tpu、fpga、npu等处理单元。

特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述数据同步方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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