[发明专利]一种数据存储方法、装置及系统有效
申请号: | 201810020376.7 | 申请日: | 2018-01-09 |
公开(公告)号: | CN110018783B | 公开(公告)日: | 2022-12-20 |
发明(设计)人: | 董元元;赵亚飞;魏舒展 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 蒋冬梅;栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 系统 | ||
本申请公开了一种数据存储方法、装置及系统;上述数据存储方法,包括:对数据块进行纠删码编码,得到对应的多个数据分片;将多个数据分片分别写入对应分配的存储节点;若第一设定时长内成功写入数据分片的存储节点的个数大于或等于设定值,则确定该数据块写入成功;其中,设定值大于或等于数据分片中的数据块分片的个数且小于或等于数据分片的个数。如此,能够降低数据写入延迟,并提高存储节点存在故障时的性能稳定性。
技术领域
本申请涉及但不限于数据存储技术领域,尤其涉及一种数据存储方法、装置及系统。
背景技术
目前的分布式存储系统越来越多地采用纠删码(EC,Erasure Coding)技术对数据进行存储。以Reed-Solomon(RS,理德-所罗门)类EC为例,其技术原理是:将数据分割成K个数据块,采用冗余算法对K个数据块进行校验编码,生成M个校验块;其中,当K+M个块中小于或等于M个块丢失时,均可以还原丢失的块中的数据。为了保证存储的可靠性,分布式存储系统会将K+M个块交给K+M个存储节点进行存储。这样,即使某个节点出现故障,也能够根据其他节点中存储的数据进行数据恢复。
目前的分布式存储系统中EC实现方式主要包括:先将数据写成三个副本,然后在后台根据设定策略将三个副本转存成EC编码数据。然而,此种方式存在流量放大的问题。因此,针对某些情况下(比如,写入数据大于或等于128KB时),可以直接进行EC编码,不再先写成三个副本,从而避免流量放大。然而,在上述直写(Direct)EC场景下,若写入过程中涉及的部分存储节点出现异常,导致不能保证所有存储节点均写入成功的情况下,则会一直重试写入直到超时或写入失败,对超时或写入失败的存储节点进行数据重建,重建完成后,再继续写入;如此,会产生比较大的写入延迟和写入失败率,从而导致直写EC延迟波动较大,性能不稳定。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供一种数据存储方法、装置及系统,能够降低数据写入延迟,并提高存储节点存在故障时的性能稳定性。
第一方面,本申请实施例提供一种数据存储方法,包括:
对数据块进行纠删码编码,得到对应的多个数据分片;
将所述多个数据分片分别写入对应分配的存储节点;
若第一设定时长内成功写入数据分片的存储节点的个数大于或等于设定值,则确定所述数据块写入成功;其中,所述设定值大于或等于所述数据分片中的数据块分片的个数且小于或等于所述数据分片的个数。
在示例性实施方式中,所述确定所述数据块写入成功之后,上述方法还可以包括:对于未成功写入存储节点的数据分片进行异步重新写入。
在示例性实施方式中,所述对于未成功写入存储节点的数据分片进行异步重新写入,可以包括:
向未成功写入数据分片的存储节点,重新写入所述数据分片;
若重新写入成功,则更新成功写入数据分片的存储节点的个数;
若重新写入失败,则对所述数据块进行密封操作,将所述数据块标记为只读,并通过存储管理节点对所述数据块进行数据重建和恢复。
在示例性实施方式中,所述将所述多个数据分片分别写入对应分配的存储节点之后,上述方法还可以包括:
若所述第一设定时长内成功写入数据分片的存储节点的个数小于所述设定值,则对所述数据块进行密封操作,将所述数据块标记为只读;
分配新的数据块,并确定所述新的数据块进行纠删码编码后得到的对应的多个数据分片;其中,所述新的数据块携带的数据内容与标记为只读的所述数据块携带的数据内容相同;
将所述新的数据块对应的数据分片分别写入重新分配的存储节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810020376.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据读/写方法及相关装置
- 下一篇:数据处理方法、装置及计算设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置