一种资源分配方法和装置

阅读: 评论:0

著录项
  • CN201410510340.9
  • 20140928
  • CN104298561A
  • 20150121
  • 浪潮(北京)电子信息产业有限公司
  • 李杰
  • G06F9/50
  • G06F9/50

  • 北京市海淀区上地信息路2号2-1号C栋1层
  • 北京(11)
  • 北京安信方达知识产权代理有限公司
  • 王丹;李丹
摘要
本发明公开了一种资源分配方法和装置,该方法包括以下步骤:接收异步请求,对所述异步请求进行判断;如果是资源申请请求,则判断条件队列中是否存在资源申请请求,如果是,则将接收到的资源申请请求添加到所述条件队列中;否则,为所述接收到的资源申请请求分配资源;如果是资源释放请求,则从所述条件队列中选取资源申请请求,为选取的资源申请请求分配资源,将所述选取的资源申请请求从所述条件队列中删除;根据对所述异步请求的处理结果,更新相应的性能参数。本发明能够实现资源分配的有序性和通用性,进而确保系统的可用性和健壮性。
权利要求

1.一种资源控制方法,其特征在于,包括以下步骤:

接收异步请求,对所述异步请求进行判断;

如果是资源申请请求,则判断条件队列中是否存在资源申请请求,如果 是,则将接收到的资源申请请求添加到所述条件队列中;否则,为所述接收 到的资源申请请求分配资源;如果是资源释放请求,则从所述条件队列中选 取资源申请请求,为选取的资源申请请求分配资源,将所述选取的资源申请 请求从所述条件队列中删除;

根据对所述异步请求的处理结果,更新相应的性能参数。

2.如权利要求1所述的方法,其特征在于,为所述接收到的资源申请 请求分配资源之前,还包括:

判断当前可用资源量是否与所述接收到的资源申请请求匹配;

为所述接收到的资源申请请求分配资源,具体为:

如果所述当前可用资源量与接收到的资源申请请求匹配,则为所述接收 到的资源申请请求分配资源;

所述判断当前可用资源量是否与接收到的资源申请请求匹配之后,还包 括:

如果所述当前可用资源量与所述接收到的资源申请请求不匹配,则将所 述接收到的资源申请请求添加到所述条件队列中;

所述性能参数包括当前可用资源量;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在为所述接收到的资源申请请求分配资源之后,根据为所述接收到的资 源申请请求分配的资源量,更新所述当前可用资源量。

3.如权利要求1所述的方法,其特征在于,为所述选取的资源申请请 求分配资源之前,还包括:

判断所述当前可用资源量是否与所述选取的资源申请请求匹配;

为所述选取的资源申请请求分配资源,具体为:

如果当前可用资源量与所述选取的资源申请请求匹配,则为所述选取的 资源申请请求分配资源;

所述判断当前可用资源量是否与选取的资源申请请求匹配之后,还包括:

如果所述当前可用资源量与所述选取的资源申请请求不匹配,则将选取 的资源申请请求添加到所述条件队列中;

所述性能参数包括当前可用资源量;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在判断出所述异步请求为资源释放请求之后,根据接收到的资源释放请 求,更新当前可用资源量;在为所述选取的资源申请请求分配资源之后,根 据为所述选取的资源申请请求分配的资源量,更新所述当前可用资源量。

5.如权利要求3所述的方法,其特征在于,所述性能参数包括阻塞总 次数;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在将接收到的资源申请请求添加到所述条件队列中之后,更新所述阻塞 总次数;

判断出所述当前可用资源量与选取的资源申请请求不匹配之后,更新所 述阻塞总次数。

4.如权利要求1所述的方法,其特征在于,所述性能参数包括资源申 请等待总时长;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在为所述选取的资源申请请求分配资源之后,获取与所述选取的资源申 请请求对应的等待时长,并根据所述等待时长,更新所述资源申请等待总时 长。

