CN1921449B - 稳定的、最小歪斜资源流控制方法与系统 - Google Patents

稳定的、最小歪斜资源流控制方法与系统 Download PDF

Info

Publication number
CN1921449B
CN1921449B CN2006101091249A CN200610109124A CN1921449B CN 1921449 B CN1921449 B CN 1921449B CN 2006101091249 A CN2006101091249 A CN 2006101091249A CN 200610109124 A CN200610109124 A CN 200610109124A CN 1921449 B CN1921449 B CN 1921449B
Authority
CN
China
Prior art keywords
session
current control
server computer
resource
client computer
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
CN2006101091249A
Other languages
English (en)
Other versions
CN1921449A (zh
Inventor
尤安·戈麦斯
桑迪普·M.·乌塔姆昌达尼
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1921449A publication Critical patent/CN1921449A/zh
Application granted granted Critical
Publication of CN1921449B publication Critical patent/CN1921449B/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

在计算机网络中进行资源流控制会话的系统与方法,包括从客户计算机向服务器计算机发送资源请求;对客户计算机指定流控制窗口,其中流控制窗口的大小是基于服务器计算机可用的资源和对应客户计算机的活动等级,其中服务器计算机处于活动的忙和闲状态中的任意一种;当接收到资源请求时基于对应客户计算机的活动等级和特定使用会话期间资源的当前利用确定是否改变该流控制窗口的大小;在预定的时间窗口内跟踪资源的多个活动的使用会话;及以每会话编号最大的队列大小值维护流控制窗口。

Description

稳定的、最小歪斜资源流控制方法与系统
技术领域
本发明的实施方式总体上涉及控制系统,更具体而言,涉及存储系统的流控制管理。
背景技术
存储区域网络(SAN)越来越多的使用导致主机服务器与存储子系统之间利用如iSCSI、FCP、Infiband等协议的数据流动。这种趋势已经被隐藏底层基础结构细节的虚拟化引擎和SAN文件系统更推进了一步。在SAN文件系统中,客户向元数据服务器发送元请求,同时数据可以从(通过iSCSI或FCP连接的)逻辑单元号(LUN)直接访问。在以上两种场景中,即(1)主机服务器与存储子系统交互;及(2)客户与元数据服务器交互,流通过提供可靠性与顺序保证的协议相关起来。此外,这些协议还提供资源流管理,使得能够动态分配给发送者与其工作负荷特征和硬件处理能力成比例的带宽。这两种场景一般称为发起人-目标交互。
语义上也类似于网络资源流管理的存储资源流管理有两个通用目标:(1)在访问目标的所有发起人之间公平地分配存储资源;及(2)避免存储资源的未充分使用,使得发起人可以从存储子系统提取最大化的性能。尽管目标相似,但存储资源流管理和传统网络资源流管理的问题域是不同的,因此传统网络资源流管理方法不能直接应用。表1列举了存储协议与网络协议之间的区别。
表1:存储与网络协议的区别
存储协议(例如SAN.FS、iSCSI)     网络协议(例如TCP/IP)
    一对多     一对一
    精确     不精确
    多个资源     单个资源
    应用知道     网络知道
首先,存储资源管理问题致力于许多存储主机服务器客户与为这些客户提供服务的一个存储子系统之间更广泛的资源管理域。相反,网络流资源管理只关心两个联网的同位体。第二,存储流资源管理对在其控制下的各种资源类型有精确的概念。相反,网络流资源管理不去尝试量化网络中的资源利用而是把它看作一种不可分割的类型。最后,存储流资源管理由于更接近应用栈因此是应用知道的,而网络流资源管理更多地是网络知道的。
有现存的存储资源流管理方法。这些方法中的一些意识到了存储层的语义而利用目标上的资源指示符(free_tasks)提供主要输入管理决定来提供对存储子系统集成的资源流管理方法。但是,这些方法通常不是以具有大量发起人的现实世界环境中可预测的方式执行,而且底层互连是相对不确定的。在现实世界环境中,这些传统方法通常不能缩放、经常波动、在资源分配中不公平而且往往导致大量发起人重试。特别地,现存方法的一般限制列举如下:
a)专用于每个发起人的流控制窗口可能周期性地振荡,在目标上造成可能负面影响吞吐量的相当长的空闲周期。有时这些振荡可能变得同步,对吞吐量造成显著的负面影响。
b)有时,算法可能被锁进吞吐量在几个发起人之间不公平分配的状态。不同的发起人可能得到至少有一个数量级差别的吞吐量。
c)即使在来自多个发起人的一致负载下,给予每个发起人的流控制窗口也可能很宽地波动,导致降低的合计吞吐量。
d)有时,对于扩展的时间周期,可能给予有些发起人太小的流控制窗口,导致发起人引起断开和间歇的应用错误。
传统的存储流资源管理技术通常可以归入两个领域:基于文件的和基于块的存储联网。基于文件的存储联网是基于如NFS(网络文件系统)或CIFS(公共因特网文件系统)的文件访问协议。但是,NFS和CIFS通常不具有任何形式的流控制或资源管理。直接访问文件系统(DAFS)提供了压制来自客户的请求的机制,但不是基于命令窗口;因此其用途通常是有限的。
基于块的存储联网是基于如Fibre通道和iSCSI的SCSI(小型计算机系统接口)传输协议。Fibre通道具有静态和悲观的初步流资源管理机制,不可能实现最大化的资源利用。iSCSI协议对存储器知道的流资源管理算法提供了理想的命令窗口。
有些传统的解决方案提供了实现其自己的存储流资源管理的群集虚拟化网关。MSCP(大存储控制协议)是用于在总线上连接计算机和存储器的存储传输协议。MSCP有用于资源管理的既有静态又有动态策略的基于信用的负载平衡机制。但是,传统解决方案通常不保证可预测性能或采用控制理论思想来改进流控制。因此,还需要能够克服传统技术限制的新的资源流控制技术。
发明内容
根据以上所述,本发明实施方式提供了在计算机网络中进行资源流控制会话的方法及计算机可读的程序存储设备,该程序存储设备有形地体现了可以由计算机执行的指令来执行在计算机网络中进行资源流控制会话的方法,其中该方法包括从至少一台客户计算机向服务器计算机发送资源请求;对每台客户计算机指定流控制窗口,其中特定流控制窗口的大小是基于服务器计算机可用的资源和对应客户计算机的活动等级,而且其中服务器计算机处于活动的忙和闲状态中的任意一种;当接收到资源请求时基于对应客户计算机的活动等级和特定使用会话中资源的当前利用确定是否改变特定流控制窗口的大小;在预定的时间窗口内跟踪资源的多个活动的使用会话;及以每会话编号最大的队列大小值维护每个流控制窗口。优选地,客户计算机通过网络传输协议向服务器计算机发送资源请求。
优选地,由服务器计算机指定的所有流控制窗口的合计大小匹配于连接到该服务器计算机的磁盘控制器适配器的队列大小。该方法还可以包括服务器计算机对每台客户计算机保留会话记录,其中该会话记录包括跟踪指定给对应客户计算机的流控制窗口的域。此外,活动的忙状态优选地指示服务器计算机中的所有资源当前都在使用,使得客户计算机避免在服务器计算机切换到活动的闲状态之前发送其它的资源请求。此外,对于特定的使用会话,该方法还可以包括对对应的客户计算机维持当前流控制窗口的大小;维护在磁盘控制器适配器中排队的多个未完成请求;及维护指示特定使用会话是否活动的标志。而且,当其它使用会话未充分利用可用资源时,优选地允许该特定的使用会话增加流控制窗口的大小到每会话编号最大的队列大小值之上。此外,当只有单个使用会话是活动的时候,该方法优选地将所有可用资源都专用于该单个使用会话。该方法还可以包括在任何给定时间跟踪可以在磁盘控制器适配器上排队的最大个数的命令。
本发明的另一实施方式提供了用于在计算机网络中进行资源流控制的系统,其中该系统包括用于从至少一台客户计算机向服务器计算机发送资源请求的装置;用于对每台客户计算机指定流控制窗口的装置,其中特定流控制窗口的大小是基于服务器计算机可用的资源和对应客户计算机的活动等级,而且其中服务器计算机处于活动的忙和闲状态中的任意一种;用于当接收到资源请求时基于对应客户计算机的活动等级和特定使用会话中资源的当前利用确定是否改变特定流控制窗口的大小的装置;用于在预定的时间窗口内跟踪资源的多个活动的使用会话的装置;及用于以每会话编号最大的队列大小值维护每个流控制窗口的装置。
本发明的另一方面提供了用于在计算机网络中进行资源流控制会话的系统,其中该系统包括至少一台适于在计算机网络中发送资源请求的客户计算机;及连接到该至少一台客户计算机并适于从客户计算机接收资源请求的服务器计算机;对每台客户计算机指定流控制窗口,其中特定流控制窗口的大小是基于服务器计算机可用的资源和对应客户计算机的活动等级,而且其中服务器计算机处于活动的忙和闲状态中的任意一种;当接收到资源请求时基于对应客户计算机的活动等级和特定使用会话中资源的当前利用确定是否改变特定流控制窗口的大小;在预定的时间窗口内跟踪资源的多个活动的使用会话;及以每会话编号最大的队列大小值维护每个流控制窗口。
当联系以下描述和附图考虑时,本发明实施方式的这些及其它方面将更好地理解。但是,应当理解以下描述尽管指示了本发明的优选实施方式及其许多特定细节,但它是为了说明而不是限制给出的。在不背离其主旨的情况下,在本发明实施方式的范围内可以进行许多改变与修改,而且本发明实施方式包括所有这些修改。
附图说明
参考附图,本发明的实施方式将从以下具体描述更好地理解,其中:
图1说明了控制系统方框图的例子;
图2说明了根据本发明实施方式的控制系统方框图;
图3说明了根据本发明实施方式的系统图;
图4说明了根据本发明实施方式的优选方法的流程图;及
图5说明了根据本发明实施方式的计算机系统图。
具体实施方式
本发明的实施方式及其各种特征与优点参考在附图中说明并在以下描述中具体描述的非限制实施方式更完全地解释。应当注意,在附图中说明的特征没有必要按比例绘制。众所周知的组件与处理技术的描述被忽略,从而不会不必要地模糊本发明的实施方式。在此所使用的例子仅仅是要方便理解本发明实施方式可以实践的方式,并进一步使本领域技术人员能够实践本发明的实施方式。因此,这些例子不应当看作是限制本发明实施方式的范围。
现在参考附图,更具体而言是参考图1至5,其中贯穿所有附图相似的标号都始终指示对应的特征,附图示出了本发明的优选实施方式。本发明的实施方式提供了称为“ResourceMagic”的资源流控制技术,该技术最小化了相称区域之间的振荡并最大化了系统会聚到相称区域的速度。
本发明的实施方式使用控制循环来动态并有效地更新提供给每个发起人的流控制窗口。输入到控制循环的误差是指定给发起人的当前流控制窗口之间的差值并且是真正由对应发起人所使用的。控制系统的输出是对每个发起人的流控制窗口的新值。在优选实现中,由TCP/IP(传输控制协议/因特网协议)所使用的其中多个会话的状态在单个点结束的积式减少/和式增加技术的修改版本可以用于以响应性、最优和公平的方式对每个会话修改流控制窗口。与传统解决方案中所使用的总会话相反,本发明实施方式引入了活动会话的概念。本发明实施方式还增强了当服务器或目标的资源是如何尝试报答使用他们指定资源的那些流和惩罚不使用它们的那些流时所采取的动作。
尽管在此所述的本发明实施方式是在iSCSI环境下提出的,但本发明实施方式可以应用到多种场景,如SAN.FS、iSCSI等(即,在SAN.FS元数据服务器非常忙的场景中,它们可以从使用由本发明实施方式所提供的流控制技术来公平有效地压制SAN.FS客户得到好处)。
即使当TCP能够提供在各种情况下都很好工作的动态流控制时,由它所使用的算法通常也不能采用可以产生改进的性能、稳定性和公平性的特征。在TCP中,共享相同资源(即,网络带宽)的多个连接通常在不同的点结束;由此多个连接到达最优稳定状态之间的共享状态是昂贵的。一般来说,这种分布状态的共享是不可行的,因为它涉及在多个终点之间发送额外的消息。即使到新流控制分配实现的时候多个连接的状态是共享的,激发它的状态也可能已经过去了很长时间,而且集体流控制状态可能也不是最优的。在iSCSI目标(及其它联网存储系统)的特定问题中,所有流都在单个节点(即,时间服务器或目标)结束,由此可以采用本发明实施方式来帮助作出关于什么关系到流控制的最优集体决定。
本发明实施方式是基于在TCP/IP中所使用的和式增加和积式减少方法的方法。本发明的优选实施方式还包括当TCP/IP方法的规则被其它动作取代时的特定情况基于各种流的集体状态的处理。
在图1所述的控制系统例子中,系统的输出(即,o(t))与期望的或最优值(即,r(t))进行比较,并计算它们的差值来生成误差测量值(即,e(t))。然后,该误差的函数用作系统的输入(即,i(t)),以便将其输出推到期望的或最优值。依赖于在反馈到系统中之前应用到误差的函数(即,C(e))的类型,控制系统分为线性的、派生的、积分的或混合的。
控制系统简单而众所周知的例子包括具有漂浮系统的水箱和安装在大多数现代交通工具中的速度控制器。在水箱中,期望的输出是满的水箱,而漂浮系统提供当前水位与水箱满刻度之间的差值的测量。依赖于水箱是空或是接近满,误差测量值(由漂浮系统)分别转换成让更多或更少水进入水箱的信号。速度控制器是控制系统的另一简单例子,其中被控制的系统是交通工具的速度:用户提供理想速度,而速度控制器依赖于汽车的当前速度是否偏离期望的速度而注入更多或更少汽油。
本发明实施方式使用控制技术对计算机存储系统提供有效、公平和动态的流控制。根据本发明实施方式,每个发起人周期性地由服务器指定流控制窗口大小(即,fc_window);相关发起人可以或者可以不使用通过这个流控制窗口提供的资源。在任何给定的时刻,发起人都将使用由在任何给定时刻该发起人未完成命令个数(即,outstanding_requests)给出的其未完成流控制窗口的一部分。本发明实施方式利用fc_window与outstanding_requests之间的差值(即,fc_window-outstanding_requests)作为控制循环中的误差测量值。关于最好地满足发起人需求并在多个活动发起人之间最好地利用和分配服务器资源,这种误差测量值可以用于修改指定给发起人的流控制窗口大小的未来值。
优选地,期望通过当outstanding_requests小于fc_window时减小fc_window而当outstanding_requests等于或大于fc_window时增加fc_window来减小fc_window与outstanding_ requests之间的差值。如果服务器有无穷多的资源,则这种决定是可能的。但是,在现实世界的应用中,计算机服务器具有在多个发起人之间共享的有限资源。在考虑这种限制时,本发明实施方式提供了被服务器整体状态偏置的控制函数(即,C(e))。换句话说,分配给客户的资源是依赖于共享该资源的客户的总数;即,系统的平均利用。在可以作为服务器整体状态的部分考虑并关于流控制决定的参数中,本发明实施方式包括活动发起人的个数和服务器资源利用等级。这种状态可以用于决定每个发起人的流控制窗口大小的方式可以包括以下参数:达到其峰值利用的服务器必须对任何发起人增加流控制窗口大小(即,即使所讨论的发起人正完全利用其当前的流控制窗口);及当服务器处于峰值利用时,使用超过其资源配额的发起人的流控制窗口可以减小,即使该发起人正完全利用其当前的流控制窗口。
图2说明了用于解决本发明实施方式所针对系统中流控制问题的通用流控制循环的方框图。因此,每个发起人都有与其关联的流控制循环,但是为了方便理解,图2说明了都在单个箭头集合中崩溃的发起人。每个控制函数由不同的框符/字母(即,Co...Cn)表示。但是,在优选实现中,这些函数是相同的。图2的方框图表示了一类方法:不同的方法由各给定的控制函数集合及所使用的整体状态创建。对于优选实现,对于每个n(即,所有发起人)有Co=Cn。作为用于控制流控制窗口大小的整体状态的一部分,本发明实施方式利用活动会话或发起人个数和服务器整体利用。用在优选实现中的函数以下进一步描述。
参考图3,以下描述参考由本发明实施方式提供的配置中的两个元素:计算机网络50中的iSCSI发起人(即,或客户60)和iSCSI目标(即,服务器70)。客户60生成通常通过网络传输协议发送到服务器70的请求。服务器70考虑其资源和客户的活动等级为每个客户60指定控制窗口(未示出)。期望客户60能够将同时的未完成请求的个数限制到其指定的流控制窗口,由此服务器资源将在客户60中公平地分配。服务器70上流控制窗口的合计大小(即,在任何给定时刻所有客户的流控制窗口大小的总和)通常选择成匹配于后端资源(即,磁盘控制器适配器80)的队列大小。
目标或服务器侧70对每个发起人或客户60保留会话记录。其中,会话记录包括跟踪指定给对应客户60的流控制窗口的域。根据本发明实施方式,服务器70可以是忙或闲两种状态中的一种。处于忙状态指示服务器70的所有资源当前都在使用(即,所有后端磁盘适配器80的队列当前都是满的),由此客户60必须后退到使系统40可以回到资源可用于处理新进入请求的状态。而在闲状态时,服务器70有足够的资源处理新请求。同时,在这种状态,当显示活动的会话开始完全使用其当前的流控制窗口时,必须给予它们更宽的流控制窗口。
当在服务器70处理每个新进入的请求时,由本发明实施方式提供的流控制方法基于服务器70的状态和会话的当前利用作出关于是否增加、减小或维持所讨论会话的流控制窗口的决定。对于每个会话,本发明实施方式维护三个状态项:当前流控制窗口大小(即,fc_window)、在后端存储适配器中排队的未完成请求的个数(即,outstanding_requests)及指示会话是否活动的标志(即,active)。除了其状态(即,server_mode=忙/闲),目标或服务器70还维护动态更新的会话计数(即,session),而且它跟踪在任何时候可以在后端适配器排队的命令的最大个数(即,max_queue_size)。服务器侧70还跟踪活动的会话个数(即,active_session),它反映在给定时间窗口(例如,1秒)中已经具有活动的会话个数。
在所有会话都完全活动的情况下,本发明实施方式将每个流控制窗口维持到其理想值max_queue_size/session。如果其它会话没有完全利用它们公平的资源分享,则允许给定的会话增长其流控制窗口到这个值之上。如果只有单个会话是活动的,则所有资源都专用于它(即,fc_window=max_queue_size)。当请求从给定会话接收时,对给定会话更新窗口的流控制部分只对该给定会话激活。为此,每个会话的流控制窗口决不会减小到低于2,从而使客户或发起人能够在服务器或目标70触发流控制适配。
每次当请求通过给定会话接收时被触发的本发明实施方式可以简单地在如下伪码中描述:
if(this_session->active==0){
     //如果其当前正在接收命令,则计数该会话为活动的
     active_sessions++;
     this_session->active++;
}
if(server_mode==IDLE)
{
     //
     //服务器处于闲模式,这意味者它有为每个会话的新请求提供服务的资源
     //
     //在我们准许给活动会话更宽的流控制窗口之前,我们确定它当前正在完全利用其资源
     if(this_session->fc_window<=\
         this_session->outstanding_requests)
     {
         //当会话完全利用其资源且服务器具有更多资源专用于它时,我们以一为增量将它们提供给该会话(即,和式增加)
         this_session->fc_window=\
            min((this_session->fc_window+1),max_tasks);
     }else{
         //如果服务器处于闲状态但接收请求的会话没有完全利用
     当前指定给其的资源,则我们不采取动作
         nop();//不操作
     }
}
else //server_mode=忙
{
     //
     //服务器处于忙模式,这意味着它能为新请求提供服务的资源不足或不可用
     //
     if(this_session->fc_window>(max_tasks/active_sessions)){
     //当前会话具有多于其公平分享的资源,因此它必须还回去一些
         if(this_session->fc_window>1){
             //如果当前窗口不太小,则尝试分一半给其它会话(即,积式减少)
             this_session->fc_window=this_session->fc_window/2;
         }
     }else if(this_session->fc_window\
         <(max_tasks/active_sessions)){
         if(this_session->fc_window<=\
             this_session->outstanding_cmds)){
             //当前会话太小,而且实际上正在使用它,则取1
             this_session->fc_window=min\
               ((this_session->fc_window+1),\
               max_tasks/active_sessions);
       }else{
          //当前会话太小,而且没有使用它,则归还一
          this_session->fc_window--;
    }
}else if((this_session->fc_window==(max_tasks/active_sessions))&&(this_session->fc_window>this_session->outstanding_cmds)){
//当前会话具有其分享,因此它可以放弃一些,但如果太小则不放弃
if(this_session->fc_window>2)
     this_session->fc_window--;
}
}
本发明实施方式说明了其中即使当服务器70可能处于忙状态时会话也可能没有完全利用其资源并可能需要给予更小窗口的场景。本发明实施方式还说明了其中服务器70处于忙状态,接收命令的会话事实上可能正完全利用其资源并可能有少于其公平分享的资源;因此需要流控制窗口增加的场景。为了跟踪活动会话的个数,本发明实施方式有定时器线程,周期性地遇上会话列表并清除活动域,由此当每次会话的活动域设置成零时减少活动会话的总数。
图4(参考图1至3)说明了在计算机网络中进行资源流控制会话的优选方法的流程图,其中该方法包括从至少一台客户计算机60向服务器计算机70发送(100)资源请求;对每台客户计算机60指定(102)流控制窗口,其中特定流控制窗口(未示出)的大小是基于服务器计算机70可用的资源和对应客户计算机60的活动等级,而且其中服务器计算机70处于活动的忙和闲状态中的任意一种;当接收到资源请求时基于对应客户计算机60的活动等级和特定使用会话中资源的当前利用确定(104)是否改变特定流控制窗口的大小;在预定的时间窗口内跟踪(106)资源的多个活动使用会话;及以每会话编号最大的队列大小值维护(108)每个流控制窗口。优选地,客户计算机60通过网络传输协议向服务器计算机70发送资源请求。
优选地,由服务器计算机70指定的所有流控制窗口的合计大小匹配于连接到该服务器计算机70的磁盘控制器适配器80的队列大小。该方法还可以包括服务器计算机70对每台客户计算机60保留会话记录,其中该会话记录包括跟踪指定给对应客户计算机60的流控制窗口的域。此外,服务器计算机70活动的忙状态优选地指示服务器计算机70中的所有资源当前都在使用,使得在服务器计算机70切换到活动的闲状态之前客户计算机60避免发送其它的资源请求。此外,对应特定的使用会话,该方法还可以包括对对应的客户计算机60维持当前流控制窗口的大小;维护在磁盘控制器适配器80中排队的多个未完成请求;及维护指示特定使用会话是否活动的标志(未示出)。而且,当其它使用会话未充分利用可用资源时,优选地允许该特定的使用会话增加流控制窗口的大小到每会话编号最大的队列大小值之上。此外,当只有单个使用会话活动时,该方法优选地将所有可用资源都专用于该单个使用会话。该方法还可以包括在任何给定时间跟踪可以在磁盘控制器适配器上排队的命令的最大个数。  
本发明实施方式可以采用完全硬件实施方式、完全软件实施方式或既包括硬件又包括软件元素的实施方式的形式。在一种实施方式中,本发明在软件中实现,这包括但不限于固件、驻留软件、微代码等。
此外,本发明实施方式可以采用从提供程序代码的计算机可用或计算机可读介质访问的计算机程序产品的形式,其中程序代码由计算机或任何指令执行系统使用或与其结合。为了描述,计算机可用或计算机可读介质可以是能够包括、存储、传送、传播或传输程序的任何装置,其中程序由指令执行系统、装置或设备使用或与其结合。
介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。当前光盘的例子包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接耦合到存储器元素的处理器。存储器元素可以包括在程序代码实际执行过程中采用的本地存储器、大存储器和为了减少执行过程中代码必须从大存储器接收的次数而提供至少一些程序代码临时存储的高速缓冲存储器。
输入/输出(I/O)设备(包括但不限于键盘、显示器、定点设备等)可以直接或通过中间I/O控制器间接耦合到系统。网络适配器也可以耦合到系统,以便使数据处理系统通过中间的私人或公共网络变得耦合到其它数据处理系统或远端打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是一些当前可用的网络适配器类型。
用于实践本发明实施方式的代表性硬件环境在图5中描述。该示意图说明了根据本发明实施方式的信息处理/计算机系统的硬件配置。该系统包括至少一个处理器或中央处理单元(CPU)10。CPU10通过系统总线12互连到各种设备,如随机存取存储器(RAM)14、只读存储器(ROM)16和输入/输出(I/O)适配器18。I/O适配器18可以连接到外围设备,如磁盘单元11和磁带驱动器13或系统可读的其它程序存储器。该系统可以读程序存储设备上的发明性指令并遵照这些指令执行本发明实施方式的方法。该系统还包括将键盘15、鼠标17、扬声器24、麦克风22和/或如触摸屏设备(未示出)的其它用户接口设备连接到总线12以便收集用户输入的用户接口适配器19。此外,通信适配器20将总线12连接到数据处理网络25,而显示适配器21将总线12连接到可以体现为例如监视器、打印机或发射器的输出设备的显示设备23。
本发明实施方式比传统解决方案实现了以下优点:(1)本发明实施方式是可以缩放的,因此它在具有大量发起人的环境中确保资源的公平和最优利用;(2)本发明实施方式可以处理底层互连中的波动。这是因为它对每发起人“基于需求的”分配而不是对传统方法中所使用的“全局不足”范例敏感;(3)本发明实施方式对存储资源流管理确保最小歪斜和最快相称;(4)在客户失败/增加和资源增加的情况下,本发明实施方式可以快速适应资源流分配;及(5)本发明实施方式使用简单的控制系统,而且可以动态有效地同时对多个发起人分配资源。
特定实施方式的以上描述完全展示了本发明的一般本质,使得在不背离其一般概念的情况下,通过应用当前知识,其它人可以容易地为各种应用修改和/或调整这些特定实施方式,因此这种调整和修改应当并且打算被理解为在所公开实施方式等价物的意义与范围之内。应当理解,在此所采用的措词和术语是为了描述而不是限制。因此,尽管本发明实施方式根据优选实施方式进行了描述,但本领域技术人员将认识到在所附权利要求的主旨与范围内,本发明实施方式可以有修改地实践。

