CN115834709A - 一种抢占式请求并发控制的方法 - Google Patents
一种抢占式请求并发控制的方法 Download PDFInfo
- Publication number
- CN115834709A CN115834709A CN202211509111.6A CN202211509111A CN115834709A CN 115834709 A CN115834709 A CN 115834709A CN 202211509111 A CN202211509111 A CN 202211509111A CN 115834709 A CN115834709 A CN 115834709A
- Authority
- CN
- China
- Prior art keywords
- request
- priority
- queue
- concurrency control
- queues
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 9
- 230000011218 segmentation Effects 0.000 claims description 8
- 239000012634 fragment Substances 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种抢占式请求并发控制的方法,包括梯度分段抢占的请求并发控制方案、弹性伸缩的动态优先级队列的存储器以及通过滑动窗口控制均衡速率的优化方案。本发明利用梯度分段抢占的请求并发控制方案、弹性伸缩的动态优先级队列的存储器以及通过滑动窗口控制均衡速率的优化方案实现一种抢占式请求并发数控制的整体方案,解决系统内部的请求并发数控制,按业务场景配置不同的优先级,并依据优先级高低做请求资源的抢占。
Description
技术领域
本发明涉及限流限制领域,具体涉及一种抢占式请求并发控制的方法。
背景技术
现有与外部系统做数据交互,为了防止自身系统不被高请求量压垮,外部系统往往会对入口请求做并发数限制。但是有些单一接口,往往会有多种应用用途,如果仅依靠外部系统的请求并发限制,就无法对优先级做控制,因为外部系统会无差别地做请求并发数拦截,因此内部系统也需要实现请求优先级的并发控制功能。
目前市面上的并发控制技术,都是针对全局资源实现的控制,没有基于优先级的抢占式并发控制,因此,需要实现一种支持不同业务场景的抢占式并发控制。
发明内容
本发明所要解决的技术问题是一种抢占式请求并发控制的方法,解决系统内部的请求并发数控制,按业务场景配置不同的优先级,并依据优先级高低做请求资源的抢占。
本发明是通过以下技术方案来实现的:一种抢占式请求并发控制的方法,包括梯度分段抢占的请求并发控制方案、弹性伸缩的动态优先级队列的存储器以及通过滑动窗口控制均衡速率的优化方案。
作为优选的技术方案,所述梯度分段抢占的请求并发控制方案,包括:
(1.1)把原来并发控制的单位时间区间,拆分成多个更小的单位时间区间,通过增加对更小单位时间的轮询检查,最大可能地提高高优先级请求抢占并发资源的概率;
(1.2)通过拆分单位时间区间,以分段的形式做时间区间的梯度划分,增加多次小单位时间分片的抢占。每一个小单位时间分片,请求都会先通过优先级队列获取请求资源,如果获取到资源,就放行请求;如果获取不到,则会阻塞等待队列的释放,直到当前小时间单位分片的时间结束,若最终获取不到,则进入下一个时间分片,进入下一轮次的资源抢占。
作为优选的技术方案,弹性伸缩的动态优先级队列的存储器,包括:
(2.1)按优先级数动态分成多个优先级队列,所有队列的总和保持与全局的并发控制数一致,通过控制所有队列的总和保证并发控制的准确性;
(2.2)根据业务场景的优先级以及对应优先级的请求并发数统计,预设初始的队列个数以及每个队列的初始容量大小;
(2.3)当所有的队列都没达到容量上限,若有请求到来时,会依据请求的场景路由到对应的队列上,消耗一个元素处理;
(2.4)所有优先级的队列都是弹性可变队列,所有队列都会预设一个初始的容量大小;
(2.5)当高优先级的队列在请求满之后,有高优先级请求到来时,高优先级队列会从低优先级的队列中窃取元素,做自适应的弹性容量调整,确保高优先级的队列有足够的元素处理更多高优先级的请求;
(2.6)若高优先级队列若有较多的剩余可处理元素,则把除初始预设值外,多余的元素归还给低优先级的队列中,让低优先级的队列能处理更多低优先级的请求。
作为优选的技术方案,通过滑动窗口控制均衡速率的优化方案,包括:
通过并发数平均分段的形式,控制当前小区间请求并发数承受的能力上限,避免系统原来的请求并发数控制的大周期与外部系统的请求并发数计算周期不一致而导致的请求限制问题。
本发明的有益效果是:一、本发明利用梯度分段抢占的请求并发控制方案,相比原来使用单位时间的计数器实现的请求并发控制方案,在低优先级请求较多,且请求并发数有限的情况下,极大地提高高优先级的抢占成功率;
二、本发明的弹性伸缩的优先级队列的存储器实现方案,相比原来使用单位时间的计数器实现的请求并发控制方案,在低优先级请求数远远大于高优先级请求数时,能极大地提高优先级高的请求的成功率;
三、本发明通过滑动窗口控制均衡速率的优化方案,通过并发数平均分段的形式,控制当前小区间请求并发数承受的能力上限,避免系统原来的请求并发数控制的大周期与外部系统的请求并发数计算周期不一致而导致的请求限制问题。
同时保证在一个大时间周期内的请求并发数不会超出预设的请求并发数,在单个小分段的请求并发数最多上溢(被拒绝)1/n(n为分段数),且出现上溢概率只会在大周期的其中一个小周期上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的梯度分段抢占的请求并发控制处理图;
图2为本发明的弹性伸缩的动态优先级队列非抢占情况的存储器结构图;
图3为本发明的弹性伸缩的动态优先级队列抢占情况的存储器结构;
图4为本发明的滑动窗口控制均衡速率的时间顺序图;
图5为本发明的抢占式请求并发控制原理图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示,本发明的一种抢占式请求并发控制的方法,包括梯度分段抢占的请求并发控制方案、弹性伸缩的动态优先级队列的存储器以及通过滑动窗口控制均衡速率的优化方案。
利用梯度分段抢占的请求并发控制方案,包括:
如图1所示,把原来并发控制的单位时间区间,拆分成多个更小的单位时间区间,通过增加对更小单位时间的轮询检查,最大可能地提高高优先级请求抢占并发资源的概率。
通用的并发控制方案,请求会先去抢占并发资源,如果未获取到配置,会进入等待期,等待被唤醒。在等待期期间,请求是无法控制高优先级和低优先级的抢占行为,只能公平竞争抢占资源。
通过拆分单位时间区间,以分段的形式做时间区间的梯度划分,增加多次小单位时间分片的抢占。每一个小单位时间分片,请求都会先通过优先级队列获取请求资源,如果获取到资源,就放行请求;如果获取不到,则会阻塞等待队列的释放,直到当前小时间单位分片的时间结束,若最终获取不到,则进入下一个时间分片,进入下一轮次的资源抢占。
梯度分段抢占的请求并发控制方案,相比原来使用单位时间的计数器实现的请求并发控制方案,在低优先级请求较多,且请求并发数有限的情况下,极大地提高高优先级的抢占成功率。
利用弹性伸缩的动态优先级队列的存储器,包括:
如图2和图3所示,按优先级数动态分成多个优先级队列,所有队列的总和保持与全局的并发控制数一致,通过控制所有队列的总和保证并发控制的准确性;
根据业务场景的优先级以及对应优先级的请求并发数统计,预设初始的队列个数以及每个队列的初始容量大小,图2中最上面的优先级最低,往下优先级依次递增,最下面的优先级最高。
当所有的队列都没达到容量上限,若有请求到来时,会依据请求的场景路由到对应的队列上,消耗一个元素处理。
所有优先级的队列都是弹性可变队列,所有队列都会预设一个初始的容量大小。
当高优先级的队列在请求满之后,有高优先级请求到来时,高优先级队列会从低优先级的队列中窃取元素,做自适应的弹性容量调整,确保高优先级的队列有足够的元素处理更多高优先级的请求。
若高优先级队列若有较多的剩余可处理元素,则把除初始预设值外,多余的元素归还给低优先级的队列中,让低优先级的队列能处理更多低优先级的请求。
弹性伸缩的优先级队列的存储器实现方案,相比原来使用单位时间的计数器实现的请求并发控制方案,在低优先级请求数远远大于高优先级请求数时,能极大地提高优先级高的请求的成功率。
通过滑动窗口控制均衡速率的优化方案,包括:
通过并发数平均分段的形式,控制当前小区间请求并发数承受的能力上限,避免系统原来的请求并发数控制的大周期与外部系统的请求并发数计算周期不一致而导致的请求限制问题。
同时保证在一个大时间周期内的请求并发数不会超出预设的请求并发数,在单个小分段的请求并发数最多上溢(被拒绝)1/n(n为分段数),且出现上溢概率只会在大周期的其中一个小周期上。
如图4所示,按时间分段,把总时间T分成n段,每段平均处理的请求数为k。原来总时间T内处理的请求数限制为nk,分段后,限制的每一个分段时间的平均请求为k,但是分段时间能承受nk的的总请求数,而且在n个连续的分段时间段内的总请求数都不会超出nk。
原来的方案,如果请求集中在当前总时间段T的最后阶段和后一段总时间T的前面阶段,则在这两个阶段的总请求并发数将大于单个总时间段的请求并发数,且最大量有可能会达到单个总时间段的请求并发数的2倍。
该方案相比原来的请求并发数控制方案,当内部系统的时间周期与外部系统的时间周期不一致时,能有效减轻请求分布不均匀导致的被外部系统限制的情况。在总时间段T内,最多会存在[0,1/n]的请求量会超出总请求量而被外部系统限制。相比原来的方案,该方案能控制请求并发限制的上限,而且超出上限的请求不会马上被拒绝,而是会进入下一个时间分片进行尝试。
n个分段是一个完整的时间周期,每次滑动一个时间分段。在过了一个时间分段后,存储器的队列将对元素做一次更新,队列会按预设的初始队列大小归还每个分段的队列元素个数,即把处理请求的队列元素转为剩余可处理的队列元素。
如图5所示,利用图5的方式实现支持梯度分段抢占、支持弹性伸缩的动态优先级队列和通过滑动窗口控制均衡速率的完整流程。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
Claims (4)
1.一种抢占式请求并发控制的方法,其特征在于:包括梯度分段抢占的请求并发控制方案、弹性伸缩的动态优先级队列的存储器以及通过滑动窗口控制均衡速率的优化方案。
2.根据权利要求1所述的抢占式请求并发控制的方法,其特征在于:所述梯度分段抢占的请求并发控制方案,包括:
(1.1)把原来并发控制的单位时间区间,拆分成多个更小的单位时间区间,通过增加对更小单位时间的轮询检查次数,最大可能地提高高优先级请求抢占并发资源的概率;
(1.2)通过拆分单位时间区间,以分段的形式做时间区间的梯度划分,增加多次小单位时间分片的抢占。每一个小单位时间分片,请求都会先通过优先级队列获取请求资源,如果获取到资源,就放行请求;如果获取不到,则会阻塞等待队列的释放,直到当前小时间单位分片的时间结束,若最终获取不到,则进入下一个时间分片,进入下一轮次的资源抢占。
3.根据权利要求1所述的抢占式请求并发控制的方法,其特征在于:弹性伸缩的动态优先级队列的存储器,包括:
(2.1)按优先级数动态分成多个优先级队列,所有队列的总和保持与全局的并发控制数一致,通过控制所有队列的总和保证并发控制的准确性;
(2.2)根据业务场景的优先级以及对应优先级的请求并发数统计,预设初始的队列个数以及每个队列的初始容量大小;
(2.3)当所有的队列都没达到容量上限,若有请求到来时,会依据请求的场景路由到对应的队列上,消耗一个元素处理;
(2.4)所有优先级的队列都是弹性可变队列,所有队列都会预设一个初始的容量大小;
(2.5)当高优先级的队列在请求满之后,有高优先级请求到来时,高优先级队列会从低优先级的队列中窃取元素,做自适应的弹性容量调整,确保高优先级的队列有足够的元素处理更多高优先级的请求;
(2.6)若高优先级队列若有较多的剩余可处理元素,则把除初始预设值外,多余的元素归还给低优先级的队列中,让低优先级的队列能处理更多该优先级的请求。
4.根据权利要求1所述的抢占式请求并发控制的方法,其特征在于:通过滑动窗口控制均衡速率的优化方案,包括:
通过并发数平均分段的形式,控制当前小区间请求并发数承受的能力上限,避免系统原来的请求并发数控制的大周期与外部系统的请求并发数计算周期不一致而导致的请求限制问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509111.6A CN115834709A (zh) | 2022-11-29 | 2022-11-29 | 一种抢占式请求并发控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509111.6A CN115834709A (zh) | 2022-11-29 | 2022-11-29 | 一种抢占式请求并发控制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834709A true CN115834709A (zh) | 2023-03-21 |
Family
ID=85532505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211509111.6A Pending CN115834709A (zh) | 2022-11-29 | 2022-11-29 | 一种抢占式请求并发控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834709A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1856159A (zh) * | 2005-04-25 | 2006-11-01 | 中兴通讯股份有限公司 | 宽带码分多址系统中按优先级抢占及排队的接纳控制方法 |
US7293136B1 (en) * | 2005-08-19 | 2007-11-06 | Emc Corporation | Management of two-queue request structure for quality of service in disk storage systems |
CN101667962A (zh) * | 2009-10-14 | 2010-03-10 | 天津大学 | 以太无源光网络中自适应保证服务质量动态带宽分配方法 |
CN101827033A (zh) * | 2010-04-30 | 2010-09-08 | 北京搜狗科技发展有限公司 | 一种网络流量控制方法、装置及局域网系统 |
US20140373021A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Assigning and Scheduling Threads for Multiple Prioritized Queues |
CN113395733A (zh) * | 2021-07-30 | 2021-09-14 | 上海瀚讯信息技术股份有限公司 | 基于优化harq缓存利用率的提升基站用户容量的方法 |
-
2022
- 2022-11-29 CN CN202211509111.6A patent/CN115834709A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1856159A (zh) * | 2005-04-25 | 2006-11-01 | 中兴通讯股份有限公司 | 宽带码分多址系统中按优先级抢占及排队的接纳控制方法 |
US7293136B1 (en) * | 2005-08-19 | 2007-11-06 | Emc Corporation | Management of two-queue request structure for quality of service in disk storage systems |
CN101667962A (zh) * | 2009-10-14 | 2010-03-10 | 天津大学 | 以太无源光网络中自适应保证服务质量动态带宽分配方法 |
CN101827033A (zh) * | 2010-04-30 | 2010-09-08 | 北京搜狗科技发展有限公司 | 一种网络流量控制方法、装置及局域网系统 |
US20140373021A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Assigning and Scheduling Threads for Multiple Prioritized Queues |
CN113395733A (zh) * | 2021-07-30 | 2021-09-14 | 上海瀚讯信息技术股份有限公司 | 基于优化harq缓存利用率的提升基站用户容量的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11977784B2 (en) | Dynamic resources allocation method and system for guaranteeing tail latency SLO of latency-sensitive application | |
CN108762896B (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
US6442139B1 (en) | Adaptive rate control based on estimation of message queuing delay | |
US8077618B2 (en) | Using burst tolerance values in time-based schedules | |
CN107800768B (zh) | 开放平台控制方法和系统 | |
CN107948095B (zh) | 一种资源控制方法、装置及总线系统服务器 | |
CN107506234B (zh) | 一种虚拟机调度方法及装置 | |
CN109189578B (zh) | 存储服务器分配方法、装置、管理服务器以及存储系统 | |
CN115103450B (zh) | 一种多业务时隙分配方法和设备 | |
CN112866136A (zh) | 业务数据处理方法和装置 | |
CN107423134B (zh) | 一种大规模计算集群的动态资源调度方法 | |
CN112825511A (zh) | 一种交换网络拥塞管理方法、装置、设备和存储介质 | |
CN115834709A (zh) | 一种抢占式请求并发控制的方法 | |
CN103218326B (zh) | 综合仲裁器装置 | |
CN1665315A (zh) | 在多业务环境下基于业务控制点的智能网过载的控制方法 | |
CN111638986A (zh) | 一种QoS队列调度方法、装置、系统及可读存储介质 | |
EP3021540B1 (en) | Scheduler and method for layer-based scheduling queues of data packets | |
Peng et al. | {Fair-EDF}: A Latency Fairness Framework for Shared Storage Systems | |
CN113849282A (zh) | 一种基于动态权重的openresty反向代理排队处理方法 | |
CN114661415A (zh) | 调度方法及计算机系统 | |
CN112600877B (zh) | Dns服务器的分布式限速方法和系统 | |
CN114911591A (zh) | 任务调度方法及系统 | |
CN108984112B (zh) | 存储QoS控制策略的实现方法及装置 | |
CN112684988A (zh) | 基于分布式存储的QoS方法及系统 | |
US10853138B2 (en) | Scheduling resource usage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |