一种文件同步的方法及装置制造方法及图纸

技术编号:27772063 阅读:33 留言:0更新日期:2021-03-23 12:51
本申请提供一种文件同步的方法及装置,包括:主节点按第一发送速度,向从节点发送第一写请求;主节点接收从节点发送的至少一个响应,其中,任一个响应对应一个第一写请求,从任一个从节点接收的任一个响应表示所述第一写请求已保存;在满足限速条件的情况下,以第二发送速度向从节点发送第二写请求;第二发送速度小于第一发送速度;限速条件为:未向所述主节点发送n个响应的从节点数量超过设定的节点数量阈值,和/或未向所述主节点发送n个响应的至少一个从节点发送的响应数量平均值小于设定响应阈值。因主节点调控向从节点发送写请求的速度,控制了进行同步的节点的落后程度,缓解因某些节点故障而一段时间内无法写入的问题。

【技术实现步骤摘要】
一种文件同步的方法及装置
本申请涉及通信
,尤其涉及一种文件同步的方法及装置。
技术介绍
为了便于文件管理,分布式网络系统中一般可以包括多个分区,每个分区中包括至少一个节点,在同一个分区内的节点中保存有相同的文件副本。为了保证分布式网络系统的稳定性以及可靠性,系统需要对某个分区中的文件进行写请求时,通常需要将写请求发送到对应分区中的所有节点上,使所述分区中所有节点全部执行所述写请求,保证所述分区中的所有节点的数据具有一致性。这样,当该分区中的某个节点故障时,可以通过该分区中的其他节点进行数据修复,同时,若系统需要读写该分区内文件时,其他节点可以继续执行相应操作,从而提升了整个分布式网络系统的可用性(Availability)。现有技术中系统一般采用Raft协议执行写操作。所述Raft协议是一种通过日志的复制,使得包含2N+1个节点的分区中,有N+1个节点正常则能正常提供服务,从而实现分布式系统一致性的一种算法。现有Raft协议写数据的流程为:如图1所示,分布式网络系统的任一分区中有2N+1(N>=1)个节点,其中包含1个主节点(Leader)和2N个从节点(Follower)。Leader收到客户端发送的写请求后,会将所述写请求记录到本地日志中,同时,还会将所述写请求以日志的形式发送给所述分区中的Follower。所述分区中的Follower将接收到的日志中的写请求记录到本地日志以实现日志同步,并在完成日志同步后发送一个回复给Leader。当Leader接收到N+1(包括Leader自己)个回复后,对客户端进行响应,以通知客户端分区接收并成功处理该写请求。上述分布式网络系统进行写请求的方法存在的主要问题是:由于Leader收到N+1个节点(A类节点,即分区中日志同步较快的节点)的回复后就会返回,剩下的N个节点(B类节点,即分区中日志同步较慢的节点)在日志同步过程中可能会有落后。与此同时,随着接收到的写操作请求越来越多,分区中节点进行日志同步的落后程度将越来越大。而一旦A类节点中有部分节点故障,会在一段时间内,Leader无法收到N+1个回复。而B类节点因落后较大,不能及时顶替A类节点向Leader发送回复,从而导致长时间不能向客户端进行响应,大大增加了响应时延。
技术实现思路
本申请提供一种文件同步的方法及设备,用以避免现有技术分布式网络系统进行文件同步时节点间同步进度相差较大的问题。第一方面,本申请实施例提供一种文件同步的方法,包括:主节点按照第一发送速度,向m个从节点中的每个从节点发送n个第一写请求,其中,所述主节点与所述m个从节点保存有相同的文件,所述n个第一写请求用于对所述文件进行写操作,n、m为大于1的整数;所述主节点分别从p个从节点接收至少一个响应,其中,任一个响应对应一个第一写请求,从任一个从节点接收的任一个响应表示所述第一写请求已保存,p为小于或等于m的正整数;在满足限速条件的情况下,所述主节点以第二发送速度向所述从节点发送f个第二写请求;其中,所述第二发送速度小于所述第一发送速度;所述限速条件为第一从节点的数量低于设定的节点数量阈值,和/或所述主节点接收的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点我所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应数量少于n个的从节点。基于该方案,本申请实施例中在进行文件同步过程中,所述主节点先将接收到的客户端发送的写请求进行存储,然后按照一定的速度向从节点以日志的形式发送写请求,并监控从节点同步的状态,当所述从节点同步状态满足限速条件时,调控所述主节点以日志形式向从节点发送写请求的速度,以实现控制进行同步的节点的落后程度,从而缓解在某些节点故障后,系统在一段时间内无法写入的问题。在一种可能的实现方式中,所述多个从节点为所述k个第二从节点中所述主节点接收的响应数量最少的a个从节点,或者为所述k个第二从节点中所述主节点接收的响应数量最多的b个从节点。在一种可能的实现方式中,所述第二发送速度为预设的,或者为所述主节点根据所述第一发送速度和速度差得到的,所述速度差为所述主节点根据所述多个从节点发送的响应数量平均值与预设的响应阈值确定的。在一种可能的实现方式中,所述主节点向m个从节点中的每个从节点发送n个第一写请求之前,所述主节点从本地缓存的写请求中读取所述n个第一写请求;或所述主节点从外部的存储设备接收所述n个第一写请求。在一种可能的实现方式中,所述主节点分别向m个从节点发送n个第一写请求之前,所述主节点将所述n个第一写请求存储到本地日志中。第二方面,本申请实施例还提供一种文件同步的方法,包括:缓冲设备按照第一发送速度,向主节点发送n个第一写请求,其中,所述n个第一写请求用于对所述文件进行写操作,n为大于1的整数;所述缓冲设备获取所述主节点接收的响应;在满足限速条件的情况下,所述缓冲设备以第二发送速度向所述主节点发送f个第二写请求;其中,任一个响应对应一个第一写请求,任一个从节点发送的任一个响应表示所述第一写请求已保存;所述第二发送速度小于所述第一发送速度;所述限速条件为第一从节点的数量低于设定的节点数量阈值,和/或所述缓冲设备从所述主节点获取的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点我所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应数量少于n个的从节点。基于该方案,本申请实施例中在进行文件同步过程中,所述缓冲设备先将接收到的客户端发送的写请求进行存储,然后按照一定的速度发送给主节点,然后主节点再将接收到的写请求向从节点以日志的形式发送。所述缓冲设备监控从节点同步的状态,当所述从节点同步状态满足限速条件时,调控向所述主节点发送写请求的速度,以实现控制进行同步的节点的落后程度,从而缓解在某些节点故障后,系统在一段时间内无法写入的问题。在一种可能的实现方式中,所述多个从节点为所述k个第二从节点中所述主节点接收的响应数量最少的a个从节点,或者为所述k个第二从节点中所述主节点接收的响应数量最多的b个从节点。在一种可能的实现方式中,所述第二发送速度为预设的,或者为所述主节点根据所述第一发送速度和速度差得到的,所述速度差为所述缓冲设备根据所述多个从节点发送的响应数量平均值与预设的响应阈值确定的。在一种可能的实现方式中,所述缓冲设备按照第一发送速度,向主节点发送n个第一写请求之前,还包括:所述缓冲设备从本地缓存的写请求中读取所述n个第一写请求;或所述缓冲设备从外部的存储设备接收所述n个第一写请求。在一种可能的实现方式中,所述缓冲设备通过下列方式确定是否满足限速条件:所述缓冲设备获取所述主节点中用于存储各个从节点已经同步日志的数组;所述缓冲设备根据所述数组确定所述从节点的同步状态,并根据所述同步本文档来自技高网
...