Claims (18)

1.一种在计算机网络中进行资源流控制会话的方法,所述方法包括:
从至少一台客户计算机向服务器计算机发送资源请求;
对每台所述客户计算机指定流控制窗口,其中特定流控制窗口的大小基于所述服务器计算机可用的资源和对应客户计算机的活动等级,而且其中所述服务器计算机处于活动的忙和闲状态中的任意一种;
当接收到所述资源请求时基于所述对应客户计算机的所述活动等级和特定使用会话期间资源的当前利用确定是否改变所述特定流控制窗口的所述大小;
在预定的时间窗口内跟踪所述资源的多个活动的使用会话;及
以每会话编号最大的队列大小值维护每个所述流控制窗口。
2.如权利要求1所述的方法,其中所述客户计算机通过网络传输协议向所述服务器计算机发送所述资源请求。
3.如权利要求1所述的方法,其中由所述服务器计算机指定的所有流控制窗口的合计大小匹配于连接到所述服务器计算机的磁盘控制器适配器的队列大小。
4.如权利要求1所述的方法,还包括所述服务器计算机对每台所述客户计算机保留会话记录,其中所述会话记录包括跟踪指定给对应客户计算机的所述流控制窗口的域。
5.如权利要求1所述的方法,其中所述服务器计算机的所述活动忙状态指示所述服务器计算机中的所有资源当前都在使用,使得在所述服务器计算机切换到活动闲状态之前所述客户计算机避免发送其它的资源请求。
6.如权利要求3所述的方法,其中对于所述特定的使用会话,所述方法还包括:
对所述对应的客户计算机维持当前流控制窗口的大小;
维护在所述磁盘控制器适配器中排队的多个未完成请求;及
维护指示所述特定的使用会话是否活动的标志。
7.如权利要求1所述的方法,其中当其它使用会话未完全利用可用资源时,允许所述特定的使用会话增加所述流控制窗口的所述大小到所述每会话编号最大的队列大小值之上。
8.如权利要求1所述的方法,其中当只有单个使用会话活动时,所述方法还包括将所有可用资源都专用于所述单个使用会话。
9.如权利要求3所述的方法,还包括在任何给定时间跟踪可以在所述磁盘控制器适配器排队的命令的最大个数。
10.一种用于在计算机网络中进行资源流控制会话的系统,所述系统包括:
用于从至少一台客户计算机向服务器计算机发送资源请求的装置;
用于对每台所述客户计算机指定流控制窗口的装置,其中特定流控制窗口的大小基于所述服务器计算机可用的资源和对应客户计算机的活动等级,而且其中所述服务器计算机处于活动的忙和闲状态中的任意一种;
用于当接收到所述资源请求时基于所述对应客户计算机的所述活动等级和特定使用会话期间资源的当前利用确定是否改变所述特定流控制窗口的所述大小的装置;
用于在预定的时间窗口内跟踪所述资源的多个活动的使用会话的装置;及
用于以每会话编号最大的队列大小值维护每个所述流控制窗口的装置。
11.如权利要求10所述的系统,其中所述客户计算机通过网络传输协议向所述服务器计算机发送所述资源请求。
12.如权利要求10所述的系统,其中由所述服务器计算机指定的所有流控制窗口的合计大小匹配于连接到所述服务器计算机的磁盘控制器适配器的队列大小。
13.如权利要求10所述的系统,还包括用于由所述服务器计算机对每台所述客户计算机保留会话记录的装置,其中所述会话记录包括跟踪指定给对应客户计算机的所述流控制窗口的域。
14.如权利要求10所述的系统,其中所述服务器计算机的所述活动忙状态指示所述服务器计算机中的所有资源当前都在使用,使得在所述服务器计算机切换到活动闲状态之前所述客户计算机避免发送其它的资源请求。
15.如权利要求12所述的系统,其中对于所述特定的使用会话,所述系统还包括:
用于对所述对应的客户计算机维持当前流控制窗口的大小的装置;
用于维护在所述磁盘控制器适配器中排队的多个未完成请求的装置;及
用于维护指示所述特定的使用会话是否活动的标志的装置。
16.如权利要求10所述的系统,其中当其它使用会话未完全利用可用资源时,允许所述特定的使用会话增加所述流控制窗口的所述大小到所述每会话编号最大的队列大小值之上。
17.如权利要求10所述的系统,其中当只有单个使用会话活动时,所述系统还包括用于将所有可用资源都专用于所述单个使用会话的装置。
18.如权利要求12所述的系统,还包括用于在任何给定时间跟踪可以在所述磁盘控制器适配器排队的命令的最大个数的装置。
CN2006101091249A 2005-08-25 2006-08-02 稳定的、最小歪斜资源流控制方法与系统 Expired - Fee Related CN1921449B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/211,793 US7526552B2 (en) 2005-08-25 2005-08-25 Stable, minimal skew resource flow control technique in large scale enterprise storage systems
US11/211,793 2005-08-25

