数据存储的方法、电子设备和计算机程序产品技术

技术编号:34088680 阅读:12 留言:0更新日期:2022-07-11 20:38
本公开的实施例涉及用于数据存储的方法、电子设备和计算机程序产品。该方法包括接收存储目标数据的请求,该请求包括目标数据并且指示要存储的目标数据的副本的数目;基于目标数据和副本的数目,分配用于存储目标数据的多个存储单元,其中每个存储单元包括数据段和编码段,并且多个存储单元中的一组存储单元分别被配置为存储目标数据的第一数目个副本;分别向一组存储单元中的每个存储单元的数据段写入第一数目个副本;针对一组存储单元之一,生成第一校验信息以用于校验该存储单元的数据段中所存储的数据;以及分别向一组存储单元中的每个存储单元的编码段写入第一校验信息。本公开的实施例能够提高多副本数据存储的效率同时降低内存消耗。时降低内存消耗。时降低内存消耗。

【技术实现步骤摘要】
数据存储的方法、电子设备和计算机程序产品


[0001]本公开的实施例总体涉及数据存储领域,具体涉及用于数据存储的方法、电子设备和计算机程序产品。

技术介绍

[0002]在存储系统中,数据可以被存储到预先划分的一个或多个存储单元(chunk)中。为了保证数据不被丢失,每个存储单元可以包括被配置为存储数据的多个数据段和被配置为存储校验信息(例如,纠删码)的多个编码段。多个编码段中存储的校验信息可以基于多个数据段中存储的数据来生成。每个存储单元的数据段和编码段可以被存储到多个存储设备中。这样,当某个存储设备发生故障时,该存储设备中存储的数据可以通过其他存储设备中存储的数据和/或校验信息而被恢复。
[0003]在一些应用场景中,用户可能需要针对相同数据存储多个副本。由于数据量较大,可能需要针对大量存储单元生成校验信息,这将耗费大量CPU和内存资源。

技术实现思路

