数据同步方法和装置与流程

未命名 07-23 阅读:99 评论:0


1.本技术的实施例涉及计算机技术领域,具体涉及数据处理技术领域,尤其涉及数据同步方法和装置。


背景技术:

2.在多机房分布式存储系统中,通常采用一主多从的机房冗余配置,同一份数据以副本的形式分布在不同机房。当一个数据文件被新写入时,通常只写到主机房,然后主机房再以后台形式将数据副本分发至各个从机房。对于主机房同步数据副本到从机房的操作,现有技术大多采用遍历分发的方式,即主机房将数据副本逐个分发给所有从机房,分发过程中,主机房需要发送所有数据副本到所有从机房,同一数据对应每个从机房的出口流量为重复数据流量,在处理较大量的数据副本分发时,会导致严重的主机房网络带宽资源开销,进而在网络带宽有限的条件下导致大量丢包,影响业务请求响应效率。


技术实现要素:

3.本技术提供了一种数据同步方法、装置、设备以及存储介质。
4.根据本技术的第一方面,提供了一种数据同步方法,该方法包括:响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据;生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序;基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。
5.在一些实施例中,子数据的个数不大于装置的个数;生成每个子数据的传输链路,包括:生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。
6.在一些实施例中,生成每个子数据的传输链路,包括:基于获取到的待同步数据和各装置,确定待同步数据中各子数据的排序、各装置的排序和装置的个数;基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号;基于各装置对应的编号,生成每个子数据的传输链路,各子数据的传输链路中各装置的排序互不相同。
7.在一些实施例中,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,包括:基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置。
8.在一些实施例中,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,包括:基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征将每个传输链路中除最后一个装置以外
的各个装置在接收到子数据后将子数据转发至下一装置和基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置相互配合,以确保子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。
9.根据本技术的第二方面,提供了一种数据同步装置,包括:获取单元,被配置成响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据;生成单元,被配置成生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序;同步单元,被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。
10.在一些实施例中,子数据的个数不大于装置的个数;生成单元进一步被配置成生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。
11.在一些实施例中,生成单元包括:确定模块,被配置成基于获取到的待同步数据和各装置,确定待同步数据中各子数据的排序、各装置的排序和装置的个数;第一生成模块,被配置成基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号;第二生成模块,被配置成基于各装置对应的编号,生成每个子数据的传输链路,各子数据的传输链路中各装置的排序互不相同。
12.在一些实施例中,同步单元进一步被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置。
13.在一些实施例中,同步单元进一步被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征将每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置和基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置相互配合,以确保子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。
14.根据本技术的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
15.根据本技术的第四方面,本技术提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
16.根据本技术的技术采用响应于接收到数据同步请求,响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据,生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序,基于每个子数据的传输链路和传输规则,将每个
子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。实现了一种利用流水线数据流技术的数据同步方式,将数据同步由一台装置进行传输转变为由多台不同装置进行传输,降低了主装置所在机房(即主机房)网络出口带宽压力,使各从装置所在机房(即从机房)的网络出入口带宽开销更加均衡。
17.应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
18.附图用于更好地理解本方案,不构成对本技术的限定。
19.图1是根据本技术的数据同步方法的第一实施例的示意图;
20.图2是可以实现本技术实施例的数据同步方法的场景图;
21.图3是根据本技术的数据同步方法的第二实施例的示意图;
22.图4是根据本技术的数据同步装置的一个实施例的结构示意图;
23.图5是用来实现本技术实施例的数据同步方法的电子设备的框图。
具体实施方式
24.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
25.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
26.图1示出了根据本技术的数据同步方法的第一实施例的示意图100。该数据同步方法,包括以下步骤:
27.步骤101,响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置。
28.在本实施例中,当执行主体(例如数据处理服务器)接收到数据同步请求后,可以通过有线连接或无线连接的方式从本地或远端获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置。其中,待同步数据包括待同步的至少两个子数据,子数据可以为待同步数据的子数据包、子数据块或子数据表等,这里对于子数据的表示形式不进行限制。装置可以表示位于不同位置的机器、仪器、设备、存储介质和结构复杂并具有某种独立功用的物件等。待同步数据用于表征系统等待同步的各类数据,例如代码、表格、图形、文字等。需要指出的是,上述无线连接方式可以包括但不限于3g、4g、5g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
29.步骤102,生成每个子数据的传输链路。
30.在本实施例中,执行主体可以随机或依次生成每个子数据的传输链路。其中,传输链路用于表征每个子数据所需同步的各个装置的排序,例如,传输链路为[装置1,装置2,装
置3]。
[0031]
在本实施例的一些可选的实现方式中,子数据的个数不大于装置的个数;生成每个子数据的传输链路,包括:生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。通过给所需同步每个子数据设置不同的首个装置,使所需同步的每个子数据分散在不同的传输装置中,再利用传输规则,有效降低了主机房网络出口带宽压力,使各从机房的网络出入口带宽开销更加均衡。
[0032]
步骤103,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置。
[0033]
在本实施例中,执行主体可以基于步骤102生成的每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置。其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置,相当于将各个装置串联传输,除最后一个装置以外的每个装置作为上一装置的接收端和下一装置的发送端。
[0034]
继续参见图2,本实施例的数据同步方法200运行于电子设备201中。首先电子设备201接收数据同步请求,并获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置202,其中,待同步数据包括待同步的至少两个子数据,然后电子设备201生成每个子数据的传输链路203,接着电子设备201基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置204,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置,以完成每个子数据的所有装置的数据同步。
[0035]
本技术的上述实施例提供的数据同步方法采用响应于接收到数据同步请求,响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据,生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。实现了一种利用流水线数据流技术的数据同步方式,将数据同步由一台装置进行传输转变为由多台不同装置进行传输,降低了主机房网络出口带宽压力,使各从机房的网络出入口带宽开销更加均衡。
[0036]
进一步参考图3,其示出了数据同步方法的第二实施例的示意图300。该方法的流程包括以下步骤:
[0037]
步骤301,响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置。
[0038]
在本实施例中,当执行主体接收到数据同步请求后,可以通过有线连接或无线连接的方式从本地或远端获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置。其中,待同步数据包括待同步的至少两个子数据,子数据的个数不大于装置的个数。
[0039]
步骤302,基于获取到的待同步数据和各装置,确定待同步数据中各子数据的排序、各装置的排序和装置的个数。
[0040]
在本实施例中,执行主体基于获取到的待同步数据和各装置,对待同步数据中的各个子数据进行序号排列,对各个装置进行序号排列,确定待同步数据中各子数据的排序、各装置的排序和装置的个数。
[0041]
步骤303,基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号。
[0042]
在本实施例中,执行主体可以基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号。其中,哈希算法基于各子数据的序号、各装置的序号和装置个数而构建。编号用于表征在相应子数据的数据同步过程中装置的所处位置。
[0043]
进一步具体说明,哈希算法公式可表示为:k=((i+p)%n)+1,i用于表示子数据的数据序号,p用于表示当前的装置序号,n用于表示当前子数据的装置个数,k表示生成的装置对应的编号。比如,假设共有3台装置,则对于数据序号为1的子数据来说,最上游(装置序号为1的装置)对应的编号为((1+1)%3)+1=3,中游(装置序号为2的装置)对应的编号为((1+2)%3)+1=1,最下游(装置序号为3的装置)对应的编号为((1+3)%3)+1=2。
[0044]
在本实施例的一些可选的实现方式中,基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号,包括:基于各子数据的排序、各装置的排序和装置个数,利用编号生成模型生成每个子数据所需同步的各装置对应的编号。编号生成模型可以基于历史数据预先训练得到,编号生成模型用于表征基于映射表为每个子数据对应的各个装置进行编号分配。实现一种简单、便捷、高效地获取装置编号的方法。
[0045]
步骤304,基于各装置对应的编号,生成每个子数据的传输链路。
[0046]
在本实施例中,执行主体可以依据各装置对应的编号次序,生成每个子数据的传输链路。其中,传输链路用于表征每个子数据所需同步的各装置的排序,各子数据的传输链路中各装置的排序互不相同,例如,利用上面的哈希算法公式,得到子数据1的传输链路为[装置3,装置1,装置2],子数据2的传输链路为[装置1,装置2,装置3],子数据3的传输链路为[装置2,装置3,装置1]。
[0047]
步骤305,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置。
[0048]
在本实施例的一些可选的实现方式中,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,包括:基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置。通过将数据同步的任务分散到各个装置中,使每个子数据的传输过程在主装置的出入流量不重复,消除了同一子数据对不同装置同步产生的重复流量,降低了主装置网络出口带宽压力,同时实现多种的数据同步方式,使数据同步更加灵活多样。
[0049]
在本实施例的一些可选的实现方式中,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,包括:基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征将每个传输链路
中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置和基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置相互配合,以确保子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。提高了数据同步的效率和灵活性。
[0050]
需要说明的是,上述哈希算法是目前广泛研究和应用的公知技术,在此不再赘述。
[0051]
在本实施例中,步骤301和305的具体操作与图1所示的实施例中的步骤101和103的操作基本相同,在此不再赘述。
[0052]
从图3中可以看出,与图1对应的实施例相比,本实施例中的数据同步方法的示意图300采用基于获取到的待同步数据和各装置,确定待同步数据中各子数据的排序、各装置的排序和装置的个数,基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号,基于各装置对应的编号,生成每个子数据的传输链路,各子数据的传输链路中各装置的排序互不相同,通过哈希算法分配并构建子数据同步路径,再利用传输规则,使每个子数据的同步路径各不相同,即每个子数据的传输过程在主机房和每个从机房的出入流量均无重复,消除了同一子数据对不同机房同步产生的重复流量,有效降低了主机房网络出口带宽压力,使各从机房的网络出入口带宽开销更加均衡、高效。
[0053]
进一步参考图4,作为对上述图1~3所示方法的实现,本技术提供了一种数据同步装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0054]
如图4所示,本实施例的数据同步装置400包括:获取单元401、生成单元402和同步单元403,其中,获取单元,被配置成响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据;生成单元,被配置成生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序;同步单元,被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。
[0055]
在本实施例中,数据同步装置400的获取单元401、生成单元402和同步单元403的具体处理及其所带来的技术效果可分别参考图1对应的实施例中的步骤101到步骤103的相关说明,在此不再赘述。
[0056]
在本实施例的一些可选的实现方式中,子数据的个数不大于装置的个数;生成单元进一步被配置成生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。
[0057]
在本实施例的一些可选的实现方式中,生成单元包括:确定模块,被配置成基于获取到的待同步数据和各装置,确定待同步数据中各子数据的排序、各装置的排序和装置的个数;第一生成模块,被配置成基于各子数据的排序、各装置的排序和装置个数,利用哈希算法生成每个子数据所需同步的各装置对应的编号;第二生成模块,被配置成基于各装置对应的编号,生成每个子数据的传输链路,各子数据的传输链路中各装置的排序互不相同。
[0058]
在本实施例的一些可选的实现方式中,同步单元进一步被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表
征基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置。
[0059]
在本实施例的一些可选的实现方式中,同步单元进一步被配置成基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,传输规则用于表征将每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置和基于各传输链路将各子数据发送至相应传输链路中的首个装置后,由首个装置将接收到的子数据遍历分发至相应传输链路中的其他装置相互配合,以确保子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。
[0060]
根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
[0061]
如图5所示,是根据本技术实施例的数据同步方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0062]
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
[0063]
存储器502即为本技术所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本技术所提供的数据同步方法。本技术的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本技术所提供的数据同步方法。
[0064]
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本技术实施例中的数据同步方法对应的程序指令/模块(例如,附图4所示的获取单元401、生成单元402和同步单元403)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据同步方法。
[0065]
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据同步电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至数据同步电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0066]
数据同步方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0067]
输入装置503可接收输入的数字或字符信息,以及产生与数据同步电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0068]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0069]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0070]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声音输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0071]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0072]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0073]
根据本技术实施例的技术方案采用响应于接收到数据同步请求,响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据,生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序,基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。实现了一种利用流水线数据流技术的数据同步方式,将数据同步由一台装置进行传输转变为由多台不同装置进行传输,降低了主机房网络出口带宽压力,使各从机房的网络出入口带宽开销更加均衡。
[0074]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本技术中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
[0075]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。

