一种从多个资源池动态获取资源的方法及系统技术方案

技术编号:32538813 阅读:32 留言:0更新日期:2022-03-05 11:35
本发明专利技术涉及一种从多个资源池动态获取资源的方法,包括以下步骤:将每个资源池定义为一个集合,其初始状态为空,集合中的每个元素代表该资源池中一个已被占用的资源片段;当需要获取某个连续资源片段时,根据该资源片段大小和资源池总量,计算出多个理论可分配资源区间以及每个区间对应的资源数量;从理论可分配资源中扣除已被占用的资源,得到实际可分配资源;当用户获取到某个实际可分配的资源后,将该资源片段加入到相应的集合,代表该资源池中对应区间的资源已被占用;当有其他线程请求新的资源片段时,重复以上步骤,跳过已被占用的资源,选择其他实际可用的资源。该方法及系统有利于实现固定资源的统一规划及准确编排,保证资源的合理分配。证资源的合理分配。证资源的合理分配。

【技术实现步骤摘要】
一种从多个资源池动态获取资源的方法及系统


[0001]本专利技术属于计算机
,具体涉及一种从多个资源池动态获取资源的方法及系统。

技术介绍

[0002]在某些业务中,经常碰到这样的场景:存在多个容量一致的资源池,我们需要汇总所有资源,然后根据单次请求的资源大小和现有资源的使用情况等因素,对这些资源进行合理的动态编排,计算出当前空闲的资源区间以及每个区间可用的资源数量,然后将计算结果反馈给用户,以供用户从空闲资源列表中按需获取自己想要的资源。常见的场景有:预约场景下的时间资源编排、数据存储时的磁盘空间编排等,针对这些相似场景下的资源分配问题,最普遍的处理方式往往都是在各自的场景中独立实现。这种方式最明显的问题就是重复造轮子,并且无法保证内部实现机制的统一,无法形成可扩展的通用方案。

技术实现思路

