一种数据处理方法及相关设备与流程

文档序号:37277611发布日期:2024-03-12 21:13阅读:16来源:国知局
一种数据处理方法及相关设备与流程

本技术涉及存储,尤其涉及一种数据处理方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。


背景技术:

1、随着信息化技术的不断发展,越来越多的产业应用采用信息化部署方式,由此产生了大量的数据。为了降低数据的存储成本并保障数据的可靠性,业界提出了纠删码(erasure code,ec)技术。ec具体是将数据分成多组数据块,然后根据每组数据块计算得到校验块,将该组数据块和校验块分散存储在分布式存储系统的不同的节点。

2、其中,一组数据块和基于这组数据块通过校验生成的校验块的集合称作ec条带(stripe)。为保证数据一致性,数据的读取和修改操作通常由条带中的第一个数据块(例如是编号为d0的数据块)所在的节点完成。其中,条带中的第一个数据块所在的节点也可以称作主节点,条带中的其他数据块所在的节点以及校验块所在的节点称作从节点。

3、在存储数据块的节点或磁盘损坏的情况下,ec条带可以缺失至少一个数据块。为了重构数据,通常需要读取当前ec条带中的其他数据块以及至少一个校验块,通过异或计算等方式重构出缺失的数据块。

4、然而,分布式存储系统在重构数据时通常是针对多个ec条带并发重构,增加了读写数据块的随机性,进而增加了重构时间。


技术实现思路

1、本技术提供了一种数据处理方法,该方法通过将多路异步请求归并到同一请求中,增加ec条带重构过程中磁盘输入输出(input output,io)的顺序性,提升磁盘吞吐率,解决大量异步io并发执行在磁盘上形成随机读写,导致磁盘吞吐量急剧下降,从而致使重构性能下降的问题。本技术还提供了该方法对应的装置、电子设备、分布式存储系统、计算机可读存储介质、计算机程序产品。

2、第一方面,本技术提供一种数据处理方法。该方法可以由分布式存储系统中主节点执行。分布式存储系统中的多个节点分散存储有ec条带的数据块和校验块。例如,每个节点可以存储一个数据块或一个校验块,不同节点存储不同数据块或校验块。其中,存储ec条带中第一个数据块的节点可以视为主节点,其他节点可以视为从节点。

3、具体地,主节点可以获取多路并发的请求,多路并发的请求中的每一路请求用于重构一个ec条带,然后主节点根据多路并发的请求中每一路请求的io地址,对多路并发的请求合并,合并后的请求用于指示连续地址段,接着主节点可以根据合并后的请求,重构上述ec条带。

4、在该方法中,多路并发的请求可以归并到同一请求中,归并后的请求所指示的地址与多路并发的请求所指示的地址相比更加连续,如此增加ec条带重构过程中磁盘io的顺序性,提升磁盘吞吐率,解决大量异步io并发执行在磁盘上形成随机读写,导致磁盘吞吐量急剧下降,从而致使重构性能下降的问题。

5、在一些可能的实现方式中,主节点可以根据多路并发的请求中每一路请求的io地址对多路并发的请求排序,然后将排序后的请求中的io地址按照顺序合并,获得合并后的请求。其中,合并后的请求用于顺序io。如此,可以将随机io变成顺序io,大幅提升io性能,进而缩短重构时间,提升重构性能。

6、在一些可能的实现方式中,所述每一路请求的io地址包括起始地址或结束地址。其中,结束地址也可以根据起始地址和io长度计算得到。相应地,主节点对多路并发的请求进行排序时,可以根据多路并发的请求中每一路请求的起始地址对多路并发的请求排序。在一些示例中,主节点也可以根据多路并发的请求中每一路请求的结束地址对多路并发的请求排序。

7、该方法通过提供多种对多路并发的请求进行排序的方式,从而为多路并发的请求归并提供帮助,具有较高可用性。

8、在一些可能的实现方式中,主节点可以根据合并后的请求中的连续地址段,按照磁盘的磁头转动方向,单向执行io操作,以重构ec条带。该方法采用单向策略执行顺序化的读写操作,提高磁盘吞吐率,从而提高重构带宽。

9、在一些可能的实现方式中,主节点在重构ec条带时,可以根据合并后的请求,缓存多路并发的请求重构所述ec条带所需要读取的临时数据。其中,临时数据包括所述ec条带剩余的数据块和校验块。然后,主节点可以根据临时数据,获得ec条带中丢失的数据块的副本,接着在分布式存储系统中写入ec条带中丢失的数据块的副本,以重构所述ec条带。

10、该方法通过缓存重构ec条带所需要的临时数据,并基于临时数据恢复丢失的数据块,然后以顺序io模式写入丢失的数据块的副本,重构ec条带。如此,减少了重构ec条带过程中的读写开销,提升了重构性能。