Publications (2)

Publication Number Publication Date
CN1921449A CN1921449A (zh) 2007-02-28
CN1921449B true CN1921449B (zh) 2010-09-29

Family

ID=37779027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101091249A Expired - Fee Related CN1921449B (zh) 2005-08-25 2006-08-02 稳定的、最小歪斜资源流控制方法与系统

Country Status (2)

Country Link
US (1) US7526552B2 (zh)
CN (1) CN1921449B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7701853B2 (en) * 2005-09-30 2010-04-20 Alcatel-Lucent Usa Inc. Method for policing-based adjustments to transmission window size
US8291080B2 (en) * 2007-06-29 2012-10-16 Nec Corporation Session control system, session control method and session control program
TWI383640B (zh) * 2009-10-22 2013-01-21 Wistron Corp 利用網路傳輸檔案之方法與檔案傳輸系統
US9384227B1 (en) * 2013-06-04 2016-07-05 Amazon Technologies, Inc. Database system providing skew metrics across a key space
US9807014B2 (en) * 2013-09-27 2017-10-31 International Business Machines Corporation Reactive throttling of heterogeneous migration sessions in a virtualized cloud environment
US9843518B2 (en) * 2014-03-14 2017-12-12 International Business Machines Corporation Remotely controlled message queue
US10606519B1 (en) * 2018-10-19 2020-03-31 EMC IP Holding Company LLC Edge case handling in system with dynamic flow control
CN109743386B (zh) * 2018-12-29 2021-11-02 卓米私人有限公司 会话请求发送方法、装置、电子设备和存储介质
US11616722B2 (en) 2020-10-22 2023-03-28 EMC IP Holding Company LLC Storage system with adaptive flow control using multiple feedback loops
US11687245B2 (en) 2020-11-19 2023-06-27 EMC IP Holding Company LLC Dynamic slice assignment in a distributed storage system
US11481291B2 (en) 2021-01-12 2022-10-25 EMC IP Holding Company LLC Alternative storage node communication channel using storage devices group in a distributed storage system
US11875198B2 (en) 2021-03-22 2024-01-16 EMC IP Holding Company LLC Synchronization object issue detection using object type queues and associated monitor threads in a storage system
CN116668372B (zh) * 2023-08-01 2023-11-03 腾讯科技(深圳)有限公司 一种流量控制方法和相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078953A (en) * 1997-12-29 2000-06-20 Ukiah Software, Inc. System and method for monitoring quality of service over network
CN1588894A (zh) * 2004-07-09 2005-03-02 清华大学 实现线速对数据流按规则库近似匹配的可配置的硬件结构
US20050135252A1 (en) * 2003-11-05 2005-06-23 Balraj Singh Transparent optimization for transmission control protocol flow control

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088736A (en) 1995-07-19 2000-07-11 Fujitsu Network Communications, Inc. Joint flow control mechanism in a telecommunications network
US6751663B1 (en) 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US7301906B2 (en) 2001-12-17 2007-11-27 Lsi Corporation Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks
US7627627B2 (en) * 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078953A (en) * 1997-12-29 2000-06-20 Ukiah Software, Inc. System and method for monitoring quality of service over network
US20050135252A1 (en) * 2003-11-05 2005-06-23 Balraj Singh Transparent optimization for transmission control protocol flow control
CN1588894A (zh) * 2004-07-09 2005-03-02 清华大学 实现线速对数据流按规则库近似匹配的可配置的硬件结构

