CN102449600B - 用于i/o受驱速率自适应的方法和系统 - Google Patents

用于i/o受驱速率自适应的方法和系统 Download PDF

Info

Publication number
CN102449600B
CN102449600B CN201080016532.4A CN201080016532A CN102449600B CN 102449600 B CN102449600 B CN 102449600B CN 201080016532 A CN201080016532 A CN 201080016532A CN 102449600 B CN102449600 B CN 102449600B
Authority
CN
China
Prior art keywords
rate
data
occupancy
circular buffer
message transmission
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.)
Active
Application number
CN201080016532.4A
Other languages
English (en)
Other versions
CN102449600A (zh
Inventor
Y·徐
M·芒森
S·西姆
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
Aspera Inc
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 Aspera Inc filed Critical Aspera Inc
Publication of CN102449600A publication Critical patent/CN102449600A/zh
Application granted granted Critical
Publication of CN102449600B publication Critical patent/CN102449600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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/18End to end
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

描述了一种基于反馈的I/O受驱速率控制机制,该机制允许一个传输会话根据目的地的存储装置的速度而自我调整其传输速率。所描述的系统可在应用层运行,这使得跨平台部署成为更为容易的任务。

Description

用于I/O受驱速率自适应的方法和系统
相关申请
本申请要求先前于2009年3月6日提交的序列号为61/158,000的临时申请的优先权,该临时申请通过引用方式被纳入。本申请还涉及下列申请的说明书的全部内容并通过引用方式将其全部纳入:提交于2005年12月23日的题为“BULK DATA TRANSFER”的美国专利申请11/317,663,以及提交于2007年9月4日的题为“METHOD ANDSYSYEM FOR AGGREGATE BANDWIDTH CONTROL”的美国专利申请11/849,782。
背景技术
数据传输应用的一般工作流程涉及:从发送机读取数据,通过网络发送数据,并且最终将数据写到接收机侧的存储装置。沿着这条数据路径,可能出现多个吞吐量瓶颈。理想地,传输会话应该能够响应于所有可能的瓶颈而调整其速率。而调整失败可能会使得该会话过度驱动发生瓶颈的装置,从而引发高延迟和丢包。
众所周知,由于网络链路的容量有限,因此沿着一个传输路径的网络链路可能会发生瓶颈。业内已有大量著作来关注于设计自适应机制来有效地利用可用的链路容量(参见,例如,Lawrence S.Brakmo和Larry L.Peterson于1995年10月发表在IEEE Journal on SelectedAreas in Communications,13(8),1465–1480页的《TCP Vegas:end-to-end congestion avoidance on a global Internet》,由M.Allman、V.Paxson、和W.Stevens于1999年4月发表的RFC2581《TCPcongestion control》,以及由Frank P.Kelly、Aman Maulloo和DavidTan于1998年3月发表在Journal of Operations Research Society,49(3):237页–252页的《Shadow prices,proportional fairness andstability》)。然而,随着高速网络设备(high-speed networking gear)的逐渐使用,瓶颈可能不会发生在网络内部,而是发生在终端系统。在实践中,经常观察到在接收机端的存储装置跟不上数据传输速度。这就要求这样的应用级机制:在将数据写到存储I/O上的时候考虑到存储I/O的速度。
附图说明
图1示出了一种用于实现I/O受驱速率控制的示例系统。
图2(a)和2(b)示出了长时标和短时标自适应机制。
图3是示出了具有I/O受驱速率控制机制的传输性能与不具有I/O受驱速率控制机制的传输性能的测试比较结果的表格。
图4示出了用于I/O受驱速率控制的示例系统。
具体实施方式
本文描述了一个基于反馈的、I/O受驱速率控制机制,其允许传输会话根据目的地的存储装置的速度而自调整其传输速率。解决类似问题的现有提议大多遵循基于分配的方法(参见,例如,P.Shenoy和HM.Vin.Cello于1998年6月在威斯康星州Madison举办的ACMSIGMETRICS Conference上发表在会议记录的第44至55页的《ADisk Scheduling Framework for Next Generation Operating Systems》,以及Joel C Wu、Scott A.Banachowski和Scott A.Brandt在2005年在NOSSDAV会议记录第189-194页上发表的《Hierarchical disksharing for multimedia systems》,以及2007年12月的IPSJ DigitalCourier上发表的《Disc Nice:User-level regulation of diskbandwidth》,参见http://www.jstage.jst.go.jp/article/ipsjdc/3/0/3_800/_article)。具体地,这些方法试图在接收机上的正在运行的进程之间明确地分配或保留盘I/O带宽,以使得进程的资源使用不超过某一阈值。然而,对于基于分配的机制,通常难于选择到一个适当的阈值。从应用的角度来看,理想地希望利用“所有”可用的盘资源。但是,在一个给定的时刻,该盘能够处理多少吞吐量通常是不明确的并且是随时间而改变的。而且,实现基于分配的方案通常要求对操作系统内部进行改变。因此,这些方案通常是依赖于平台的,这难于被诸如批量数据传输之类的跨平台应用所采用。相反地,本文所描述的系统可以在应用层运行,这使得跨平台部署成为一个简单的任务。在下文中,我们展示了我们的I/O受驱设计,并且还讨论了它怎样和其他现有的速率控制机制在FASP协议内结合(参见美国专利申请11/317,663),例如,FASP自适应速率控制和FASP虚拟链路控制(参见美国专利申请11/849,742)。
I/O受驱速率自适应的描述
图1是I/O受驱速率控制和它怎样能被数据传输会话100采用的系统级概览。它的主要组件包括速率控制器101,接收机侧的环形缓冲器102,以及基于消息传送(messaging)的反馈模块103。具体地,环形缓冲器表示了一个由传输应用所维护的缓冲空间,以在数据到达网络接口之后但在该数据被写到存储装置104之前而临时存储该数据,所述存储装置104可以是一个本地硬盘驱动器,或者远程安装的盘,或者是一个集群存储系统。
在正常情况下,接收机侧的存储装置可以足够快地执行“写”操作,使得环形缓冲器要么是空的,要么仅仅是略满。然而,在高负荷情形下,该存储装置可能跟不上数据到达速率。这可能会发生在传输会话被配置以超高目标速率时,或者在存储装置自身忙于伺服许多并发传输或执行其他预计划的系统任务时。只要存储装置的I/O速度跟不上,数据就将在环形缓冲器内积累。一旦环形缓冲器变满,则不得不丢弃一定数量的包。丢包现象可能会让情况变得更坏,因为请求重传的开销将会消耗大量中央处理器(CPU)周期,这会使得接收机侧的存储装置在接收即将到来的数据时变得更慢。这进而会导致更多的丢失。结果,伴随着存储I/O减慢的是严重丢包(通常高于20%)的发生,以及大大减小的传输吞吐量。
为了避免过度驱动,需要开发一种反馈机制,用于让数据发送机缓缓地慢下来以防存储I/O变成瓶颈。同时,此机制还应该允许会话追踪并且完全利用存储I/O的吞吐量,除非该会话在其他地方也发生了瓶颈为止。先前的著作已经提出自适应传输路径的瓶颈链路速度。然而,这些提议仅仅考虑了网络内部的瓶颈,却漠视了端系统瓶颈。
当前描述的机制的一个关键部分,是使用环形缓冲器占用率作为存储I/O发生瓶颈的程度的指示。因为环形缓冲器是由传输会话自身所维护的,所以让速率控制器在一给定瞬间t测量该环形缓冲器占用率ρ(t)是简单易行的。假设分配的环形缓冲器的总大小是B个字节,则我们将环形缓冲器占用率分成三个范围。具体地,如果ρ(t)B小于ρminB(0≤ρmin≤1),则这暗示着环形缓冲器仅仅是略满,且存储不是瓶颈。在这种情况下,不需要慢下来。如果ρ(t)B在ρminB和ρ'B之间(0≤ρmin≤ρ'≤1),则表明数据开始在缓冲器内累积。虽然传输速率的绝对值仍然会增加,但是其步速(pace)应该被减缓。一旦环形缓冲器占用率超过一个阈值ρ'B,则传输会话应该将其速率减小以避免缓冲器溢出。
在下文中,描述了一个实现上述目标的双时标速率自适应设计。在一个较长的时标,速率控制器持续地追踪I/O吞吐量的总体趋势,以将环形缓冲器占用率稳定在目标水平ρ'B。在短时标,相应的速率自适应对环形缓冲器占用率的突然增加迅速起作用,这帮助防止环形缓冲器溢出,从而使伴随的丢包最少化。这两种速率自适应机制都可以在图1中所示的速率控制器101中实现。
长时标速率自适应
如前所述,只要测量的缓冲器占用率ρ(t)超过一个最小阈值ρmin,则I/O受驱速率控制就被激活。当它被激活时,环形缓冲器每完成一次将一大块数据(a chunk of data)写到存储装置104上,则长时标自适应机制就连续地更新传输速率。(“一大块数据”,可以是少则一个块(block),最多则是整个环形缓冲器。在当前的实施方式中,它等于环形缓冲器总大小的1/36(2.8%),或者2048个数据块。)也就是说,一旦接收机完成一个写操作,则它就触发速率控制器执行一个长时标的速率更新。
令T(t)为有效速率更新周期,即在最后一次速率更新(写完成)和t之间的持续时间,所述长时标速率控制器基于当前传输速率x(t)、T(t)、目标环形缓冲器占用率ρ'B、以及测量的环形缓冲器占用率ρ(t)B,来计算新传输速率x'(t)。所计算的速率x'(t),然后通过速率更新消息(103)被发送回数据发送机,且将被使用到下一个速率更新事件的发生。
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - ρ ( t ) B ) ρ ( t ) > ρ min
基于此公式,一旦ρ(t)超过ρ',传输速率x(t)就减小,以避免环形缓冲器溢出。速率改变的量与ρ'和ρ(t)的差成比例,所述差被加权因子γdisk所加权。在实践中,γdisk可根据经验设置成0.5。只要存储I/O在接收机处发生瓶颈,则自适应机制就根据环形缓冲器占用率来周期性地调整传输速率。一旦测量的环形缓冲器占用率超过ρ'B,则传输速率就被向下调整,且向下调整逐渐加剧,以将缓冲器占用率限制在整个缓冲器大小B之下,直到I/O吞吐量不再是瓶颈(ρ(t)<ρmin)为止。
应指出,在环形缓冲器完成一个“写”操作之后执行速率更新,有助于追踪环形缓冲器占用率的准确动向。通常,写大小要远大于一个包的大小,且在一个“写”操作当中会有多个包到达接收机。在I/O严重慢下来的时候,尤其如此。因此,在一个“写”操作完成之前,瞬时环形缓冲器占用率可以单纯增长。在写操作期间执行多个速率更新,并不说明I/O装置从环形缓冲器流出(drain)数据的能力,因此可能会由于过度估计缓冲器占用率而产生过度保守的传输速率。
上述设计直接将测量的环形缓冲器占用率ρ(t)B和目标缓冲器占用率ρ'B作比较。一种替代选择方案是计算一个对环形缓冲器占用率的预测,并且将预测的占用率和目标占用率作比较。具体地,令w(t)为最近的写操作的持续时间,也即,在最后的速率更新与t之间的持续时间,然后可将整个环形缓冲器写到存储装置上的持续时间表示为τ(t),通过τ(t)=(B/写大小)*w(t)来计算。于是,x(t)ρ(t)τ(t)表示了当下一个写操作完成时,基于当前传输速率x(t)、环形缓冲器占用率ρ(t)、以及最近一次写持续时间w(t)的对环形缓冲器占用率的估计。在另一个实施方案中,速率更新机制将此值和目标环形缓冲器占用率作比较,从而确定在接下来的更新时间间隔内是否减少传输速率:
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - x ( t ) ρ ( t ) τ ( t ) ) ρ ( t ) > ρ min
在上述两种设计中,长时标机制的目的是,一旦总体I/O吞吐量发生瓶颈,就追踪之,并且将环形缓冲器占用率稳定在目标水平ρ'B。这既适用于单个传输也适用于多个传输。当存在多个传输时,每个传输会话维护其自己的环形缓冲器,并且基于同一公式响应变化的缓冲器占用率。因此,预计每个会话获得等份的有效I/O带宽。
短时标速率自适应
长时标设计在追踪I/O减慢的总体趋势方面是有效的。然而,就其自身单独而言,在处理I/O吞吐量的突然减小,和避免由于缓冲器占用率的突然上升而发生的丢包等方面可能是没效率的。尤其是,I/O写操作的持续时间变化显著。在磁盘突然停转的情况下,写操作的持续时间通常为大约数秒,在此期间环形缓冲器只是朝向其整个大小B快速增加。在这样的情况下,环形缓冲器通常在长时标速率自适应采取行动来减小传输速率之前就会溢出。这在图2(a)中示出。在溢出期间(红线),接收机需要丢弃即将到来的包。
为了响应更长的磁盘停转和突发增加的环形缓冲器占用率,需要一种以较短的时标运行的速率减小机制,即,介于两个连续的长时标速率更新之间。在一个具体实施方案中,每个RTT(t)调整一次短时标速率,其中RTT(t)是基于下列一组公式的当前测量的网络往返时间:
x(t+RTT(t))=α(t)x(t)   ρ(t)≥ρmin
其中随着ρ(t)从ρmin增大到1,α(t)从(1-ρmin)/(1-ρ')减小到0,也即:
α(t)=[1-ρ(t)]/[1-ρ']
不同于长时标机制,短时标机制的主要目的在于向缓冲器占用率施加紧密控制,以避免环形缓冲器溢出。根据上述公式,只要环形缓冲器占用率大于ρ',则短时标机制就对传输速率施加成倍的减小。此外,倍增因子α(t)是环形缓冲器占用率ρ(t)的一个减函数,意味着随着环形缓冲器增加得越大,速率控制器就越来越加剧地减小传输速率。具体而言,一旦缓冲器接近满占用率,则传输会话就会以几乎完全接近于0的速率自减速。
结合的双时标设计
图2(b)示出了双时标设计的联合操作。注意到多个短时标速率更新已经采取行动,以在第一个长时标机制介入(kick in)之前就将传输速率降下来。这使得环形缓冲器占用率的上升逐渐停止,因此不同于图2(a),避免了接下来的环形缓冲器溢出。虽然长时标机制在每个写操作的末尾追踪I/O吞吐量的总体趋势,短时标机制在写操作期间主动地缩减了环形缓冲器占用率。如果写操作足够长(比在写操作期间测量的RTT(t)更长),可执行多于一个短时标速率更新。
对多个瓶颈的响应
除了存储I/O瓶颈之外,沿着端对端传输路径还会出现其他吞吐量瓶颈。如前所述,传输会在网络链路处发生瓶颈。所提出的I/O受驱控制可以和任何恒定地自适应于这样的瓶颈的控制机制共存。例如,其可以结合FASP协议[7]的自适应速率控制机制,因为它们共同计算一个速率。另一类瓶颈是施加给一组用户的“虚拟”带宽上限(bandwidthcap)。在美国专利申请11/849,742中,描述了一个虚拟链路控制框架,以使得该组中的每个用户可以自调整其传输速率,以使得总的传输速率符合“虚拟”带宽上限。所述I/O受驱速率控制机制也可以结合这样的机制。
在其中一个传输会话嵌入所有三个机制的一般情况中,所有三个速率控制器可以并行地运行并且独立地更新它们的传输速率。然后,在一个给定时间t的总传输速率选自分别由网络速率控制器、虚拟链路速率控制器以及I/O受驱速率控制器计算的单个传输速率。例如,可使用最小选择判据,选择由单个速率控制器所计算的最小速率,也即,
x(t)=min{xnet(t),xvl(t),xdisk(t)}
具体地,如果I/O受驱速率控制未启动,则我们假设其计算的速率是无穷大,也即,xdisk(t+T)=∞ρ(t)≤ρmin。这有效地意味着从存储I/O的角度而言,对传输速率没有限制,且传输速率是基于网络或虚拟链路的拥塞程度而确定的。
最小速率判据的基本原理是根据最拥塞的瓶颈来限制传输速率。这防止了经过多次瓶颈的一个传输会话由于每个瓶颈处的拥塞而被惩罚多次。在现有技术中已示出,这类拥塞控制方案达到了最大-最小公平速率分配(参见Bartek Wydrowski、Lachlan L.H.Andrew和MosheZukerman于2003年10月在IEEE Communications Letters,vol.7,no.10发表的"MaxNet:A Congestion Control Architecture for ScalableNetworks")。
如上所述的两种时标I/O速率控制可以实现为现有FASP协议的扩展。图3是示出了具有和不具有此速率控制机制的传输性能的比较的表格。具体地,在没有这样的控制时,由于大量丢包和减小的吞吐量,FASP传输需要消耗较长的时间来完成。在打开I/O受驱速率控制时,丢包量可被缩减到小于5%,并且总体吞吐量足够高到匹配盘容量的峰值吞吐量。同时,当存在多个运行的传输时,每个传输都会得到大致等份的有效盘带宽。
示例实施方案
在由图4所示的用于I/O受驱速率控制的系统和方法的一个示例实施方案中,系统包括通过网络430连接的第一主机410和第二主机420,所述第二主机被连接到存储装置440,在所述第一主机中可执行一个发送进程411,用于将数据通信到第二主机中可执行的一个接收进程421中,让接收进程将数据写到存储装置。发送进程被配置为在任意时间t以一个指定的可变数据传输速率x(t)将数据发送到接收进程,其中所述接收进程被配置为在将所接收的数据写到所述存储装置之前,将它存储在一个环形缓冲器中。存储速率控制器被纳入接收进程,其中所述存储速率控制器被配置为:(1)测量环形缓冲器的当前占用率;(2)根据当前数据传输速率x(t)、测量的当前占用率、环形缓冲器的总大小、以及一个指定的目标占用率值,计算一个更新的数据传输速率x'(t),以及(3)将该更新的数据传输速率通信到发送进程。然后所述发送进程被配置为将数据传输速率x(t)调整到该更新的数据传输速率x'(t)。如果测量的当前占用率大于指定的目标占用率值,则存储速率控制器可被配置使得该更新的数据传输速率x'(t)表示当前数据传输速率x(t)的减小。
速率控制器可被配置为在完成向存储装置的一个写操作之后计算更新的数据传输速率x'(t),和/或以周期性时间间隔计算更新的数据传输速率x'(t)。在一个具体实施方案中,速率控制器被配置为:(1)在完成对存储装置的一个写操作之后,按照当前数据传输速率x(t)、测量的当前占用率、环形缓冲器的总大小以及指定的目标占用率值的第一函数来计算更新的数据传输速率x'(t),以及(2)以周期性时间间隔,按照当前数据传输速率x(t)、测量的当前占用率、环形缓冲器的总大小以及一个指定的目标占用率值的第二函数来计算更新的数据传输速率x'(t)。第一函数和第二函数可以相应于如上所述的用于长时标自适应的更新函数和用于短时标自适应的更新函数。
所述系统可包括多个发送进程和多个接收进程,其中每个这样的接收进程被连接到所述存储装置,并且包括一个存储速率控制器和一个环形缓冲器,用于更新其各自的发送进程的数据传输速率。所述发送进程和所述接收进程可以属于一组相似的进程,该组进程通过维护一个虚拟队列并且基于它们的总数据传输速率计算一个虚拟队列占用率,以共同限制它们的总数据传输速率,且其中每个接收进程还包括一个虚拟链路控制器,该虚拟链路控制器基于所述虚拟队列占用率来计算一个虚拟链路速率xvl(t),且其中每个发送进程根据虚拟链路速率xvl(t)和由所述接收进程发送的更新的数据传输速率x'(t)来调整其数据传输速率。
所述接收进程还可包括一个网络速率控制器,该网络速率控制器被配置为测量网络拥塞的程度,并且基于测量的拥塞来计算一个网络速率xnet(t)。网络拥塞的测量的一个实施例是由测量的往返延迟时间得出的一个排队延迟。然后,所述发送进程根据xnet(t)和由所述接收进程发送的更新的数据传输速率来调整当前数据传输速率。例如,发送进程可以根据由测量的网络拥塞计算的网络速率xnet(t)、由虚拟队列占用率计算的虚拟链路控制速率xvl(t)和由所述接收进程发送的更新的数据传输速率x'(t),使用如下最小选择判据来调整其数据传输速率:
x(t)=min{xnet(t),xvl(t),x'(t)}
已结合前述具体实施方案描述了本发明。应理解,也可以用认为有利的任何方式结合所描述的实施方案。同样,许多替代、变化和修改对于本领域技术人员也是明了的。其他这样的替代、变化和修改也落入随附权利要求的范围之内。

Claims (20)

1.一种数据传输系统,包括:
通过网络连接的一个第一主机和一个第二主机,所述第二主机被连接到一个存储装置,
在所述第一主机中可执行一个发送进程,用于将数据通信到在所述第二主机中可执行的一个接收进程中,让所述接收进程将所述数据写到所述存储装置,其中所述发送进程被配置为在任意时间t以一个指定的可变数据传输速率x(t)将数据发送到所述接收进程,其中所述接收进程被配置为在将所接收的数据写到所述存储装置之前,将它存储在一个环形缓冲器中;
一个存储速率控制器,被纳入所述接收进程,其中所述存储速率控制器被配置为:(1)测量所述环形缓冲器的当前占用率;(2)根据当前数据传输速率x(t)、测量的当前占用率、环形缓冲器的总大小以及一个指定的目标占用率值,计算一个更新的数据传输速率x'(t),以及(3)将该更新的数据传输速率通信到所述发送进程;以及,
其中所述发送进程被配置为将所述数据传输速率x(t)调整到所述更新的数据传输速率x'(t)。
2.根据权利要求1所述的数据传输系统,其中如果所述测量的当前占用率大于所述指定的目标占用率值,则所述存储速率控制器被配置为使得所述更新的数据传输速率x'(t)表示所述当前数据传输速率x(t)的减小。
3.根据权利要求1所述的数据传输系统,其中所述存储速率控制器被配置为在完成对所述存储装置的一个写操作之后计算所述更新的数据传输速率x'(t)。
4.根据权利要求1所述的数据传输系统,其中所述存储速率控制器被配置为以周期性时间间隔计算所述更新的数据传输速率x'(t),所述存储速率控制器被配置为以周期性时间间隔计算和通信短时标上的更新的数据传输速率,且被配置为在每一写操作之后计算和通信长时标上的更新的数据传输速率,其中所述周期性时间间隔的周期被计算作为当前测量的网络往返时间RTT(t)的函数。
5.根据权利要求4所述的数据传输系统,其中所述存储速率控制器被配置为:(1)在完成对所述存储装置的一个写操作之后,按照所述当前数据传输速率x(t)、测量的环形缓冲器当前占用率、所述环形缓冲器的总大小以及一个指定的目标占用率值的第一函数来计算所述更新的数据传输速率x'(t),以及(2)以周期性时间间隔,按照所述当前数据传输速率x(t)、测量的环形缓冲器当前占用率、所述环形缓冲器的总大小以及一个指定的目标占用率值的第二函数来计算所述更新的数据传输速率x'(t)。
6.根据权利要求4所述的数据传输系统,其中所述周期性时间间隔相应于当前测量的网络往返时间RTT(t)。
7.根据权利要求4所述的数据传输系统,其中如果所述当前测量的网络往返时间RTT(t)低于一个指定的阈值,则所述周期性时间间隔相应于RTT(t),否则相应于一个指定的默认值。
8.根据权利要求5所述的数据传输系统,其中当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,所述存储速率控制器被配置为根据如下的第一函数来计算所述更新的数据传输速率x'(t):
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - ρ ( t ) B )     ρ(t)≥ρmin
其中ρ'是一个指定的目标占用率,γdisk是一个加权因子,B是对所述环形缓冲器的总数据容量的一个测量值,以及T(t)是自上次更新所述当前数据传输速率以来的持续时间。
9.根据权利要求5所述的数据传输系统,其中当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,所述存储速率控制器被配置为按照如下的第一函数来计算所述更新的数据传输速率x'(t):
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - x ( t ) ρ ( t ) τ ( t ) )     ρ(t)≥ρmin
其中ρ'是一个指定的目标占用率,γdisk是一个加权因子,B是对所述环形缓冲器的总数据容量的一个测量值,τ(t)=(B/写大小)*w(t),其中“写大小”是对在最近一次写操作期间写的数据的量的一个测量值,w(t)是最近一次写操作的持续时间,以及T(t)是自上次更新所述当前数据传输速率以来的持续时间。
10.根据权利要求5所述的数据传输系统,其中当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,所述存储速率控制器被配置为以等于RTT(t)的周期性时间间隔,按照如下的第二函数来计算所述更新的数据传输速率x'(t):
x’(t)=α(t)x(t)        ρ(t)≥ρmin
α(t)=[1-ρ(t)]/[1-ρ']
其中ρ'是一个指定的目标占用率。
11.根据权利要求1所述的数据传输系统,还包括多个发送进程和多个接收进程,其中每个这样的接收进程被连接到所述存储装置,并且包括一个存储速率控制器和一个环形缓冲器,用于更新其各自的发送进程的数据传输速率。
12.根据权利要求1所述的数据传输系统,其中所述接收进程还包括一个网络速率控制器,该网络速率控制器被配置为测量网络拥塞的程度,并且基于测量的拥塞来计算一个网络速率xnet(t),且其中所述发送进程还根据xnet(t)和由所述接收进程发送的所述更新的数据传输速率来调整所述当前数据传输速率。
13.根据权利要求12所述的数据传输系统,其中对网络拥塞的测量是由测量的往返延迟时间得出的一个排队延迟。
14.根据权利要求1所述的数据传输系统,其中所述发送进程和所述接收进程属于一组相似的进程,该组进程通过维护一个虚拟队列且基于它们的总数据传输速率计算一个虚拟队列占用率,从而共同限制它们的总数据传输速率,且其中每个接收进程还包括一个虚拟链路控制器,该虚拟链路控制器基于所述虚拟队列占用率来计算一个虚拟链路速率xvl(t),且其中每个发送进程根据所述虚拟链路速率xvl(t)和由所述接收进程发送的所述更新的数据传输速率x'(t)来调整其数据传输速率。
15.根据权利要求14所述的数据传输系统,其中所述接收进程还包括一个网络速率控制器,该网络速率控制器被配置为测量网络拥塞的程度,且其中所述发送进程根据由测量的网络拥塞计算的网络速率xnet(t)、由所述虚拟队列占用率计算的虚拟链路速率xvl(t)和由所述接收进程发送的更新的数据传输速率x'(t),使用如下的最小选择判据来进一步调整其数据传输速率:
x(t)=min{xnet(t),xvl(t),x'(t)}。
16.根据权利要求1所述的数据传输系统,其中当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,所述存储速率控制器被配置为按照如下等式计算所述更新的数据传输速率x'(t):
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - ρ ( t ) B )      ρ(t)≥ρmin
其中ρ'是一个指定的目标占用率,γdisk是一个加权因子,B是对所述环形缓冲器的总数据容量的一个测量值,以及T(t)是自上次更新所述当前数据传输速率以来的持续时间。
17.根据权利要求1所述的数据传输系统,其中当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,所述存储速率控制器被配置为按照如下等式计算所述更新的数据传输速率x'(t):
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - x ( t ) ρ ( t ) τ ( t ) )     ρ(t)≥ρmin
其中ρ'是一个指定的目标占用率,γdisk是一个加权因子,B是对所述环形缓冲器的总数据容量的一个测量值,τ(t)=(B/写大小)*w(t),其中“写大小”是对在最近一次写操作期间写的数据的量的测量值,且w(t)是最近一次写操作的持续时间,T(t)是自上次更新所述当前数据传输速率以来的持续时间。
18.用于将数据从第一主机传输到通过网络连接的第二主机的方法,所述第二主机被连接到一个存储装置,包括:
在所述第一主机中执行一个发送进程,用于将数据通信到所述第二主机中执行的一个接收进程中,让所述接收进程将所述数据写到所述存储装置,其中所述发送进程在任意时间t以一个指定的可变数据传输速率x(t)将数据发送到所述接收进程,其中所述接收进程在将所接收的数据写到所述存储装置之前,将它存储在一个环形缓冲器中;
执行被纳入所述接收进程的一个存储速率控制器,以:(1)测量所述环形缓冲器的当前占用率;(2)根据当前数据传输速率x(t)、测量的当前占用率、以及一个指定的目标占用率值,计算一个更新的数据传输速率x'(t),以及(3)将所述更新的数据传输速率通信到所述发送进程;以及,
将所述数据传输速率x(t)调整到所述更新的数据传输速率x'(t)。
19.根据权利要求18所述的方法,还包括:
在完成对所述存储装置的一个写操作之后,按照所述当前数据传输速率x(t)、测量的环形缓冲器当前占用率、所述环形缓冲器的总大小以及一个指定的目标占用率值的第一函数来计算所述更新的数据传输速率x'(t),以及
以周期性时间间隔,按照所述当前数据传输速率x(t)、测量的环形缓冲器当前占用率、所述环形缓冲器的总大小以及一个指定的目标占用率值的第二函数来计算所述更新的数据传输速率x'(t)。
20.根据权利要求19所述的方法,还包括当所述当前占用率ρ(t)大于或等于一个预定值ρmin时,按照如下的第一函数来计算所述更新的数据传输速率x'(t):
x ′ ( t ) = x ( t ) + γ disk T ( t ) ( ρ ′ B - ρ ( t ) B )      ρ(t)≥ρmin
其中ρ'是一个指定的目标占用率,γdisk是一个加权因子,B是对所述环形缓冲器的总数据容量的一个测量值,以及T(t)是自上次更新所述当前数据传输速率以来的持续时间。
CN201080016532.4A 2009-03-06 2010-03-05 用于i/o受驱速率自适应的方法和系统 Active CN102449600B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15800009P 2009-03-06 2009-03-06
US61/158,000 2009-03-06
PCT/US2010/000673 WO2010101650A1 (en) 2009-03-06 2010-03-05 Method and system for i/o driven rate adaptation

Publications (2)

Publication Number Publication Date
CN102449600A CN102449600A (zh) 2012-05-09
CN102449600B true CN102449600B (zh) 2015-07-08

Family

ID=42236563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080016532.4A Active CN102449600B (zh) 2009-03-06 2010-03-05 用于i/o受驱速率自适应的方法和系统

Country Status (7)

Country Link
US (3) US8719443B2 (zh)
EP (1) EP2404238B1 (zh)
JP (1) JP5342658B2 (zh)
CN (1) CN102449600B (zh)
AU (1) AU2010221770B2 (zh)
CA (1) CA2754362C (zh)
WO (1) WO2010101650A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195823B2 (en) 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US20110128972A1 (en) * 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
AU2001259075A1 (en) 2000-04-17 2001-10-30 Circadence Corporation System and method for web serving
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US8898340B2 (en) 2000-04-17 2014-11-25 Circadence Corporation Dynamic network link acceleration for network including wireless communication devices
CN102449600B (zh) 2009-03-06 2015-07-08 阿斯帕拉公司 用于i/o受驱速率自适应的方法和系统
EP2234346A1 (en) * 2009-03-26 2010-09-29 BRITISH TELECOMMUNICATIONS public limited company Policing in data networks
JP2011055044A (ja) * 2009-08-31 2011-03-17 Fujitsu Ltd 通信システム
US20120054362A1 (en) * 2010-08-31 2012-03-01 Canon Kabushiki Kaisha Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US8842536B2 (en) * 2010-12-23 2014-09-23 Brocade Communications Systems, Inc. Ingress rate limiting
US9110745B2 (en) 2011-06-17 2015-08-18 Oracle International Corporation System and method for flow control in a messaging subsystem based on message-in/out rates
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
JP6294583B2 (ja) * 2012-12-11 2018-03-14 株式会社アイ・オー・データ機器 データ転送装置、データ転送システムおよびプログラム
US9900252B2 (en) * 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9338819B2 (en) * 2013-05-29 2016-05-10 Medtronic Minimed, Inc. Variable data usage personal medical system and method
JP2015111769A (ja) * 2013-12-06 2015-06-18 アプリックスIpホールディングス株式会社 データ送信装置、データ処理システムおよびデータ処理方法
US10171325B2 (en) * 2013-12-26 2019-01-01 Nec Corporation Minimum delay value calculating device, information transmitting device, minimum delay value calculating method, and program storage medium
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9823864B2 (en) * 2014-06-02 2017-11-21 Micron Technology, Inc. Systems and methods for throttling packet transmission in a scalable memory system protocol
US10089307B2 (en) 2014-12-31 2018-10-02 International Business Machines Corporation Scalable distributed data store
CN104601921A (zh) * 2015-01-15 2015-05-06 上海小蚁科技有限公司 系统配置方法及装置
US10073714B2 (en) 2015-03-11 2018-09-11 Western Digital Technologies, Inc. Task queues
US10439946B2 (en) 2017-02-10 2019-10-08 Intel Corporation Technologies for endpoint congestion avoidance
US10970236B2 (en) * 2017-04-21 2021-04-06 Softnas Operating Inc. System and method for optimized input/output to an object storage system
CN112073331A (zh) * 2017-05-31 2020-12-11 华为技术有限公司 一种流量控制方法、设备及系统
US10637788B2 (en) 2018-06-26 2020-04-28 International Business Machines Corporation Stability of delay-based congestion control in a computer network using an alpha-beta filter and round-trip-time predictor
US11050675B2 (en) 2019-05-31 2021-06-29 Bae Systems Information And Electronic Systems Integration Inc. Scheduler for coordination and synchronization of data across low-bandwidth links and method thereof
CN113923721B (zh) * 2021-09-17 2024-03-05 中国电子科技集团公司电子科学研究院 无人机多载荷数据交互系统及其数据传输管控方法
CN118433025B (zh) * 2024-06-27 2024-10-08 深圳市领德创科技有限公司 一种基于固态硬盘的端对端数据智能保护系统及方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3268980B2 (ja) * 1996-09-02 2002-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・バッファリング・システム
JP4203140B2 (ja) * 1997-03-25 2008-12-24 パナソニック株式会社 ストリームデータ転送方法およびシステム
US6701372B2 (en) * 1997-08-22 2004-03-02 Canon Kabushiki Kaisha Data communication apparatus and method
JPH1168845A (ja) * 1997-08-26 1999-03-09 Oki Electric Ind Co Ltd データ転送システム及び送信レート制御方法
JP2955561B1 (ja) * 1998-05-29 1999-10-04 株式会社ディジタル・ビジョン・ラボラトリーズ ストリーム通信システム及びストリーム転送制御方法
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
JP2000232477A (ja) * 1999-02-10 2000-08-22 Fuji Xerox Co Ltd データ通信方式
US6625655B2 (en) * 1999-05-04 2003-09-23 Enounce, Incorporated Method and apparatus for providing continuous playback or distribution of audio and audio-visual streamed multimedia reveived over networks having non-deterministic delays
US6625656B2 (en) * 1999-05-04 2003-09-23 Enounce, Incorporated Method and apparatus for continuous playback or distribution of information including audio-visual streamed multimedia
JP2001257715A (ja) * 2000-03-09 2001-09-21 Nippon Hoso Kyokai <Nhk> 蓄積送信端末
JP4596693B2 (ja) * 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
US6652656B2 (en) * 2001-07-24 2003-11-25 Tokyo Electron Limited Semiconductor wafer holding assembly
US7072299B2 (en) * 2001-08-20 2006-07-04 International Business Machines Corporation Credit-based receiver using selected transmit rates and storage thresholds for preventing under flow and over flow-methods, apparatus and program products
EP1341336B1 (en) * 2002-02-14 2005-07-13 Matsushita Electric Industrial Co., Ltd. Method for controlling the data rate of transmitting data packets in a wireless communications system, receiver and transmitter therefor
US7206855B1 (en) * 2002-06-28 2007-04-17 Microsoft Corporation System and method for exchanging information across a computer network at variable transmission rates
US6859437B2 (en) * 2002-11-05 2005-02-22 Nortel Networks Limited Method and system for extending the reach of a data communication channel using a flow control interception device
PT2148479E (pt) 2004-12-24 2013-02-20 Aspera Inc Transferência de dados em massa
JP4456064B2 (ja) * 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US9667545B2 (en) 2007-09-04 2017-05-30 International Business Machines Corporation Method and system for aggregate bandwidth control
CN102449600B (zh) 2009-03-06 2015-07-08 阿斯帕拉公司 用于i/o受驱速率自适应的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Rate-Based Congestion Avoidance and Control Scheme for Packet Switched Networks;Comer等;《IEEE》;19900601;第390页第2栏第4行-第396页第1栏第17行 *

Also Published As

Publication number Publication date
US9276865B2 (en) 2016-03-01
CN102449600A (zh) 2012-05-09
EP2404238B1 (en) 2018-04-25
CA2754362A1 (en) 2010-09-10
US9419907B2 (en) 2016-08-16
US20140211627A1 (en) 2014-07-31
JP2012520010A (ja) 2012-08-30
US20160191397A1 (en) 2016-06-30
WO2010101650A1 (en) 2010-09-10
AU2010221770A1 (en) 2011-09-22
US8719443B2 (en) 2014-05-06
JP5342658B2 (ja) 2013-11-13
AU2010221770B2 (en) 2013-02-14
EP2404238A1 (en) 2012-01-11
US20100228878A1 (en) 2010-09-09
CA2754362C (en) 2014-09-23

Similar Documents

Publication Publication Date Title
CN102449600B (zh) 用于i/o受驱速率自适应的方法和系统
JP2616657B2 (ja) 高速広範囲ネットワークのトラヒック制御方法
US6560243B1 (en) System and method for receiver based allocation of network bandwidth
CN103957562B (zh) 用于反复确定移动设备-接入点关联关系以实现负载平衡的方法和设备
US7023800B1 (en) Congestion avoidance within aggregate channels
US20110211449A1 (en) Communication transport optimized for data center environment
CN101375251B (zh) 多流确认调度
US7778265B2 (en) Method and apparatus for local adaptive provisioning at a node
US8004970B2 (en) Method, system and program product for setting a transmission rate in a network
US20150085648A1 (en) Congestion control in data networks
US20050078655A1 (en) Hierarchical credit queuing for traffic shaping
CN110380978B (zh) 多路径传输的调度方法、装置、计算机设备和存储介质
Lu et al. FAMD: A Flow-Aware Marking and Delay-based TCP algorithm for datacenter networks
KR100546968B1 (ko) 컴퓨터 네트워크에서의 패킷 전송 제어 방법 및 장치
KR20120106313A (ko) 우선순위 큐 기반의 긴급 데이터 전달을 위한 라우팅 방법 및 이를 적용한 네트워크 시스템
CN115022249B (zh) 云数据中心应用中数据流传输调度控制方法及系统
AlRababah Data Flows Management and Control in Computer Networks
CN101175031A (zh) 一种基于二阶最优模型和自适应计算的路由器主动队列管理方法
Goel et al. Using feedback control for a network and CPU resource management application
WO2023202692A1 (en) System and method for a scalable source notification mechanism for in-network events
Chen et al. Delay-based TCP congestion avoidance: A network calculus interpretation and performance improvements
Zhang et al. Fast fairness convergence through fair rate estimation in Variable-structure congestion Control Protocol
CN118509374A (zh) 多路径拥塞控制方法、装置、芯片、网络接口卡和设备
Santhi et al. A new approach to Active Queue Management for TCP with ECN
Li et al. Modeling the transient rate behavior of bandwidth sharing as a hybrid control system

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
ASS Succession or assignment of patent right

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION

Free format text: FORMER OWNER: ASPERA INC.

Effective date: 20150821

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150821

Address after: American New York

Patentee after: International Business Machines Corp.

Address before: American California

Patentee before: Aspera Inc.