追加写模式下的数据处理方法、装置、程序产品及介质与流程

文档序号:41493880发布日期:2025-04-01 19:18阅读:15来源:国知局
追加写模式下的数据处理方法、装置、程序产品及介质与流程

本发明涉及数据存储,特别是涉及一种追加写模式下的数据处理方法、装置、程序产品及介质。


背景技术:

1、在分布式存储使用纠删方式进行容错保护的应用场景中,为避免纠删带来的写放大问题,通常会搭配追加写的方式来处理输入输出(io)写入请求。分布式存储的接入层在收到写请求后会将请求转发到追加写层,追加写层会进行日志写,保证数据安全。完成之后进行数据与操作的聚合,聚合后数据部分以条带对齐的方式写入到纠删层,操作与元数据部分在本层进行事务处理保存到元数据记录中。同理,接入层在接收到读请求时也需将请求转发到追加写层以获取最新的元数据信息,从而根据元数据信息确定从纠删层中读取数据的具体位置,然后向纠删层发起多个数据片段的读请求,当请求回应到追加写层以后,对数据进行组合,进行客户端请求回应。

2、由此可见,在这种请求处理方式中,请求数据在接入层、追加写层、纠删层进行了多次转发,最终在各个分片进行数据落盘。这种多次转发的方式会导致大量的网络带宽、中央处理器(central processing unit,cpu)及内存等资源的占用,以及请求处理时延的增加等问题,还存在处理效率低的问题。

3、所以,现在本领域的技术人员亟需要一种追加写模式下的数据处理方法,以解决目前追加写模式存在多次数据转发所导致的一系列问题。


技术实现思路

1、本发明的目的是提供一种追加写模式下的数据处理方法、装置、程序产品及介质,用于解决目前追加写模式存在多次数据转发所导致的一系列问题。

2、为解决上述技术问题,本发明提供一种追加写模式下的数据处理方法,应用于分布式存储集群,所述分布式存储集群包括:接入层、追加写层和纠删层;应用于所述接入层侧,包括:

3、当接收到条带对齐的写请求后,向所述追加写层申请用于存储待写入数据段的内部对象编号;

4、对所述待写入数据段进行纠删编码计算以得到对应的各分片数据;

5、根据所述内部对象编号将对应的各所述分片数据分别推送至纠删层中对应放置组的组内成员中,以实现数据落盘。

6、在一种可能的实施例中,根据所述内部对象编号将编码得到的各分片数据分别推送至纠删层中对应放置组的组内成员中,以实现数据落盘包括:

7、根据所述内部对象编号确定所述待写入数据段写入所述纠删层时,所对应的所述放置组以及该所述放置组内的所述组内成员;

8、对所述待写入数据段进行纠删编码计算,并将编码得到的各所述分片数据分别映射至各对应的所述组内成员中;

9、将各所述分片数据推送至对应的所述组内成员中;

10、待接收到各所述组内成员返回数据推送成功回应后,向各所述组内成员中的主成员发起元数据更新及数据落盘请求;

11、其中,待更新的元数据还包括:正向关系信息;所述正向关系信息指示所述待写入数据段和纠删编码计算后得到的各所述分片数据之间的对应关系。

12、在一种可能的实施例中,当所述组内成员写入数据失败时,本方法还包括:

13、向所述主成员发起写请求;

14、其中,所述写请求携带有所述待写入数据段和所述内部对象编号,以便于所述主成员根据所述内部对象编号完成所述待写入数据段的纠删写入。

15、在一种可能的实施例中,在对所述待写入数据段进行纠删编码计算之前,本方法还包括:

16、确定所述待写入数据段对应的各所述组内成员是否均可以写入数据;

17、若是,则转至所述对所述待写入数据段进行纠删编码计算的步骤;

18、若否,则将其中不可写入数据的所述组内成员确定为不可写入状态;

19、其中,当所述组内成员为所述不可写入状态时,确定所述组内成员写入数据失败。

20、在一种可能的实施例中,若存在所述组内成员未返回所述数据推送成功回应,则本方法还包括:

21、将该所述组内成员确定为推送失败状态;

22、其中,当所述组内成员为所述推送失败状态时,确定该所述组内成员写入数据失败。

23、在一种可能的实施例中,在向所述主成员发起元数据更新及数据落盘请求之后,本方法还包括:

24、若未接收到数据落盘成功回应,则确定所述组内成员写入数据失败。

25、在一种可能的实施例中,在实现数据落盘之后,本方法还包括:

26、向所述追加写层发送元数据提交请求,以便于所述追加写层将提交的元数据写入日志或将所述日志中对应的元数据进行更新;

27、其中,提交的元数据还包括:所述正向关系信息。

28、在一种可能的实施例中,本方法还包括:

29、当接收到读请求后,向所述追加写层发送正向关系信息及缓冲数据获取请求;

30、根据待读取数据段和所述追加写层返回的缓冲数据,判断是否还需要从所述纠删层中读取数据;

31、若需要,则通过所述正向关系信息从所述纠删层中读取目标数据;其中,所述目标数据为:基于获取到的所述缓冲数据,所述待读取数据段中仍缺失的数据;

32、将所述缓冲数据和所述目标数据进行组合,根据所述读请求要求的数据格式构造响应数据并返回。

33、在一种可能的实施例中,通过所述正向关系信息从所述纠删层中读取目标数据包括:

34、若所述目标数据需要进行纠删解码计算,则将待读取的所述目标数据按照条带进行聚合;

35、根据所述正向关系信息,确定在条带对齐读所述目标数据下所需要的各所述数据分片;

36、从所述纠删层对应的各所述分片中,读取对应的所述分片数据;

37、对读取到的所述分片数据进行纠删解码计算,以得到条带对齐读的所述目标数据。

38、在一种可能的实施例中,在通过所述正向关系信息从所述纠删层中读取目标数据之前,本方法还包括:

39、根据所述正向关系信息,确定所述目标数据对应的各所述分片数据在所述纠删层中的位置信息;

40、根据所述位置信息,判断各所述分片数据分别为数据片或是校验片;

41、若所述数据片存在缺失,则确定所述目标数据需要进行纠删解码计算。

42、在一种可能的实施例中,本方法还包括:

43、当接收到任意请求后,将所述请求以请求所操作的对象为粒度进行调度;

44、其中,不同对象的不同请求并发执行,同一对象的不同请求根据请求时间的先后顺序进行保序处理。

45、在一种可能的实施例中,所述请求时间为接收到所述请求时的系统时间;

46、则对所述请求进行保序处理包括:

47、当接收到所述请求时,将所述请求加入至请求队列的队尾;

48、其中,所述请求队列中排序靠前的所述请求堵塞排序靠后的所述请求,当位于所述请求队列队头的所述请求执行完毕后,触发下一所述请求的执行动作。

49、在一种可能的实施例中,当所述请求为条带对齐的写请求时,则对所述请求进行保序处理包括:

50、直接触发所述条带对齐的写请求向所述纠删层的数据写动作;并将所述条带对齐的写请求的向所述主成员发起元数据更新及数据落盘请求动作添加至所述请求队列的队尾。

51、为解决上述技术问题,本发明还提供一种追加写模式下的数据处理方法,应用于分布式存储集群,所述分布式存储集群包括:接入层、追加写层和纠删层;应用于所述追加写层侧,包括:

52、当接收到由接入层发送的内部对象编号获取请求后,发起内部对象编号申请事务;其中,所述内部对象编号获取请求为所述接入层在接收到条带对齐的写请求后所发起的;

53、获取所述内部对象编号事务成功时所申请到的所述内部对象编号;

54、将所述内部对象编号返回给所述接入层;其中,所述接入层在接收到所述内部对象编号后:对所述待写入数据段进行纠删编码计算以得到对应的各分片数据;根据所述内部对象编号将对应的各所述分片数据分别推送至纠删层中对应放置组的组内成员中,以实现数据落盘。

55、在一种可能的实施例中,还包括:

