【技术实现步骤摘要】
一种保证分布式存储系统服务器端读尾延迟的方法及系统
[0001]本专利技术涉及分布式存储系统
,尤其是保证延迟敏感型应用低尾延迟需求
技术介绍
[0002]分布式存储系统采取典型的客户端-服务器(Client-Server)模型。访问分布式存储系统的请求处理过程为:(1)应用(Application)请求访问分布式存储系统的客户端;(2)客户端将请求通过网络发送给服务器;(3)服务器从网络上接受请求并开始处理,请求到达服务器后会首先进入队列中排队,若有空闲线程,则会从队列中取请求并进行处理;(4)请求在服务器端被处理完成后,其响应将通过网络发送给客户端;(5)客户端接收到请求的响应后将其发送给应用。至此,一个请求就被处理完成,如图1所示。上述步骤(3)中在服务器端对请求的处理过程复杂,同时涉及到请求排队,线程处理,存储访问等。服务器端从网络上接收请求后,将请求放入到相应的队列上,服务器端的请求队列可采取单队列或多队列模式,真正处理请求是存储节点上的IO线程。线程根据不同出队策略从队列上取请求并进行处理,请求处理过程中会访问存储设备获取响应,最终将响应经网络发送给客户端。线程在同一时刻只能处理一个请求,一个请求处理完成后才能处理下一个请求。
[0003]部署在分布式存储系统上的延迟敏感型应用(Latency-sensitive application)需要保证其尾延迟SLO。为避免多个延迟型应用由于资源竞争产生干扰,而对尾延迟造成影响,最简单的方法是在存储系统上单独部署该类应用,使其独占系统资源 ...
【技术保护点】
【技术特征摘要】
1.一种保证分布式存储系统服务器端读尾延迟的方法,其特征在于,包括:步骤1、根据应用的负载特征与延迟需求,将分布式存储系统中每一个应用分类为服务可延后的PT应用或服务不可延后PI应用;步骤2、根据预设保证延迟值,计算PT应用借出的最大资源数量;步骤3、PI应用所获得的服务速率为其平均发送速率,计算百分位延迟发生时的排队请求数量PQD_avg=PQL_avg*AR_avg,PI应用延迟SLO不被违反,百分位延迟发生时的排队请求数量最大值PQD_SLO=SLO*AR_avg,AR_avg为应用的请求平均发送速率,PQL_avg为百分位排队延迟,SLO为应用的延迟需求,通过PQD_avg减去PQD_SLO,得到PI应用借用的资源数量最大值QD_Reduce;步骤4、PI应用借用相同资源所获得的收益大小,为各PI应用借用资源的优先级;步骤5、设最小服务速率为PI应用的平均发送速率AR_avg,最大服务速率为该PI应用的最大发送速率AR_max,设PI应用借用的资源数量为QD_Reduce,通过二分查找,找到使借用资源后的百分位延迟PQL_Borrowed=(PQD_SR_Borrowed-QD_Reduce)/SR_Borrowed,以得到PI应用借用资源后所需的平均服务速率;步骤6、根据PI应用借用资源的优先级和PI应用借用的资源数量最大值和每个PT应用借出的最大资源数量,通过动态规划的方法为当前PI应用分配多个PT应用,每次匹配后,从PT应用集合中剔除已匹配的PT应用,直到每个PI应用均借到资源或者PT应用全部匹配完毕;步骤7、已匹配应用组合的总服务速率为PI应用借用资源后的预分配服务速率与应用组合中PT应用各平均发送速率之和;步骤8、PI应用与其相匹配的PT应用共享该总服务速率,为每个PI应用以及与其相匹配的PT应用分配独立的队列,为应用组合中PI应用和各PT应用分配相应服务速率,并监控PT应用因出借资源造成的额外请求排队数量QD_Add,当QD_Add小于最大资源数量时,PI应用的服务优先级高于PT应用,允许该PI应用借用该PT应用的资源,当QD_Add与最大资源数量相同时,该PT应用的服务优先级高于PI应用,为PT应用预留与PT应用的平均发送速率相同的服务速率,若PI应用的请求发送速率低于PI应用的平均发送速率,则剩余的服务速率用于服务PT应用;步骤9、应用接入分布式存储系统的存储节点时,为其分配一个队列,并根据存储节点当前的虚拟时间戳为队列分配虚拟时间戳TS
i
,为该应用的队列分配一个时间戳增加间隔TI
i
,TI
i
为预分配服务速率的倒数,对分布式存储系统中所有应用的时间戳进行排序,IO线程空闲后查找拥有最小时间戳的队列从中取出请求,并增加该最小时间戳的队列的时间戳TS
i
=TS
i
+TI
i
。2.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,还包括:步骤10、PT应用接入该存储节点时,为PT应用的队列设定可借出资源数量初值为该最大资源数量QD_Add_max;当IO线程空闲后查找拥有最小时间戳的队列,若该队列归属于PT应用,增加该队列的时间戳TSi=TSi+TIi,并读取可借出资源数量;若可借出资源数量大于0且对应的PI队列不为空,将PT应用的可借出资源数量减1,取出PI应用的请求进行服务;若可借出资源数量大于0且对应的PI队列为空,则取出PT队列中的请求服务,PT应用的借出资
源数量不变;若可借出资源数量等于0,则取出PT队列中的请求进行服务,PT应用的可借出资源数量不变。3.如权利要求2所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,还包括:步骤11、当IO线程空闲后查找拥有最小时间戳的队列,若该队列归属于PI应用,修改该队列的时间戳,并读取该队列中请求的数量;若该队列不为空,则从该队列中读取请求服务;若该队列为空,则从所有PT应用中寻找可借出资源数量最小的PT队列,从该PT队列中取出请求服务,并将该PT队列的可借出资源数量加1。4.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,该步骤1包括:每个应用提供一个代表其负载特征的请求轨迹,将该请求轨迹中请求发送总量与请求发送的持续时间的比值作为该应用的请求平均发送速率AR_avg,设该应用获得的请求服务速率与请求的平均发送速率相同为AR_avg,计算百分位排队延迟PQL_avg,该百分位与应用延迟SLO的百分位相同,该请求轨迹提供请求入队的时间间隔,AR_avg提供请求出队的时间间隔,以计算该请求轨迹中所有请求的排队延迟,将延迟从低到高进行排序,计算百分位延迟,比较PQL_avg与该应用的延迟SLO,如果PQL_avg大于等于SLO,则该应用为PI应用,否则该应用为PT应用。5.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,该步骤2包括:PT应用被延后服务的时间Postponement=SLO-PQL_avg,PT应用借出的最大资源数量为PT应用因资源出借而增加的排队请求数量QD_Add_max=Postponement*AR_avg。6.一种保证分布式存储系统服务器端读尾延迟的系...
【专利技术属性】
技术研发人员:冷镇宇,蒋德钧,熊劲,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。