一种异构缓存系统的资源分配方法及装置与流程

文档序号:21779393发布日期:2020-08-07 19:55阅读:193来源:国知局
一种异构缓存系统的资源分配方法及装置与流程

本申请涉及计算机缓存与高性能计算领域,尤其涉及一种异构缓存系统的资源分配方法和装置。



背景技术:

在当前的大数据时代,数据缓存是大多数大型数据处理框架和存储系统去实现高性能数据分析的有效方法,同时缓存可以为大量数据应用提供高性能服务。由于dram的读写速率通常比硬盘快很多,因此dram已成为数据缓存的主要工具,然而,dram成本很高。有限的预算会严重制约dram的大容量使用。同时,与dram相比,固态硬盘(ssd)市场价格适中,没有dram那么昂贵,并且读写速率要比机械硬盘快,可以弥补dram的价格昂贵问题和机械硬盘的读写速度较慢的劣势。但是,现有的异构缓存系统的资源分配方法大多具有两个方面的缺点:一是无法平衡效率与公平性,二是缺少考虑异构环境下两种类型的缓存资源的统一分配策略。一方面,随着当前科技的发展,高速缓存成为大多数计算机系统的重要组成部分。尤其是在共享环境中,各用户之间共享内存,可以极大地提升缓存效率,为系统提供高利用率。除了缓存效率之外,公平性是异构缓存系统中用户所关心的另一个关键因素。高速缓存作为大多数计算机系统的重要组成部分,价格昂贵,本身的规模是受限制的,因此,在具有多个用户的共享环境中,每个用户都希望将自己的数据集缓存在内存中,分配者应该如何分配多个用户的空间来保证公平性,这让管理缓存变得很困难。大多数缓存分配算法,例如lru、lfu等都集中在高速缓存的全局效率上,忽略了公平性。平均分配方法可以保证各用户之间的公平,但是效率会很低。另一方面,传统的公平性问题研究中,大多注重单一缓存资源的分配公平性问题,提出了如max-minfairness等公平性理论,但是在缓存中,资源并不是单一的一种,相对单一资源类型的缓存分配问题,两种类型的资源统一公平分配问题尚未被考虑到。



技术实现要素:

针对现有技术的局限性,我们提出一种异构缓存系统的资源分配方法和装置,支持多用户共享缓存来提高缓存效率,可以根据用户的不同状态,采取不同的资源分配方法,保证各用户之间一定程度的公平性,同时提高了分配效率。

本申请提供一种异构缓存系统的资源分配方法,包括如下步骤:

获取用户的数据访问请求;

判断所述请求的数据在所述异构缓存系统中是否存在;

若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;

根据所述关系的不同,采用不同的资源分配方法。

优选的,所述的异构缓存系统的资源分配方法还包括:

判断所述请求的数据在所述异构缓存系统中是否存在;

若是,读取所述请求的数据。

优选的,所述用户的数据缓存计算量大于设定阈值时,判断所述用户属于第一状态,采用效率性资源分配方法,其中,所述效率性资源分配方法包括如下步骤:

从属于第一状态的用户中选取优先级别最低的数据,判断所述请求的数据的优先级别是否大于所述属于第一状态的用户中优先级别最低的数据的优先级别;

若是,删除所述属于第一状态的用户中优先级别最低的数据,在所述异构缓存系统中缓存所述请求的数据。

优选的,所述效率性资源分配方法还包括如下步骤:

从属于第一状态的用户中选取优先级别最低的数据,判断所述请求的数据的优先级别是否大于所述属于第一状态的用户中优先级别最低的数据的优先级别;

若否,放弃缓存所述请求的数据。

优选的,所述用户的数据缓存计算量小于设定阈值时,判断用户属于第二状态,采用公平性资源分配方法,其中,所述公平性资源分配方法包括如下步骤:

判断所述异构缓存系统的剩余容量是否大于所述请求的数据;