技术特征:
1.一种数据同步方法,包括:响应于接收到数据同步请求,获取与所述数据同步请求对应的待同步数据和所述待同步数据所需同步的至少两个装置,其中,所述待同步数据包括待同步的至少两个子数据;生成每个子数据的传输链路,所述传输链路用于表征每个子数据所需同步的各装置的排序;基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,其中,所述传输规则用于表征每个所述传输链路中除最后一个装置以外的各个装置在接收到子数据后将所述子数据转发至下一装置。2.根据权利要求1所述的方法,其中,所述子数据的个数不大于所述装置的个数;所述生成每个子数据的传输链路,包括:生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。3.根据权利要求2所述的方法,其中,所述生成每个子数据的传输链路,包括:基于获取到的所述待同步数据和各装置,确定所述待同步数据中各子数据的排序、各装置的排序和所述装置的个数;基于所述各子数据的排序、各装置的排序和所述装置个数,利用哈希算法生成所述每个子数据所需同步的各装置对应的编号;基于各装置对应的编号,对所述每个子数据的各装置进行排序,生成所述每个子数据的传输链路,所述各子数据的传输链路中各装置的排序互不相同。4.根据权利要求3所述的方法,其中,所述基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,包括:基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,所述传输规则用于表征基于各所述传输链路将各子数据发送至相应传输链路中的首个装置后,由所述首个装置将接收到的所述子数据遍历分发至相应传输链路中的其他装置。5.根据权利要求3所述的方法,其中,所述基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,包括:基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,所述传输规则用于表征将每个所述传输链路中除最后一个装置以外的各个装置在接收到子数据后将所述子数据转发至下一装置和基于各所述传输链路将各子数据发送至相应传输链路中的首个装置后,由所述首个装置将接收到的所述子数据遍历分发至相应传输链路中的其他装置相互配合,以确保所述子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。6.一种数据同步装置,包括:获取单元,被配置成响应于接收到数据同步请求,获取与所述数据同步请求对应的待同步数据和所述待同步数据所需同步的至少两个装置,其中,所述待同步数据包括待同步的至少两个子数据;生成单元,被配置成生成每个子数据的传输链路,所述传输链路用于表征每个子数据所需同步的各装置的排序;同步单元,被配置成基于所述每个子数据的传输链路和传输规则,将所述每个子数据
同步至相应传输链路中的各装置,其中,所述传输规则用于表征每个所述传输链路中除最后一个装置以外的各个装置在接收到子数据后将所述子数据转发至下一装置。7.根据权利要求6所述的装置,其中,所述子数据的个数不大于所述装置的个数;所述生成单元进一步被配置成生成每个子数据的传输链路,各子数据的传输链路中的首个装置互不相同。8.根据权利要求7所述的装置,其中,所述生成单元包括:确定模块,被配置成基于获取到的所述待同步数据和各装置,确定所述待同步数据中各子数据的排序、各装置的排序和所述装置的个数;第一生成模块,被配置成基于所述各子数据的排序、各装置的排序和所述装置个数,利用哈希算法生成所述每个子数据所需同步的各装置对应的编号;第二生成模块,被配置成基于各装置对应的编号,对所述每个子数据的各装置进行排序,生成所述每个子数据的传输链路,所述各子数据的传输链路中各装置的排序互不相同。9.根据权利要求8所述的装置,其中,所述同步单元进一步被配置成基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,所述传输规则用于表征基于各所述传输链路将各子数据发送至相应传输链路中的首个装置后,由所述首个装置将接收到的所述子数据遍历分发至相应传输链路中的其他装置。10.根据权利要求8所述的装置,其中,所述同步单元进一步被配置成基于所述每个子数据的传输链路和传输规则,将所述每个子数据同步至相应传输链路中的各装置,所述传输规则用于表征将每个所述传输链路中除最后一个装置以外的各个装置在接收到子数据后将所述子数据转发至下一装置和基于各所述传输链路将各子数据发送至相应传输链路中的首个装置后,由所述首个装置将接收到的所述子数据遍历分发至相应传输链路中的其他装置相互配合,以确保所述子数据在用时最少且准确率最高地情况下同步至相应传输链路中的各装置。11.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。

技术总结
本申请公开了数据同步方法和装置,具体实现方案为:响应于接收到数据同步请求,获取与数据同步请求对应的待同步数据和待同步数据所需同步的至少两个装置,其中,待同步数据包括待同步的至少两个子数据;生成每个子数据的传输链路,传输链路用于表征每个子数据所需同步的各装置的排序;基于每个子数据的传输链路和传输规则,将每个子数据同步至相应传输链路中的各装置,其中,传输规则用于表征每个传输链路中除最后一个装置以外的各个装置在接收到子数据后将子数据转发至下一装置。该方案实现一种利用流水线数据流技术的数据同步方式。现一种利用流水线数据流技术的数据同步方式。现一种利用流水线数据流技术的数据同步方式。


技术研发人员:沙方浩 吴维伟 黄涛 王朝晖
受保护的技术使用者:北京京东世纪贸易有限公司
技术研发日:2022.01.10
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