共享数据块处理方法、系统及可读存储介质转让专利

申请号 : CN201910290484.0

文献号 : CN110083309B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谭玉娟晏志超丁文进刘铎陈咸彰

申请人 : 重庆大学

摘要 :

本发明公开了一种共享数据块处理方法、系统、可读存储介质,所述方法包括:获取服务系统中各用户的服务等级;判断用户备份数据流中的数据块是否为同等级用户间的重复数据块;若是,则根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间;若否,则将不同等级用户间重复数据块的处理开销均摊到不同等级用户。本发明能够精确将不同等级用户间的共享数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性,满足了实际应用需求。

权利要求 :

1.一种共享数据块处理方法,其特征在于,所述方法包括如下步骤:获取服务系统中各用户的服务等级;

判断用户备份数据流中的数据块是否为同等级用户间的重复数据块;

若是,则根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间,即按照同等级用户间用户请求进行重复数据块处理的请求时间按照时间顺序为所述用户分配相应的存储空间;

若否,当当前数据块不与任一不同等级用户的索引缓冲区中的数据块信息一致时,则表明所述当前数据块未被写入所述存储空间,但所述服务系统已在存储空间内为所述当前数据块分配了临时ID,此时,当索引缓冲区中数据块的所属用户的等级大于备份数据流中所属用户的等级时,计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;当所述第二差值与当前数据块的比值大于或等于数据块因子时,将当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当所述第二差值与当前数据块的比值小于数据块因子时,将当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块,以将不同等级用户间重复数据块的处理开销均摊到不同等级用户。

2.根据权利要求1所述的共享数据块处理方法,其特征在于,所述获取服务系统中各用户的服务等级的步骤之前,所述方法还包括:根据所述服务系统中各用户的服务等级为各用户分配相应比率的存储空间。

3.根据权利要求1所述的共享数据块处理方法,其特征在于,所述判断用户备份数据流中的数据块是否为同等级用户间的重复数据块的方法还包括:通过内容分块算法对所述用户备份数据流进行分块处理,以得到所述数据块;

对每个所述数据块进行哈希计算,以得到数据块指纹,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组;

判断所述当前数据块的布隆过滤器是否被命中,以确定所述当前数据块是否为同等级用户间的重复数据块。

4.根据权利要求1所述的共享数据块处理方法,其特征在于,所述根据所述同等级用户的请求服务时间为所述用户分配相应的重复数据块存储空间的方法包括:获取所述同等级用户存储空间的平均数据块写入量及实际数据块写入量;

根据当前同等级用户的所述平均数据块写入量与实际数据块写入量的第一差值,改变所述存储空间的增减量。

5.根据权利要求1所述的共享数据块处理方法,其特征在于,所述将不同等级用户间重复数据块的处理开销均摊到不同等级用户的步骤之前,所述方法还包括:判断当前数据块是否与任一不同等级用户的存储空间中的数据块信息一致;

若是,则所述当前数据块为不同等级用户间的重复数据块;

若否,则所述当前数据块为新数据块,将所述当前数据块存入当前用户的存储空间,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。

6.根据权利要求5所述的共享数据块处理方法,其特征在于,在判断到所述当前数据块为不同等级用户间的重复数据块的步骤之后,所述方法还包括:判断所述当前数据块是否与任一不同等级用户的索引缓冲区中的数据块信息一致;

若否,则所述当前数据块已被写入所述存储空间,且所述服务系统已在存储空间内为所述当前数据块分配了容器ID。

7.根据权利要求6所述的共享数据块处理方法,其特征在于,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:当所述索引缓冲区中数据块的所属用户的等级小于备份数据流中所属用户的等级时,则计算所述备份数据流中上一次数据段中新数据块数量和实际数据块写入量的第三差值;

当判断到所述第三差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;

当判断到所述第二差值与当前数据块的比值小于数据块因子时,则执行计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值的步骤。

8.一种共享数据块处理系统,其特征在于,所述系统包括:

获取模块,用于获取服务系统中各用户的服务等级;

判断模块,用于判断用户备份数据流中的数据块是否为同等级用户间的重复数据块;

第一分配模块,用于根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间;

