数据同步方法及相关产品与流程

专利查询12月前  73



1.本技术涉及通信技术领域,具体涉及一种数据同步方法及相关产品。


背景技术:

2.移动互联网时代下,数据更新的速度越来越快。一般情况下,在设备a要将待更新数据同步至设备b时,设备a将历史提交记录树中的新的叶子节点发送到设备b,设备b检索本地历史提交记录树中是否存在接对数收到的新的叶子节点,如果不存在,则继续检索本地历史提交记录树是否存在新的叶子节点的父节点,如果父节点也不存在,则发起请求从设备a获取该父节点,直到在设备b的本地历史提交记录树找到存在的父节点。当设备a的历史提交记录树上的所有内容已经同步到设备b,将设备a和设备b的历史提交记录树进行合并,形成新的提交树,最终设备a和设备b的历史提交记录树一致,设备a与设备b完成数据同步。
3.然而,上述过程在同步数据时设备间通信次数较多,耗时较长,延迟率较高。


技术实现要素:

4.本技术实施例提供了一种数据同步方法及相关产品,有助于减少设备间通信次数,有助于提高设备间数据同步的效率。
5.第一方面,本技术实施例提供一种数据同步方法,应用于第一设备,所述方法包括:
6.当所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个;
7.获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳;
8.根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据;
9.将所述待同步数据发送至所述第二设备。
10.第二方面,本技术实施例提供一种数据同步方法,应用于第二设备,所述方法包括:
11.接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
12.第三方面,本技术实施例提供一种数据同步装置,所述装置应用于第一设备,所述装置包括:获取单元、确定单元和发送单元,其中,
13.所述获取单元,用于在所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第
二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个;
14.所述获取单元,还用于获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳;
15.所述确定单元,用于根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据;
16.所述发送单元,用于将所述待同步数据发送至所述第二设备。
17.第四方面,本技术实施例提供了一种数据同步装置,所述装置应用于第二设备,所述装置包括接收单元,其中,
18.所述接收单元,用于接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
19.第五方面,本技术实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本技术实施例第一方面或第二方面任一方法中的步骤的指令。
20.第六方面,本技术实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本技术实施例第一方面或第二方面任一方法中所描述的部分或全部步骤。
21.第七方面,本技术实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本技术实施例第一方面或第二方面任一方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
22.可以看出,本技术实施例中,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,确定第二设备对应的待同步数据,并将待同步数据发送至第二设备。如此,可根据第一时间戳和第二时间戳直接确定第二设备对应的待同步数据,并将待同步数据发送至第二设备,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率。
附图说明
23.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例提供的一种数据同步系统的架构示意图;
25.图2是本技术实施例提供的一种数据同步方法的流程示意图;
26.图3是本技术实施例提供的一种数据同步方法的流程示意图;
27.图4是本技术实施例提供的一种数据同步方法的交互示意图;
28.图5是本技术实施例提供的一种电子设备的结构示意图;
29.图6a是本技术实施例提供的一种数据同步装置的功能单元组成示意图;
30.图6b是本技术实施例提供的一种数据同步装置的功能单元组成示意图;
31.图6c是本技术实施例提供的一种数据同步装置的功能单元组成示意图;
32.图7a是本技术实施例提供的一种数据同步装置的功能单元组成示意图;
33.图7b是本技术实施例提供的一种数据同步装置的功能单元组成示意图;
34.图7c是本技术实施例提供的一种数据同步装置的功能单元组成示意图。
具体实施方式
35.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
37.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
38.电子设备可以是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表、智能假肢)、车载设备等。便携式电子设备的示例性实施例包括但不限于搭载ios系统、android系统、microsoft系统或者其它操作系统的便携式电子设备。上述便携式电子设备也可以是其它便携式电子设备,诸如膝上型计算机(laptop)等。还应当理解的是,在其他一些实施例中,上述电子设备也可以不是便携式电子设备,而是台式计算机。在本技术实施例中,上述电子设备可包括第一设备、第二设备。在第一设备和/或第二设备为车载设备时,可包括以下至少一种:车载音响设备、导航设备、主控设备和车载家电设备等,在此不作限定。
39.第一部分,本技术实施例所公开的示例应用场景介绍如下。
40.图1示出了本技术所适用的数据同步系统的架构示意图,该系统架构图中可包括多个电子设备,在本技术中,仅以其中三个设备做出示例,电子设备可包括第一设备和第二设备,其他数量的电子设备与本技术所描述的方法一致,在此不再赘述。
41.其中,上述任一个电子设备均可作为源设备或目的设备;源设备可指产生新的数据的设备,目的设备可接收由源设备发送来的数据。
42.举例来说,若第一设备为智能手环,其余两个第二设备分别为导航设备和车载音响设备,则可认为上述智能手环、导航设备和车载音响设备处于同一数据同步系统中,可通过该数据同步系统实现三个设备的数据一致性,即保持三个设备间的数据为最新数据。
43.例如,如图1所示,当第一设备为源设备时,图中除第一设备以外的电子设备(第二
设备)为目的设备。
44.其中,当第一设备产生新的数据时,获取第一设备的第一时间戳,其中,第一时间戳用于指示第二设备(该第二设备可指图1中任意一个)上一次完成数据同步后向第一设备发送的时间戳,第二设备为第一设备需要同步新的数据的多个电子设备中任意一个;获取第一设备中存储的上一次数据同步时第二设备对应的第二时间戳;根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,确定第二设备对应的待同步数据;将待同步数据发送至第二设备。
45.示例的,第一设备101中存储有第二设备102对应的第一时间戳和第二设备102对应的第二时间戳。当第一设备101产生新的数据时,第一设备101获取第一设备101中存储的第二设备102对应的第一时间戳和第二设备102对应的第二时间戳,根据第二设备102对应的第一时间戳、第二设备102对应的第二时间戳和当前时间戳,确定第二设备102对应的待同步数据a,并将待同步数据a发送至第二设备102。
46.相类似的,第一设备101也存储有第二设备103对应的第一时间戳和第二设备103对应的第二时间戳,第一设备101可根据第二设备103对应的第一时间戳、第二设备103对应的第二时间戳和当前时间戳确定待同步数据b,并将待同步数据b发送至第二设备103。
47.可以理解的,第二设备102对应的第一时间戳、第二时间戳与第二设备103对应的第一时间戳、第二时间戳可以是不一致的,也可以是一致的,在此不做限定。
48.需要说明的是,当第二设备中产生新的数据时,该第二设备可作为源设备,此时,上述第一设备可作为目的设备。
49.此外,在本技术中,每一电子设备均可作为源设备或目的设备,例如,当该电子设备为源设备(如本技术中的第一设备)时,相对于该电子设备来说,其他的电子设备为目的设备(如本技术中的第二设备);当其他任意一个电子设备为源设备时,相对于上述任意一个电子设备来说,该电子设备为目的设备。
50.可以看出,在本系统中,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳、第二时间戳和当前时间戳直接确定第二设备对应的待同步数据,并将待同步数据发送至第二设备,如此,可保持第一设备与第二设备之间的数据一致,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率,有利于提高系统中数据的同步性能,从而实现系统中设备之间的数据一致。
51.第二部分,本技术实施例所公开的权要保护范围介绍如下。
52.请参阅图2,图2是本技术实施例提供的一种数据同步方法的流程示意图,应用于第一设备,如图所示,本数据同步方法包括以下操作。
53.s201、当所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个。
54.s202、获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳。
55.s203、根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据。
56.s204、将所述待同步数据发送至所述第二设备。
57.其中,上述第一设备可以是指产生上述新的数据的设备,例如源设备,在此不做限
定。
58.其中,上述第二设备可以是接收第一设备发送的新的数据的设备,例如目的设备,在此不做限定。第二设备可以有多个,多个第二设备分别接收第一设备同步的新的数据。第一设备同步给多个第二设备的新的数据可以是相同的,也可以是不同的,在此不做限定。
59.其中,上述第一时间戳可指系统中存储的该第一设备在上一次数据同步后,第二设备记录的时间戳。上述第二时间戳可指上一次数据同步时,第一设备向第二设备发送数据的第二时间戳。在同一个系统中,不同设备间对于时间戳的设定基准是一致的。
60.其中,上述第一时间戳与第二时间戳一致或不一致,当第一时间戳与第二时间戳一致时,则表明第一设备与第二设备上一次数据同步时,数据一致;当第一时间戳与第二时间戳不一致时,则表明第一设备与第二设备上一次数据同步后,可能由于第二设备离线、或其他的电子设备有向该第二设备进行数据同步等原因造成时间戳不一致的情况。
61.可选地,在本技术实施例中,还可通过检查点来确定上述未同步数据;例如,第一设备发送检查点(可指上一次同步数据所对应的时间戳)和待同步数据至第二设备;如果第一设备的检查点与第二设备的检查点不一致,第一设备更新其对应的检查点为第二设备的检查点,待同步数据则为第二设备检查点和当前时间戳检索本地数据库得到的数据,并在第一设备发送待同步数据至第二设备之后,可用待同步数据对应的时间戳更新上述第一设备的检查点,即将第一设备上一次同步数据对应的时间戳更新为待同步数据对应的时间戳。
62.此外,如果在某次数据同步时,第一设备向第二设备发送待同步数据,并记录发送待同步数据的时间戳为a(即为本技术的第二时间戳),且第二设备成功接收该待同步数据并成功写入其对应的数据库后,第二设备也记录接收该待同步数据的时间戳为a(即为本技术中的第一时间戳),此时,该第一时间戳与上述第二时间戳一致,即该待同步数据的时间戳始终为第一设备发送数据的时间戳,该时间戳与该待同步数据是对应的。
63.其中,上述新的数据可指第一设备监控得到的数据,或者是第一设备更新本地数据库以后的数据,或者是由其他设备发送给该第一设备的数据,在此不作限定。例如,如果第一设备可包括智能手环,该第二设备为车载设备,该智能手环可用于监控用户的心跳、血压、体温等生理数据,当用户的生理数据发生变化时,该智能手环可产生新的数据,可将新的数据同步至上述第一设备。
64.其中,上述待同步数据可以是指第一设备根据第一时间戳和第二时间戳确定的、需要发送给第二设备的数据。待同步数据可以是以无线方式发送的,也可以是以有线方式发送的,在此不做限定。
65.例如,在上一次第一设备和第二设备完成数据同步时,第二设备向第一设备发送第一时间戳,第一时间戳用于指示第二设备完成数据同步的时间。且第一设备中也存储了第一设备向第二设备发送待同步数据的第二时间戳。在第一设备产生新的数据的情况下,第一设备可获取第一时间戳、第二时间戳和当前时间戳,根据第一时间戳、第二时间戳和当前时间戳确定本次需要发送给第二设备的待同步数据,并将待同步数据发送至第二设备。
66.可以看出,在本技术实施例中,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳、第二时间戳和当前时间对应的时间戳直接确定第二设备对应的待同步数据,并将待同步数据发送至第二设备,有助于减少第一设备和第二
设备之间的通信次数,有助于提高设备间数据同步的效率。
67.在一种可能的示例中,上述方法还可包括如下步骤:获取第三时间戳,其中,所述第三时间戳用于指示所述第一设备上一次对所述多个电子设备进行数据同步的时间戳;根据所述当前时间对应的当前时间戳与所述第三时间戳,检索预设数据库得到所述新的数据。
68.其中,上述新的数据可以是指在第一设备上一次完成多个电子设备的数据同步之后产生的数据,在此不做限定。
69.其中,上述预设数据库可以是预先存储于第一设备中的数据库,也可以是存储于于第一设备通信相连的服务器中的数据库,在此不做限定。
70.例如,第一设备上一次完成多个电子设备的数据同步后,生成第三时间戳。该第三时间戳可理解为开始对多个电子设备进行数据同步的时间戳,根据当前时间对应的当前时间戳和第三时间戳,也即是说,在完成多个电子设备的数据同步之后,在当前时间之前,将在预设数据库中产生的数据确定为新的数据。
71.可以看出,本技术实施例中,如果该新的数据为更新本地数据库得到的数据,则可获取第三时间戳,其中,第三时间戳用于指示第一设备上一次对所述多个电子设备进行数据同步的时间戳;根据当前时间对应的当前时间戳与第三时间戳,检索预设数据库得到新的数据,如此,可以根据当前时间戳和第三时间戳确定第一设备的预设数据库中产生的新的数据,可在该第一设备产生新的数据以后,触发数据同步操作,并执行后续数据同步的操作,以保持数据同步系统中各设备间的数据一致。
72.在一种可能的示例中,所述根据第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据,可包括如下步骤:若所述第二时间戳与所述第一时间戳不一致,则确定所述第二时间戳与所述当前时间戳之间的时间范围,从所述预设数据库中选择与所述时间范围对应的数据为所述第二设备对应的所述待同步数据;若所述第二时间戳与所述第一时间戳一致,则确定所述新的数据为所述待同步数据。
73.具体实现中,设定本次数据同步为第n(n为大于1的正整数)次数据同步,若上述第二设备在第n-1次完成数据同步后,还未及时记录或者记录失败第n-1次数据同步完成以后的时间戳,该第二设备中存储的时间戳即为第n-2次完成数据同步时的时间戳,即第二时间戳;那么,第一设备在接收到新的数据时,第一设备中存储的时间戳为第n-1次完成数据同步时的时间戳,即第一时间戳,可以看出,第一时间戳与第二时间戳是不一致的,由于不确定第二设备在上一次数据同步时是否数据同步成功,为了保证两个设备之间的数据的一致性,则在本次数据同步中,可以第二设备保存的第二时间戳为准,获取该第二时间戳与当前时间戳之间的时间范围对应的数据为该第二设备对应的待同步数据,并更新该第一设备中存储的第二时间戳为当前时间戳。
74.进一步地,如果上述第一时间戳与第二时间戳一致,则表明第二设备与该第一设备在上一次数据同步后,已经达到数据一致,则可直接将该新的数据作为待同步数据。
75.可以看出,本技术实施例中,可通过第一时间戳与第二时间戳是否一致,确定第一设备与第二设备之间的数据是否一致,并根据数据是否一致,进一步去选择本次数据同步需要同步的数据;如此,有利于保证数据同步的有效性,并通过时间戳是否一致,间接保证设备间数据一致;同时,通过时间戳对应的时间范围,确定增量数据作为需要同步的待同步
数据,不需要同步全部数据,有利于节省功耗。
76.在一种可能的示例中,若所述第二时间戳与所述第一时间戳不一致,所述待同步数据包括所述新的数据。
77.具体实现中,在第二时间戳与第一时间戳指示的时间不一致的情况下,也即是说,第一设备上一次向第二设备同步数据时,第二设备未成功接收到数据,此时,待同步数据中不仅包括第一设备中产生的新的数据,还可包括上一次数据同步时未成功数据同步的数据,即,第一时间戳与第二时间戳之间的数据。
78.在一个可能的示例中,上述方法还可包括如下步骤:将所述待同步数据发送至所述第二设备之后,获取发送所述待同步数据给第二设备的第四时间戳,将所述第二时间戳更新为所述第四时间戳。
79.具体实现中,在完成待同步数据的发送后,第一设备可获取发送待同步数据至第二设备的第四时间戳,并将第二时间戳更新为第四时间戳,如此,在第一设备再次产生新的数据时,第一设备根据第一时间戳和第二时间戳确定的待同步数据即为新的数据。在第一设备将待同步数据发送至第二设备,且第二设备成功接收后,第一设备与第二设备之间数据达到一致,有助于提高下一次定位待同步数据的准确性,有助于保证多设备间的数据一致性。
80.可选地,在存在多个第二设备的情况下,第一设备中可存储每一第二设备对应的第一时间戳,可获取系统中数据库中存储的每一第二设备对应的第二时间戳,根据每一第二设备对应的第一时间戳和第二时间戳,确定每一第二设备对应的待同步数据,如此,在多设备通信时,有助于第一设备准确确定待同步数据,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率。
81.在一个可能的示例中,若存在多个所述第二设备,每一所述第二设备对应的第二时间戳与第一时间戳一致的情况下,所述将所述待同步数据发送至所述第二设备,可包括如下步骤:确定所述每一第二设备的通信优先级,得到多个通信优先级;根据所述多个通信优先级,确定所述第一设备向所述多个第二设备发送所述待同步数据的顺序;根据所述顺序,向所述每一第二设备发送所述待同步数据。
82.其中,上述通信优先级可以是指多个第二设备与第一设备进行数据同步的先后顺序,通信优先级可以预先存储于第一设备中,也可以根据每一第二设备与第一设备之间对应的通信次数、通信频率、通信数据量等因素动态调整,在此不做限定。
83.其中,上述通信频率可以是指第二设备在预设时长内与第一设备的通信次数,在此不做限定。上述预设时长可以是第一设备或第二设备默认的时长,也可以是根据用户设置确定的时长,在此不做限定。
84.例如,由于每一第二设备对应的第二时间戳一致,且每一第二设备对应的第一时间戳一致,也即是说,第一设备发送给每一第二设备的数据相同。此时可根据每一第二设备对应的通信频率确定通信优先级。例如,与第一设备通信频率越高的第二设备,对应的通信优先级可以越高。又如,与第一设备通信频率越低的第二设备,对应的通信优先级可以越高。在此不做限定。
85.具体实现中,根据每一第二设备对应的通信优先级,确定第一设备向多个第二设备发送待同步数据的顺序,并根据上述顺序向每一第二设备发送待同步数据。第一设备可
以是分别向多个第二设备发送待同步数据,也可以是同时向多个第二设备发送待同步数据,在此不做限定。第二设备对应的通信优先级越高,第一设备向该第二设备发送待同步数据的顺序可以越优先,在此不做限定。
86.可以看出,本技术实施例中,根据每一第二设备对应的通信优先级,确定第一设备向多个第二设备发送待同步数据的顺序,有助于确保多设备间数据同步的有序性,进而有助于保证数据同步效率。
87.请参阅图3,图3是本技术实施例提供的一种数据同步方法的流程示意图,应用于第二设备,如图所示,本数据同步方法包括以下操作:
88.s301、接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
89.具体实现中,本实施例与前述应用于第一设备的数据同步方法的实施例相对应,详细说明可参照前述步骤s201-s204,此处不再赘述。
90.在一个可能的示例中,上述方法还可包括如下步骤:在根据所述待同步数据完成数据同步以后,确定所述待同步数据的第五时间戳,将所述第一时间戳更新为所述第五时间戳。
91.具体实现中,在第二设备完成对于待同步数据的数据同步以后,可确定本次数据同步的第五时间戳,本质上,若本次同步待同步数据成功,那么,上述第五时间戳与第一设备发送待同步数据的第四时间戳是相同的。如此,可完成对于待同步数据的同步,并能保证两个设备之间关于待同步数据的数据一致性。
92.其中,该第五时间戳和第四时间戳可作为第一设备与第二设备的下一次数据同步时两个设备间数据是否一致的判断依据,在此不再赘述。
93.可选地,若所述第二设备中存在与所述待同步数据的键值相同的历史数据,上述方法还包括如下步骤:确定所述历史数据对应的时间戳和所述待同步数据对应的第五时间戳中的最大时间戳;保留所述最大时间戳对应的数据。
94.具体实现中,第一设备和第二设备可以键值数据库(key-value)的形式存储数据,若第二设备中存在与待同步数据的键值(key)相同的历史数据,则表明第二设备中可能也存储有该待同步数据,但该键值对应的数据(value)可能是不同的;并且,本次数据同步是针对该第一设备中待同步数据的,可能该第二设备在完成本次数据同步时,也存在其他第一设备向其发送待同步数据,或者可能由于存储第一设备的待同步数据时发生数据延迟,因此,需要确定该待同步数据是否为最新数据,则可确定历史数据对应的时间戳和待同步数据对应的第五时间戳的最大时间戳,并保留最大时间戳对应的数据,有助于确保第二设备中存储的数据为最新数据。
95.需要说明的是,如果历史数据对应的时间戳为最大时间戳,则会保留该历史数据对应的时间戳为最大时间戳,那么,上述第五时间戳与上述第四时间戳是不同的。
96.举例来说,若设备a向设备b同步待同步数据a,该待同步数据对应的时间戳为时间戳a,此时,设备c也向该设备b在同步待同步数据c,该待同步数据对应的时间戳为时间戳c;其中,时间戳a可能大于或小于该时间戳c;那么,设备b在对待同步数据a进行存储时,如果
发现待同步数据a与待同步数据c的键值相同,并且时间戳c大于时间戳a,则表明设备c产生新的待同步数据c的时间晚于该设备a的待同步数据a,则表明该待同步数据a为最新的数据,则可保留待同步数据c;与此同时,设备a也在同步设备c所产生的待同步数据c,那么其同步的数据为最新的数据,即待同步数据c,如此,可保持多个设备间的数据一致性,即保证设备间的数据为最新数据。
97.与上述实施例一致的,请参阅图4,图4是本技术实施例提供的一种数据同步方法的交互示意图,如图所示,本数据同步方法包括以下操作。
98.s401、当第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个。
99.s402、第一设备获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳。
100.s403、第一设备根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据。
101.s404、第一设备将所述待同步数据发送至所述第二设备。
102.s405、第二设备接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
103.其中,上述步骤s401-s404可参考图2所描述的数据同步方法中的步骤s201-s204。上述步骤s405可参考图3所描述的数据同步方法中的步骤s301。在此不再赘述。
104.可以看出,本技术实施例所描述的数据同步方法,第一设备可根据第一时间戳、第二时间戳和当前时间戳确定第二设备对应的待同步数据,并将待同步数据发送至第二设备。如此,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率。进而,第二设备可以接收第一设备发送的待同步数据,最终有助于保证多设备间的数据一致性。
105.请参阅图5,图5是本技术实施例提供的一种电子设备的结构示意图,该电子设备可以是第一设备。如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行以下步骤的指令:
106.当所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个;
107.获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳;
108.根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据;
109.将所述待同步数据发送至所述第二设备。
110.可以看出,本技术实施例中所描述的电子设备,可在第一设备产生新的数据时,获取第一时间戳和第二时间戳,根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,
确定第二设备对应的待同步数据,并将待同步数据发送至第二设备。如此,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳和第二时间戳直接确定第二设备对应的待同步数据,并将待同步数据发送至第二设备,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率。
111.在一种可能的示例中,上述程序还包括用于执行以下步骤的指令:
112.获取第三时间戳,其中,所述第三时间戳用于指示所述第一设备上一次对所述多个电子设备进行数据同步的时间戳;
113.根据所述当前时间对应的当前时间戳与所述第三时间戳,检索预设数据库得到所述新的数据。
114.在一种可能的示例中,在所述根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据方面,上述程序包括用于执行以下步骤的指令:
115.若所述第二时间戳与所述第一时间戳不一致,则确定所述第二时间戳与所述当前时间戳之间的时间范围,从所述预设数据库中选择与所述时间范围对应的数据为所述第二设备对应的所述待同步数据;
116.若所述第二时间戳与所述第一时间戳一致,则确定所述新的数据为所述待同步数据。
117.在一种可能的示例中,若所述第二时间戳与所述第一时间戳不一致,所述待同步数据包括所述新的数据。
118.在一种可能的示例中,上述程序还包括用于执行以下步骤的指令:
119.将所述待同步数据发送至所述第二设备之后,获取发送所述待同步数据给所述第二设备的第四时间戳,将所述第二时间戳更新为所述第四时间戳。
120.图5所示的电子设备也可以是第二设备。如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行以下步骤的指令:
121.接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
122.在一种可能的示例中,上述程序还包括用于执行以下步骤的指令:
123.在根据所述待同步数据完成数据同步以后,确定所述待同步数据的第五时间戳,将所述第一时间戳更新为所述第五时间戳。
124.在一种可能的示例中,上述程序还包括用于执行以下步骤的指令:
125.确定所述历史数据对应的时间戳和所述待同步数据对应的第五时间戳中的最大时间戳;
126.保留所述最大时间戳对应的数据。
127.上述主要从方法侧执行过程的角度对本技术实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元
及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
128.本技术实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
129.在采用对应各个功能划分各个功能模块的情况下,图6a示出了数据同步装置的功能单元组成示意图,如图6a所示,所述装置应用于第一设备,该数据同步装置600可以包括:获取单元601、确定单元602和发送单元603,其中,
130.获取单元601可以用于支持终端设备执行上述步骤s201-s202,和/或用于本文所描述的技术的其他过程。
131.确定单元602可以用于支持终端设备执行上述步骤s203,和/或用于本文所描述的技术的其他过程。
132.发送单元603可以用于支持终端设备执行上述步骤s204,和/或用于本文所描述的技术的其他过程。
133.可以看出,在本技术实施例提供的数据同步装置中,当第一设备产生新的数据时,第一设备可获取第一设备的第一时间戳,其中,第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,第二设备为第一设备需要同步新的数据的多个电子设备中任意一个;获取存储的上一次数据同步向第二设备发送数据的第二时间戳;根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,确定第二设备对应的待同步数据;将待同步数据发送至第二设备。如此,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳和第二时间戳直接确定第二设备对应的待同步数据,并将待同步数据发送至第二设备,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率。
134.在一个可能的示例中,如图6b所示,为数据同步装置的功能单元组成示意图,该装置600还可包括:检索单元604,其中,
135.上述获取单元601用于获取第三时间戳,其中,所述第三时间戳用于指示所述第一设备上一次对所述多个电子设备进行数据同步的时间戳;
136.所述检索单元604用于根据所述当前时间对应的当前时间戳与所述第三时间戳,检索预设数据库得到所述新的数据。
137.可以看出,在本技术实施例提供的数据同步装置中,当第一设备产生新的数据时,获取第三时间戳,其中,第三时间戳用于指示第一设备上一次对多个电子设备进行数据同步的时间戳;根据当前时间对应的当前时间戳与第三时间戳,检索预设数据库得到新的数据;获取第一设备的第一时间戳和第二时间戳;根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,确定第二设备对应的待同步数据;将待同步数据发送至第二设备。如此,可以根据当前时间戳和第三时间戳确定第一设备的预设数据库中产生的新的数据,可在该
第一设备产生新的数据以后,触发数据同步操作,并执行后续数据同步的操作,以保持数据同步系统中各设备间的数据一致。
138.在一种可能的示例中,在根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据方面,上述确定单元602具体用于:
139.若所述第二时间戳与所述第一时间戳不一致,则确定所述第二时间戳与所述当前时间戳之间的时间范围,从所述预设数据库中选择与所述时间范围对应的数据为所述第二设备对应的所述待同步数据;
140.若所述第二时间戳与所述第一时间戳一致,则确定所述新的数据为所述待同步数据。
141.在一个可能的示例中,如图6c所示,为数据同步装置的功能单元组成示意图,该装置600还可包括:更新单元605,其中,
142.上述更新单元605用于将所述待同步数据发送至所述第二设备之后,获取发送所述待同步数据给第二设备的第四时间戳,将所述第二时间戳更新为所述第四时间戳。
143.可以看出,在本技术实施例提供的数据同步装置中,当第一设备产生新的数据时,第一设备可获取第一时间戳和第二时间戳,根据第一时间戳、第二时间戳和当前时间对应的当前时间戳直接确定所述第二设备对应的待同步数据,并将待同步数据发送至第二设备,获取发送待同步数据给第二设备的第四时间戳,将第二时间戳更新为第四时间戳。如此,在第一设备再次产生新的数据时,第一设备根据第一时间戳和第二时间戳确定的待同步数据即为新的数据。在第一设备将待同步数据发送至第二设备,且第二设备成功接收后,第一设备与第二设备之间数据达到一致,有助于提高下一次定位待同步数据的准确性,有助于保证多设备间的数据一致性。
144.在采用对应各个功能划分各个功能模块的情况下,图7a示出了另一种数据同步装置的示意图,如图7a所示,所述装置应用于第二设备,该数据同步装置700可以包括:接收单元701,其中,
145.接收单元701可以用于接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。
146.可以看出,在本技术实施例提供的数据同步装置中,第二设备可接收第一设备发送的待同步数据,待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定。如此,可保持第一设备与第二设备之间的数据一致,有助于减少第一设备和第二设备之间的通信次数,有助于提高设备间数据同步的效率,有利于提高系统中数据的同步性能,从而实现系统中设备之间的数据一致。
147.在一个可能的示例中,如图7b所示,为数据同步装置的功能单元组成示意图,该装置700还可包括:更新单元702,其中,上述更新单元702可以用于在根据所述待同步数据完成数据同步以后,确定所述待同步数据的第五时间戳,将所述第一时间戳更新为所述第五时间戳。
148.可以看出,在本技术实施例提供的数据同步装置中,第二设备可接收第一设备发送的待同步数据,并在根据待同步数据完成数据同步以后,确定待同步数据的第五时间戳,
将第一时间戳更新为第五时间戳。如此,可完成对于待同步数据的同步,并能保证两个设备之间关于待同步数据的数据一致性。
149.在一个可能的示例中,如图7c所示,为数据同步装置的功能单元组成示意图,该装置700还可包括:确定单元703和保留单元704,若所述第二设备中存在与所述待同步数据的键值相同的历史数据,
150.上述确定单元703可以用于确定所述历史数据对应的时间戳和所述待同步数据对应的第五时间戳中的最大时间戳;
151.上述保留单元704可以用于保留所述最大时间戳对应的数据。
152.可以看出,在本技术实施例提供的数据同步装置中,在第二设备中存在与待同步数据的键值相同的历史数据的情况下,确定历史数据对应的时间戳和待同步数据对应的第五时间戳中的最大时间戳,并保留最大时间戳对应的数据。如此,有助于确保第二设备中存储的数据为最新数据。
153.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
154.本实施例提供的电子设备,用于执行上述数据同步方法,因此可以达到与上述实现方法相同的效果。
155.在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理,例如,可以用于支持电子设备执行上述获取单元601、确定单元602、发送单元603、检索单元604和更新单元605执行的步骤,也可以用于支持电子设备执行上述接收单元701、更新单元702、确定单元703和保留单元704执行的步骤。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
156.其中,处理模块可以是处理器或控制器。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,dsp)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、wi-fi芯片等与其他电子设备交互的设备。
157.本技术实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
158.本技术实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
159.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
160.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
161.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
162.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
163.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
164.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
165.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-only memory,简称:rom)、随机存取器(英文:random access memory,简称:ram)、磁盘或光盘等。
166.以上对本技术实施例进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种数据同步方法,应用于第一设备,其特征在于,所述方法包括:当所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个;获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳;根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据;将所述待同步数据发送至所述第二设备。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取第三时间戳,其中,所述第三时间戳用于指示所述第一设备上一次对所述多个电子设备进行数据同步的时间戳;根据所述当前时间对应的当前时间戳与所述第三时间戳,检索预设数据库得到所述新的数据。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据,包括:若所述第二时间戳与所述第一时间戳不一致,则确定所述第二时间戳与所述当前时间戳之间的时间范围,从所述预设数据库中选择与所述时间范围对应的数据为所述第二设备对应的所述待同步数据;若所述第二时间戳与所述第一时间戳一致,则确定所述新的数据为所述待同步数据。4.根据权利要求3所述的方法,其特征在于,若所述第二时间戳与所述第一时间戳不一致,所述待同步数据包括所述新的数据。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:将所述待同步数据发送至所述第二设备之后,获取发送所述待同步数据给所述第二设备的第四时间戳,将所述第二时间戳更新为所述第四时间戳。6.一种数据同步方法,应用于第二设备,其特征在于,所述方法包括:接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在根据所述待同步数据完成数据同步以后,确定所述待同步数据的第五时间戳,将所述第一时间戳更新为所述第五时间戳。8.根据权利要求7所述的方法,其特征在于,若所述第二设备中存在与所述待同步数据的键值相同的历史数据,所述方法还包括:确定所述历史数据对应的时间戳和所述待同步数据对应的第五时间戳中的最大时间戳;保留所述最大时间戳对应的数据。9.一种数据同步装置,其特征在于,所述装置应用于第一设备,所述装置包括:获取单元、确定单元和发送单元,其中,
所述获取单元,用于在所述第一设备产生新的数据时,获取所述第一设备的第一时间戳,其中,所述第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,所述第二设备为所述第一设备需要同步所述新的数据的多个电子设备中任意一个;所述获取单元,还用于获取存储的上一次数据同步向所述第二设备发送数据的第二时间戳;所述确定单元,用于根据所述第一时间戳、所述第二时间戳和当前时间对应的当前时间戳,确定所述第二设备对应的待同步数据;所述发送单元,用于将所述待同步数据发送至所述第二设备。10.一种数据同步装置,其特征在于,所述装置应用于第二设备,所述装置包括接收单元,其中,所述接收单元,用于接收第一设备发送的待同步数据,其中,所述待同步数据由第一设备根据第一时间戳、第二时间戳和当前时间对应的当前时间戳确定,所述第一时间戳用于指示所述第二设备上一次完成数据同步后的时间戳,所述第二时间戳用于指示所述第一设备中存储的上一次数据同步向所述第二设备发送数据对应的时间戳。11.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项或权利要求6-8任一项所述的方法中的步骤的指令。12.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项或权利要求6-8任一项所述的方法。

技术总结
本申请实施例公开了一种数据同步方法及相关产品,方法包括:当第一设备产生新的数据时,获取第一设备的第一时间戳,其中,第一时间戳用于指示第二设备上一次完成数据同步后的时间戳,第二设备为第一设备需要同步新的数据的多个电子设备中任意一个;获取存储的上一次数据同步向第二设备发送数据的第二时间戳;根据第一时间戳、第二时间戳和当前时间对应的当前时间戳,确定第二设备对应的待同步数据;将待同步数据发送至第二设备。如此,采用本申请实施例有助于减少设备间通信次数,有助于提高设备间数据同步的效率。设备间数据同步的效率。设备间数据同步的效率。


技术研发人员:田万均 赵兴景 刘可立
受保护的技术使用者:南京欧珀软件科技有限公司
技术研发日:2021.12.14
技术公布日:2022/3/8

最新回复(0)