CN109960588B - 一种针对异构内存集群的读请求调度方法及系统 - Google Patents

一种针对异构内存集群的读请求调度方法及系统 Download PDF

Info

Publication number
CN109960588B
CN109960588B CN201910213623.XA CN201910213623A CN109960588B CN 109960588 B CN109960588 B CN 109960588B CN 201910213623 A CN201910213623 A CN 201910213623A CN 109960588 B CN109960588 B CN 109960588B
Authority
CN
China
Prior art keywords
access
cost
read
read request
disk
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.)
Expired - Fee Related
Application number
CN201910213623.XA
Other languages
English (en)
Other versions
CN109960588A (zh
Inventor
黄建忠
曹强
谢长生
汤思雨
蔡奇
冯慧君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910213623.XA priority Critical patent/CN109960588B/zh
Publication of CN109960588A publication Critical patent/CN109960588A/zh
Application granted granted Critical
Publication of CN109960588B publication Critical patent/CN109960588B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种针对异构内存集群的读请求调度方法及系统,属于计算机系统结构领域,方法包括:(1)根据应用需求确定读请求的调度策略;(2)根据所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;(3)根据所估计的访问代价,按照访问代价从小到大的顺序对读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;其中,目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块。对应地,系统包括:调度策略选择模块、访问代价估计模块以及调度模块,分别用于执行方法各步骤。本发明能够更好地满足各类应用需求,提高异构内存集群I/O调度的整体性能。

Description

一种针对异构内存集群的读请求调度方法及系统
技术领域
本发明属于计算机系统结构领域,更具体地,涉及一种针对异构内存集群的读请求调度方法及系统。
背景技术
对于数据密集型存储系统,每分钟需要处理的数据请求达几十万次,存取数据时磁盘I/O开销很大,严重制约了系统的整体性能。就数据读写速度而言,内存比磁盘高几个数量级,更接近于CPU的处理速度。而由于DRAM的易失性,分布式内存系统的可靠性显得尤为重要。大多数情况下分布式内存系统的高访问性能采用冗余机制来维持,典型的冗余机制包括副本策略和纠删码,在保证相同冗余度的前提下,纠删码具有更高的存储效率,因此被广泛应用于分布式内存系统中,构成了纠删码内存系统。
纠删码内存系统中存在着较为明显的异构访问延迟现象,具体体现在以下三个方面:(1)每个节点获取的内存数据可能来自本地内存或者远程内存,一方面,节点访问远程内存时会产生相应的网络开销,另一方面,通常跨机架节点带宽远小于机架内带宽,例如:对于100个存储节点构成的集群,机架内和跨机架节点带宽之比为5:1到20:1,因此,数据位置的异构(及机架内/跨机架)会导致异构的访问延迟;(2)由于内存节点承载的负载压力较大时,其可用带宽资源少,对I/O请求的响应性能差,I/O请求的响应延迟长,使得可用带宽资源较多的内存节点处理I/O请求的响应延迟往往小于可用带宽资源较少的内存节点处理I/O请求的响应延迟,因此,节点载的差异性会导致异构访问;(3)根据缓存是否命中,在纠删码内存系统中存在两种读请求,缓存命中时执行正常读请求,直接传输被访问的数据分块以响应请求;缓存不命中时执行降级读请求,需要先传输多个数据分块进行纠删码解码操作以恢复出被请求的数据分块,再传输被访问的数据分块以响应请求,纠删码内存系统在缓存命中和未命中的情况下会呈现异构性。
现有的针对纠删码内存系统进行I/O性能优化的方法,其优化目的都是使得纠删码内存系统中的每个内存节点接受/响应请求数相等或者相近,并且这些方法均未考虑纠删码内存系统的异构访问延迟现象,因此,无法很好地满足各类应用需求,对于某些特定应用而言,异构内存集群整体I/O调度的整体性能不高。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种针对异构内存集群的读请求调度方法及系统,其目的在于,提高异构内存集群I/O调度的整体性能。
为实现上述目的,按照本发明的一个方面,提供了一种针对异构内存集群的读请求调度方法,包括:
(1)根据应用需求确定读请求的调度策略;
(2)根据所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
(3)根据所估计的访问代价,按照访问代价从小到大的顺序对读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;
其中,目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,物理分块为数据分块或校验分块。
进一步地,本发明提供的针对异构内存集群的读请求调度方法,还包括:在读请求调度完成后,从排序后的读请求序列中依次获取读请求并访问该读请求对应的目标物理分块序列。
进一步地,步骤(1)包括:
判断应用需求的类型,若为优化访问延迟,则确定读请求的调度策略为最小访问延迟调度策略;若为优化网络传输流量,则确定读请求的调度策略为最小网络传输流量调度策略;若为优化负载均衡,则确定读请求调度策略为最大负载均衡调度策略;
最小访问延迟调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost′磁盘访问};
最小网络传输流量调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost′磁盘访问};
最大负载均衡调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost磁盘访问};
其中,Min表示取最小值,Cost正常读内存访问和Cost降级读内存访问分别表示正常读内存访问和降级读内存访问的访问代价,Cost′磁盘访问表示磁盘访问过程中包含网络传输开销和磁盘访问开销的访问代价,Cost磁盘访问表示磁盘访问过程中仅包含网络传输开销的访问代价。
进一步地,访问代价Cost正常读内存访问的获取方法为:
判断被请求的数据分块Dp是否存储在节点内存中,若是,则获得其内存中存储有数据分块Dp的所有节点中具有最大可用带宽的节点SN,并根据数据分块大小Sblk和节点SN的可用带宽BWSN计算访问代价Cost正常读内存访问为:
Figure BDA0002001321650000041
若否,则设置访问代价Cost正常读内存访问为代价模型中的最大值。
进一步地,访问代价Cost降级读内存访问的获取方法为:
判断被请求的数据分块Dp所在纠删码条带S中存活节点数是否大于或等于k,若是,则获得纠删码条带S中的存活节点中可用带宽最大的k个存活节点SN1~SNk,并根据数据分块大小Sblk和节点SN1~SNk的可用带宽计算访问代价Cost降级读内存访问为:
Figure BDA0002001321650000042
若否,则设置访问代价Cost降级读内存访问为代价模型中的最大值;
其中,k表示一个纠删码条带中包含的数据分块数,
Figure BDA0002001321650000043
表示节点SNi的可用带宽。
进一步地,访问代价Cost′磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和节点SN的可用带宽BWSN计算访问代价Cost′磁盘访问为:
Figure BDA0002001321650000044
其中,Tdisk表示磁盘访问开销。
进一步地,访问代价Cost磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和所述节点SN的可用带宽BWSN计算所述访问代价Cost磁盘访问为:
Figure BDA0002001321650000045
进一步地,步骤(2)包括:
对于每一个读请求,若读请求调度策略为最小访问延迟调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最小网络传输流量调度策略,则分别计算对应的访问代价Cost正常读内存访问和访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最大负载均衡调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列。
按照本发明的另一方面,提供了一种针对异构内存系统的读请求调度系统,包括:调度策略选择模块、访问代价估计模块以及调度模块;
调度策略选择模块用于根据应用需求确定读请求的调度策略;
访问代价估计模块用于根据由调度策略选择模块所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
调度模块用于根据访问代价估计模块所估计的访问代价,按照访问代价从小到大的顺序对读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;
其中,目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,物理分块为数据分块或校验分块。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的针对异构内存集群的读请求调度方法及系统,根据不同的应用需求(优化化访问延迟、优化网络传输流量或优化负载均衡),采用不同的调度策略对内存的读请求进行调度,由此能够针对各类应用需求提升纠删码内存系统I/O调度的整体性能。
(2)本发明所提供的针对异构内存集群的读请求调度方法及系统,根据所确定的调度策略各读请求的访问代价后,按照访问代价从小到大的顺序对读请求进行调度并执行,能够降低读请求的等待时延。
附图说明
图1为现有的异构内存集群中纠删码条带的示意图;
图2为本发明实施例所提供的针对异构内存集群的读请求调度方法流程图;
图3为本发明实施例所提供的异构内存集群实例;
图4为本发明实施例所提供的应用需求为优化访问延迟时的读请求调度方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对本发明中所涉及到的技术术语进行简单介绍:
纠删码条带:一个纠删码条带(Stripe)由多个分条(strip)构成,一个分条可以分为多个分块,当一个分条中仅包含一个分块时,那么一个纠删码条带就有多个分块(包括数据分块和校验分块)组成;基于RS码的纠删码系统中,k个数据分块和r个校验分块构成一个纠删码条带,纠删码条带可以独立地恢复出失效数据的信息集合;图1所示为一种常见的纠删码条带的示意图,其中D0~D7为数据分块,P1~P4为校验分块,每个纠删码条带由四个数据分块和编码产生的两个校验分块组成;
RS纠删码:(k+r,k)RS纠删码具有最佳存储效率并支持高水平容错,RS码通过采用基于Galois Field算法的线性组合来完成奇偶校验分块的生成,其任意k个存活分块可降级读和恢复出原数据,所以当失效分块(包括数据分块和校验分块)数不超过r时,仍旧能保证数据不丢失;
正常读内存访问:通过网络获取逻辑数据分块在内存中所对应的目标分块,从存放目标分块中可用带宽最大的节点上读取该目标分块的代价作为正常读内存访问的预期访问代价;
降级读内存访问:通过网络获取逻辑数据分块所在纠删码条带的其中k个内存分块作为目标分块;具体地,若目标分块所在的条带对应的存活节点数大于等于k,则选取同一条带上可用带宽最大的k个节点上的k个内存分块(包括数据分块和校验分块)进行解码,解码得到的分块即为降级读的逻辑分块;获取该k个内存分块的代价将作为降级读内存访问的预期访问代价;
磁盘访问:通过网络获取逻辑分块在磁盘中所对应的目标分块,读取该磁盘目标分块的代价作为磁盘访问的预期访问代价。
为提高异构内存集群I/O调度的整体性能,本发明提供的针对异构内存集群的读请求调度方法,如图2所示,包括:
(1)根据应用需求确定读请求的调度策略;
在本实施例中,应用需求具体为优化访问延迟、优化网络传输流量,或者优化负载均衡;其中,优化访问延迟具体是指最小化用户访问的响应时间,优化网络传输流量具体是指最小化网络传输块数据量以缓解网络拥塞,优化负载均衡具体是指使带宽资源多的节点响应更多的请求以使得资源分配更加合理;
步骤(1)具体包括:
判断应用需求的类型,若为优化访问延迟,则确定读请求的调度策略为最小访问延迟调度策略;若为优化网络传输流量,则确定读请求的调度策略为最小网络传输流量调度策略;若为优化负载均衡,则确定读请求调度策略为最大负载均衡调度策略;
最小访问延迟调度策略的代价模型根据响应时间,取其最小代价;具体地,最小访问延迟调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost′磁盘访问};
最小网络传输流量调度策略的代价模型将网络传输中的块最少且响应时间小的请求代价为其最小代价;具体地,最小网络传输流量调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost′磁盘访问};
最大负载均衡调度策略的代价模型将可用带宽资源多的节点响应更多的请求,而响应时间次之考虑;具体地,最大负载均衡调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost磁盘访问};
其中,Min表示取最小值,Cost正常读内存访问和Cost降级读内存访问分别表示正常读内存访问和降级读内存访问的访问代价,Cost′磁盘访问表示磁盘访问过程中包含网络传输开销和磁盘访问开销的访问代价,Cost磁盘访问表示磁盘访问过程中仅包含网络传输开销的访问代价;在同一个异构内存集群中具有固定的磁盘访问开销,一般为3ms;
在一个可选的实施方式中,访问代价Cost正常读内存访问的获取方法为:
判断被请求的数据分块Dp是否存储在节点内存中,若是,则获得其内存中存储有数据分块Dp的所有节点中具有最大可用带宽的节点SN,根据数据分块大小Sblk和节点SN的可用带宽BWSN计算访问代价Cost正常读内存访问为:
Figure BDA0002001321650000091
若否,则设置访问代价Cost正常读内存访问为代价模型中的最大值;相应地,访问节点SN的内存中的数据分块Dp,即可得到被请求的数据分块;
在一个可选的实施方式中,访问代价Cost降级读内存访问的获取方法为:
判断被请求的数据分块Dp所在纠删码条带S中存活节点数是否大于k,若是,则获得纠删码条带S中的存活节点中可用带宽最大的k个存活节点SN1~SNk,并根据数据分块大小Sblk和节点SN1~SNk的可用带宽计算访问代价Cost降级读内存访问为:
Figure BDA0002001321650000092
若否,则设置所述访问代价Cost降级读内存访问为代价模型中的最大值;相应地,访问所选取的节点内存中属于纠删码条带S的数据分块或校验分块,并进行解码,即可得到被请求的数据分块;
其中,k表示一个纠删码条带中包含的数据分块数,
Figure BDA0002001321650000093
表示节点SNi的可用带宽;
在一个可选的实施方式中,访问代价Cost′磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和节点SN的可用带宽BWSN计算访问代价Cost′磁盘访问为:
Figure BDA0002001321650000094
相应地,访问节点SN的磁盘中的数据分块Dp,即可得到被请求的数据分块;
其中,Tdisk表示磁盘访问开销;
在一个可选的实施方式中,访问代价Cost磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和所述节点SN的可用带宽BWSN计算所述访问代价Cost磁盘访问为:
Figure BDA0002001321650000101
相应地,访问节点SN的磁盘中的数据分块Dp,即可得到被请求的数据分块;
在同一个代价模型中,如果仅有一个访问代价被设置为最大值,则该访问代价的值大于其他的访问代价;如果两个访问代价同时被设置为最大值,则认为这两个访问代价相等,且均大于其他的访问代价;
(2)根据所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
其中,目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,物理分块为数据分块或校验分块;
在本实施例中,步骤(2)具体包括:
对于每一个读请求,若读请求调度策略为最小访问延迟调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最小网络传输流量调度策略,则分别计算对应的访问代价Cost正常读内存访问和访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最大负载均衡调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
(3)根据所估计的访问代价,按照访问代价从小到大的顺序对读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度。
在本发明的另一个实施例中,本发明所提供的针对异构内存集群的读请求调度方法,与上述实施例中的方法相类似,所不同之处在,除了上述步骤,在本实施例中,还包括:在读请求调度完成后,从排序后的读请求序列中依次获取读请求并访问该读请求对应的目标物理分块序列。
本发明还提供了一种针对异构内存系统的读请求调度系统,包括:调度策略选择模块、访问代价估计模块以及调度模块;
调度策略选择模块用于根据应用需求确定读请求的调度策略;
访问代价估计模块用于根据由调度策略选择模块所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
调度模块用于根据访问代价估计模块所估计的访问代价,按照访问代价从小到大的顺序对读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;
其中,目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,物理分块为数据分块或校验分块;
在本发明实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。
应用实例:
图3所示为一个异构内存集群实例,其中共有10个节点,依次编号为SN0~SN9,机架内带宽:跨机架带宽=10:1,读取的块大小为Sblk=2KB,机架内读取数据分块时,各节点带宽分别为:
Figure BDA0002001321650000121
Figure BDA0002001321650000122
Figure BDA0002001321650000123
Figure BDA0002001321650000124
磁盘访问开销为Tdisk=3ms。
图3所示的异构内存集群中,采用(k+r,k,R)混合编码,其中k=4,r=2,R=2,即每个编码冗余组由k*R=8个数据分块以及r=2个校验分块构成;异构内存集群中共存在两个编码冗余组,第一个编码冗余组为{D0,DO′,D1,D1′,D2,D2′,D3,D3′,P1,P2},第二个编码冗余组为{D4,D4′,D5,D5′,D6,D6′,D7,D7′,P3,P4}。除此之外,每个编码冗余组包含的k*R+r=10个内存分块分别存放在10个不同存储节点的内存中,具体数据布局如图3所示。
针对图3所示的异构内存集群,当应用需求为优化访问延迟时,假设待调度的读请求序列中共存在两个读请求,第一个读请求访问数据分块D7,第二个读请求访问数据分块D1,对这两个读请求的调度如图4所示,具体包括:
(S1)根据优化访问延迟的应用需求,确定读请求的调度策略为最小访问延迟调度策略,对应的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost′磁盘访问};
(S2)对于读请求序列中的第一个读请求,内存中数据分块D7对应的目标分块有双副本形式存放,节点SN3和节点SN6中都存有数据分块D7,因此选取存有目标分块中可用带宽最大的节点SN3进行‘正常读内存访问’,估计‘正常读内存访问’的访问代价为:
Figure BDA0002001321650000131
(S3)数据分块D7所在的纠删码条带中存活节点数为5,大于k=4,可降级读,因此选取目标分块所在纠删码条带上可用带宽最大的4个节点:节点SN1,节点SN4,节点SN5,节点SN7上的数据分块D6和D5′以及校验分块P3和P4进行‘降级读内存访问’,估计‘降级读内存访问’的访问代价为:
Figure BDA0002001321650000132
(S4)数据分块D7在节点SN3的磁盘中存放,因此选取磁盘中存有目标分块的节点SN3进行‘磁盘访问’,估计‘磁盘访问’的访问代价为:
Figure BDA0002001321650000133
(S5)比较‘正常读内存访问’、‘降级读内存访问’和‘磁盘访问’的访问代价,确定出‘正常读内存访问’的访问代价最小,确定‘正常读内存访问’的访问代价Cost正常读内存访问为第一个读请求的访问代价,并且将对应的节点SN3的内存中的数据分块D7作为第一个读请求对应的目标物理分块序列;
(S6)对于第二个读请求,内存中数据分块D1所对应的目标分块有双副本形式存放,节点SN1和SN2的内存中都存有数据分块D1,因此选取存有目标分块中可用带宽最大的节点SN1进行‘正常读内存访问’,计算‘正常读内存访问’的访问代价为:
Figure BDA0002001321650000134
(S7)数据分块D1所在的条带中存活节点数为5,大于k=4,可降级读,因此选取目标分块所在条带上可用带宽最大的4个节点:节点SN3,节点SN4,节点SN5,节点SN6上的数据分块D2和D0′以及校验分块P1和P2进行‘降级读内存访问’,计算‘降级读内存访问’的访问代价为:
Figure BDA0002001321650000141
(S8)数据分块D1在节点SN5的磁盘中存放,因此选取磁盘中存有目标分块的节点SN5进行‘磁盘访问’,计算‘磁盘访问’的访问代价为:
Figure BDA0002001321650000142
(S9)比较‘正常读内存访问’、‘降级读内存访问’和‘磁盘访问’的预期请求代价,确定出‘正常读内存访问’的预期请求代价最小,确定‘正常读内存访问’的访问代价Cost正常读内存访问为第二个读请求的访问代价,并且将对应的节点SN1的内存中的数据分块D1作为第二个读请求对应的目标物理分块序列;
(S10)由于第二个读请求的访问代价(20μs)小于第一个读请求的访问代价(26.67μs),按照访问代价从大到小的顺序对读请求序列中的读请求重新排序后,第二个读请求(访问数据分块D1的读请求)会优先调度,然后调度第一个读请求(访问数据分块D7的读请求);
(S11)请求调度结束。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种针对异构内存集群的读请求调度方法,其特征在于,包括:
(1)根据应用需求确定读请求的调度策略;
(2)根据所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
(3)根据所估计的访问代价,按照访问代价从小到大的顺序对所述读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;
其中,所述目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,所述物理分块为数据分块或校验分块;
步骤(1)包括:
判断应用需求的类型,若为优化访问延迟,则确定读请求的调度策略为最小访问延迟调度策略;若为优化网络传输流量,则确定读请求的调度策略为最小网络传输流量调度策略;若为优化负载均衡,则确定读请求调度策略为最大负载均衡调度策略;
所述最小访问延迟调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost′磁盘访问};
所述最小网络传输流量调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost′磁盘访问};
所述最大负载均衡调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost磁盘访问};
其中,Min表示取最小值,Cost正常读内存访问和Cost降级读内存访问分别表示正常读内存访问和降级读内存访问的访问代价,Cost′磁盘访问表示磁盘访问过程中包含网络传输开销和磁盘访问开销的访问代价,Cost磁盘访问表示磁盘访问过程中仅包含网络传输开销的访问代价;所述降级读内存是指通过网络获取逻辑数据分块所在纠删码条带的其中k个内存分块作为目标分块,k表示一个纠删码条带中包含的数据分块数。
2.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,还包括:在读请求调度完成后,从排序后的读请求序列中依次获取读请求并访问该读请求对应的目标物理分块序列。
3.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,所述访问代价Cost正常读内存访问的获取方法为:
判断被请求的数据分块Dp是否存储在节点内存中,若是,则获得其内存中存储有所述数据分块Dp的所有节点中具有最大可用带宽的节点SN,并根据数据分块大小Sblk和所述节点SN的可用带宽BWSN计算所述访问代价Cost正常读内存访问为:
Figure FDA0002666740390000021
若否,则设置所述访问代价Cost正常读内存访问为代价模型中的最大值。
4.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,所述访问代价Cost降级读内存访问的获取方法为:
判断被请求的数据分块Dp所在纠删码条带S中存活节点数是否大于或等于k,若是,则获得所述纠删码条带S中的存活节点中可用带宽最大的k个存活节点SN1~SNk,并根据数据分块大小Sblk和所述节点SN1~SNk的可用带宽计算所述访问代价Cost降级读内存访问为:
Figure FDA0002666740390000022
若否,则设置所述访问代价Cost降级读内存访问为代价模型中的最大值;
其中,
Figure FDA0002666740390000023
表示节点SNi的可用带宽。
5.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,所述访问代价Cost′磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和所述节点SN的可用带宽BWSN计算所述访问代价Cost′磁盘访问为:
Figure FDA0002666740390000031
其中,Tdisk表示磁盘访问开销。
6.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,所述访问代价Cost磁盘访问的获取方法为:
获得其磁盘中存储有被请求的数据分块Dp的节点SN;
根据数据分块大小Sblk和所述节点SN的可用带宽BWSN计算所述访问代价Cost磁盘访问为:
Figure FDA0002666740390000032
7.如权利要求1所述的针对异构内存集群的读请求调度方法,其特征在于,所述步骤(2)包括:
对于每一个读请求,若读请求调度策略为最小访问延迟调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最小网络传输流量调度策略,则分别计算对应的访问代价Cost正常读内存访问和访问代价Cost′磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列;
若读请求调度策略为最大负载均衡调度策略,则分别计算对应的访问代价Cost正常读内存访问、访问代价Cost降级读内存访问以及访问代价Cost磁盘访问,将其中最小的访问代价估计为该读请求的访问代价,由获得最小的访问代价时所需访问的物理分块构成该读请求对应的目标物理分块序列。
8.一种针对异构内存系统的读请求调度系统,其特征在于,包括:调度策略选择模块、访问代价估计模块以及调度模块;
所述调度策略选择模块用于根据应用需求确定读请求的调度策略;
所述访问代价估计模块用于根据由所述调度策略选择模块所确定的调度策略估计待调度的读请求序列中各读请求的访问代价,并确定各读请求所对应的目标物理分块序列;
所述调度模块用于根据访问代价估计模块所估计的访问代价,按照访问代价从小到大的顺序对所述读请求序列中的读请求进行排序,以完成对异构内存集群的读请求调度;
其中,所述目标物理分块序列包括一个或多个存储于内存或者磁盘中的物理分块,所述物理分块为数据分块或校验分块;
所述调度策略选择模块根据应用需求确定读请求的调度策略,包括:
判断应用需求的类型,若为优化访问延迟,则确定读请求的调度策略为最小访问延迟调度策略;若为优化网络传输流量,则确定读请求的调度策略为最小网络传输流量调度策略;若为优化负载均衡,则确定读请求调度策略为最大负载均衡调度策略;
所述最小访问延迟调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost′磁盘访问};
所述最小网络传输流量调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost′磁盘访问};
所述最大负载均衡调度策略中用于估计读请求访问代价Cost访问代价的代价模型为:
Cost访问代价=Min{Cost正常读内存访问,Cost降级读内存访问,Cost磁盘访问};
其中,Min表示取最小值,Cost正常读内存访问和Cost降级读内存访问分别表示正常读内存访问和降级读内存访问的访问代价,Cost′磁盘访问表示磁盘访问过程中包含网络传输开销和磁盘访问开销的访问代价,Cost磁盘访问表示磁盘访问过程中仅包含网络传输开销的访问代价;所述降级读内存是指通过网络获取逻辑数据分块所在纠删码条带的其中k个内存分块作为目标分块,k表示一个纠删码条带中包含的数据分块数。
CN201910213623.XA 2019-03-20 2019-03-20 一种针对异构内存集群的读请求调度方法及系统 Expired - Fee Related CN109960588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910213623.XA CN109960588B (zh) 2019-03-20 2019-03-20 一种针对异构内存集群的读请求调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910213623.XA CN109960588B (zh) 2019-03-20 2019-03-20 一种针对异构内存集群的读请求调度方法及系统

Publications (2)

Publication Number Publication Date
CN109960588A CN109960588A (zh) 2019-07-02
CN109960588B true CN109960588B (zh) 2020-12-08

Family

ID=67024631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910213623.XA Expired - Fee Related CN109960588B (zh) 2019-03-20 2019-03-20 一种针对异构内存集群的读请求调度方法及系统

Country Status (1)

Country Link
CN (1) CN109960588B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778346B (zh) * 2021-11-12 2022-02-11 深圳市名竹科技有限公司 数据读取方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN107797884A (zh) * 2016-10-28 2018-03-13 湖南大学 一种基于复制和纠删码自适应切换的云存储容错方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270161B (zh) * 2011-06-09 2013-03-20 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
CN103176865B (zh) * 2013-03-12 2015-05-20 华中科技大学 一种纠删码存储中负载感知的读优化方法
US9595979B2 (en) * 2015-01-20 2017-03-14 International Business Machines Corporation Multiple erasure codes for distributed storage
CN106775476A (zh) * 2016-12-19 2017-05-31 中国人民解放军理工大学 混合内存系统及其管理方法
CN107977167B (zh) * 2017-12-01 2020-08-18 西安交通大学 一种基于纠删码的分布式存储系统的退化读优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN107797884A (zh) * 2016-10-28 2018-03-13 湖南大学 一种基于复制和纠删码自适应切换的云存储容错方法