第一分配模块,用于将不同等级用户间重复数据块的处理开销均摊到不同等级用户。

9.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任意一项所述的共享数据块处理方法。

说明书 :

共享数据块处理方法、系统及可读存储介质

技术领域

[0001] 本发明涉及计算机信息存储技术领域,特别是涉及一种共享数据块处理方法、系统、可读存储介质。

背景技术

[0002] 随着信息时代的蓬勃发展带来了数据的爆炸式增长,数据中心提供给用户综合全面的解决方案,为政府上网、企业上网、企业IT管理提供专业服务,使得企业和个人能够迅速借助网络开展业务,把精力集中在其核心业务策划和网站建设上,而减少IT方面的后顾之忧。IDC改变了以往互联网的运作和经营模式,使得参加互联网的每一方都能专注其特长。
[0003] 根据IDC预测,2020年全球数据存储需求将会达到44ZB的规模。如今,每一天的每一分钟,平均会有2.04亿邮件发布,Google会产生400万条搜索,Facebook会有246万Bit的内容信息分享,因此企业需要不断购置大量的存储设备来应对不断增长的存储需求,但是单纯地提高存储容量,常常会存在设备的采购预算、数据的管理成本、能耗、占用空间等一系列问题,并不能从根本上解决问题。
[0004] 因此学术界和工业界提出重复数据删除技术,该技术能够大幅度缩减数据量,从而提高存储空间和带宽资源的利用率。重复数据删除技术被广泛运用于存储系统中,但企业面临的是大量用户数据的存储,而多用户重复数据删除系统中,由于用户的偏好和需求不同,不同偏好和需求的用户享受系统提供的服务不一样,处理数据的能力也不一样,且不同用户之间存在共享数据块,因此用户间共享数据块的处理是多用户重复数据删除系统中需要解决的问题。

发明内容

[0005] 为了解决上述问题,本发明的目的是提供一种能够精确将不同等级用户间的共享数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性的共享数据块处理方法、系统、可读存储介质。
[0006] 根据本发明提供的共享数据块处理方法,包括:
[0007] 获取服务系统中各用户的服务等级;
[0008] 判断用户备份数据流中的数据块是否为同等级用户间的重复数据块;
[0009] 若是,则根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间;
[0010] 若否,则将不同等级用户间重复数据块的处理开销均摊到不同等级用户。
[0011] 根据本发明提供的共享数据块处理方法,首先根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间,从而实现了通过调节存储空间来调节用户的实际吞吐量,减少同等级用户间吞吐量误差,保障同等级用户间的服务质量;通过将不同等级用户间重复数据块的处理开销均摊到不同等级用户,从而实现了精确的将不同等级用户间的数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性,满足了实际应用需求。
[0012] 另外,根据本发明上述的共享数据块处理方法,还可以具有如下附加的技术特征:
[0013] 进一步地,所述获取服务系统中各用户的服务等级的步骤之前,所述方法还包括:根据所述服务系统中各用户的服务等级为各用户分配相应比率的存储空间。
[0014] 进一步地,所述判断用户备份数据流中的数据块是否为同等级用户间的重复数据块的方法包括:
[0015] 通过内容分块算法对所述用户备份数据流进行分块处理,以得到所述数据块;
[0016] 对每个所述数据块进行哈希计算,以得到数据块指纹,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组;
[0017] 判断所述当前数据块的布隆过滤器是否被命中,以确定所述当前数据块是否为同等级用户间的重复数据块。
[0018] 进一步地,所述根据所述同等级用户的请求服务时间为所述用户分配相应的重复数据块存储空间的方法包括:
[0019] 获取所述同等级用户存储空间的平均数据块写入量及实际数据块写入量;
[0020] 根据当前同等级用户的所述平均数据块写入量与实际数据块写入量的第一差值,改变所述存储空间的增减量。
[0021] 进一步地,所述将不同等级用户间的重复数据块平均分配到不同等级用户的存储空间内的步骤之前,所述方法还包括:
[0022] 判断所述当前数据块是否与任一不同等级用户的存储空间中的数据块信息一致;
[0023] 若是,则所述当前数据块为不同等级用户间的重复数据块;
[0024] 若否,则所述当前数据块为新数据块,将所述当前数据块存入当前用户的存储空间,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。
[0025] 进一步地,在判断到所述当前数据块为不同等级用户间的重复数据块的步骤之后,所述方法还包括:
[0026] 判断所述当前数据块是否与任一不同等级用户的索引缓冲区中的数据块信息一致;
[0027] 若是,则所述当前数据块未被写入所述存储空间,但所述服务系统已在存储空间内为所述当前数据块分配了临时ID;
[0028] 若否,则所述当前数据块已被写入所述存储空间,且所述服务系统已在存储空间内为所述当前数据块分配了容器ID。
[0029] 进一步地,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:
[0030] 当所述索引缓冲区中数据块的所属用户的等级大于备份数据流中所属用户的等级时,则计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;
[0031] 当判断到所述第二差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;
[0032] 当判断到所述第二差值与当前数据块的比值小于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块。
[0033] 进一步地,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:
[0034] 当所述索引缓冲区中数据块的所属用户的等级小于备份数据流中所属用户的等级时,则计算所述备份数据流中上一次数据段中新数据块数量和实际数据块写入量的第三差值;
[0035] 当判断到所述第三差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;
[0036] 当判断到所述第二差值与当前数据块的比值小于数据块因子时,则执行计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值的步骤。
[0037] 本发明的另一实施例提出一种共享数据块处理系统,解决现有的用户需要不断购置大量的存储设备来应对不断增长的存储需求的问题,提高了用户共享数据块存储体验的满意度。
[0038] 根据本发明实施例的共享数据块处理系统,包括:
[0039] 获取模块,用于获取服务系统中各用户的服务等级;
[0040] 判断模块,用于判断用户备份数据流中的数据块是否为同等级用户间的重复数据块;
[0041] 第一分配模块,用于根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间;
[0042] 第一分配模块,用于将不同等级用户间重复数据块的处理开销均摊到不同等级用户。
[0043] 本发明的另一个实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
[0044] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。