56、当接收到所述接入层发送的元数据提交请求时,判断日志中是否包含对应的元数据;

57、若否,则将所述元数据写入至所述日志中;

58、若是,则将更新所述日志中对应的所述元数据;

59、在一种可能的实施例中,还包括:

60、当接收到所述接入层发送的正向关系信息及缓冲数据获取请求时,根据待读取数据段从内存中匹配对应的缓冲数据;

61、获取所述内存中命中的所述缓冲数据,并将所述待读取数据段中未命中的数据部分作为目标数据;

62、从所述日志中获取与所述目标数据对应的正向关系信息;

63、将命中的所述缓冲数据和所述目标数据对应的正向关系信息作为响应结果返回至所述接入层。

64、为解决上述技术问题,本发明还提供一种追加写模式下的数据处理方法,应用于分布式存储集群,所述分布式存储集群包括:接入层、追加写层和纠删层;应用于所述纠删层侧,包括:

65、在各组内成员接收到所述接入层推送的分片数据之后,生成对应的任务编号以标识所述分片数据,并将所述分片数据保存在内存中;其中,所述分片数据由所述接入层在接收到条带对齐的写请求后,对待写入数据段进行纠删编码计算所得到;各所述分片数据被所述接入层基于从所述追加写层申请的内部对象编号分别推送至对应放置组中对应的各所述组内成员;

66、若各所述组内成员中的主成员接收到所述接入层发送的元数据更新请求,则生成携带所述任务编号但不携带数据的写事务,并将所述写事务发送至各所述组内成员;

67、当各所述组内成员接收到所述写事务时,根据所述任务编号,将所述内存中保存的对应所述分片数据更新至所述写事务中,并执行所述写事务。

68、在一种可能的实施例中,在将所述分片数据保存在内存中之后,本方法还包括:

69、返回当前的成员版本信息至所述接入层;

70、且在所述主成员接收到所述接入层发送的元数据更新请求时,本方法还包括:

71、根据所述元数据更新请求中携带的所述成员版本信息,检查所述元数据更新请求对应的所述分片数据是否在内存中保留;

72、若未保留,则返回异常信息。

73、为解决上述技术问题,本发明还提供一种追加写模式下的数据处理方法,应用于分布式存储集群,所述分布式存储集群包括:接入层、追加写层和纠删层;本方法包括:

74、当所述接入层接收到条带对齐的写请求后,向所述追加写层申请用于存储待写入数据段的内部对象编号;

75、所述追加写层发起内部对象编号申请事务,并将申请得到所述内部对象编号返回给所述接入层;

76、所述接入层根据所述内部对象编号将对应的各所述分片数据分别推送至纠删层中对应放置组的组内成员中;

77、所述纠删层中各所述组内成员对接收到的所述分片数据进行数据落盘。

78、为解决上述技术问题,本发明还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如上所述的追加写模式下的数据处理方法的步骤。

79、为解决上述技术问题,本发明还提供一种追加写模式下的数据处理装置,包括:

80、存储器,用于存储计算机程序;

81、处理器,用于执行所述计算机程序时实现如上所述的追加写模式下的数据处理方法的步骤。

82、为解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的追加写模式下的数据处理方法的步骤。

83、本发明提供的一种追加写模式下的数据处理方法,针对条带对齐的数据写请求进行优化。通过在接入层接收到写请求及待写入数据段之后,向追加写层申请用于存储待写入数据段的内部对象编号,从而在接入层实现待写入数据段在以条带对齐的形式写入至纠删层中,所需要写入纠删层中各分片所在的各成员。进而,接入层可直接对待写入数据段进行纠删编码计算,并将编码得到的各分片数据(原数据片和校验数据片)直接写入至纠删层中,无需追加写层转发。由此可见,本方法可以减少纠删场景中对条带对齐写过程中存储集群的网络转发带宽量,进而降低存储集群的系统资源消耗,并提升条带对齐请求的处理性能。

84、本发明提供的追加写模式下的数据处理装置、程序产品及非易失性存储介质,与上述方法对应,效果同上。

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