6.一种资源控制装置,其特征在于,包括:

接收模块,用于接收异步请求;

第一判断模块,用于对所述接收模块接收到的所述异步请求进行判断;

第二判断模块,用于在所述第一判断模块判断出所述异步请求是资源申 请请求时,判断条件队列中是否存在资源申请请求;

添加模块,用于在所述第二判断模块判断出所述条件队列中存在资源申 请请求时,将所述接收模块接收到的资源申请请求添加到所述条件队列中;

选取模块,用于在所述第一判断模块判断出所述异步请求是资源释放请 求时,从所述条件队列中选取资源申请请求;

分配模块,用于为所述选取模块选取的资源申请请求分配资源,在所述 第二判断模块判断出所述条件队列中不存在资源申请请求时,为所述接收模 块接收到的资源申请请求分配资源;

删除模块,用于将所述选取模块选取的资源申请请求从所述条件队列中 删除;

更新模块,用于根据对所述异步请求的处理结果,更新相应的性能参数。

7.如权利要求6所述的装置,其特征在于,还包括:

第三判断模块,用于在所述第二判断模块判断出所述条件队列中不存在 资源申请请求时,判断当前可用资源量是否与所述接收到的资源申请请求匹 配;

所述分配模块,具体用于在所述第三判断模块判断出所述当前可用资源 量与接收到的资源申请请求匹配时,为所述接收模块接收到的资源申请请求 分配资源;

所述添加模块,还用于在所述第三判断模块判断所述当前可用资源量与 所述接收到的资源申请请求不匹配时,将所述接收到的资源申请请求添加到 所述条件队列中;

所述性能参数包括当前可用资源量;

所述更新模块,具体用于根据所述分配模块为所述接收到的资源申请请 求分配的资源量,更新所述当前可用资源量。

8.如权利要求6所述的装置,其特征在于,所述性能参数包括当前可 用资源量;

所述更新模块,具体用于在所述第一判断模块判断出所述异步请求是资 源释放请求时,根据所述接收模块接收到的资源释放请求,更新当前可用资 源量;根据为所述选取模块选取的资源申请请求分配的资源量,更新所述当 前可用资源量;

第四判断模块,用于判断所述当前可用资源量是否与所述选取模块选取 的资源申请请求匹配;

所述分配模块,具体用于在所述第四判断模块判断出所述当前可用资源 量与所述选取的资源申请请求匹配时,为所述选取的资源申请请求分配资源;

所述添加模块,还用于在所述第四判断模块判断出所述当前可用资源量 与所述选取的资源申请请求不匹配时,将选取的资源申请请求添加到所述条 件队列中。

10.如权利要求8所述的装置,其特征在于,所述性能参数包括阻塞总 次数;

所述更新模块,具体用于在所述添加模块将所述接收到的资源申请请求 添加到所述条件队列中之后,更新所述阻塞总次数;在所述第四判断模块判 断出所述当前可用资源量与选取的资源申请请求不匹配之后,更新所述阻塞 总次数。

9.如权利要求6所述的装置,其特征在于,所述性能参数包括资源申 请等待总时长;

所述更新模块,具体用于在所述分配模块为所述选取的资源申请请求分 配资源之后,获取与所述选取的资源申请请求对应的等待时长,并根据所述 等待时长,更新所述资源申请等待总时长。

说明书
技术领域

本发明涉及计算机技术领域,具体涉及一种资源分配方法和装置。

随着网络应用的迅速发展,网络中的数据量越来越大。在处理海量数据 时,一般在某些关键环节采用异步处理的方式,异步处理通常会伴随着多线 程和多进程,因此,资源的并发访问控制上是一个难点,尤其是对于长时间 运行的系统而言,由于资源是有限的,如果处理不当,很容易出现系统性能 下降,甚至直接宕机。