11、在一些可能的实现方式中,主节点还可以存储副本的元信息,该元信息包括位置信息。其中,位置信息可以通过地址表征,例如通过逻辑地址表征,当后续需要查询该数据块、修改该数据块、删除该数据块时,可以通过该位置信息快速定位出数据块,由此提高响应效率。

12、在一些可能的实现方式中,主节点可以在同一缓存介质中缓存所述多路并发的请求重构所述ec条带所需要读取的临时数据。具体地,主节点可以采用大容量缓存,如固态硬盘、存储级存储器,来缓存临时数据,从而实现在同一缓存介质中缓存临时数据。

13、由于缓存能够存储的数据量足够大,因此,可以缩小访问的地址跨度,提高磁盘的吞吐率,进一步提升重构性能。

14、在一些可能的实现方式中,多路并发的请求为异步请求。异步请求,也称作异步io请求、异步io。异步io是计算机操作系统对输入输出的一种处理方式:发起io请求的线程不等io操作完成,就继续执行随后的代码,io结果用其他方式通知发起io请求的程序。

15、在该方法中,异步请求可以无需立即执行,因此,可以将多路异步请求归并,从而实现将随机io变更为顺序io,提升重构性能。

16、在一些可能的实现方式中,针对每一个存在数据丢失的ec条带,主节点可以获取多个读请求和至少一个写请求,其中,多个读请求用于读取所述ec条带中剩余的数据块和校验块,至少一个写请求用于写入所述ec条带中丢失的数据块,丢失的数据块根据剩余的数据块和校验块确定。

17、如此,可以实现并发地ec重构,保障ec条带的可靠性,而且该方法通过归并多路请求,减少io的随机性,提升重构性能。

18、第二方面,本技术提供一种数据处理装置。所述装置部署于分布式存储系统中的主节点,所述装置包括:

19、获取模块,用于获取多路并发的请求,所述多路并发的请求中的每一路请求用于重构一个纠删码ec条带;

20、合并模块,用于根据所述多路并发的请求中每一路请求的输入输出io地址,对所述多路并发的请求合并,合并后的所述请求用于指示连续地址段;

21、重构模块,用于根据合并后的所述请求,重构所述ec条带。

22、在一些可能的实现方式中,所述合并模块具体用于:

23、根据所述多路并发的请求中每一路请求的io地址对所述多路并发的请求排序;

24、将排序后的所述请求中的io地址按照顺序合并,获得合并后的所述请求,所述合并后的所述请求用于顺序io。

25、在一些可能的实现方式中,所述每一路请求的io地址包括起始地址或结束地址;

26、所述合并模块具体用于:

27、根据所述多路并发的请求中每一路请求的起始地址对所述多路并发的请求排序;或者,

28、根据所述多路并发的请求中每一路请求的结束地址对所述多路并发的请求排序。

29、在一些可能的实现方式中,所述重构模块具体用于:

30、根据合并后的所述请求中的连续地址段,按照磁盘的磁头转动方向,单向执行io操作,以重构所述ec条带。

31、在一些可能的实现方式中,所述获取模块具体用于:

32、针对每一个存在数据丢失的所述ec条带,获取多个读请求和至少一个写请求,所述多个读请求用于读取所述ec条带中剩余的数据块和校验块,所述至少一个写请求用于写入所述ec条带中丢失的数据块,所述丢失的数据块根据所述剩余的数据块和校验块确定。

33、在一些可能的实现方式中,所述重构模块具体用于:

34、根据所述合并后的所述请求,缓存所述多路并发的请求重构所述ec条带所需要读取的临时数据,所述临时数据包括所述ec条带剩余的数据块和校验块;

35、根据所述临时数据,获得所述ec条带中丢失的数据块的副本;

36、在所述分布式存储系统中写入所述ec条带中丢失的数据块的副本,以重构所述ec条带。

37、在一些可能的实现方式中,所述重构模块还用于:

38、存储所述副本的元信息,所述元信息包括位置信息。

39、在一些可能的实现方式中,所述重构模块具体用于:

40、在同一缓存介质中缓存所述多路并发的请求重构所述ec条带所需要读取的临时数据。

41、在一些可能的实现方式中,所述多路并发的请求为异步请求。

42、第三方面,本技术提供一种分布式存储系统。该分布式存储系统包括主节点和从节点。其中,主节点用于执行本技术第一方面所述的数据处理方法。

43、具体地,主节点用于获取多路并发的请求,多路并发的请求中的每一路请求用于重构一个ec条带,主节点还用于根据多路并发的请求中每一路请求的io地址,对多路并发的请求合并,合并后的请求用于指示连续地址段,然后根据合并后的请求,重构ec条带。

44、第四方面,本技术提供一种电子设备。所述电子设备包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得电子设备执行如第一方面或第一方面的任一种实现方式所述的数据处理方法。

45、第五方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示电子设备执行上述第一方面或第一方面的任一种实现方式所述的数据处理方法。

46、第六方面,本技术提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述第一方面或第一方面的任一种实现方式所述的数据处理方法。

47、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

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