专利名称:资源管理方法及系统的制作方法
技术领域:
本发明涉及到资源管理领域,特别涉及到一种资源管理方法及系统。
背景技术:
常规的资源池必须保持固定数量的资源,当多个外部应用并发时,资源池无法根 据上述应用的实际需要进行调整。而且,各资源使用者对资源的需求时间段有时并不相同。 例如,在数据库系统中,OLTP(On-Line TransactionProcessing,联机事务处理)应用可能 在白天需要占用更多连接,进行实时数据处理;而OLAP(On-Line Analysis Processing,联 机分析处理)应用通常会在夜间整理数据。如果上述两者(0LTP以及0LAP)在同一时间占 用相同的资源数目,可能白天OLTP的资源非常紧张,而OLAP占用的大量资源又没有使用, 晚上则相反。如此将造成了资源的极大浪费,降低了资源的使用效率。
发明内容
本发明的目的之一为提供一种资源管理方法及系统,提升了资源的使用效率。本发明提出一种资源管理方法,包括步骤接收使用者发送的资源获取请求;检查资源池中是否有可用资源;如是,则在所述资源池中找到首个资源;否则,判 断当前资源池容量是否允许创建新的资源,如是,则创建新的资源放入资源池,并从资源池 中提供资源给使用者。优选地,所述在所述资源池中找到首个资源的步骤后还包括步骤判断找到的首个资源是否可用;如是,则提供所述首个资源给使用者;否则,将所 述首个资源从资源池中释放,并重新申请资源。优选地,所述判断当前资源池容量是否允许创建新的资源的步骤后还包括步骤接收使用者返回资源,并判断资源池的容量是否小于设定的最小总容量;如是,则 直接将资源放入资源池,不释放任何资源;否则,判断资源池最后一次无可用资源的时间与 当前时间的差是否大于设定的最小资源等待时间;如是,则获取资源池可用资源队列尾部 的资源并释放;否则,直接将资源放入资源池,不释放任何资源。优选地,所述资源池的容量为在用资源数目、可用资源数目以及已创建但未交至 资源池的资源数目之和。优选地,所述判断当前资源池容量是否允许创建新的资源的步骤进一步包括步 骤设定资源池最大总容量;判断在用资源数目、可用资源数目以及已创建但未交至资源池的资源数目之和是 否小于最大总容量。优选地,所述资源池对资源的管理方式为后进先出方式。本发明还提出一种资源管理系统,与资源使用者模块连接通讯,所述资源管理系统包括资源分配模块,接收所述资源使用者模块发送的资源获取请求;并检查资源池中 是否有可用资源;且在资源池中有可用资源时,找到资源池中的首个资源;在资源池中没 有可用资源时,判断当前资源池容量是否允许创建新的资源;资源创建模块,在所述资源分配模块允许创建新的资源时,创建新的资源放入资 源池,并通过所述资源分配模块提供资源给使用者;资源缓存模块,通过资源池存储资源。优选地,所述资源分配模块还通过资源缓存模块判断找到的首个资源是否可用; 在所述首个资源可用时,提供所述首个资源给使用者;在所述首个资源不可用时,将所述首 个资源从资源池中释放,并重新申请资源。优选地,所述资源管理系统还包括资源释放模块,在资源使用者模块返回资源时,如果资源池的容量小于设定的最 小总容量,则直接将资源放入资源池,不释放任何资源;否则,再判断资源池最后一次无可 用资源的时间与当前时间的差是否大于设定的最小资源等待时间;如是,则获取资源池可 用资源队列尾部的资源并释放;否则,直接将资源放入资源池,不释放任何资源。优选地,所述资源池的容量为在用资源数目、可用资源数目以及已创建但未交至 资源池的资源数目之和。优选地,所述资源分配模块进一步包括设定单元,设定资源池最大总容量;判断单元,判断在用资源数目、可用资源数目以及已创建但未交至资源池的资源 数目之和是否小于最大总容量。优选地,所述资源池对资源的管理方式为后进先出方式。本发明所述资源管理方法及系统,通过有计划创建资源、有规则申请和使用资源、 合理处置使用后返回资源等具体方式,对资源池中资源进行管理,提升了资源的使用效率。
图1是本发明一实施例中资源管理方法的步骤流程示意图;图2是本发明一实施例中资源管理方法步骤S12的流程示意图;图3是本发明一实施例中资源管理方法步骤SllO后的流程示意图;图4是本发明一实施例中资源管理方法步骤S122后的流程示意图;图5是本发明一实施例中资源池后进先出管理方式示意图;图6是本发明另一实施例中资源管理系统的结构示意图;图7是本发明另一实施例中资源分配模块的结构示意图;图8是本发明另一实施例的另一实施方式中资源管理系统的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式本发明通过在资源的建立、使用以及销毁过程中,使用优化策略来进行处理,以提 高资源池中资源的利用效。上述优化策略包括有计划创建资源、有规则申请和使用资源、合理处置使用后返回资源等具体方式。本发明中需要由资源池进行管理的资源具有以下特征一、资源的创建代价较大; 二、资源可被多个应用(使用者)使用,存在争用的情况;三、资源可以在一段时间内被保持 或缓存等。比如套接字、网络连接以及数据库连接等。上述资源池用于缓存和管理上述资源,使得在需要使用紧缺资源时,能够尽可能 及时取得,且取得的资源确实可用。参照图1,本发明提出一实施例的一种资源管理方法,包括步骤S10、接收使用者发送的资源获取请求;步骤S11、检查资源池中是否有可用资源;如是,则在所述资源池中找到首个资源 (步骤S110);否则,进行步骤S12;步骤S12、判断当前资源池容量是否允许创建新的资源,如是,则创建新的资源放 入资源池,并从资源池中提供资源给使用者(步骤S121);否则,等待使用者返回资源(步 骤 S122)。如步骤SlO所述,资源池可接收使用者发送的资源获取请求。本实施例中上述资 源可以是数据库连接。上述资源池分为在用资源池和可用资源池两部分,即占用池和等待 池。占用池保存了正在被使用的资源(在用资源)队列,等待池保存了正在等待连接的资 源(可用资源)队列。如步骤Sll所述,接收资源获取请求后,首先检查等待池中是否有可用资源,即判 断可用资源数目是否大于零。如是,则在上述等待池中找到首个(第一个)资源(步骤 S110);否则,进行步骤S12。如步骤S12所述,如果资源池的等待池中没有可用资源,则可判断当前资源池容 量是否允许创建新的资源。如是,则创建新的资源放入资源池,并从资源池中提供资源给使 用者(步骤S121);否则,则表明当前不允许再创建新的资源,可等待使用者返回资源(步 骤S122)。上述资源池的容量为在用资源数目、可用资源数目以及已创建但未交至资源池的 资源数目之和。参照图2,在本实施例的一实施方式中,上述步骤S12进一步包括步骤S123、设定资源池最大总容量;步骤S124、判断在用资源数目、可用资源数目以及已创建但未交至资源池的资源 数目之和是否小于最大总容量。如步骤S123所述,上述资源池最大总容量可根据实际情况设置一具体数值。比如 可设定一数据库资源池的最多可容纳(最大总容量)N= 100条连接。如步骤SlM所述,假设在用资源数目为A,可用资源数目为B,已创建但未交至资 源池的资源数目为M ;则可判断A+B+M < 100是否成立;如成立,则创建新的资源放入资源 池,并从资源池中提供资源给使用者(步骤S121),当使用者的资源获取请求冲击到来时, 可通过增加计数器妥善处理多并发,避免出现创建过多资源的情况;否则,则表明当前不允 许再创建新的资源,可等待使用者返回资源(步骤S122)。参照图3,在本实施例的另一实施方式中,上述步骤SllO后还包括步骤S111、判断找到的首个资源是否可用;如是,则提供所述首个资源给使用 者(步骤S112);否则,将所述首个资源从资源池中释放(删除),并重新申请资源(步骤S113)。如步骤Slll所述,除非资源在设定时间段内有效使用过,否则需通过测试保证分 配给使用者的资源是有效的;对于经测试已失效的资源,直接释放该资源。且,从资源池中 取出的资源和使用者返回的资源,都先需测试资源是否有效,以保证从资源池中取出的资 源是有效的。参照图4,在本实施例的另一实施方式中,上述步骤S122后还包括步骤S125、接收使用者返回资源,并判断资源池的容量是否小于设定的最小总容 量;如是,则直接将资源放入资源池,不释放任何资源(步骤S126);否则,进行步骤S127 ;步骤S127、判断资源池最后一次无可用资源的时间与当前时间的差是否大于设定 的最小资源等待时间;如是,则获取资源池可用资源队列尾部的资源并释放(步骤S128); 否则,直接将资源放入资源池,不释放任何资源(步骤S126)。如步骤S125所述,上述资源池最小总容量可根据实际情况设置一具体数值。比如 可设定一数据库资源池的最少保持(最小总容量)W = 50条连接,判断A+B+M < 50是否成 立;如成立,进行步骤SU6 ;否则,进行步骤S127。如步骤SU6所述,需要将资源池中的连接数目(资源数目)保持在最小总容量 (50条连接)以上。如步骤S127所述,仅当数据证明当前资源需求数下降时,才释放资源;可通过设 定一最小资源等待时间,利用资源池最后一次无可用资源的时间与该最小资源等待时间进 行比较,如果资源池最后一次无可用资源的时间(T')大于该最小资源等待时间(T),则进 行步骤SU8 ;否则,返回步骤S126。上述T可根据实际情况设定,比如T为60秒;T的取值 范围通常在60秒至600秒之间。如步骤SU8所述,在释放资源时,可获取资源池可用资源队列尾部的资源释放。 由于资源池中资源的管理方式是使用后进先出方式,则上述可用资源队列尾部的资源就是 最长时间未使用的资源,而不是直接释放返回的资源,如此可提高资源分配的命中率,保证 资源池的资源的有效性。且,每次仅释放一个资源,保证资源的平滑回收。上述对资源池中资源进行后进先出的管理方式可以是将放入资源池的资源(包 括新创建的资源或已被使用后返回的可重用资源)放在等待池的头部;分配资源时,从等 待池头部按顺序给出;需要释放资源时,优先释放最长时间未使用的资源,即释放等待池尾 部的资源。(参照图5)本实施例通过有计划创建资源、有规则申请和使用资源、合理处置使用后返回资 源等具体方式,实现对资源的有效利用。参照图6,本发明提出另一实施例的一种资源管理系统30,与资源使用者模块20 连接通讯,所述资源管理系统30包括资源分配模块31,接收所述资源使用者模块20发送 的资源获取请求;并检查资源池中是否有可用资源;且在资源池中有可用资源时,找到资 源池中的首个资源;在资源池中没有可用资源时,判断当前资源池容量是否允许创建新的 资源;资源创建模块32,在所述资源分配模块31允许创建新的资源时,创建新的资源放 入资源池,并通过所述资源分配模块31提供资源给使用者;资源缓存模块33,通过资源池存储资源。
上述资源分配模块31还通过资源缓存模块33判断找到的首个资源是否可用;在 所述首个资源可用时,提供所述首个资源给使用者;在所述首个资源不可用时,将所述首个 资源从资源池中释放,并重新申请资源。上述资源池的容量为在用资源数目、可用资源数目以及已创建但未交至资源池的 资源数目之和。参照图7,在本实施例的一实施方式中,上述资源分配模块31进一步包括设定单 元311以及判断单元312 上述设定单元311,设定资源池最大总容量;上述判断单元312, 判断在用资源数目(A)、可用资源数目(B)以及已创建但未交至资源池的资源数目(M)之和 是否小于最大总容量(N)。上述资源分配模块31可在资源缓存模块33中的资源不够用时,调用资源创建模 块32创建新的资源,否则重用原有资源;且,除非资源在设定时间段内有效使用过,否则必 须通过测试保证分配给应用的资源是有效的;对于经测试已失效的资源,直接释放资源。上述资源创建模块32,可在使用者的资源获取请求冲击到来时,通过增加计数器 妥善处理多并发,避免出现创建过多资源的情况;以及,在资源创建后,即可放入资源缓存 模块33的资源池待用。上述资源缓存模块33使用后进先出式方式管理资源池中资源,以提高资源分配 的命中率,而不是直接释放返回的资源。且在从资源池中取出的资源和使用者返回的资源 时,都先需测试资源是否有效,以保证从资源池中取出的资源是有效的。参照图8,在本实施例的另一实施方式中,所述资源管理系统30还包括资源释放 模块34,在资源使用者模块20(使用者)返回资源时,如果资源池的容量小于设定的最小总 容量,则直接将资源放入资源池,不释放任何资源;否则,再判断资源池最后一次无可用资 源的时间与当前时间的差是否大于设定的最小资源等待时间;如是,则获取资源池可用资 源队列尾部的资源并释放;否则,直接将资源放入资源池,不释放任何资源。上述资源释放模块34仅当数据证明当前资源需求数下降时,才释放资源;每次仅 释放一个资源,以保证资源的平滑回收;释放最长时间未使用的资源,以保证资源池的资源 的有效性。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用 本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关 的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种资源管理方法,其特征在于,包括步骤接收使用者发送的资源获取请求;检查资源池中是否有可用资源;如是,则在所述资源池中找到首个资源;否则,判断当 前资源池容量是否允许创建新的资源,如是,则创建新的资源放入资源池,并从资源池中提 供资源给使用者。
2.根据权利要求1所述的资源管理方法,其特征在于,所述在所述资源池中找到首个 资源的步骤后还包括步骤判断找到的首个资源是否可用;如是,则提供所述首个资源给使用者;否则,将所述首 个资源从资源池中释放,并重新申请资源。
3.根据权利要求1所述的资源管理方法,其特征在于,所述判断当前资源池容量是否 允许创建新的资源的步骤后还包括步骤接收使用者返回资源,并判断资源池的容量是否小于设定的最小总容量;如是,则直接 将资源放入资源池,不释放任何资源;否则,判断资源池最后一次无可用资源的时间与当前 时间的差是否大于设定的最小资源等待时间;如是,则获取资源池可用资源队列尾部的资 源并释放;否则,直接将资源放入资源池,不释放任何资源。
4.根据权利要求1至3中任意一项所述的资源管理方法,其特征在于,所述资源池的容 量为在用资源数目、可用资源数目以及已创建但未交至资源池的资源数目之和。
5.根据权利要求4所述的资源管理方法,其特征在于,所述判断当前资源池容量是否 允许创建新的资源的步骤进一步包括步骤设定资源池最大总容量;判断在用资源数目、可用资源数目以及已创建但未交至资源池的资源数目之和是否小 于最大总容量。
6.根据权利要求1至3中任意一项所述的资源管理方法,其特征在于,所述资源池对资 源的管理方式为后进先出方式。
7.一种资源管理系统,与资源使用者模块连接通讯,其特征在于,所述资源管理系统包括资源分配模块,接收所述资源使用者模块发送的资源获取请求;并检查资源池中是否 有可用资源;且在资源池中有可用资源时,找到资源池中的首个资源;在资源池中没有可 用资源时,判断当前资源池容量是否允许创建新的资源;资源创建模块,在所述资源分配模块允许创建新的资源时,创建新的资源放入资源池, 并通过所述资源分配模块提供资源给使用者;资源缓存模块,通过资源池存储资源。
8.根据权利要求7所述的资源管理系统,其特征在于,所述资源分配模块还通过资源 缓存模块判断找到的首个资源是否可用;在所述首个资源可用时,提供所述首个资源给使 用者;在所述首个资源不可用时,将所述首个资源从资源池中释放,并重新申请资源。
9.根据权利要求7所述的资源管理系统,其特征在于,所述资源管理系统还包括资源释放模块,在资源使用者模块返回资源时,如果资源池的容量小于设定的最小总 容量,则直接将资源放入资源池,不释放任何资源;否则,再判断资源池最后一次无可用资 源的时间与当前时间的差是否大于设定的最小资源等待时间;如是,则获取资源池可用资源队列尾部的资源并释放;否则,直接将资源放入资源池,不释放任何资源。
10.根据权利要求7至9中任意一项所述的资源管理系统,其特征在于,所述资源池的 容量为在用资源数目、可用资源数目以及已创建但未交至资源池的资源数目之和。
11.根据权利要求10所述的资源管理系统,其特征在于,所述资源分配模块进一步包括设定单元,设定资源池最大总容量;判断单元,判断在用资源数目、可用资源数目以及已创建但未交至资源池的资源数目 之和是否小于最大总容量。
12.根据权利要求7至9中任意一项所述的资源管理系统,其特征在于,所述资源池对 资源的管理方式为后进先出方式。
全文摘要
本发明揭示了一种资源管理方法及系统。所述资源管理方法包括步骤接收使用者发送的资源获取请求;检查资源池中是否有可用资源;如是,则在所述资源池中找到首个资源;否则,判断当前资源池容量是否允许创建新的资源,如是,则创建新的资源放入资源池,并从资源池中提供资源给使用者。本发明所述资源管理系统,通过有计划创建资源、有规则申请和使用资源、合理处置使用后返回资源等具体方式,对资源池中资源进行管理,提升了资源的使用效率。
文档编号G06F9/50GK102103522SQ20091018908
公开日2011年6月22日 申请日期2009年12月18日 优先权日2009年12月18日
发明者叶建生 申请人:中兴通讯股份有限公司