G06F9/50
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 条评论) |