附图说明

[0045] 图1是本发明第一实施例提出的共享数据块处理方法的流程图;
[0046] 图2是图1中步骤S102的具体流程图;
[0047] 图3是图2中步骤S1021的原理示意图;
[0048] 图4是图1中步骤S103的具体流程图;
[0049] 图5是图1中步骤S104的具体流程图;
[0050] 图6是图5中步骤S1042的具体流程图;
[0051] 图7是本发明第二实施例提出的共享数据块处理系统的结构框图。

具体实施方式

[0052] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053] 请参阅图1,本发明第一实施例提出的一种共享数据块处理方法,其中,包括步骤S101~S104:
[0054] 步骤S101,获取服务系统中各用户的服务等级。
[0055] 本实施例中,以数据块共享设备为例进行说明,但需要了解的是,本发明实施例并不限于此,本发明实施例的方法可以应用在任何资源共享设备中,即任何可以通过网络进行资源共享的电子设备中。具体的,在现有技术中,由于不能对用户间共享的数据块进行精确的处理,从而导致各等级用户间用户服务质量偏差较大,降低了用户资源共享体验的满意度。在本发明实施例中,为了解决这一问题,在用户进行数据块共享的过程中,精确地将不同等级用户间的共享数据块处理开销均摊到不同等级用户。
[0056] 具体的,在本实施例中,当用户进行数据块共享的请求时,根据所述服务系统中各用户的服务等级为各用户分配相应比率的存储空间。可以理解的,由于本步骤中仅需在用户进行数据块共享请求时,获取所述用户在服务系统中的服务等级,并根据各用户在该服务系统中的服务等级,为各用户分配相应比率的存储空间,以存储所述共享数据块。其中,服务系统中各用户的服务等级可以为:低级、中级及高级,且其所对应的存储空间的比率为1:3:9,但不限于此,在其他实施例中,服务系统中各用户的服务等级及对应的存储空间的比率还可根据实际需求进行调整。
[0057] 在此还需要说明的是,本实施例中,所述服务系统中各用户的服务等级为是实时更新的,但不限于此,在本发明其他实施例中,所述服务系统中各用户的的服务等级还可以是按照预设的更新周期进行周期性的更新,不同等级用户的服务等级的更新周期可以一致,或根据对应的服务等级进行对应周期的等级更新,以提高所述服务系统中,各用户服务等级的获取的可靠性。
[0058] 步骤S102,判断用户备份数据流中的数据块是否为同等级用户间的重复数据块,若是,则执行步骤S103,若否,则执行步骤S104。
[0059] 如上所述,通过判断用户备份数据流中的数据块是否为同等级用户间的重复数据块,以便于根据所述用户的等级进行相应存储空间分配。请参阅图2,其中,判断用户备份数据流中的数据块是否为同等级用户间的重复数据块的方法包括如下步骤:
[0060] 步骤S1021,通过内容分块算法对所述用户备份数据流进行分块处理,以得到所述数据块。
[0061] 具体的,采用一不断滑动的窗口来确定待分割的数据块边界点,并采用Rabin-Fingerprint计算窗口内数据的指纹值,如果满足预设的条件,就将该窗口的开始位置作为数据块的结尾,从而实现通过不断滑动窗口并计算指纹实现对数据的分块。为了避免极端情况下,数据块过长或者过短的情形,服务系统需要设定数据块的上下限。如图,3所示,Rabin-Fingerprint预先定义两个整数值D和r(r
[0062] 步骤S1022,对每个所述数据块进行哈希计算,以得到数据块指纹,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。
[0063] 具体的,本实施例中,通过SHA1算法对数据块内容进行哈希计算,以产生的20字节的密钥做为数据块唯一标识,从而得到所述数据块指纹。通过建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组,以便于通过判断所述当前数据块的布隆过滤器是否被命中,来判断所述当前数据块是否为同等级用户间的重复数据块。
[0064] 步骤S1023,判断所述当前数据块的布隆过滤器是否被命中,以确定所述当前数据块是否为同等级用户间的重复数据块。
[0065] 如上所述,通过根据当前数据块所在用户的等级到对应等级的布隆过滤器数组中查找。如果所述当前数据块的布隆过滤器被对应等级的布隆过滤器数组所命中,则判定该数据块是同等级用户内部的重复数据块。可以理解的,若在当前数据块所在用户等级所对应等级的布隆过滤器数组中检索到与所述当前数据块的布隆过滤器信息一致的数据块,则判定所述当前数据块为同等级用户间的重复数据块。
[0066] 步骤S103,根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间。
[0067] 如上所述,当判断用户备份数据流中的数据块为同等级用户间的重复数据块时,则根据所述同等级用户的请求服务时间为所述用户分配相应的重复数据块存储空间,即按照同等级用户间用户请求进行重复数据块处理的请求时间按照时间顺序为所述用户分配相应的存储空间。
[0068] 在此还需要说明的是,所述判定所述当前数据块为同等级用户间的重复数据块的步骤之前,还需判断所述当前数据块是否为所属的当前用户内部的重复数据块,若是,则根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间。
[0069] 请参阅图4,其中,所述根据所述同等级用户的请求服务时间为所述用户分配相应的重复数据块存储空间的方法包括如下步骤:
[0070] 步骤S1031,获取所述同等级用户存储空间的平均数据块写入量及实际数据块写入量。
[0071] 步骤S1032,根据当前同等级用户的所述平均数据块写入量与实际数据块写入量的第一差值,改变所述存储空间的增减量。
[0072] 如上所述,通过根据所述同等级用户存储空间的平均数据块写入量与实际数据块写入量的第一差值,来改变所述同等级用户间各用户的存储空间的增减量,避免了由于同等级用户间或内部共享的数据块分布的随机性,而会导致服务系统中同等级不同用户间的服务质量得不到保障。可以理解的,当同等级用户间或内部存储空间的平均数据写入量大于同等级用户间或内部存储空间的实际数据写入量,则增加该用户的存储空间;否则减少该用户的存储空间。即存储空间的增减量为同等级用户间或内部内平均数据写入量与同等级用户间或内部内实际数据写入量的差值。
[0073] 步骤S104,将不同等级用户间重复数据块的处理开销均摊到不同等级用户。
[0074] 如上所述,当判断到用户备份数据流中的数据块不是同等级用户间的重复数据块时,则将不同等级用户间重复数据块的处理开销均摊到不同等级用户。请参参与图5,其中,所述将不同等级用户间的重复数据块平均分配到不同等级用户的存储空间内的步骤之前,所述方法还包括:
[0075] 步骤S1041,判断所述当前数据块是否与任一不同等级用户的存储空间中的数据块信息一致,若是,则执行步骤S1042,若否,则执行步骤S1043。
[0076] 步骤S1042,所述当前数据块为不同等级用户间的重复数据块。
[0077] 如上所述,当判断到所述当前数据块与任一不同等级用户的存储空间中的数据块信息一致时,则认为所述当前数据块为不同等级用户间的重复数据块。其中,判断所述当前数据块与任一不同等级用户的存储空间中的数据块信息一致的方法可以为,通过当前数据块与不同等级用户的存储空间中的数据块的属性及关键信息的提取、对比、分析与计算所得。
[0078] 请参阅图6,其中,在判断到所述当前数据块为不同等级用户间的重复数据块的步骤之后,所述方法还包括如下步骤:
[0079] 步骤S1042a,判断所述当前数据块是否与任一不同等级用户的索引缓冲区中的数据块信息一致,若是,则执行步骤S1042b,若否则执行步骤S1042c。
[0080] 步骤S1042b,则所述当前数据块未被写入所述存储空间,但所述服务系统已在存储空间内为所述当前数据块分配了临时ID。
[0081] 如上所述,当判断到所述重复数据块与任一不同等级用户的索引缓冲区中的数据块信息一致时,则认为所述当前数据块未被写入所述存储空间,但所述服务系统已在存储空间内为所述当前数据块分配了临时ID。
[0082] 其中,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:
[0083] 当所述索引缓冲区中数据块的所属用户的等级大于备份数据流中所属用户的等级时,则计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;当判断到所述第二差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块。其中,所述数据块因子为一敏感参数,用于判断由任一等级用户处理不同等级用户间共享数据块的临界值。
[0084] 在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:当所述索引缓冲区中数据块的所属用户的等级小于备份数据流中所属用户的等级时,则计算所述备份数据流中上一次数据段中新数据块数据量和实际数据块写入量的第三差值;当判断到所述第三差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,则计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;当判断到所述第二差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块。可以理解的,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块或重复数据块,以确定所述当前数据块写入对应用户存储空间的状态,即,所述当前数据块在备份数据流中的状态属性为最终写入对应用户存储空间的状态,对于已经在上一次数据段中新数据块进行写入的用户,则不再处理本次数据块的写入任务,从而实现了精确的将不同等级用户间的数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性,满足了实际应用需求。
[0085] 步骤S1042c,则所述当前数据块已被写入所述存储空间,且所述服务系统已在存储空间内为所述当前数据块分配了容器ID。
[0086] 如上所述,当判断到所述重复数据块与任一不同等级用户的索引缓冲区中的数据块信息均不一致时,则认为所述当前数据块已被写入所述存储空间,且所述服务系统已在存储空间内为所述当前数据块分配了容器ID。
[0087] 步骤S1043,所述当前数据块为新数据块,将所述当前数据块存入当前用户的存储空间,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。
[0088] 如上所述,当判断到所述当前数据块与任一不同等级用户的存储空间中的数据块信息均不一致时,则认为所述当前数据块为新数据块,因此,需将所述当前数据块存入当前用户的存储空间,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组,以便于当新的数据流写入时,判断该新数据流中的数据块是否与所述用户备份数据流中的数据块重复。
[0089] 作为一个具体实施例,例如服务系统中存在用户的服务等级为低级、中级和高级的三个用户,且其所对应的存储空间的比率为1:3:9、所对应的处理能力的比率为1:2:4,当以中级的用户在上一次数据段处理中进行了数据段中出数据块的处理任务,那么,在本次数据段的数据块处理任务则分配给服务等级更高一级的高级用户进行处理,以确保低级、中级和高级的三个用户的服务等级的相对公平性,即在任一时刻,低级、中级和高级的三个用户的数据处理能力的维持在1:2:4。
[0090] 根据本发明提供的共享数据块处理方法,首先根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间,从而实现了通过调节存储空间来调节用户的实际吞吐量,减少同等级用户间吞吐量误差,保障同等级用户间的服务质量;通过将不同等级用户间重复数据块的处理开销均摊到不同等级用户,从而实现了精确的将不同等级用户间的数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性,满足了实际应用需求。
[0091] 请参阅图2,基于同一发明构思,本发明第二实施例提供的共享数据块处理系统,包括:
[0092] 划分模块10,用于根据所述服务系统中各用户的服务等级为各用户分配相应比率的存储空间。
[0093] 获取模块20,用于获取服务系统中各用户的服务等级。
[0094] 判断模块30,用于判断用户备份数据流中的数据块是否为同等级用户间的重复数据块。
[0095] 本实施例中,所述判断模块30包括:
[0096] 分块单元31,用于通过内容分块算法对所述用户备份数据流进行分块处理,以得到所述数据块。
[0097] 创建单元32,用于对每个所述数据块进行哈希计算,以得到数据块指纹,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。
[0098] 判断单元33,用于判断所述当前数据块的布隆过滤器是否被命中,以确定所述当前数据块是否为同等级用户间的重复数据块。
[0099] 第一分配模块40,用于根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间。
[0100] 本实施例中,所述第一分配模块40包括:
[0101] 获取单元41,用于获取所述同等级用户存储空间的平均数据块写入量及实际数据块写入量。
[0102] 调整单元42,根据当前同等级用户的所述平均数据块写入量与实际数据块写入量的第一差值,改变所述存储空间的增减量。
[0103] 第二分配模块50,用于将不同等级用户间重复数据块的处理开销均摊到不同等级用户。
[0104] 其中,所述将不同等级用户间重复数据块的处理开销均摊到不同等级用户的步骤之前,所述方法还包括:判断所述当前数据块是否与任一不同等级用户的存储空间中的数据块信息一致;若是,则所述当前数据块为不同等级用户间的重复数据块;若否,则所述当前数据块为新数据块,将所述当前数据块存入当前用户的存储空间,建立所述数据块指纹与当前数据块服务等级对应的布隆过滤器数组。
[0105] 其中,在判断到所述当前数据块为不同等级用户间的重复数据块的步骤之后,所述方法还包括:判断所述当前数据块是否与任一不同等级用户的索引缓冲区中的数据块信息一致;若是,则所述当前数据块未被写入所述存储空间,但所述服务系统已在存储空间内为所述当前数据块分配了临时ID;若是,则所述当前数据块已被写入所述存储空间,且所述服务系统已在存储空间内为所述当前数据块分配了容器ID。
[0106] 进一步地,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:当所述索引缓冲区中数据块的所属用户的等级大于备份数据流中所属用户的等级时,则计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;当判断到所述第二差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块。
[0107] 进一步地,在所述服务系统已在存储空间内为所述当前数据块分配了临时ID的步骤之后,所述方法还包括:当所述索引缓冲区中数据块的所属用户的等级小于备份数据流中所属用户的等级时,则计算所述备份数据流中上一次数据段中新数据块数量和实际数据块写入量的第三差值;当判断到所述第三差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,则计算所述索引缓冲区上一次数据段中新数据块数量和实际数据块写入量的第二差值;当判断到所述第二差值与当前数据块的比值大于或等于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为重复数据块及新数据块;当判断到所述第二差值与当前数据块的比值小于数据块因子时,将所述当前数据块在索引缓冲区及备份数据流中的状态属性分别设置为新数据块及重复数据块。
[0108] 根据本发明提供的共享数据块处理方法,首先根据所述同等级用户的请求服务时间为所述用户分配相应的存储空间,从而实现了通过调节存储空间来调节用户的实际吞吐量,减少同等级用户间吞吐量误差,保障同等级用户间的服务质量;通过将不同等级用户间重复数据块的处理开销均摊到不同等级用户,从而实现了精确的将不同等级用户间的数据块处理开销均摊到不同等级用户,保证各个等级用户服务的相对公平性,满足了实际应用需求。
[0109] 本发明实施例提出的共享数据块处理系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。
[0110] 此外,本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
[0111] 此外,本发明的实施例还提出一种服务设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法的步骤。
[0112] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0113] 计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0114] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0115] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0116] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。