【技术保护点】
1.一种文件同步的方法,其特征在于,包括:/n主节点按照第一发送速度,向m个从节点中的每个从节点发送n个第一写请求,其中,所述主节点与所述m个从节点保存有相同的文件,所述n个第一写请求用于对所述文件进行写操作,n、m为大于1的整数;/n所述主节点分别从p个从节点接收至少一个响应,其中,任一个响应对应一个第一写请求,从任一个从节点接收的任一个响应表示所述第一写请求已保存,p为小于或等于m的正整数;/n在满足限速条件的情况下,所述主节点以第二发送速度向所述从节点发送f个第二写请求;/n其中,所述第二发送速度小于所述第一发送速度;所述限速条件为:第一从节点的数量低于设定的节点数量阈值,和/或所述主节点接收的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点为所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应少于n个的从节点。/n

【技术特征摘要】
1.一种文件同步的方法,其特征在于,包括:
主节点按照第一发送速度,向m个从节点中的每个从节点发送n个第一写请求,其中,所述主节点与所述m个从节点保存有相同的文件,所述n个第一写请求用于对所述文件进行写操作,n、m为大于1的整数;
所述主节点分别从p个从节点接收至少一个响应,其中,任一个响应对应一个第一写请求,从任一个从节点接收的任一个响应表示所述第一写请求已保存,p为小于或等于m的正整数;
在满足限速条件的情况下,所述主节点以第二发送速度向所述从节点发送f个第二写请求;
其中,所述第二发送速度小于所述第一发送速度;所述限速条件为:第一从节点的数量低于设定的节点数量阈值,和/或所述主节点接收的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点为所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应少于n个的从节点。