现有技术中,通常在海量数据处理系统中针对于一些特定场景采用基础 的互斥信号量函数,进行公共资源的互斥访问,通用性和有序性较差。

本发明提供了一种资源分配方法和装置,以解决现有的资源分配方法通 用性和有序性较差的缺陷。

本发明提供了一种资源控制方法,包括以下步骤:

接收异步请求,对所述异步请求进行判断;

如果是资源申请请求,则判断条件队列中是否存在资源申请请求,如果 是,则将接收到的资源申请请求添加到所述条件队列中;否则,为所述接收 到的资源申请请求分配资源;如果是资源释放请求,则从所述条件队列中选 取资源申请请求,为选取的资源申请请求分配资源,将所述选取的资源申请 请求从所述条件队列中删除;

根据对所述异步请求的处理结果,更新相应的性能参数。

可选地,为所述接收到的资源申请请求分配资源之前,还包括:

判断当前可用资源量是否与所述接收到的资源申请请求匹配;

为所述接收到的资源申请请求分配资源,具体为:

如果所述当前可用资源量与接收到的资源申请请求匹配,则为所述接收 到的资源申请请求分配资源;

所述判断当前可用资源量是否与接收到的资源申请请求匹配之后,还包 括:

如果所述当前可用资源量与所述接收到的资源申请请求不匹配,则将所 述接收到的资源申请请求添加到所述条件队列中;

所述性能参数包括当前可用资源量;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在为所述接收到的资源申请请求分配资源之后,根据为所述接收到的资 源申请请求分配的资源量,更新所述当前可用资源量。

可选地,为所述选取的资源申请请求分配资源之前,还包括:

判断所述当前可用资源量是否与所述选取的资源申请请求匹配;

为所述选取的资源申请请求分配资源,具体为:

如果当前可用资源量与所述选取的资源申请请求匹配,则为所述选取的 资源申请请求分配资源;

所述判断当前可用资源量是否与选取的资源申请请求匹配之后,还包括:

如果所述当前可用资源量与所述选取的资源申请请求不匹配,则将选取 的资源申请请求添加到所述条件队列中;

所述性能参数包括当前可用资源量;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在判断出所述异步请求为资源释放请求之后,根据接收到的资源释放请 求,更新当前可用资源量;在为所述选取的资源申请请求分配资源之后,根 据为所述选取的资源申请请求分配的资源量,更新所述当前可用资源量。

可选地,所述性能参数包括资源申请等待总时长;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在为所述选取的资源申请请求分配资源之后,获取与所述选取的资源申 请请求对应的等待时长,并根据所述等待时长,更新所述资源申请等待总时 长。

可选地,所述性能参数包括阻塞总次数;

根据对所述异步请求的处理结果,更新相应的性能参数,具体为:

在将接收到的资源申请请求添加到所述条件队列中之后,更新所述阻塞 总次数;

判断出所述当前可用资源量与选取的资源申请请求不匹配之后,更新所 述阻塞总次数。

本发明还提供了一种资源控制装置,包括:

接收模块,用于接收异步请求;

第一判断模块,用于对所述接收模块接收到的所述异步请求进行判断;

第二判断模块,用于在所述第一判断模块判断出所述异步请求是资源申 请请求时,判断条件队列中是否存在资源申请请求;

添加模块,用于在所述第二判断模块判断出所述条件队列中存在资源申 请请求时,将所述接收模块接收到的资源申请请求添加到所述条件队列中;

选取模块,用于在所述第一判断模块判断出所述异步请求是资源释放请 求时,从所述条件队列中选取资源申请请求;

分配模块,用于为所述选取模块选取的资源申请请求分配资源,在所述 第二判断模块判断出所述条件队列中不存在资源申请请求时,为所述接收模 块接收到的资源申请请求分配资源;

删除模块,用于将所述选取模块选取的资源申请请求从所述条件队列中 删除;

更新模块,用于根据对所述异步请求的处理结果,更新相应的性能参数。