若否,从属于第一状态的用户中删除优先级别最低的数据,直至所述异构缓存系统的剩余容量大于所述请求的数据,在异构缓存系统中缓存所述请求的数据。

优选的,所述公平性资源分配方法还包括如下步骤:

判断所述异构缓存系统的剩余容量是否大于所述请求的数据;

若是,在所述异构缓存系统中缓存所述请求的数据。

优选的,所述异构缓存系统包括第一缓存介质和第二缓存介质,所述第一缓存介质的访问延迟小于第二缓存介质,所述第一缓存介质的带宽高于第二缓存介质,设所述异构缓存系统的第一缓存介质和第二缓存介质的存储容量分别表示为,所述异构缓存系统的第一缓存介质和第二缓存介质的数据访问延迟分别表示为,所述异构缓存系统的第一缓存介质和第二缓存介质的带宽分别表示为;所述用户的第一缓存介质和第二缓存介质的数据缓存量分别为,设用户数为n,设置旋钮σ∈[0,1],则设所述异构缓存系统的存储计算量为,所述用户的数据缓存计算量,所述设定阈值为

优选的,在获取用户的数据访问请求之前,所述异构缓存系统的资源分配方法还包括:

每隔预设时间段,调整异构缓存系统中数据的存放位置,使得第一缓存介质中所有数据的优先级别不小于第二缓存介质中数据的优先级别。

本申请提供一种异构缓存系统的资源分配装置,应用于异构缓存系统,包括:

请求获取模块,用于获取用户的数据访问请求;

第一判断模块,用于判断所述请求的数据在所述异构缓存系统中是否存在;

第二判断模块,用于判断所述用户的数据缓存计算量与设定阈值的关系;

资源分配模块,用于根据用户的数据缓存计算量与设定阈值的关系不同,采用不同的资源分配方法。

本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:

获取用户的数据访问请求;

判断所述请求的数据在所述异构缓存系统中是否存在;

若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;

根据所述关系的不同,采用不同的资源分配方法。

本申请提出一种异构缓存系统的资源分配方法、装置及设备,支持多用户共享缓存来提高缓存效率,可以根据用户的不同状态,采取不同的资源分配方法。由于不同缓存介质的数据访问延迟差距很大,不能简单的将它们视为相同的部分,本申请提出的异构缓存系统模型,根据不同的访问延迟,允许用户将的第一缓存介质的存储容量换成的第二缓存介质存储容量,或者将第二缓存介质存储容量换成第一缓存介质的存储容量,同时,为了使用户能够灵活地控制和调整权衡,在公平性资源分配状态下,本申请为用户提供了一个旋钮σ∈[0,1]来调整某种程度的公平性,在此状态下,各用户可获得的资源为;在效率性资源分配状态下,本申请异构缓存系统中可用于以效率为目的的分配资源为,在一定时间内,优先级别高的数据将会被留在缓存中,以最大化缓存效率。

附图说明

图1为本申请一实施例提供的一种异构缓存系统的资源分配方法的流程示意图;

图2为本申请另一实施例提供的一种异构缓存系统的资源分配方法的流程示意图;

图3为本申请实施例提供的公平性资源分配方法流程示意图;

图4为本申请实施例提供的效率性资源分配方法流程示意图;

图5为本申请一实施例提供的一种异构缓存系统的资源分配装置的结构示意图;

图6为本申请实施例提供的一种计算机设备的实体结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对具体实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动前提下,所获得的所有其他的实施例,都属于本申请保护的范围。

图1示出了本申请一实施例提供的一种异构缓存系统的资源分配方法的流程示意图,如图1所示,本实施例的异构缓存系统的资源分配方法如下所述:

步骤100,获取用户的数据访问请求;

步骤102,判断所述请求的数据在所述异构缓存系统中是否存在;

步骤103,若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;

步骤104,根据所述关系的不同,采用不同的资源分配方法。

