一种路由信息同步方法及相关设备与流程
未命名
09-29
阅读:104
评论:0
1.本技术涉及互联网技术领域,特别涉及一种路由信息同步方法及相关设备。
背景技术:
2.云存储系统架构中包括集群管理节点、存储节点和客户端,其中,集群管理节点负责机群控制、对路由信息进行维护,存储节点负责数据存储,客户端通过访问存储节点以获得用户想要的数据。
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.图6是本技术实施例提供的另一种预估响应时间的示意图;
30.图7是本技术实施例提供的一种获取路由同步请求对应的待同步路由信息的流程示意图;
31.图8是本技术实施例提供的一种确定预设网络带宽值的流程示意图;
32.图9是本技术实施例提供的一种路由信息同步方法的流程示意图;
33.图10是本技术实施例提供的一种路由信息同步装置的组成框图;
34.图11是本技术实施例提供的一种路由信息同步系统的组成框图;
35.图12是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
38.相关技术中,集群管理节点在进行路由变更时,需要将更新的路由信息同步到集群中所有的存储节点以及客户端。而随着集群的存储容量的增加,存储节点数目也随之增加,存储架构的迭代以及存储节点硬件的升级都会导致路由信息的变化,且一个集群往往需要服务数千至上万个客户端,这使得集群管理节点需要频繁地向所有存储节点以及客户端发送路由同步信息,不仅路由同步性能难以保证,且十分占用集群管理节点的资源,导致整个云存储系统的性能下降。
39.可见,现有的路由同步方式通过集群管理节点将最新的路由信息同步到所有的存储节点和客户端,当集群管理节点成为瓶颈时,路由同步性能无法保证,并且难以扩展至更大规模的存储集群。
40.基于此,本技术实施例提供了一种路由信息同步方法,集群管理节点在进行路由变更时,只需将更新的路由信息同步至所有的存储节点中,同时向客户端推送对应的存储节点标识,使得客户端可以根据对应的存储节点标识从相应的存储节点获取更新的路由信息;如此,利用存储节点的计算和网络资源分摊集群管理节点的压力,可以提高路由同步性能,同时,还可以极大的增加路由同步方法的可扩展性,适用于大规模的存储集群。此外,本技术还对存储节点处理客户端路由同步请求的过程进行了优化,通过预估客户端路由同步请求的响应时间来确定是否执行后续的同步操作,并结合节点自身的处理能力对传输的数据流量进行控制,可以避免存储节点接收过多的路由同步请求导致的请求过载的问题,可以降低发生网络堵塞等异常的概率,从而可以提高存储节点的处理效率,实现路由信息的快速同步。
41.请参阅图1,图1是本技术实施例提供的一种应用环境的示意图,该应用环境可以包括终端设备11、存储节点12和集群管理节点13。其中,终端设备11和存储节点12可通过通信网络进行通信连接,该网络可以为局域网、广域网等。
42.终端设备11可以是智能手机、电脑(如台式电脑、平板电脑、笔记本电脑)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、数字助理、智能语音交互设备(如智能音箱)、智能可穿戴设备、智能家电、车载终端等类型的实体设备,也可以是运行于实体设备中的软体,比如计算机程序。客户端所对应的操作系统可以是安卓系统(android系统)、ios系统(是由苹果公司开发的移动操作系统)、linux系统(一种操作系统)、microsoft windows系统(微软视窗操作系统)等。
43.存储节点12和集群管理节点13可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。其中服务器可以包括有网络通信单元、处理器和存储器等等。存储节点12和集群管理节点13可以为终端设备11提供后台服务。
44.为了便于理解,请参阅图2,对本技术实施例提供的路由信息同步的流程进行简要说明。图2是本技术实施例提供的一种云存储环境示意图,该存储集群中包括客户端1、客户端2
……
客户端n,存储节点1、存储节点2、存储节点3
……
存储节点n和集群管理节点;其中,集群管理节点用于对该集群的路由信息进行维护;各存储节点用于存储数据;各客户端用于根据路由信息从对应的存储节点处获得用户想要的数据。
45.当集群中存储节点出现硬件故障导致需要删除存储节点或者存储扩容导致需要新增存储节点时,集群的拓扑结构会发生变化,此时,集群管理节点需要进行路由信息变更;比如,存储节点n出现硬件故障需要将其进行删除,此时集群管理节点需要修改路由信息中原先指向存储节点n的路径,为原先从存储节点n获取用户数据的客户端1分配新的路由,指导客户端1从其他存储节点处获取用户数据。
46.集群管理节点在更新路由信息后,执行步骤
①
:向各存储节点同步更新的路由信息,然后执行步骤
②
:向各客户端发送存储节点标识;然后,客户端侧执行步骤
③
:根据对应的存储节点标识向相应的存储节点发送路由同步请求,相应的存储节点在接收到路由同步请求后,执行路由信息同步操作,最后执行步骤
④
:向客户端返回更新的路由信息回包,完成路由信息的同步。
47.本技术实施例中,对于存储节点在接收到路由同步请求后,所执行的路由信息同步操作进行了优化。在一些可能的实施例中,存储节点在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间;预估响应时间表征从接收到路由同步请求的时刻起,至发送完路由同步请求对应的路由信息回包的时刻所经历的时间;若预估响应时间小于等于预设时间,则存储节点获取路由同步请求对应的待同步路由信息;在当前网络带宽值小于等于预设网络带宽值时,存储节点将待同步路由信息发送至客户端;预设网络带宽值表征本地正常工作时的最大网络带宽值。
48.比如,存储节点1在接收到客户端1的路由同步请求时,确定预估响应时间小于等于预设时间,则确定执行相应的路由信息同步操作,即获取路由同步请求对应的待同步路
由信息,在当前网络带宽值小于等于预设网络带宽值时,存储节点1将待同步路由信息发送至客户端1,至此,完成路由信息的同步过程。
49.下文将对存储节点的处理过程进行详细地展开,此处暂不赘述。
50.在一些可能的实施例中,集群管理节点可以向各客户端发送多个存储节点标识。比如,集群管理节点向客户端1发送存储节点1的标识、存储节点2的标识和存储节点3的标识;客户端1先根据存储节点1的标识向存储节点1发送路由同步请求,若存储节点1未在一定时间段内返回路由信息,则客户端1可以执行步骤
⑤
:根据存储节点2的标识向存储节点2发送路由同步请求重试,若存储节点2在一定时间段内返回了路由信息,则完成路由信息的同步;否则,客户端1可以根据存储节点3的标识向存储节点3发送路由同步请求
……
若所有存储节点均未返回路由信息,则客户端1可以向集群管理节点请求路由信息。
51.需要说明的是,图1和图2的应用场景仅仅是一种示例。
52.以下介绍本技术一种路由信息同步方法的具体实施例,该路由信息同步方法可以应用于云存储系统中的存储节点。本技术提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。图3是本技术实施例提供的一种路由信息同步方法的流程示意图,具体的如图3所示,所述方法可以包括:
53.s301:在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间。
54.其中,预估响应时间表征从接收到路由同步请求的时刻起,至发送完路由同步请求对应的路由信息回包的时刻所经历的时间。
55.本技术实施例中,对于存储节点侧的路由信息同步流程进行了优化。首先,存储节点在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间。
56.在一些可能的实施例中,存储节点与客户端之间预先签订有服务水平协议(servicelevelagreement,sla),从而存储节点在接收到客户端发送的用户请求后,可以根据sla对待提供服务进行量化,存储节点在sla的条款下,会计算出一种完成用户任务最短的方法,比如预估客户端路由同步请求的响应时间。
57.在一些可能的实施例中,当前待处理请求信息包括当前待处理请求的数量和路由信息回包的数据量;存储节点可以从当前缓冲队列中确定当前待处理请求的数量和路由信息回包的数据量;其中,当前待处理请求可以是来自于集群中其他客户端,存储节点向各客户端返回的路由信息可以是全量路由信息,从而不同客户端对应的路由信息回包的数据量均是相同的;
58.相应的,上述的基于当前待处理请求信息确定路由同步请求的预估响应时间,可以包括如图4所示的以下步骤:
59.s3011:根据路由信息回包的数据量和当前网络带宽值确定发包时长。
60.其中,当前网络带宽值表征单位时间内传输的数据量;发包时长指的是发送一个路由信息回包所需的时长;将路由信息回包的数据量除以当前网络带宽值即可得到发包时
长;当相应的路由信息是全量路由信息时,每个当前待处理请求对应的发包时长是相等的。
61.s3013:确定发包时长是否大于等于预设本地处理时长。若发包时长大于等于预设本地处理时长,则执行步骤s3015;否则,执行步骤s3017。
62.其中,预设本地处理时长指的是针对用户请求,存储节点执行相应处理逻辑所需的时长;这里预设本地处理时长为存储节点执行从本地内存处获取相应的路由信息的时长;当相应的路由信息是全量路由信息时,每个当前待处理请求的预设本地处理时长是相等的。发包时长与预设本地处理时长之和,即为一个当前待处理请求的处理周期。
63.s3015:对发包时长、当前待处理请求的数量和预设本地处理时长采取第一种计算方式,得到预估响应时间。
64.请参阅图5,图5是本技术实施例提供的一种预估响应时间的示意图。图5中,发包时长大于等于预设本地处理时长,表示当前存储节点的网络存在瓶颈;从而,在一个具体的实施例中,s3015可以包括:根据发包时长和当前待处理请求的数量,确定当前待处理请求的发包总时长;将发包总时长与预设本地处理时长相加,得到预估响应时间。对应的,上述的第一种计算方式可以通过下述公式(1)表示:
65.rt=t+(r+1)*p/x......(1)
66.其中,rt表示预估响应时间;t表示预设本地处理时长;r表示当前待处理请求的数量;p/x表示发包时长,p表示路由信息回包的数据量,x表示当前网络带宽值。
67.s3017:对发包时长、当前待处理请求的数量和预设本地处理时长采取第二种计算方式,得到预估响应时间。
68.请参阅图6,图6是本技术实施例提供的另一种预估响应时间的示意图。图6中,发包时长小于预设本地处理时长,表示当前存储节点的处理能力存在瓶颈;从而,在一个具体的实施例中,s3017可以包括:根据预设本地处理时长和当前待处理请求的数量,确定当前待处理请求的处理总时长;将处理总时长与发包时长相加,得到预估响应时间。对应的,上述的第二种计算方式可以通过下述公式(2)表示:
69.rt=t*(r+1)+p/x......(2)
70.其中,rt表示预估响应时间;t表示预设本地处理时长;r表示当前待处理请求的数量;p/x表示发包时长,p表示路由信息回包的数据量,x表示当前网络带宽值。
71.上述实施例中,存储节点通过比较发包时长和预设本地处理时长,分析出当前是网络还是和处理能力出现瓶颈,在不同的瓶颈问题下,采取不同的计算方式,能够准确预估出当前路由同步请求的响应时间。
72.s303:确定预估响应时间是否小于等于预设时间。若预估响应时间小于等于预设时间,则执行步骤s305~s307;否则,执行步骤s313。
73.本技术实施例中,存储节点在确定路由同步请求的预估响应时间后,将该预估响应时间与预设时间进行比较,根据比较结果确定后续的同步过程。其中,预设时间可以是客户端发起请求重试的时间。
74.s305:获取路由同步请求对应的待同步路由信息。
75.s313:向客户端返回拒绝路由同步请求的指示信息。
76.本技术实施例中,若确定预估响应时间小于等于预设时间,表示存储节点预估能够在客户端发起请求重试之前向客户端返回路由信息回包,则存储节点将路由同步请求存
放至缓冲队列中,待存储节点将当前待处理请求全部处理完后,再从缓冲队列中读取该路由同步请求,获取该路由同步请求对应的待同步路由信息。
77.在一些可能的实施例中,集群管理节点对路由信息的维护可包括增删路由、修改路由。但是增删和修改的路由通常是部分路由,还有部分路由没有变化。因此,为了提高路由同步的效率,减少路由同步占用的流量,本技术实施例中待同步路由信息可以为增量更新信息。这样,可以实现路由信息的增量更新。
78.在一些可能的实施例中,路由同步请求包括路由版本标识;上述的获取路由同步请求对应的待同步路由信息,可以包括如图7所示的以下步骤:
79.s3051:确定预设缓存区域中是否存在路由版本标识。若确定预设缓存区域中存在路由版本标识,则执行步骤s3053;否则,执行步骤s3055。
80.s3053:从预设缓存区域中获取路由版本标识对应的路由信息,将路由信息作为待同步路由信息。
81.s3055:从本地内存中获取路由版本标识对应的待同步路由信息。
82.其中,路由版本标识用于区分不同版本的增量更新信息;由于集群管理节点每次对路由信息进行维护时,生成的增量更新信息不同,因此,在每生成一增量更新信息时同步生成对应的路由版本标识;集群管理节点在每次更新路由信息后,向客户端发送对应的存储节点标识时,一同发送对应的路由版本标识,以便客户端根据路由版本标识从存储节点处获取对应的增量更新信息。
83.存储节点中的数据一般存放在本地内存中;存储节点需要从本地内存中获取相应的路由信息,但该过程涉及内存拷贝等步骤,而内存拷贝非常耗时;因此,考虑到不同的客户端可能向同一存储节点发送路由同步请求,从而存储节点在处理完一个客户端的路由同步请求后,可以将从本地内存中获取的增量更新信息和对应的路由版本标识存放至预设缓存区域中,下次若接收到相同的路由版本标识时,可以直接从预设缓存区域中读取对应的增量更新信息,以节省从本地内存中获取信息的时间。
84.在一些可能的实施例中,预设缓存区域采取先进先出fifo缓存替换策略。具体的,在预设缓存区域的数据写满时,即存放了一定数量的不同版本的待同步路由信息时,就不能再写新数据了,否则就导致数据的溢出;因此,按照待同步路由信息写入预设缓存区域的顺序,依次进行删除,以便腾出空间存放更新版本的待同步路由信息。
85.上述实施例中,存储节点在获取待同步路由信息的过程中,先判断预设缓存区域中是否存在路由版本标识,若存在,表示过去存在其他客户端获取过相同的路由信息,路由信息已预先存放至预设缓存区域中;此时,存储节点无需访问本地内存,直接从预设缓存区域中读取路由版本标识对应的路由信息,将其作为待同步路由信息,如此,可以节省本地内存的访问,提高待同步路由信息的获取速度,可以降低整个路由同步过程的耗时。
86.s307:确定当前网络带宽值是否小于等于预设网络带宽值。若当前网络带宽值小于等于预设网络带宽值,执行步骤s309;否则,执行步骤s311。
87.s309:将待同步路由信息发送至客户端。
88.s311:将待同步路由信息存放至待发送缓存区域,直至当前网络带宽值小于等于预设网络带宽值。
89.其中,预设网络带宽值表征本地正常工作时的最大网络带宽值。
90.本技术实施例中,存储节点实时获取当前网络带宽值,将预设网络带宽值作为流量阈值,在当前网络带宽值大于预设网络带宽值时,表征存储节点当前性能达到瓶颈,此时若执行待同步路由信息的发送,则可能造成存储节点性能奔溃,因此,暂缓待同步路由信息的发送,等待一段时间后,在当前网络带宽值小于等于预设网络带宽值时,再执行缓待同步路由信息的发送。
91.在一些可能的实施例中,在s307之前,本技术实施例的路由信息同步方法还可以包括如图8所示的以下步骤:
92.s3061:获取客户端的超时重试时间。
93.其中,超时重试时间表征,客户端首次发出路由同步请求的一段时间内未接收到响应而再次发出路由同步请求的时间间隔。
94.s3063:获取待处理请求缓冲区的当前占用值和最大占用值。
95.其中,待处理请求缓冲区即上文所述的缓冲队列,用于存放存储节点还未处理的路由同步请求。待处理请求缓冲区的最大占用值是固定的,由存储节点的硬件决定。
96.在一个具体的实施例中,s3063中的获取待处理请求缓冲区的当前占用值,可以包括以下步骤:
97.s30631:确定待处理请求缓冲区中各待处理请求对应的路由信息回包中未发送数据量;
98.其中,待处理请求缓冲区的当前占用值是在存储节点的网络出现瓶颈时出现的,结合图5所示,以第一条待处理请求对应的路由信息回包为例,其在本地处理第二条待处理请求完时,还存在p/x-t的未发送数据量,该未发送数据量将造成相应的占用值;需要说明的是,此处为了便于理解,未发送数据量使用相应的时长来代替说明。
99.s30633:根据各待处理请求对应的路由信息回包中未发送数据量和待处理请求缓冲区中待处理请求的数量确定当前占用值。
100.在一个具体的实施例中,根据各待处理请求对应的路由信息回包中未发送数据量和待处理请求缓冲区中待处理请求的数量确定的当前占用值可以表示为(1-t/(p/x))*p*r。
101.s3065:在超时重试时间大于预估响应时间的第一约束条件和/或最大占用值大于当前占用值的第二约束条件,以及网络带宽限制条件下,确定预设网络带宽值。
102.在一个具体的实施例中,超时重试时间大于预估响应时间的第一约束条件可以表示为:
103.t>t+(r+1)*p/x
104.其中,t表示超时重试时间;
105.最大占用值大于当前占用值的第二约束条件可以表示为:
106.b>(1-t/(p/x))*p*r
107.其中,b表示最大占用值;
108.网络带宽限制条件可以表示为:
109.x<w
110.其中,w表示最大网络带宽值;
111.综合上述第一约束条件、第二约束条件和网络带宽限制条件,可以推导出预设网
络带宽值的范围为:
112.max{p*(r+1)/(t-t),(1-b/(p*r))*p/t}<x<w
113.从而,从上述的预设网络带宽值的范围中选取出最终的预设网络带宽值。比如,w为90mb/s,左侧计算的最大值为80mb/s,则x可以取85mb/s。
114.上述实施例中,存储节点结合多种约束条件确定预设网络带宽值,通过预设网络带宽值,对当前网络带宽值进行管控,可以在路由同步请求的响应不超时的情况下,避免由于待处理请求缓冲区的占用值过大导致的雪崩等异常。
115.在一些可能的实施例中,在将待同步路由信息发送至客户端之前,本技术实施例的路由信息同步方法还可以包括:将待同步路由信息中的冗余信息删除;冗余信息包括存储节点的ip信息和/或集群id信息;对删除冗余信息后的待同步路由信息进行压缩处理。
116.考虑到待同步路由信息中可能包括多条指向不同目标数据存储地址的路径信息,而每条路径信息中均会携带相同的信息(例如存储节点的ip信息、集群id信息等),以及,存储节点在不同时候向同一客户端发送不同的待同步路由信息时,不同的待同步路由信息中每次会携带上述冗余信息;因而,在一个具体的实施例中,将待同步路由信息中的冗余信息提取出来,只向客户端发送一次这些冗余信息。后续发送的路由信息中可以使用预设标识来指代这些冗余信息,如此,可以减少路由包大小,实验证明通过此优化可减少约50%的路由信息回包的大小。压缩处理时可以采取lz4压缩算法等,通过压缩处理可以极大减少路由包大小,实验中,使用lz4压缩算法可以进一步减少约50%的路由包大小。
117.综上,本技术实施例中,存储节点在接收到客户端的路由同步请求时,可以参照上述步骤s301~s313及其可选的实施例执行相应的路由信息同步操作,一方面基于当前待处理请求信息,确定出路由同步请求的预估响应时间,仅处理能够在预期内返回的请求,拒绝响应时间较长的请求,从而可以避免客户端在该存储节点处的等待时间,也可以防止单个存储节点的请求过载,如此,可以缩短路由信息的同步耗时,提高同步效率;另一方面,为了避免由于大量路由信息回包的发送造成的缓冲区的占用值过大进而导致的雪崩等异常,进而使得存储节点不可用,存储节点在发送路由信息回包之前,根据当前网络带宽值确定是否进行流量控制,在当前网络带宽值超出预设网络带宽值时,暂缓待同步路由信息的发送,如此,可以提高存储节点的稳定性,进而可以提高路由信息同步的成功率。
118.此外,本技术实施例中,除了对存储节点侧的路由信息同步过程进行了优化,还对集群管理节点侧进行了优化。云存储系统中,集群管理节点与客户端之间会通过心跳回话进行探活,以便集群管理节点确认客户端的存活状态,如上文提到的,集群管理节点在路由信息更新后,向客户端发送存储节点标识,以便客户端根据该存储节点标识从对应的存储节点处获得更新的路由信息。
119.从而,本技术实施例还提供了一种路由信息同步方法,应用于集群管理节点和客户端,如图9所示,包括以下步骤:
120.s901:集群管理节点在接收到客户端发送的心跳信息时,确定客户端对应的至少一个存储节点标识。
121.s903:集群管理节点向客户端返回至少一个存储节点标识。
122.本技术实施例中,集群管理节点在更新路由信息后,为集群中所有客户端分配至少一个存储节点标识,使得各客户端可以从被分配的存储节点处获得更新的路由信息,为
了防止单存储节点存在过多路由同步请求现象,集群管理节点尽量为不同的客户端分配不同的存储节点,在接收到客户端定期发送的心跳信息时,返回为其分配的至少一个存储节点标识。
123.s905:客户端向至少一个存储节点标识中任一存储节点标识对应的存储节点发送路由同步请求。
124.在一些可能的实施例中,上述的至少一个存储节点标识可以是多个存储节点标识,该多个存储节点标识对应的多个存储节点是一组互为冗余副本的存储节点,即多个存储节点所存储的数据内容相同。如此,若其中一个存储节点未响应客户端的路由同步请求,客户端可以向其他存储节点重新发送路由同步请求。
125.存储节点在接收到客户端发送的路由同步请求后,可以执行上文实施例s301~s313的路由信息同步操作,以完成向客户端的路由信息同步过程。
126.本技术实施例还提供了一种路由信息同步装置,如图10所示,该路由信息同步装置100包括:
127.第一确定模块1001,用于在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间;预估响应时间表征从接收到路由同步请求的时刻起,至发送完路由同步请求对应的路由信息回包的时刻所经历的时间;
128.获取模块1002,用于若预估响应时间小于等于预设时间,获取路由同步请求对应的待同步路由信息;
129.发送模块1003,用于在当前网络带宽值小于等于预设网络带宽值时,将待同步路由信息发送至客户端;预设网络带宽值表征本地正常工作时的最大网络带宽值。
130.在一些可能的实施例中,当前待处理请求信息包括当前待处理请求的数量和路由信息回包的数据量;
131.第一确定模块1001,还用于根据路由信息回包的数据量和当前网络带宽值确定发包时长;若发包时长大于等于预设本地处理时长,对发包时长、当前待处理请求的数量和预设本地处理时长采取第一种计算方式,得到预估响应时间;或者;若发包时长小于预设本地处理时长,对发包时长、当前待处理请求的数量和预设本地处理时长采取第二种计算方式,得到预估响应时间。
132.在一些可能的实施例中,第一确定模块1001,还用于根据发包时长和当前待处理请求的数量,确定当前待处理请求的发包总时长;将发包总时长与预设本地处理时长相加,得到预估响应时间。
133.在一些可能的实施例中,第一确定模块1001,还用于根据预设本地处理时长和当前待处理请求的数量,确定当前待处理请求的处理总时长;将处理总时长与发包时长相加,得到预估响应时间。
134.在一些可能的实施例中,路由同步请求包括路由版本标识;
135.获取模块1002,还用于若确定预设缓存区域中存在路由版本标识,从预设缓存区域中获取路由版本标识对应的路由信息,将路由信息作为待同步路由信息;或者;若确定预设缓存区域中不存在路由版本标识,从本地内存中获取路由版本标识对应的待同步路由信息。
136.在一些可能的实施例中,装置还包括:
137.第二确定模块,用于获取客户端的超时重试时间;获取待处理请求缓冲区的当前占用值和最大占用值;在超时重试时间大于预估响应时间的第一约束条件和/或最大占用值大于当前占用值的第二约束条件,以及网络带宽限制条件下,确定预设网络带宽值。
138.在一些可能的实施例中,第二确定模块,还用于确定待处理请求缓冲区中各待处理请求对应的路由信息回包中未发送数据量;根据各待处理请求对应的路由信息回包中未发送数据量和待处理请求缓冲区中待处理请求的数量确定当前占用值。
139.在一些可能的实施例中,发送模块1003,还用于在当前网络带宽值大于预设网络带宽值时,将待同步路由信息存放至待发送缓存区域,直至当前网络带宽值小于等于预设网络带宽值。
140.在一些可能的实施例中,发送模块1003,还用于若预估响应时间大于预设时间,向客户端返回拒绝路由同步请求的指示信息。
141.本技术实施例还提供了一种路由信息同步系统,如图11所示,该路由信息同步系统110包括:
142.路由信息管理装置1101,用于维护路由信息;在路由信息更新后,向路由信息同步装置发送更新的路由版本标识和路由信息;
143.路由信息管理装置1101,还用于在接收到客户端发送的心跳信息时,确定客户端对应的至少一个路由信息同步装置标识,向客户端返回至少一个路由信息同步装置标识,以使客户端向至少一个路由信息同步装置标识中任一路由信息同步装置标识对应的路由信息同步装置发送路由同步请求;
144.路由信息同步装置1102,包括:第一确定模块,用于在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间;预估响应时间表征从接收到路由同步请求的时刻起,至发送完路由同步请求对应的路由信息回包的时刻所经历的时间;获取模块,用于若预估响应时间小于等于预设时间,获取路由同步请求对应的待同步路由信息;发送模块,用于在当前网络带宽值小于等于预设网络带宽值时,将待同步路由信息发送至客户端;预设网络带宽值表征本地正常工作时的最大网络带宽值。
145.其中,路由信息管理装置1101可以为上文方法实施例中的集群管理节点;路由信息同步装置1102可以为上文方法实施例中的存储节点。
146.需要说明的,装置实施例中的装置、系统与方法实施例基于同样的发明构思。
147.本技术实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的路由信息同步方法。
148.进一步地,图12示出了一种用于实现本技术实施例所提供的路由信息同步方法的电子设备的硬件结构示意图,所述电子设备可以参与构成或包含本技术实施例所提供的路由信息同步装置。如图12所示,电子设备100可以包括一个或多个(图中采用1002a、1002b,
……
,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例
如,电子设备还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。
149.应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备100(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
150.存储器1004可用于存储应用软件的软件程序以及模块,如本技术实施例中所述的路由信息同步方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种路由信息同步方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至电子设备100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
151.传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备100的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实施例中,传输装置1006可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
152.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与电子设备100(或移动设备)的用户界面进行交互。
153.本技术的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种路由信息同步方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的路由信息同步方法。
154.可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
155.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
156.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方
法实施例的部分说明即可。
157.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
158.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种路由信息同步方法,其特征在于,包括:在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定所述路由同步请求的预估响应时间;所述预估响应时间表征从接收到所述路由同步请求的时刻起,至发送完所述路由同步请求对应的路由信息回包的时刻所经历的时间;若所述预估响应时间小于等于预设时间,获取所述路由同步请求对应的待同步路由信息;在当前网络带宽值小于等于预设网络带宽值时,将所述待同步路由信息发送至所述客户端;所述预设网络带宽值表征本地正常工作时的最大网络带宽值。2.根据权利要求1所述的路由信息同步方法,其特征在于,所述当前待处理请求信息包括当前待处理请求的数量和所述路由信息回包的数据量;所述基于当前待处理请求信息确定所述路由同步请求的预估响应时间,包括:根据所述路由信息回包的数据量和当前网络带宽值确定发包时长;若所述发包时长大于等于预设本地处理时长,对所述发包时长、所述当前待处理请求的数量和所述预设本地处理时长采取第一种计算方式,得到所述预估响应时间;或者;若所述发包时长小于所述预设本地处理时长,对所述发包时长、所述当前待处理请求的数量和所述预设本地处理时长采取第二种计算方式,得到所述预估响应时间。3.根据权利要求2所述的路由信息同步方法,其特征在于,所述对所述发包时长、所述当前待处理请求的数量和所述预设本地处理时长采取第一种计算方式,得到所述预估响应时间,包括:根据所述发包时长和所述当前待处理请求的数量,确定所述当前待处理请求的发包总时长;将所述发包总时长与所述预设本地处理时长相加,得到所述预估响应时间。4.根据权利要求2所述的路由信息同步方法,其特征在于,所述对所述发包时长、所述当前待处理请求的数量和所述预设本地处理时长采取第二种计算方式,得到所述预估响应时间,包括:根据所述预设本地处理时长和所述当前待处理请求的数量,确定所述当前待处理请求的处理总时长;将所述处理总时长与所述发包时长相加,得到所述预估响应时间。5.根据权利要求1所述的路由信息同步方法,其特征在于,所述路由同步请求包括路由版本标识;所述获取所述路由同步请求对应的待同步路由信息,包括:若确定预设缓存区域中存在所述路由版本标识,从所述预设缓存区域中获取所述路由版本标识对应的路由信息,将所述路由信息作为所述待同步路由信息;或者;若确定所述预设缓存区域中不存在所述路由版本标识,从本地内存中获取所述路由版本标识对应的待同步路由信息。6.根据权利要求1所述的路由信息同步方法,其特征在于,所述在当前网络带宽值小于等于预设网络带宽值时,将所述待同步路由信息发送至所述客户端之前,所述方法还包括:获取所述客户端的超时重试时间;获取待处理请求缓冲区的当前占用值和最大占用值;
在所述超时重试时间大于所述预估响应时间的第一约束条件和/或所述最大占用值大于所述当前占用值的第二约束条件,以及网络带宽限制条件下,确定所述预设网络带宽值。7.根据权利要求6所述的路由信息同步方法,其特征在于,所述获取待处理请求缓冲区的当前占用值,包括:确定所述待处理请求缓冲区中各待处理请求对应的路由信息回包中未发送数据量;根据所述各待处理请求对应的路由信息回包中未发送数据量和所述待处理请求缓冲区中待处理请求的数量确定所述当前占用值。8.根据权利要求1所述的路由信息同步方法,其特征在于,所述方法还包括:在所述当前网络带宽值大于所述预设网络带宽值时,将所述待同步路由信息存放至待发送缓存区域,直至所述当前网络带宽值小于等于所述预设网络带宽值。9.根据权利要求1所述的路由信息同步方法,其特征在于,所述方法还包括:若所述预估响应时间大于所述预设时间,向所述客户端返回拒绝所述路由同步请求的指示信息。10.一种路由信息同步装置,其特征在于,所述装置包括:第一确定模块,用于在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定所述路由同步请求的预估响应时间;所述预估响应时间表征从接收到所述路由同步请求的时刻起,至发送完所述路由同步请求对应的路由信息回包的时刻所经历的时间;获取模块,用于若所述预估响应时间小于等于预设时间,获取所述路由同步请求对应的待同步路由信息;发送模块,用于在当前网络带宽值小于等于预设网络带宽值时,将所述待同步路由信息发送至所述客户端;所述预设网络带宽值表征本地正常工作时的最大网络带宽值。11.一种路由信息同步系统,其特征在于,所述系统包括路由信息同步装置路由信息管理装置;所述路由信息管理装置,用于维护路由信息;在所述路由信息更新后,向所述路由信息同步装置发送更新的路由版本标识和路由信息;所述路由信息管理装置,还用于在接收到客户端发送的心跳信息时,确定所述客户端对应的至少一个路由信息同步装置标识,向所述客户端返回所述至少一个路由信息同步装置标识,以使所述客户端向所述至少一个路由信息同步装置标识中任一路由信息同步装置标识对应的路由信息同步装置发送路由同步请求;所述路由信息同步装置,包括:第一确定模块,用于在接收到所述客户端发送的路由同步请求时,基于当前待处理请求信息确定所述路由同步请求的预估响应时间;所述预估响应时间表征从接收到所述路由同步请求的时刻起,至发送完所述路由同步请求对应的路由信息回包的时刻所经历的时间;获取模块,用于若所述预估响应时间小于等于预设时间,获取所述路由同步请求对应的待同步路由信息;发送模块,用于在当前网络带宽值小于等于预设网络带宽值时,将所述待同步路由信息发送至所述客户端;所述预设网络带宽值表征本地正常工作时的最大网络带宽值。12.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-9任一项所述的路由信息同步方法。
13.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-9任一项所述的路由信息同步方法。14.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-9任一项所述的路由信息同步方法。
技术总结
本申请公开了一种路由信息同步方法及相关设备,该方法包括:在接收到客户端发送的路由同步请求时,基于当前待处理请求信息确定路由同步请求的预估响应时间;预估响应时间表征从接收到路由同步请求的时刻起,至发送完路由同步请求对应的路由信息回包的时刻所经历的时间;若预估响应时间小于等于预设时间,获取路由同步请求对应的待同步路由信息;在当前网络带宽值小于等于预设网络带宽值时,将待同步路由信息发送至客户端;预设网络带宽值表征本地正常工作时的最大网络带宽值。如此,可以解决现有的路由同步方式存在同步不及时的问题。决现有的路由同步方式存在同步不及时的问题。决现有的路由同步方式存在同步不及时的问题。
技术研发人员:张煜
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.03.17
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/