可选地,所述的装置,还包括:

第三判断模块,用于在所述第二判断模块判断出所述条件队列中不存在 资源申请请求时,判断当前可用资源量是否与所述接收到的资源申请请求匹 配;

所述分配模块,具体用于在所述第三判断模块判断出所述当前可用资源 量与接收到的资源申请请求匹配时,为所述接收模块接收到的资源申请请求 分配资源;

所述添加模块,还用于在所述第三判断模块判断所述当前可用资源量与 所述接收到的资源申请请求不匹配时,将所述接收到的资源申请请求添加到 所述条件队列中;

所述性能参数包括当前可用资源量;

所述更新模块,具体用于根据所述分配模块为所述接收到的资源申请请 求分配的资源量,更新所述当前可用资源量。

可选地,所述性能参数包括当前可用资源量;

所述更新模块,具体用于在所述第一判断模块判断出所述异步请求是资 源释放请求时,根据所述接收模块接收到的资源释放请求,更新当前可用资 源量;根据为所述选取模块选取的资源申请请求分配的资源量,更新所述当 前可用资源量;

第四判断模块,用于判断所述当前可用资源量是否与所述选取模块选取 的资源申请请求匹配;

所述分配模块,具体用于在所述第四判断模块判断出所述当前可用资源 量与所述选取的资源申请请求匹配时,为所述选取的资源申请请求分配资源;

所述添加模块,还用于在所述第四判断模块判断出所述当前可用资源量 与所述选取的资源申请请求不匹配时,将选取的资源申请请求添加到所述条 件队列中。

可选地,所述性能参数包括资源申请等待总时长;

所述更新模块,具体用于在所述分配模块为所述选取的资源申请请求分 配资源之后,获取与所述选取的资源申请请求对应的等待时长,并根据所述 等待时长,更新所述资源申请等待总时长。

可选地,所述性能参数包括阻塞总次数;

所述更新模块,具体用于在所述添加模块将所述接收到的资源申请请求 添加到所述条件队列中之后,更新所述阻塞总次数;在所述第四判断模块判 断出所述当前可用资源量与选取的资源申请请求不匹配之后,更新所述阻塞 总次数。

本发明使用条件队列对资源申请请求进行有效控制,使得在同一时间只 有一个异步请求对资源进行申请,实现资源分配的有序性和通用性,进而确 保系统的可用性和健壮性;另外,在控制资源申请请求的同时,还对资源申 请的相关性能参数进行统计,使得上层控制模块能够通过接口实时地获取上 述性能参数,并根据该性能参数做出正确的性能评估,进而实时灵活地变更 策略。

图1为本发明实施例中的一种资源分配方法流程图;

图2为本发明实施例中的一种资源分配装置的结构图。

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

需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可 以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻 辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的 步骤。

本发明实施例提供了一种资源分配方法,通过条件队列对资源申请请求 进行处理,并根据对异步请求的处理结果,更新相应的性能参数,其中,该 性能参数可以是自定义的参数,包括资源申请等待总时长、阻塞总次数、资 源申请次数、资源申请总量、当前使用资源量、资源释放次数、资源释放总 量和当前使用资源量等参数。上述资源分配方法,如图1所示,包括以下步 骤:

步骤101,等待接收异步请求。

步骤102,对接收到的异步请求进行判断,如果是资源申请请求,则执 行步骤103;如果是资源释放请求,则执行步骤108。

步骤103,根据接收到的资源申请请求,更新资源申请次数和资源申请 总量。

具体地,可以将资源申请次数加1,作为更新后的资源申请次数;将资 源申请总量加上接收到的资源申请请求中的资源申请量,作为更新后的资源 申请总量。

步骤104,判断条件队列中是否存在资源申请请求,如果是,则执行步 骤105;否则,执行步骤106。

步骤105,将接收到的资源申请请求添加到条件队列中,更新阻塞总次 数。