2.如权利要求1所述的方法,其特征在于,所述多个从节点为所述k个第二从节点中所述主节点接收的响应数量最少的a个从节点,或者为所述k个第二从节点中所述主节点接收的响应数量最多的b个从节点。


3.如权利要求1或2所述的方法,其特征在于,所述第二发送速度为预设的,或者为所述主节点根据所述第一发送速度和速度差得到的,所述速度差为所述主节点根据所述多个从节点发送的响应数量平均值与预设的响应阈值确定的。


4.如权利要求1~3任一项所述的方法,其特征在于,所述主节点向m个从节点中的每个从节点发送n个第一写请求之前,还包括:
所述主节点从本地缓存的写请求中读取所述n个第一写请求;或
所述主节点从外部的存储设备接收所述n个第一写请求。


5.如权利要求1-4任一项所述的方法,其特征在于,所述主节点向m个从节点中的每个从节点发送n个第一写请求之前,还包括:
所述主节点将所述n个第一写请求存储到本地日志中。


6.一种主节点,其特征在于,包括:处理器、通信接口;
所述通信接口,用于接收和发送数据;
所述处理器,用于:
通过所述通信接口按照第一发送速度,向m个从节点中的每个从节点发送n个第一写请求,其中,所述主节点与所述m个从节点保存有相同的文件,所述n个第一写请求用于对所述文件进行写操作,所述n、所述m为大于1的整数;
通过所述通信接口分别从p个从节点接收至少一个响应,其中,任一个响应对应一个第一写请求,从任一个从节点接收的任一个响应表示所述第一写请求已保存,所述p为小于或等于所述m的正整数;
在满足限速条件的情况下,所述主节点以第二发送速度向所述从节点发送f个第二写请求;
其中所述第二发送速度小于所述第一发送速度;所述限速条件为:第一从节点的数量低于设定的节点数量阈值,和/或所述主节点接收的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点我所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应数量少于n个的从节点。


7.如权利要求6所述的主节点,其特征在于,所述多个从节点为所述k个第二从节点中所述主节点接收的响应数量最少的a个从节点,或者为所述k个第二从节点中所述主节点接收的响应数量最多的b个从节点。


8.如权利要求6或7所述的主节点,其特征在于,所述第二发送速度为预设的,或者为所述主节点根据所述第一发送速度和速度差得到的,所述速度差为所述主节点根据所述多个从节点发送的响应数量平均值与预设的响应阈值确定的。


9.如权利要求6~8任一项所述的主节点,其特征在于,
所述主节点还包含存储器,用于缓存接收的第一写请求;所述处理器在向m个从节点中的每个从节点发送n个第一写请求之前,还用于:从所述存储器中读取所述n个第一写请求;或
所述处理器在向m个从节点中的每个从节点发送n个第一写请求之前,还用于:通过所述通信接口从外部的存储设备接收所述n个第一写请求。


10.如权利要求6~9任一项所述的主节点,其特征在于,所述处理器还用于:
将所述n个第一写请求存储到本地日志中。


11.一种文件同步的方法,其特征在于,包括:
缓冲设备按照第一发送速度,向主节点发送n个第一写请求,其中,所述n个第一写请求用于对所述文件进行写操作,n为大于1的整数;
所述缓冲设备获取所述主节点接收的响应;
在满足限速条件的情况下,所述缓冲设备以第二发送速度向所述主节点发送f个第二写请求;
其中,任一个响应对应一个第一写请求,任一个从节点发送的任一个响应表示所述第一写请求已保存;所述第二发送速度小于所述第一发送速度;所述限速条件为第一从节点的数量低于设定的节点数量阈值,和/或所述缓冲设备从所述主节点获取的来自多个从节点的响应的数量的平均值小于阈值,所述第一从节点为所述m个从节点中所述主节点接收到n个响应的从节点,所述多个从节点我所述m个从节点中的全部或者部分第二从节点,所述第二从节点为所述m个从节点中,所述主节点接收到的响应数量少于n个的从节点。


12.如权利要求11所述的方法,其特征在于,所述多个从节点为所述k个第二从节点中所述主节点接收的响应数量最少的a个从节点,或者为所述k个第二从节点中所述主节点接收的响应数量最多的b个从节点。


13.如权利要求11或12所述的方法,其特征在于,所述第二发送速度为...

【专利技术属性】
技术研发人员:彭冲郭志建刘存伟辛润雪何磊旺
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1