一种数据分片方法、装置以及电子设备制造方法及图纸

技术编号:36733703 阅读:9 留言:0更新日期:2023-03-04 10:02
提供了一种数据分片方法、装置以及电子设备,该方法通过将数据中字节段的hash值与目标hash值进行比较,确定分片点,并针对分片点之间距离大于最大分片长度的情况,将大于最大分片长度的数据段中hash值最小或最大的字节段作为分片点,再次进行分片。这样,如果在大于最大分片长度的数据段中插入或删除的数据,该hash值最小或最大的字节段也还是会作为分片点,不会影响后面没有数据更改的数据段进行重删,提高了重删率。提高了重删率。提高了重删率。

【技术实现步骤摘要】
一种数据分片方法、装置以及电子设备


[0001]本专利技术涉及数据存储领域,尤其涉及一种数据分片方法、装置以及电子设备。

技术介绍

[0002]为了保证数据不丢失,往往需要定期对数据进行备份,但是多次备份间存在大量重复数据。为了避免多次备份间备份重复的数据,需要对待备份数据与已备份数据进行分片,分别分为多个数据段。通过依次比较对应数据段是否相同,找到待备份数据中相对于已备份数据有变动的数据段,进而,只备份这些有变动的数据段,其他重复的数据段不用再备份。
[0003]但是,目前的分片方式,是将数据分为多个相同长度的数据段,或者,利用数据中一些特定值作为分片点进行分片,并在超过预设最大分片长度处增加分片点。在待备份数据为已备份数据中插入或删除了一部分数据的情况下,插入或删除了一部分数据所在数据段的后面的数据对应位置也变动,上述两种分片方式,会将插入或删除了一部分数据所在数据段以及该数据段后面的数据段也识别为与已备份数据不相同。这样,使得能够识别出来的重复数据量降低,需要备份的数据量增加。
[0004]因此,如何提高数据备份时的重删率,减少多次数据备份时占用的存储空间,是亟待解决的问题。

技术实现思路