Also Published As

Publication number Publication date
US20070050504A1 (en) 2007-03-01
CN1921449A (zh) 2007-02-28
US7526552B2 (en) 2009-04-28

Similar Documents

Publication Publication Date Title
CN1921449B (zh) 稳定的、最小歪斜资源流控制方法与系统
US9497139B2 (en) Client-allocatable bandwidth pools
US8387058B2 (en) Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US9311020B2 (en) Method and apparatus for automated migration of data among storage centers
US9154589B1 (en) Bandwidth-optimized cloud resource placement service
US9306870B1 (en) Emulating circuit switching in cloud networking environments
CN101167054B (zh) 用于在多个数据中心之间选择性卸载工作负荷的方法和装置
US9218221B2 (en) Token sharing mechanisms for burst-mode operations
CN108881348B (zh) 服务质量控制方法、装置和存储服务器
KR101865318B1 (ko) 버스트 모드 제어
US20140376368A1 (en) Compound token buckets for burst-mode admission control
JP2003273951A (ja) 情報処理装置および通信路選択方法
JP2017514243A (ja) ネットワーク・アクセス可能なブロック・ストレージのための協調アドミッション制御
US10846788B1 (en) Resource group traffic rate service
CN108900626A (zh) 一种云环境下数据存储方法、装置及系统
CN107025223B (zh) 一种面向多租户的缓冲区管理方法及服务器
US7680763B2 (en) Administration of resources in system-wide search systems
US9075832B2 (en) Tenant placement in multitenant databases for profit maximization
Shenbaga Moorthy et al. Optimal provisioning and scheduling of analytics as a service in cloud computing
US11256440B2 (en) Method and distributed storage system for aggregating statistics
US11442629B2 (en) I/O performance in a storage system
Goren et al. Stochastic coordination in heterogeneous load balancing systems
Sutagundar et al. Development of fog based dynamic resource allocation and pricing model in IoT
Shan et al. Heterogeneous MacroTasking (HeMT) for Parallel Processing in the Public Cloud
Sontakke et al. Optimization of Resource Cost and Service Charge Scheme in Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20200802