logo好方法网

数据存储方法和装置,数据恢复方法和装置


技术摘要:
本申请涉及一种数据存储方法、数据恢复方法、数据存储装置和数据恢复装置。该数据存储方法包括:获取第一待存储对象;基于几何序列将所述第一待存储对象划分为多个块,每个块的大小为所述几何序列的第一项的值与公共比率的乘积;以及,将所述多个块中的预定大小的块分  全部
背景技术:
诸如Haystack,Amazon  S3之类的对象存储系统被广泛用于存储二进制大对象 (BLOBS),包括照片,视频和文档。纠删码广泛用于这种可靠的分布式对象存储系统(例如, 在Facebook,微软和阿里巴巴云)中,以便与副本相比以更低的存储成本实现可靠性。 在分布式的对象存储系统中,当节点发生故障时,系统必须调用恢复过程以恢复 所需的冗余,并且由于需要重建所请求的数据,读取性能会降低。最近,各种纠删码,尤其是 再生码相继被提出,以通过最小化恢复和降级读取所需的数据量的方式来提高恢复效率和 读取性能。 纠删码的两个重要设计指标分别是恢复效率和降级读延迟,其中,恢复效率指的 是系统在硬件资源限制下恢复其原始容错的速度。降级读延迟指的是在系统出现故障时用 户感知的读取延迟。 由数据丢失而导致的重建所需的数据量(称为恢复成本)会影响恢复效率和降级 读延迟。再生码是一系列特殊的纠删码,旨在最大限度地降低恢复成本。一些再生码,例如 MSR编码(最小存储再生码),可以在理论上实现最佳的恢复成本,同时提供和其他纠删码相 同的存储效率和可靠性保证。 因此,期望提供适于通过再生码恢复数据的改进的数据存储方案。
技术实现要素:
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种数据存储方 法、数据恢复方法、数据存储装置和数据恢复装置,其通过以几何序列的方式划分待存储对 象并分别存储在预定大小的数据桶中,来平衡恢复效率和读取延迟,从而提高数据恢复性 能。 根据本申请的一方面,提供了一种数据存储方法,包括:获取第一待存储对象;基 于几何序列将所述第一待存储对象划分为多个块,每个块的大小为所述几何序列的第一项 的值与公共比率的乘积;以及,将所述多个块中的预定大小的块分别存储在与所述预定大 小对应的数据桶中。 在上述数据存储方法中,基于几何序列将所述第一待存储对象划分为多个块包 括:划分所述第一待存储对象的预定部分,所述预定部分的大小小于所述几何序列的第一 项的值,且所述第一待存储对象除所述预定部分以外的大小为所述几何序列的第一项的值 的倍数;以及,将所述预定部分存储在单独的数据桶中。 在上述数据存储方法中,基于几何序列将所述第一待存储对象划分为多个块包 括:基于所述几何序列将所述第一待存储对象划分为多个块,且与所述几何序列的每项的 4 CN 111596861 A 说 明 书 2/10 页 值对应的块的数目大于或者等于一。 在上述数据存储方法中,基于几何序列将所述第一待存储对象划分为多个块包 括:将所述第一待存储对象按照所述几何序列的每项的值划分为第一组一个或多个块;基 于所述第一待存储对象除所述第一组一个或多个块以外的剩余部分的大小确定所述几何 序列中的预定项,所述预定项是所述几何序列中小于所述剩余部分的大小的各项中的最大 项;以及,将所述剩余部分按照贪心策略分别划分为与所述预定项对应的第二组一个或多 个块。 在上述数据存储方法中,进一步包括:获取第二待存储对象;基于所述几何序列将 所述第二待存储对象划分为多个块,每个块的大小为所述几何序列的第一项的值与公共比 率的乘积;以及,将所述多个块中的预定大小的块分别存储在与所述预定大小对应的数据 桶中。 在上述数据存储方法中,进一步包括:对与所述预定大小对应的数据桶分别进行 编码以生成校验块。 根据本申请的另一方面,提供了一种数据恢复方法,包括:获取按照如上所述的数 据存储方法存储的多个数据桶及其对应的校验块;以及,基于所述校验块和所述多个数据 桶中的部分数据恢复所述多个数据桶中的数据。 在上述数据恢复方法中,基于所述校验块和所述多个数据桶中的部分数据恢复所 述多个数据桶中的数据包括:恢复所述多个数据桶中的较小大小的数据桶的数据;将所恢 复的数据返回给用户;以及,与所述数据返回并行地恢复所述多个数据桶中的较大大小的 数据桶的数据。 根据本申请的再一方面,提供了一种数据存储装置,包括:获取单元,用于获取第 一待存储对象;划分单元,用于基于几何序列将所述第一待存储对象划分为多个块,每个块 的大小为所述几何序列的第一项的值与公共比率的乘积;以及,存储单元,用于将所述多个 块中的预定大小的块分别存储在与所述预定大小对应的数据桶中。 在上述数据存储装置中,所述划分单元用于:划分所述第一待存储对象的预定部 分,所述预定部分的大小小于所述几何序列的第一项的值,且所述第一待存储对象除所述 预定部分以外的大小为所述几何序列的第一项的值的倍数;以及,所述存储单元用于将所 述预定部分存储在单独的数据桶中。 在上述数据存储装置中,所述划分单元用于:基于所述几何序列将所述第一待存 储对象划分为多个块,且与所述几何序列的每项的值对应的块的数目大于或者等于一。 在上述数据存储装置中,所述划分单元用于:将所述第一待存储对象按照所述几 何序列的每项的值划分为第一组一个或多个块;以及,将所述第一待存储对象除所述第一 组一个或多个块以外的剩余部分按照贪心策略分别划分为与所述几何序列的最大可能大 小对应的第二组一个或多个块。 在上述数据存储装置中,所述获取单元进一步用于获取第二待存储对象;所述划 分单元进一步用于基于所述几何序列将所述第二待存储对象划分为多个块,每个块的大小 为所述几何序列的第一项的值与公共比率的乘积;以及,所述存储单元进一步用于将所述 多个块中的预定大小的块分别存储在与所述预定大小对应的数据桶中。 在上述数据存储装置中,进一步包括:校验单元,用于对与所述预定大小对应的数 5 CN 111596861 A 说 明 书 3/10 页 据桶分别进行编码以生成校验块。 根据本申请的又一方面,提供了一种数据恢复装置,包括:数据单元,用于获取由 如上所述的数据存储装置存储的多个数据桶及其对应的校验块;以及,恢复单元,用于基于 所述校验块和所述多个数据桶中的部分数据恢复所述多个数据桶中的数据。 在上述数据恢复装置中,所述恢复单元用于:恢复所述多个数据桶中的较小大小 的数据桶的数据;将所恢复的数据返回给用户;以及,与所述数据返回并行地恢复所述多个 数据桶中的较大大小的数据桶的数据。 根据本申请的再一方面,提供一种电子设备,包括:处理器;以及,存储器,在所述 存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处 理器执行如上所述的数据存储方法和如上所述的数据恢复方法。 根据本申请的又一方面,提供一种计算机可读存储介质,其上存储有计算机程序 指令,当所述计算机程序指令被计算装置执行时,可操作来执行如上所述的数据存储方法 和如上所述的数据恢复方法。 本申请提供的数据存储方法、数据恢复方法、数据存储装置和数据恢复装置,能够 通过以几何序列的方式划分待存储对象并分别存储在预定大小的数据桶中,来平衡恢复效 率和读取延迟,从而提高数据恢复性能。。 附图说明 从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和 优点将变得更加清楚并更容易理解,其中: 图1图示了根据本申请实施例的数据存储方法的流程图。 图2图示了根据本申请实施例的数据存储方法的应用示例的示意图。 图3图示了根据本申请实施例的数据恢复方法的流程图。 图4图示了不同布局、块大小和再生码的恢复和降级读取性能的比较。 图5图示了几何划分和条带布局的降级读取延迟。 图6图示了几何划分和条带布局的I/O性能。 图7图示了根据本申请实施例的数据存储装置的框图。 图8图示了根据本申请实施例的数据恢复装置的框图。 图9图示了根据本申请实施例的电子设备的框图。
下载此资料需消耗2积分,
分享到:
收藏