技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于纠删码的分布式存储系统中稀疏读的方法与流程  >  正文

一种基于纠删码的分布式存储系统中稀疏读的方法与流程

  • 国知局
  • 2024-08-05 11:42:00

本发明属于计算机存储,尤其涉及一种基于纠删码的分布式存储系统中稀疏读的方法。

背景技术:

1、纠删码存储是分布式存储系统中常用的数据存储方式,和多副本存储方式相比,ec具有存储空间利用率高的特点,降低了存储的成本,而且其可靠性接近多副本存储方式。

2、随着新一代存储介质的不断发展,ssd在分布式存储领域得到广泛的使用。为了充分发挥新一代存储介质的性能优势,业界通常在数据的持久化层采用追加写的方式存储数据,将数据块的数据按照条带进行编码,然后把每个条带单元存储到不同的盘上,通过在持久化层之上构建用户数据到数据块的索引满足用户覆盖写的语义。而对于读来说,用户数据的索引主要是标识数据块上哪些是有效数据,对于持久化层来说就是对数据块的随机读。

3、对于数据块的读,客户端会根据用户请求的区间,根据ec的配置转化成对每个分片的读请求,然后将读请求通过网络分发给相应的分片节点。分片节点对收到的读请求进行处理,从内存或磁盘获取到要读取的数据后响应客户端。客户端收集到足够的分片响应后对数据进行拼接或ec解码(如果有数据分片缺失需要进行解码计算),最后将数据返回给用户。

4、如果用户的数据进行了覆盖写,那么在持久化层的数据块上就会产生无效的用户数据,用户的有效数据在持久化层数据块上是不连续的,如果采用传统读取数据的方式,就是对每个小的连续区间分别进行读取,在这个数据块上有多少需要读的小区间,就需要向持久化层下发多少次读请求。虽然发送和回调读请求都是异步的,但由于是ec存储,每个数据分片节点存储的数据都是不同的,用户的每次读取在客户端都需要将请求转发给相关的数据分片节点,等数据分片节点成功读到数据后再通过网络触发客户端的回调,相当于用户的一次读取就需要客户端执行多次回调。因此,用户频繁的调用会增加大大增加cpu的负载,影响cpu处理其他逻辑。因此目前的基于纠删码的分布式存储中存在随机读取同一数据块占用cpu资源高的问题。

5、对于上述问题,业界做过一些优化。比如对一定时间范围内的读取请求根据分片节点进行分类,对落到同一分片节点的连续或重复读取请求进行合并处理,然后各自分发给分片节点统一处理,如果这段时间内有大量随机读请求,这样做可以减少读请求的下发和回调次数,提高平均处理效率。但这种处理方式只有在预设时间内确实存在大量随机读请求才有效,如果预设时间范围内的读请求很少,少量的请求需要等到满足预设时间后才能下发,反而会增加读的延迟,降低读的效率。而且,读请求的数量是在动态变化,很难确定一个合适的用于合并请求的预设时间。

技术实现思路

1、本发明所要解决的技术问题是针对纠删码分布式存储系统中,大量的随机读占用cpu资源过高的问题,提出了一种稀疏读的方法;能够大幅降低cpu的负载,节约计算资源。

2、本发明为解决上述技术问题采用以下技术方案:

3、一种基于纠删码的分布式存储系统中稀疏读的方法,具体包含如下步骤;

4、步骤1,稀疏读请求转化:将用户的稀疏读请求转化成对相关数据分片节点的稀疏读请求;

5、步骤2,数据预索引:记录每个区间请求的数据在客户端解析的条带集中的位置;

6、步骤3,分片稀疏读处理:在数据分片节点的内存或磁盘中收集稀疏读请求的数据;

7、步骤4,数据解析和重试:处理收到的服务端响应。

8、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤1中,调用稀疏读方法,将对多个数据分片的不同区间的读取进行转化,根据集群的拓扑与路由进行寻址,查找到同一个数据存储节点的上的数据分片的不同区间读取请求。

9、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤3中,对某个数据分片的区间数据的读取,计算对应的ec条带分布在哪些条带节点上,某个数据分片不同区间数据的读取请求,经过条带位置计算后得到在条带集中的位置,并且进行记录以便于后期数据的解析拼接。

10、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤4中,在数据分片节点上运行的服务端会接收到对多个数据分片的不同区间的数据读取,根据数据分片所在的磁盘读取数据。

11、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤4中,如果数据在内存中就先直接从内存中直接读取数据,将这些区间的数据根据在数据分片上的偏移进行排序,回复给客户端,客户端获取到数据分片的各个区间的数据,根据之前记录的ec条带集的位置,将数据进行拼接恢复条带上的数据。

12、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤4中,如果收集到分片节点数据,则进行数据的解析和拼接,如果收集不到分片节点数据,则稀疏读失败,给所有的数据分片节点再次下发稀疏读请求;重试只进行一次,第二次读失败就认为用户本次的稀疏读失败。

13、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,在步骤1中,数据存储节点的上的数据存储方式是基于纠删码的分布式存储。

14、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,用户的数据以追加写的方式写入分布式存储层的数据块中。

15、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,包含分布式存储系统,所述分布式存储系统包含客户端稀疏读请求转化模块、数据预索引模块、服务端分片稀疏读处理模块、数据解析和重试模块。

16、作为本发明一种基于纠删码的分布式存储系统中稀疏读的方法的进一步优选方案,客户端稀疏读请求转化模块,用于将用户的稀疏读请求转化成对相关数据分片节点的稀疏读请求;

17、数据预索引模块,用于记录每个区间请求的数据在客户端解析的条带集中的位置;

18、服务端分片稀疏读处理模块,用于在数据分片节点的内存或磁盘中收集稀疏读请求的数据;收集完成后,按照子区间的顺序将数据一次发送给客户端;

19、数据解析和重试模块,用于负责处理收到的服务端响应。

20、本发明采用以上技术方案与现有技术相比,具有以下技术效果:

21、1、本发明的主要发明点是在客户端提供稀疏读的能力,以及和稀疏读功能相关的请求转化,数据索引,异常处理。通过稀疏读来减少异步请求发送的次数,从而减少cpu的占用,提高读的效率;

22、2、本发明的提供给上层业务稀疏读能力,无需考虑在对指定时间范围内的读取请求是否会落到同一分片节点,才进行合并处理;上层业务使用该能力一次性读取多个数据块不同区间的数据,客户端对相关数据分片节点的稀疏读请求,记录每个区间请求的数据在客户端解析的条带集中的位置;服务端在数据分片节点的内存或磁盘中收集稀疏读请求的数据,收集完成后,按照子区间的顺序将数据一次发送给客户端;如果收集到了足够的分片节点数据,则进行数据的解析和拼接。通过稀疏读来减少异步请求发送的次数,从而减少cpu的占用,提高读的效率。

本文地址:https://www.jishuxx.com/zhuanli/20240802/258888.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。