Also Published As

Publication number Publication date
CN109960588A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN109154917B (zh) 存储系统和固态硬盘
US9489409B2 (en) Rollover strategies in a N-bit dictionary compressed column store
CN110413201B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US9798471B2 (en) Performance of de-clustered disk array by disk grouping based on I/O statistics
CN110262922B (zh) 基于副本数据日志的纠删码更新方法及系统
US8234519B2 (en) Fast data recovery from HDD failure
US11061788B2 (en) Storage management method, electronic device, and computer program product
US11474919B2 (en) Method for managing multiple disks, electronic device and computer program product
CN110427156B (zh) 一种基于分片的mbr的并行读方法
CN112527492A (zh) 一种分布式存储系统中的数据存储方法及装置
CN104254839A (zh) 用于分割单链表以供分配存储器元素的系统和方法
CN115834587A (zh) 一种选择目标存储服务器的方法、装置及电子设备
CN114936188A (zh) 数据处理方法、装置、电子设备及存储介质
CN109960588B (zh) 一种针对异构内存集群的读请求调度方法及系统
CN111399761A (zh) 存储资源分配方法、装置及设备、存储介质
US11481275B2 (en) Managing reconstruction of a malfunctioning disk slice
CN108021678B (zh) 一种结构紧凑的键值对存储结构及快速键值对查找方法
CN112823338A (zh) 使用分布式分段处理借用的资源分配
CN113504875B (zh) 一种基于多级调度的纠删码系统恢复方法及系统
CN106326143A (zh) 一种缓存分配、数据访问、数据发送方法、处理器及系统
CN112486411B (zh) 超融合环境下分布式文件系统磁盘分配方法、装置及介质
CN115525234A (zh) 免跨控raid条带锁的多控存储系统的数据迁移方法及系统
CN115793957A (zh) 写数据的方法、装置及计算机存储介质
CN110543362B (zh) 一种图形处理器管理方法、装置及服务器
CN115686342A (zh) 存储系统中的数据存储方法以及装置

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201208

CF01 Termination of patent right due to non-payment of annual fee