[0003]本专利技术的目的在于提供一种从多个资源池动态获取资源的方法及系统,该方法及系统有利于实现固定资源的统一规划及准确编排,保证资源的合理分配。
[0004]为实现上述目的,本专利技术采用的技术方案是:一种从多个资源池动态获取资源的方法,包括以下步骤:步骤1、将每个资源池定义为一个集合,其初始状态为空,集合中的每个元素代表该资源池中一个已被占用的资源片段;步骤2、当需要获取某个连续资源片段时,根据该资源片段大小和资源池总量,计算出多个理论可分配资源区间以及每个区间对应的资源数量;步骤3、从理论可分配资源中扣除已被占用的资源,得到实际可分配资源,即所有可分配的资源区间以及每个区间对应的资源数量;步骤4、当用户获取到某个实际可分配的资源后,将该资源片段加入到步骤1中相应的集合,代表该资源池中对应区间的资源已被占用;步骤5、当有其他线程请求新的资源片段时,重复以上步骤,跳过所有已被占用的资源,选择其他实际可用的资源。
[0005]进一步地,所述多个资源池的总长度一致,其中的资源类型包括系统时间、存储空间;获取某个连续资源片段是指从某个资源池中获取某个连续区间的资源;理论可分配资源是指在资源池全部空闲的情况下,可以分配的资源片段;实际可分配资源是指理论可分配资源扣除实际已分配资源后所剩下的资源片段。
[0006]进一步地,所述资源池与资源片段的相互关系主要包括:1)每次请求的资源片段可以从不同资源池中获取,一个资源池中可以分配多个不同长度的资源片段;2)由于每次请求的资源片段长度各不相同,在固定的资源池内,有多少个理论可
分配资源片段,主要取决于每次请求的资源片段长度。
[0007]进一步地,所述步骤2中,计算理论可分配资源区间以及每个区间对应的资源数量的方法为:从起始点开始,以每次申请的资源长度为基本单位,每次累加一个单位,直到超过资源池总长度为止;在这一过程中,每累加一个单位,即为一个理论可分配资源区间;同时,由于同一个资源区间可从不同资源池中获取,因此,有多少个资源池,该资源区间对应的资源数量就有多少个。
[0008]进一步地,所述步骤3中,从理论可分配资源中扣除已被占用的资源,得到实际可分配资源的具体方法为:将每个区间的理论可分配资源与每个资源池的已分配资源进行对比,如果出现区间上的交叉,说明该资源已被占用,则该区间的可用资源数相应地减1;依此类推,计算出每个区间的实际可分配资源数;如果某个区间的可分配资源数为0,说明该区间的所有资源均已被占用,用户无法再申请该区间内的资源;通过这种方式,最终得到的就是所有的实际可分配的资源区间以及每个区间所对应的资源数量。
[0009]进一步地,所述步骤1中,将每个资源池定义为一个空的List对象,其中的每个子元素为该资源池中已被占用的资源片段,即从某个资源池中获取到某个资源片段时,就将该资源片段加入到该资源池对应的List对象中;所述步骤2中,理论可用资源情况是指在资源池空闲的情况下,按照当前请求资源片段的大小划分,理论上可划分的资源区间以及每个区间所对应的资源数量,其最终结果也是一个List对象,其中的每个子元素为一个Map对象,key为可用资源区间,value为该区间对应的资源数量,初始状态下,value的值即为资源池的数量;所述步骤3中,将步骤2中List对象存储的资源区间与步骤1中每个List对象存储的资源区间进行对比,如果出现区间上的交互,说明该资源区间已被占用,则将步骤2 的List对象中相应区间的可用资源数量减1,最终得到所有实际可用的资源区间及每个区间的可用资源数;这一过程即是对步骤2中的List对象进行数据清洗,过滤掉已被占用的资源区间和资源数。
[0010]本专利技术还提供了一种从多个资源池动态获取资源的方法,包括处理器、存储器以及存储在存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现上述的方法步骤。
[0011]与现有技术相比,本专利技术具有以下有益效果:该方法及系统将每个资源池抽象化为一个固定长度的资源片段,然后将其中已被占用的区间打上标识,每次请求资源时,即是汇总所有资源池,从中选取出未打上占用标识的连续区间。通过这种方式,避免了同类场景的重复实现,实现了固定资源的动态编排,保证了资源的合理分配,并且可以灵活兼容后续的其他同类场景,无需再重复实现。
附图说明
[0012]图1是本专利技术实施例的方法实现流程图。
[0013]图2是本专利技术实施例中各资源池的初始分布情况示意图。
[0014]图3是本专利技术实施例中初始状态下的理论可用资源情况示意图。
[0015]图4是本专利技术实施例中一段时间后各资源池的实际资源情况示意图。
[0016]图5是本专利技术实施例中一段时间后实际可分配的资源情况示意图。
具体实施方式
[0017]下面结合附图及实施例对本专利技术做进一步说明。
[0018]应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。
[0019]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0020]如图1所示,本实施例提供了一种从多个资源池动态获取资源的方法,包括以下步骤:步骤1、将每个资源池定义为一个集合,其初始状态为空,集合中的每个元素代表该资源池中一个已被占用的资源片段(每个资源片段大小不一致)。本实施例中,假设有3个资源池,每个资源池分为10个资源区间,由于在最开始之前,所有资源区间都是空闲的,因此,各资源池的初始状态如图2所示。
[0021]步骤2、当需要获取某个资源区间时,系统根据该资源片段大小和资源池总量,计算出多个理论可分配资源区间以及每个区间对应的资源数量。
[0022]所述步骤2中,计算理论可分配资源区间以及每个区本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种从多个资源池动态获取资源的方法,其特征在于,包括以下步骤:步骤1、将每个资源池定义为一个集合,其初始状态为空,集合中的每个元素代表该资源池中一个已被占用的资源片段;步骤2、当需要获取某个连续资源片段时,根据该资源片段大小和资源池总量,计算出多个理论可分配资源区间以及每个区间对应的资源数量;步骤3、从理论可分配资源中扣除已被占用的资源,得到实际可分配资源,即所有可分配的资源区间以及每个区间对应的资源数量;步骤4、当用户获取到某个实际可分配的资源后,将该资源片段加入到步骤1中相应的集合,代表该资源池中对应区间的资源已被占用;步骤5、当有其他线程请求新的资源片段时,重复以上步骤,跳过所有已被占用的资源,选择其他实际可用的资源。2.根据权利要求1所述的一种从多个资源池动态获取资源的方法,其特征在于,所述多个资源池的总长度一致,其中的资源类型包括系统时间、存储空间;获取某个连续资源片段是指从某个资源池中获取某个连续区间的资源;理论可分配资源是指在资源池全部空闲的情况下,可以分配的资源片段;实际可分配资源是指理论可分配资源扣除实际已分配资源后所剩下的资源片段。3.根据权利要求2所述的一种从多个资源池动态获取资源的方法,其特征在于,所述资源池与资源片段的相互关系主要包括:1)每次请求的资源片段可以从不同资源池中获取,一个资源池中可以分配多个不同长度的资源片段;2)由于每次请求的资源片段长度各不相同,在固定的资源池内,有多少个理论可分配资源片段,主要取决于每次请求的资源片段长度。4.根据权利要求3所述的一种从多个资源池动态获取资源的方法,其特征在于,所述步骤2中,计算理论可分配资源区间以及每个区间对应的资源数量的方法为:从起始点开始,以每次申请的资源长度为基本单位,每次累加一个单位,直到超过资源池总长度为止;在这一过程中,每累加一个单位,即为一个理论可分配资源区间;同时,由于同一个资源区间可从不同资源池中获取,因此,有多少个资源池,该资源区间对应的资源数量就有多...

【专利技术属性】
技术研发人员:吴志雄邱聪勇王晓敏
申请(专利权)人:南威软件股份有限公司
类型:发明
国别省市:

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

1