图2示出了本申请另一实施例提供的一种异构缓存系统的资源分配方法的流程示意图,如图2所示,本实施例的异构缓存系统的资源分配方法如下所述:

步骤201,获取用户的数据访问请求;

步骤202,判断所述请求的数据在所述异构缓存系统中是否存在;

步骤203,若是,读取所述请求的数据;

步骤204,若否,根据所述数据访问请求,判断所述用户的数据缓存计算量是否大于设定阈值;

具体的,所述异构缓存系统包括第一缓存介质和第二缓存介质,所述第一缓存介质的访问延迟小于第二缓存介质,所述第一缓存介质的带宽高于第二缓存介质,设所述异构缓存系统的第一缓存介质和第二缓存介质的存储容量分别表示为,所述异构缓存系统的第一缓存介质和第二缓存介质的数据访问延迟分别表示为,所述异构缓存系统的第一缓存介质和第二缓存介质的带宽分别表示为;所述用户的第一缓存介质和第二缓存介质的数据缓存量分别为,设用户数为n,设置旋钮σ∈[0,1],则设所述异构缓存系统的存储计算量为,所述用户的数据缓存计算量,所述设定阈值为

步骤205,若是,判断用户属于第一状态,采用效率性资源分配方法;

步骤206,若否,判断用户属于第二状态,采用公平性资源分配方法。

具体的,如图3所示,所述效率性资源分配方法,包括如下步骤:

步骤301,从属于第一状态的用户中选取优先级别最低的数据;

步骤302,判断所述请求的数据的优先级别是否大于所述属于第一状态的用户中优先级别最低的数据的优先级别;

步骤303,若是,删除所述属于第一状态的用户中优先级别最低的数据,在所述异构缓存系统中缓存所述请求的数据;

步骤304,若否,放弃缓存所述请求的数据。

具体的,如图4所示,所述公平资源分配方法,包括如下步骤:

步骤401,判断所述异构缓存系统的剩余容量是否大于所述请求的数据;

步骤402,若否,从属于第一状态的用户中删除优先级别最低的数据,直至所述异构缓存系统的剩余容量大于所述请求的数据,在异构缓存系统中缓存所述请求的数据;

步骤403,若是,在异构缓存系统中缓存所述请求的数据。

图5为本申请一实施例提供的一种异构缓存系统的资源分配装置的结构示意图;

请求获取模块51,用于获取用户的数据访问请求;

第一判断模块52,用于判断所述请求的数据在所述异构缓存系统中是否存在;

第二判断模块53,用于判断所述用户的数据缓存计算量与设定阈值的关系;

资源分配模块54,用于根据用户的数据缓存计算量与设定阈值的关系不同,采用不同的资源分配方法。

图6示出了本申请实施例提供的一种电子设备的实体结构示意图,如图所示,该电子设备可以包括处理器61、存储器62和总线63;

其中,所述处理器61,存储器62通过所述总线63完成相互间的通信;

所述处理器61可以调用存储器62的逻辑指令,以执行上述各方法实施例所提供的方法,例如包括:获取用户的数据访问请求;判断所述请求的数据在所述异构缓存系统中是否存在;若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;根据所述关系的不同,采用不同的资源分配方法。

本申请实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取用户的数据访问请求;判断所述请求的数据在所述异构缓存系统中是否存在;若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;根据所述关系的不同,采用不同的资源分配方法。

本申请实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取用户的数据访问请求;判断所述请求的数据在所述异构缓存系统中是否存在;若否,根据所述数据访问请求,判断所述用户的数据缓存计算量与设定阈值的关系;根据所述关系的不同,采用不同的资源分配方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和或方框图来描述的。应理解可由计算机程序指令实现流程图和或方框图中的每一流程和或方框、以及流程图和或方框图中的流程和或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他险的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接可以是机械连接,也可以是电连接可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和或实施例的任意组合和或置换。而且,可以单独使用本发明的每个方面和或实施例或者与一个或更多其他方面和或其实施例结合使用。

最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1