[0005]本申请提供了一种数据分片方法、装置以及电子设备,通过将数据中字节段的hash值与目标hash值进行比较,确定分片点,并针对分片点之间距离大于最大分片长度的情况,将大于最大分片长度的数据段中hash值最小的字节段作为分片点,再次进行分片,以提高数据备份时的重删率。
[0006]第一方面,提供一种数据分片方法,包括:确定第一分片点与第二分片点,第一分片点是根据第一预设条件确定的,第二分片点是根据第二预设条件确定的,第一分片点与第二分片点为数据中相邻的两个分片点;在第一分片点与第二分片点之间的第一数据段的长度大于最大分片长度的情况下,根据第一数据段中每个字节段的hash值,在第一数据段中确定第三分片点,第一数据段包括多个字节段,多个字节段中的每个字节段包含的字节数是相同的,第三分片点对应的字节段的hash值符合第三预设条件。
[0007]最大分片长度指示任意两个相邻的分片点之间的数据段的最大长度。若根据第一分片点与第二分片点得到的第一数据段大于最大分片长度,则该第一数据段为长数据段,需要再次分片。将第一数据段再次进行分片是通过计算第一数据段中字节段的hash值,找到符合第三预设条件的字节段,以该字节段设定第三分片点,进而将第一数据段再分成两个数据段。其中,根据符合第三预设条件的字节段设定第三分片点,可以是将该字节段的第一个字节或者最后一个字节作为第三分片点,还可以是将该字节段任意一个字节的位置作为分片点。
[0008]这样,在数据备份时,若待备份数据相对于已备份数据是在该长数据段中插入或删除了一部分数据,该第三分片点在待备份数据中也还是会存在,待备份数据和已备份数据的分片点对应的数据内容是相同的,不会因为数据删除或增加,导致分片点被移位,没有改动数据内容的数据段因分片点移位而无法被识别为和已备份数据中的数据段相同。基于字节段的hash值进行分片,可以使得其他没有改动内容的数据段也能按已备份数据的分片方式得到,使得在数据备份时能识别出更多相同的数据段,减少备份时间与备份占用的内存空间。
[0009]结合第一方面,在一些实现方式中,第三预设条件为字节段的hash值在字节段所属数据段中所有字节段对应的hash值中是最小的;或者,第三预设条件为字节段的hash值在字节段所属数据段中所有字节段对应的hash值中是最大的。
[0010]第三预设条件是找到数据段中hash值最小或最大的字节段。这样,将该字节段作为分片点,不会因为数据段中插入或删除数据,而使得新的数据段的分片位置对应的数据内容与原来不一样,进而在数据备份时能识别出更多相同的数据段,减少备份时间与备份占用的内存空间。
[0011]结合第一方面,在一些实现方式中,在第一预设条件和第二预设条件相同的情况下,第一预设条件与第三预设条件相同;或者,第一预设条件与第三预设条件不同,其中,第一预设条件为字节段的hash值大于第一目标hash值;或者,第一预设条件与第三预设条件不同,其中,第一预设条件为字节段的hash值小于或等于第二目标hash值。
[0012]在第一预设条件和第二预设条件相同的情况下,第一预设条件与第三预设条件相同,是指第一分片点和第二分片点是对长数据段进行再次分片时,得到的分片点,但是第一分片点和第二分片点之间的数据段还是大于最大分片长度,因此计算得到了第三分片点,此时,得到三个分片点的方式是相同的。第一预设条件与第三预设条件不同,是指第一分片点与第二分片点是在整个数据中按照字节段的hash值是否与目标hash值符合一定大小关系得到,但是第一分片点和第二分片点之间的数据段是大于最大分片长度,因此通过第三预设条件计算得到了第三分片点,此时,得到第一分片点和第二分片点的方式是相同的,但与第三分片点的得到方式不同。hash预设条件可以为字节段的hash值大于第一目标hash值,其中,第一目标hash值为最大hash值减去最大hash值除以平均分片大小得到的商;或者,hash预设条件为字节段的hash值与最小hash值的差值大于第一目标hash值,最小hash值可以为任意实数。hash预设条件还可以为字节段的hash值小于或等于第二目标hash值,其中,第二目标hash值为最大hash值除以平均分片大小得到的商;或者,hash预设条件为字节段的hash值与最小hash值的差值大于第一目标hash值,最小hash值可以为任意实数。
[0013]结合第一方面,在一些实现方式中,在第一预设条件和第二预设条件不相同的情况下,第一预设条件与第三预设条件相同,第二预设条件为字节段的hash值大于第一目标hash值,或者,第二预设条件为字节段的hash值小于或等于第二目标hash值;或者,第二预设条件与第三预设条件相同,第一预设条件为字节段的hash值大于第一目标hash值,或者,第一预设条件为字节段的hash值小于或等于第二目标hash值。
[0014]第一预设条件和第二预设条件不同,是指第一分片点和第二分片点中一个分片点是在整个数据进行分片时得到的,具体是按照字节段的hash值是否与目标hash值符合一定大小关系得到的;另一个是对整个数据进行分片时,产生了长数据段,根据第三预设条件得
到的。
[0015]结合第一方面,在一些实现方式中,根据第一数据段中每个字节段的hash值,在第一数据段中确定第三分片点之前,还包括:确定最小分片长度,最小分片长度指示任意两个相邻的分片点之间的数据段的最小长度;获取第一数据段中每个字节段的hash值,每个字节段是以第一数据段中第二数据段中任一字节为起始字节得到的,第二数据段的第一个字节与第一数据段第一个字节之间的长度大于或等于最小分片长度,第二数据段的最后一个字节与第一数据段最后一个字节之间的长度大于或等于最小分片长度与字节段的长度的和。
[0016]在计算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据分片方法,其特征在于,包括:确定第一分片点与第二分片点,所述第一分片点是根据第一预设条件确定的,所述第二分片点是根据第二预设条件确定的,所述第一分片点与所述第二分片点为数据中相邻的两个分片点;在所述第一分片点与所述第二分片点之间的第一数据段的长度大于最大分片长度的情况下,根据所述第一数据段中每个字节段的hash值,在所述第一数据段中确定第三分片点,所述第一数据段包括多个字节段,所述多个字节段中的每个字节段包含的字节数是相同的,所述第三分片点对应的字节段的hash值符合第三预设条件。2.根据权利要求1所述的方法,其特征在于,所述第三预设条件为字节段的hash值在所述字节段所属数据段中所有字节段对应的hash值中是最小的;或者,所述第三预设条件为字节段的hash值在所述字节段所属数据段中所有字节段对应的hash值中是最大的。3.根据权利要求2所述的方法,其特征在于,在所述第一预设条件和所述第二预设条件相同的情况下,所述第一预设条件与所述第三预设条件相同;或者,所述第一预设条件与所述第三预设条件不同,其中,所述第一预设条件为字节段的hash值大于第一目标hash值;或者,所述第一预设条件与所述第三预设条件不同,其中,所述第一预设条件为字节段的hash值小于或等于第二目标hash值。4.根据权利要求2所述的方法,其特征在于,在所述第一预设条件和所述第二预设条件不相同的情况下,所述第一预设条件与所述第三预设条件相同,所述第二预设条件为所述字节段的hash值大于第一目标hash值,或者,所述第二预设条件为字节段的hash值小于或等于第二目标hash值;或者,所述第二预设条件与所述第三预设条件相同,所述第一预设条件为所述字节段的hash值大于第一目标hash值,或者,所述第一预设条件为字节段的hash值小于或等于第二目标hash值。5.根据权利要求3或4任一所述的方法,其特征在于,在所述根据所述第一数据段中每个字节段的hash值,在所述第一数据段中确定第三分片点之前,还包括:确定最小分片长度,所述最小分片长度指示任意两个相邻的分片点之间的数据段的最小长度;获取所述第一数据段中每个字节段的hash值,所述每个字节段是以第一数据段中第二数据段中任一字节为起始字节得到的,所述第二数据段的第一个字节与第一数据段第一个字节之间的长度大于或等于最小分片长度,所述第二数据段的最后一个字节与第一数据段最后一个字节之间的长度大于或等于所述最小分片长度与字节段的长度的和。6.根据权利要求5所述的方法,其特征在于,所述第一数据段包括M个字节,所述最小分片长度包括L个字节,所述字节段包括N个字节,所述第一数据段包括M

2L

N+1个字节段。7.一种数据分片装置,其特征在于,所述装置包括确定单元:
所述确定单元用于确定第一分片点与第二分片点,所述第一分片点是根据第一预设条件确定的,所述第...

【专利技术属性】
技术研发人员:薛强杨文全绍晖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1