具体地,可以将阻塞总次数加1,作为更新后的阻塞总次数。

步骤106,判断当前可用资源量是否与接收到的资源申请请求匹配,如 果是,则执行步骤107;否则,返回步骤105。

具体地,可以判断当前可用资源量是否小于接收到的资源申请请求中的 资源申请量,如果是,则确定当前可用资源量与接收到的资源申请请求不匹 配;否则,确定当前可用资源量与接收到的资源申请请求匹配。

步骤107,为接收到的资源申请请求分配资源,并根据分配的资源量, 更新当前可用资源量和当前使用资源量。

具体地,可以将为接收到的资源申请请求分配资源之前的当前可用资源 量,减去为接收到的资源申请请求分配的资源量,将得到的结果作为更新后 的当前可用资源量;将为接收到的资源申请请求分配资源之前的当前使用资 源量,加上为接收到的资源申请请求分配的资源量,将得到的结果作为更新 后的当前使用资源量。

其中,本发明实施例中的资源可以是逻辑资源,也可以是物理资源,例 如,带宽、内存、CPU时间片和磁盘容量等。

步骤108,根据接收到的资源释放请求,更新当前可用资源量、资源释 放次数和资源释放总量。

具体地,可以将当前可用资源量加上资源释放请求中的资源释放量,作 为更新后的当前可用资源量;将资源释放次数加1,作为更新后的当前可用 资源量;将资源释放总量加上资源释放请求中的资源释放量,作为更新后的 资源释放总量。

步骤109,判断条件队列中是否存在资源申请请求,如果是,则执行步 骤110;否则,返回步骤101。

步骤110,从条件队列中选取资源申请请求。

具体地,可以从条件队列中选取最早进入条件队列的资源申请请求,也 可以从条件队列中选取优先级最高的资源申请请求。

步骤111,判断当前可用资源量是否与选取的资源申请请求匹配,如果 是,则执行步骤112;否则,更新阻塞总次数,并返回步骤101。

具体地,可以判断当前可用资源量是否小于选取的资源申请请求中的资 源申请量,如果是,则确定当前可用资源量与选取的资源申请请求不匹配, 将阻塞总次数加1,作为更新后的阻塞总次数;否则,确定当前可用资源量 与选取的资源申请请求匹配。

步骤112,将选取的资源申请请求从条件队列中删除,为选取的资源申 请请求分配资源,根据分配的资源量,更新当前可用资源量和当前使用资源 量,获取与选取的资源申请请求对应的等待时长,并根据该等待时长,更新 资源申请等待总时长。

具体地,可以将为选取的资源申请请求分配资源之前的当前可用资源量, 减去为选取的资源申请请求分配的资源量,将得到的结果作为更新后的当前 可用资源量;将为选取的资源申请请求分配资源之前的当前使用资源量,加 上为选取的资源申请请求分配的资源量,将得到的结果作为更新后的当前使 用资源量;将与选取的资源申请请求对应的等待时长,加上资源申请等待总 时长,将得到的结果作为更新后的资源申请等待总时长。

本发明实施例使用条件队列对资源申请请求进行有效控制,使得在同一 时间只有一个异步请求对资源进行申请,实现资源分配的有序性和通用性, 进而确保系统的可用性和健壮性;另外,在控制资源申请请求的同时,还对 资源申请的相关性能参数进行统计,使得上层控制模块能够通过接口实时地 获取上述性能参数,并根据该性能参数做出正确的性能评估,进而实时灵活 地变更策略。

基于上述资源分配方法,本发明实施例还提供了一种资源分配装置,如 图2所示,包括:

接收模块201,用于接收异步请求;

第一判断模块202,用于对接收模块201接收到的所述异步请求进行判 断;

第二判断模块203,用于在第一判断模块202判断出异步请求是资源申 请请求时,判断条件队列中是否存在资源申请请求;