[0004]本公开的实施例提供了用于数据存储的方法、电子设备和计算机程序产品。
[0005]在本公开的第一方面,提供了一种用于数据存储的方法。该方法包括:接收存储目标数据的请求,其中该请求包括目标数据并且指示要存储的目标数据的副本的数目;基于目标数据和副本的数目,分配用于存储目标数据的副本的多个存储单元,其中每个存储单元包括被配置为存储数据的数据段和被配置为存储校验信息的编码段,并且多个存储单元中的一组存储单元分别被配置为存储目标数据的第一数目个副本;分别向一组存储单元中的每个存储单元的数据段写入第一数目个副本;针对一组存储单元中的一个存储单元,生成第一校验信息以用于校验一个存储单元的数据段中所存储的数据;以及分别向一组存储单元中的每个存储单元的编码段写入第一校验信息。
[0006]在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得装置执行动作,动作包括:接收存储目标数据的请求,其中该请求包括目标数据并且指示要存储的目标数据的副本的数目;基于目标数据和副本的数目,分配用于存储目标数据的副本的多个存储单元,其中每个存储单元包括被配置为存储数据的数据段和被配置为存储校验信息的编码段,并且多个存储单元中的一组存储单元分别被配置为存储目标数据的第一数目个副本;分别向一组存储单元中的每个存储单元的数据段写入第一数目个副本;针对一组存储单元中的一个存储单元,生成第一校验信息以用于校验一个存储单元的数据段中所存储的数据;以及分别向一组存储单元中的每个存储单元的编码段写入第一校验信息。
[0007]在本公开的第三方面,提供了一种计算机可读存储介质,其上存储有机器可执行指令,机器可执行指令在由设备执行时使设备执行根据上述第一方面所描述的方法的任意
步骤。
[0008]在本公开的第四方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
[0009]提供
技术实现思路
部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
[0010]通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
[0011]图1示出了本公开的实施例能够在其中被实施的示例环境的示意图;
[0012]图2示出了本公开的实施例的示例存储单元的示意图;
[0013]图3示出了根据本公开的实施例的用于数据存储的示例方法的流程图;
[0014]图4示出了根据本公开的实施例的针对总有效数据量而分配的存储单元的示意图;
[0015]图5示出了根据本公开的实施例的示例数据块的示意图;以及
[0016]图6示出了可以用来实施本公开的实施例的示例设备的示意性框图。
[0017]在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
[0018]下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0019]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0020]如上所述,在存储系统中,数据可以被存储到预先划分的一个或多个存储单元(chunk)中。为了保证数据不被丢失,每个存储单元可以包括被配置为存储数据的多个数据段和被配置为存储校验信息(例如,纠删码)的多个编码段。多个编码段中存储的校验信息可以基于多个数据段中存储的数据来生成。每个存储单元的数据段和编码段可以被存储到多个存储设备中。这样,当某个存储设备发生故障时,该存储设备中存储的数据可以通过其他存储设备中存储的数据和/或校验信息而被恢复。
[0021]在多副本数据存储场景(例如,数字视频录像)中,用户可能需要针对相同数据存储多个副本。数据的多个副本可以被存储在大量存储单元中。通常,可以利用单个CPU核来
针对一个存储单元中的数据段中的数据生成校验信息。可以利用多个CPU核针对多个存储单元并行地生成相应校验信息。在多副本数据存储场景,由于数据量较大,需要针对大量存储单元生成校验信息。当CPU核数目不够时,只能分多个批次来生成校验信息,这将耗费较长时间。此外,生成校验信息需要将数据段数据读取到内存中。当针对大量存储单元生成校验信息时,所耗费的内存将是巨大的。
[0022]本公开的实施例提出了一种用于数据存储的方案,以解决上述问题和其他潜在问题中的一个或多个。在该方案中,基于要存储的目标数据及其副本的数目,分配用于存储目标数据的副本的多个存储单元。多个存储单元中的至少部分存储单元可以被配置为存储目标数据的相同数目的副本。在此情况下,可以仅针对至少部分存储单元中的一个存储单元生成校验信息,并将该校验信息直接应用于部分存储单元中的其他存储单元(也即,不需要针对其他存储单元执行校验信息生成任务)。在一些情况下,多个存储单元还可以包括被配置为存储目标数据的另一数目的副本的至少一个存储单元。可以针对该至少一个存储单元生成校验信息。以此方式,能够大大减少所需的校验信息生成任务的数目,从而提高多副本数据存储的效率同时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储的方法,包括:接收存储目标数据的请求,其中所述请求包括所述目标数据并且指示要存储的所述目标数据的副本的数目;基于所述目标数据和所述副本的数目,分配用于存储所述目标数据的副本的多个存储单元,其中每个存储单元包括被配置为存储数据的数据段和被配置为存储校验信息的编码段,并且所述多个存储单元中的一组存储单元分别被配置为存储所述目标数据的第一数目个副本;分别向所述一组存储单元中的每个存储单元的数据段写入所述第一数目个副本;针对所述一组存储单元中的一个存储单元,基于所述一个存储单元的数据段中所存储的数据,生成第一校验信息;以及分别向所述一组存储单元中的每个存储单元的编码段写入所述第一校验信息。2.根据权利要求1所述的方法,其中所述多个存储单元中的至少一个存储单元被配置为存储所述目标数据的第二数目个副本,并且所述方法还包括:向所述至少一个存储单元的数据段写入所述第二数目个副本;基于所述至少一个存储单元的数据段中所存储的数据,生成第二校验信息;以及向所述至少一个存储单元的编码段写入所述第二校验信息。3.根据权利要求1所述的方法,其中分别向所述一组存储单元中的每个存储单元的数据段写入所述第一数目个副本包括:基于所述第一数目个副本,生成所述第一数目个数据块,其中每个数据块包括一个副本和与所述请求相关联的标识符;以及分别向所述一组存储单元中的每个存储单元的数据段写入所述第一数目个数据块。4.根据权利要求1所述的方法,还包括:针对所述一组存储单元中的每个存储单元,响应于所述第一数目个副本被写入到所述存储单元的数据段,确定所述存储单元的数据段是否存在未被占用的空间;以及如果确定所述存储单元的数据段存在未被占用的所述空间,利用无效数据填充所述空间。5.根据权利要求1所述的方法,其中生成所述第一校验信息包括:基于所述一个存储单元的数据段中所存储的数据,生成第一纠删码以作为所述第一校验信息。6.根据权利要求2所述的方法,其中向所述至少一个存储单元的数据段写入所述第二数目个副本包括:基于所述第二数目个副本,生成所述第二数目个数据块,其中每个数据块包括一个副本和与所述请求相关联的标识符;以及向所述至少一个存储单元的数据段写入所述第二数目个数据块。7.根据权利要求2所述的方法,还包括:响应于所述第二数目个副本被写入到所述至少一个存储单元的数据段,确定所述至少一个存储单元的数据段是否存在未被占用的空间;以及
如果确定所述至少一个存储单元的数据段存在未被占用的所述空间,利用无效数据填充所述空间。8.根据权利要求2所述的方法,其中生成所述第二校验信息包括:基于所述至少一个存储单元的数据段中所存储的数据,生成第二纠删码以作为所述第二校验信息。9.一种电子设备,包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述电子设备执行动作,所述动作...

【专利技术属性】
技术研发人员:邹炜宁吴佳磊张至尧
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1