添加模块204,用于在第二判断模块203判断出条件队列中存在资源申 请请求时,将接收模块201接收到的资源申请请求添加到条件队列中;

选取模块205,用于在第一判断模块202判断出异步请求是资源释放请 求时,从所述条件队列中选取资源申请请求;

具体地,上述选取模块205,具体用于从条件队列中选取最早进入条件 队列的资源申请请求;

或者,

从条件队列中选取优先级最高的资源申请请求。

分配模块206,用于为选取模块205选取的资源申请请求分配资源,在 第二判断模块203判断出条件队列中不存在资源申请请求时,为接收模块201 接收到的资源申请请求分配资源;

删除模块207,用于将选取模块205选取的资源申请请求从条件队列中 删除。

更新模块209,用于根据对所述异步请求的处理结果,更新相应的性能 参数。

进一步地,上述装置,还包括:

第三判断模块208,用于在第二判断模块203判断出条件队列中不存在 资源申请请求时,判断当前可用资源量是否与接收模块201接收到的资源申 请请求匹配;

相应地,上述分配模块206,具体用于在第三判断模块208判断出当前 可用资源量与接收模块201接收到的资源申请请求匹配时,为资源申请请求 分配资源;

上述添加模块204,还用于在所述第三判断模块208判断当前可用资源 量与接收模块201接收到的资源申请请求不匹配时,将资源申请请求添加到 所述条件队列中;

上述更新模块209,具体用于根据分配模块206为接收模块201接收到 的资源申请请求分配的资源量,更新当前可用资源量。

进一步地,上述装置,

上述更新模块209,具体用于在第一判断模块202判断出异步请求是资 源释放请求时,根据接收模块201接收到的资源释放请求,更新当前可用资 源量;根据为选取模块205选取的资源申请请求分配的资源量,更新当前可 用资源量;

第四判断模块210,用于判断当前可用资源量是否与选取模块205选取 的资源申请请求匹配;

相应地,上述分配模块206,具体用于在第四判断模块210判断出当前 可用资源量与选取模块205选取的资源申请请求匹配时,为选取的资源申请 请求分配资源;

所述添加模块204,还用于在所述第四判断模块210判断出当前可用资 源量与选取模块205选取的资源申请请求不匹配时,将选取的资源申请请求 添加到条件队列中。

进一步地,上述更新模块209,具体用于在分配模块206为选取的资源 申请请求分配资源之后,获取与选取的资源申请请求对应的等待时长,并根 据该等待时长,更新资源申请等待总时长;

在添加模块204将接收到的资源申请请求添加到条件队列中之后,更新 阻塞总次数;在第四判断模块210判断出当前可用资源量与选取的资源申请 请求不匹配之后,更新阻塞总次数;

在第一判断模块202判断出异步请求为资源申请请求时,根据接收到的 资源申请请求,更新资源申请次数和资源申请总量;在第一判断模块202判 断出异步请求为资源释放请求时,根据接收到的资源释放请求,更新资源释 放次数和资源释放总量;

在分配模块206为接收到的资源申请请求分配资源后,根据为接收到的 资源申请请求分配的资源量,更新当前使用资源量;在所述分配模块206为 选取的资源申请请求分配资源后,根据为选取的资源申请请求分配的资源量, 更新当前使用资源量。

本发明实施例使用条件队列对资源申请请求进行有效控制,使得在同一 时间只有一个异步请求对资源进行申请,实现资源分配的有序性和通用性, 进而确保系统的可用性和健壮性;另外,在控制资源申请请求的同时,还对 资源申请的相关性能参数进行统计,使得上层控制模块能够通过接口实时地 获取上述性能参数,并根据该性能参数做出正确的性能评估,进而实时灵活 地变更策略。

结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理 器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程 ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意 其它形式的存储介质中。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限 于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应所述以权利要求的保护范围为准。

本文发布于:2023-04-13 06:35:21,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/85852.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图