专利名称:在网络中的缓冲数据的抢先重发的制作方法
技术领域:
本发明涉及分布式联网容错系统的领域,更具体地说,涉及其中数据发送的速度和可靠性重要的那些系统。
背景技术:
分布式系统正在变为越来越普遍的装置,用于提供用于多种功能的平台,所述功能包括存储控制器类型功能。它们的普遍性产生自这样的系统提供的灵活性和可扩缩性。以多个相互支持的方式来实现容错,所述方式诸如提供冗余的网络基础结构或冗余的存储附件。分布式应用依赖于网络连接和通信能力以执行它们的功能。这些容错特征改善了系统的可用性。高可用性也对于许多应用越来越重要。
许多系统实现了用于它们的网络接口的重试算法,其操作如下1.错误发生,诸如分组被丢失。
2.超时间隔期满。
3.网络硬件或协议栈检测到了所述错误。
4.向请求的发出者报告所述错误。
5.发出者可能使用替代硬件来第二次尝试所述请求。
这样的方案是简单的,并且当可接受等待原始请求失败时是足够的。但是,对于一些重要的环境,仅有可用性(缺少当尝试访问服务时的实际失败)是不够的。在这些环境中,在特定时间内接收响应是重要的。在那个时间内未能响应将带来与在访问服务中完全失败的惩罚可相比的惩罚,例如,另一个应用可能超时并且返回错误状态,或者因特网用户在不高兴的时候可能点击到竞争者的网站。
因此,有益的是,提供一种使得能够在期望时限内进行重试的方法,但是现有的系统不当然地使得能够如此。存在大量要解决的问题。首先,系统可以尝试以更及时的方式来检测错误。有可能降低在接口适配器或硬件中的超时间隔,但是经常在这些间隔可以如何地低这方面存在结构的限制。例如,在光纤信道中,直到由开关限定的错误超时间隔期满,通常才能重新使用未能完成的交换,所述错误超时间隔经常是10秒。而且,如果网络错误超时间隔被降低得太多,则许多网络实现不能表现鲁棒性。
有可能使用一些其他的超时机制——与已经失败的接口软件或硬件不相关联的一个——来尝试重新驱动所述请求,但是这不解决问题,因为原始请求仍然有效。使用由冗余硬件提供的替代路径来重新驱动原始请求的任何尝试将被阻止,直到已经完成了原始请求,因为存在仍然使用的与所述原始请求相关联的资源。
作为具体的例子,在使用光纤信道适配器来实现传输接口并且多线程的用户进程正在尝试重发缓冲的情况下,虚拟的存储系统将阻止第二发送尝试,因为原始发送仍然在使用存储器。
另一种可能的解决方案可以是通过将发送数据的拷贝保留在专用缓冲器中来尝试避免这个存储器阻塞问题。如果第一发送被认为太长,则这这个拷贝可以随后用于建立第二发送。所述专用拷贝可以被访问而不被虚拟存储器管理器阻止,但是这个方案将提高每次发送的成本,这些发送包括未遭遇问题的大部分,因为需要在进行第一发送尝试之前对于每个发送拷贝数据。这样的附加处理成本在多数现代网络中可能证明是不可接受的。
发明内容
因此,本发明在第一方面提供了一种用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示(signaling)所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
优选的是,所述装置还包括引用(reference)计数器,用于保持由所述第一访问器和所述第二访问器对于所述缓冲器引用的计数,所述引用计数器在所述第一访问器和所述第二访问器的每次所述引用时递增,并且在所述第一访问器和所述第二访问器的每次数据发送完成时递减,所述引用计数器当所述计数达到零时以信号表示;存储器管理器,被适配来允许由所述第一访问器和所述第二访问器读取访问所述缓冲器,并且响应于当所述计数达到零时的所述引用计数器的信号表示而将所述缓冲器返回到空闲(free)缓冲器池(pool)。
优选的是,所述装置还包括分析机构,用于确定重发所述数据的所述最佳间隔;调谐机构,用于将所述定时机构调谐到用于重发所述数据的所述最佳间隔。
优选的是,所述分析机构可操作来使用网络监视数据以确定重发所述数据的所述最佳间隔。
优选的是,所述网络包括存储网络。
优选的是,所述网络包括因特网。
在第二方面,本发明提供了存储控制器,包括用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
在第三方面,本发明提供了一种网络设备,包括用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
第二方面的存储控制器和第三方面的网络设备的优选的特征分别对应于第一方面的装置的相应的优选特征。
在第四方面,本发明提供了一种用于在具有多个路径的网络上进行数据发送的方法,包括步骤提供缓冲器,用于包含将要发送到接收器的数据项;提供定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;第一访问器访问在缓冲器中的数据以进行第一发送;启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;第二访问器响应于所述定时器机构的所述信号表示而访问缓冲器中的数据;由所述第二访问器重发所述数据;启动被设置到在所述定时器机构内的所述间隔的第二超时时钟;所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
优选的是,所述方法还包括步骤通过引用计数器来保持由所述第一访问器和所述第二访问器对于所述缓冲器引用的计数,所述引用计数器在所述第一访问器和所述第二访问器的每次所述引用时递增,并且在所述第一访问器和所述第二访问器的每次数据发送完成时递减,所述引用计数器当所述计数达到零时以信号表示;通过存储器管理器允许由所述第一访问器和所述第二访问器读取访问所述缓冲器,并且响应于当所述计数达到零时的所述引用计数器的信号表示而将所述缓冲器返回到空闲缓冲器池。
优选的是,所述方法还包括步骤确定重发所述数据的所述最佳间隔;将所述定时机构调谐到用于重发所述数据的所述最佳间隔。
优选的是,所述确定步骤使用网络监视数据以确定重发所述数据的所述最佳间隔。
优选的是,所述网络包括存储网络。
优选的是,所述网络包括因特网。
在第五方面,本发明提供了一种计算机程序,包括计算机程序代码,用于当被安装到计算机系统中并且被执行时执行第四方面的方法的步骤。
所述系统因此优选地被构造以使得从相同的应用缓冲器的多个数据发送可以同时进行。
诸如硬件控制块之类的一些资源总是在挂起(hung)发送的持续时间被消耗。所述系统因此优选地被构造使得这样的资源被分离为独立的发送路径。因此,在一个路径上的挂起发送将不妨碍沿第二路径发送数据的能力。
当发送有效(并且不被确认)时,定时器优选地提供在接收响应时的任何异常延迟的早期检测。当达到定时器阈值时,这指示在尝试替代路径方面可能存在优点。所述发送因此被适当地立即沿着所述替代路径重发,而不必等待或阻止所述第一发送完成。
本领域的技术人员可以明白,应当通过下述方式来选择对于定时器设置的间隔以优化性能当系统太频繁地响应并且重发开销提高得太多时,在未能足够迅速地响应可能的发送失败、和另一方面以基于“假肯定(falsepositives)”的附加重发来加重系统的负担之间达到适合于特定的网络及其附加器件的平衡。在本发明的优选实施例中,可以调谐所使用的间隔以将其设置为最佳值。在最优选的实施例中,根据网络的监视来设置定时器间隔,以便保证根据网络性能来将所述间隔调谐到最佳值。在另一个或替代的实施例中,可以在确定最佳间隔中考虑服务质量要求。
本发明的优选实施例还缓解了由下述事实引起的问题现有技术的传统的虚拟存储器系统不支持来自应用缓冲器的多个同时发送,因为它们不能跟踪多个发送的进展或控制对于发送缓冲器的应用访问。在现有技术的传统系统中,一旦缓冲器已经被指派包含特定的数据项并且已经将其实际地址提供到硬件输入/输出器件,则它实际上被“冻结”并且不能被除了硬件输入/输出器件之外的任何实体访问,甚至包括操作系统,例如,所述操作系统不能被允许将包含所述缓冲器的页面换出到盘,因为硬件输入/输出器件必须能够依赖于它在发送持续时间已经被提供的存储器引用。本发明的优选实施例通过下述方式而缓解了这个限制提供一种机制,用于控制在硬件输入/输出器件和操作系统的范围之外的多个访问,以允许及时的重发来改善系统性能而不论网络路径的损坏如何。
本发明的优选实施例具有另外的优点它不需要数据的额外复制。在其中替代路径工作的情况下,可以保持在系统中的数据的及时可用性,而不论在发送路径之一上的损坏或其他延迟如何。
现在参照附图仅仅作为例子来说明本发明的优选实施例,其中图1是表示按照本发明的优选实施例的装置的方框图;图2a表示按照本发明的优选实施例的示例性通信流程;图2b示出了按照本发明的优选实施例的逻辑流程;图3表示本发明的一个实施例的另一个优选改进的逻辑流程。
具体实施例方式
本发明的当前最优选的实施例被实现在分布式存储控制器中,但是,本领域的技术人员明白本发明可以等同有益地被实现在其它联网系统中,包括但不限于客户机服务器计算机系统的网络。这样的系统可以是有线或无线的,并且可以包括具有本地处理能力的器件以及缺少这样的能力的器件,诸如简单的输入/输出器件。
在分布式存储控制器的所述优选环境中,存储器管理部件保持关于大小达到32kB的数据段的输入/输出缓冲器说明。所述输入/输出缓冲器包含从某些外部源接收的数据,诸如被接收作为SCSI(小型计算机系统接口)写入操作的一部分来自主机系统的数据。所述输入/输出缓冲器可以被转换为PCI(周边元件扩展接口)地址的分散-集中列表,并且这些可以被用作向光纤信道适配器的数据传送指令的一部分。
所述存储器管理器不阻止客户机构建所述分散-集中列表,或者当发送有效时。所述缓冲器必须保持“被固定(pinned)”(即,用于缓冲器的虚拟存储器强制保持真实),只要它已经被任何输入/输出硬件器件使用,并且还没有以或明确成功或明确失败来完成输入/输出硬件器件的发送。
图1示出了按照本发明的优选实施例的装置(102),它具有可以由存储器管理器(114)响应于访问器(106,110)的访问请求而访问的缓冲存储器(104)。存储器管理器(114)与计数器(108)通信。计数器(108)保持由访问器(106,110)对于缓冲存储器(104)的引用的次数的计数,所述计数在每次引用时递增,并且在完成每个访问器的数据发送时递减。计数器(108)还被适配来当所述计数达到零时以信号表示。访问器(106,110)与相应的定时器时钟实例(116,120)相关联。所述定时器时钟实例(116,120)被提供在定时器机构(122)内,所述定时器机构(122)被适配来对预定的最佳间隔定时,该间隔小于从网络返回实际错误状态所需要的“往返行程”时间。所述定时器机构(122)还被适配来以信号表示由每个定时器时钟实例(116,120)设置的预定最佳间隔的结束。
存储器管理器(114)被适配来在写入行为期间锁定缓冲存储器,以允许访问器(106,110)读取访问缓冲存储器(104),并且当计数器(104)以信号表示所述计数已经达到了零时向空闲缓冲器池返回所述缓冲存储器。
为了跟踪多个同时的处理,存储器管理器因此保持同时访问器的引用计数。存储缓冲器的同时访问器被允许读取数据,但是不允许写入(改变)数据。因此,只要没有处理尝试改变数据,多个处理可以同时有效来读取数据源。当每个处理完成时,它“释放”其向缓冲器的引用;所述引用计数递减。当最后的处理完成时,所述引用计数达到零,并且缓冲器被置于空闲缓冲器池中。
因此,这个存储器管理器允许多个处理来从缓冲器发送数据,因为发送不涉及改变数据的内容。
存储器管理器允许第二或另外的处理来启动发送数据的同一缓冲器,构造用于访问缓冲器的其自己的PCI分散-集中列表,即使原始请求或甚至许多先前的请求仍然有效。
在本发明的优选实施例中,选择每个替代路径以便提供合理的置信度,它可能比第一或其他较早的路径更成功。其通过从完全分离的例如分离的接口适配器或不同的物理网络的硬件元件集合中选择替代路径来保证。可以使用附加的标准来进一步选择路径,附加的标准诸如可用带宽、在控制器或设备空闲期间根据查验(ping)响应评估的响应次数等。
在另一个优选实施例中,使用间隔调谐器(126)根据由网络监视数据分析器(128)进行的数据分析来调谐由时钟(116,120)使用的间隔。
所述优选实施例的存储器管理器与定时器机构组合,所述定时器机构被适配来通过下述方式来优化性能,从而允许从缓冲器及时地重发数据在当可能失败的发送的情况下对于迅速重发的需要、与对于避免过量的重发开销的需要之间平衡。同时,所述优选实施例的计数器允许分配、“被固定”和释放所述缓冲存储器,而不防止另外的访问器的读取访问。
所述优选实施例的机制需要在发送的接收器实现协议,以使得它能够处理在超时发送被延迟并且不永久丢失的情况下的数据的重复接收。这样的方案是本领域公知的,并且已经被实现在诸如TCP/IP的协议中,因此在此不进一步讨论它们。
转向图2a,其中示出了简单通信流程的例子,用于图解按照本发明的优选实施例的方法。
所述通信流程包括定时器、存储器管理器、访问器1和2(也示出了另外的访问器3、4、...、n以指示可以存在多个这样的访问器)、以及网络。根据一组时间T1、T2等来定义所述流程。所述通信流程说明了示例性情况,其中,第一访问器超时,第二访问器被允许访问同一缓冲器以便重发所述数据。所述两个流程完成(或者成功地接收数据或者返回明确的错误)。
在T1,第一访问器访问缓冲器,并且所述计数器递增以记录其访问。在T2,启动时钟来针对预定的最佳超时间隔递减计数。所述缓冲器在T3被固定,并且在T4访问器1通过网络发送数据。在T5,发送器1的超时间隔期满,并且访问器2被触发来访问所述缓冲器。这发生在T6,并且计数递增以记录所述访问。在T7,启动时钟以递减计数到服务器2的超时。在T8,缓冲器被固定,在T9,访问器2发送所述数据。在T10,访问器1的发送被网络确认,并且访问器1释放其向缓冲器的访问。计数递减以记录服务器1的访问的结束。在T12,访问器2的发送被网络确认。在T13,访问器1释放其对于缓冲器的访问,并且递减计数。在T14,所述计数是0,并且缓冲器被返回到空闲缓冲器池。本领域的技术人员明白,这是单独被建立的更简化的例子,以描述可以在所述优选实施例内发生的基本的一套流程。
图2b的逻辑流程示出了按照优选实施例的数据发送的方法,其中提供了缓冲存储器(104);存储器管理器(114),被适配来在写入行为期间锁定缓冲存储器(104),以允许对于缓冲存储器(104)的读取访问,并且向空闲缓冲存储器池中返回所述缓冲存储器(104);定时器机构,用于对用于重发所述数据的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,并且所述定时器机构用于以信号表示所述预定最佳间隔的结束。
在步骤(202),进入了按照当前的优选实施例的运行时间逻辑处理。在步骤(204),第一访问器访问在缓冲存储器中的数据以发送。在步骤(206),递增计数以记录由第一访问器对于缓冲存储器(104)的访问,并且在步骤(208),将超时时钟设置为用于重发数据的预定最佳间隔,所述间隔小于从所述网络接收任何错误信号所需要的往返行程时间。
在步骤(212),系统等待来自网络的已经完成发送(来自网络的不论是成功地接收了发送还是明确的失败的信号)的通知,或者超时间隔的期满。在步骤214,执行对于超时的测试,并且如果在超时间隔期满之前未接收到任何完成,则所述逻辑启动步骤(216),其中,时钟停止。在步骤(218),第二或另外的访问器访问在同一缓冲存储器中的相同数据以通过网络重发。在步骤(220),第二或另一个访问器选择用于发送数据的替代路径,如果可能,所述选择步骤被适配来选择完整的一组不同路径元素,如果不可能,则选择尽可能多的替代路径元素。每个非第一访问器尝试避免使用由任何先前的访问器使用的路径元素。
还可以通过优化逻辑元件来选择所述替代路径,以选择例如最小发送成本的路径或最高性能的路径,或可能提供最佳服务质量保证的路径。这样的服务质量保证是在网络通信领域中公知的,不必在此说明。在当前的优选实施例中,根据网络性能监视统计的分析来选择所述替代路径。
逻辑流程进行到步骤(206),其中,计数递增以记录由第二或另一个访问器访问缓冲存储器的步骤,并且继续如上所述设置时钟等。
在步骤(214)的任何迭代,如果存在对于这样的测试的肯定响应,所述测试指示在其相应的发送的超时期满之前已经有完成(不论是成功地接收了发送还是来自网络的明确的失败的信号),则时钟在步骤(222)停止,并且计数在步骤(224)递减。在步骤(226),执行另一个测试以确定是否所述计数已经达到了零。如果它还没有达到零,则逻辑处理的这个部分返回要由下一个完成触发的步骤(228)。如果在任何迭代,确定所述计数已经达到零,则存储器管理器(114)释放缓冲存储器(104)。
现在转向图3,示出了所述示例性实施例的另外的优选的改进。图3的逻辑处理在步骤(302)开始,并且在步骤(304)接收网络监视数据。由本领域内公知的多种网络监视器件、系统或计算机程序的任何一个来提供这样的数据。由此,在步骤(306)评估可以预期的往返行程响应时间,并且在步骤(308),检查已经被设置的任何服务质量参数。根据这些输入,在步骤(310),设置最佳重发超时间隔。在步骤(312),处理的这个部分结束。本领域的技术人员可以明白,这个处理可以是迭代的,并且可以按照从网络以及从服务质量参数的任何设置器接收的最新数据,以间隔被执行,来重新设置最佳间隔。
权利要求
1.一种用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;以及所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
2.按照权利要求1的装置,还包括引用计数器,用于保持由所述第一访问器和所述第二访问器对于所述缓冲器引用的计数,所述引用计数器在所述第一访问器和所述第二访问器的每次所述引用时递增,并且在所述第一访问器和所述第二访问器的每次数据发送完成时递减,所述引用计数器当所述计数达到零时以信号表示;以及存储器管理器,被适配来允许由所述第一访问器和所述第二访问器读取访问所述缓冲器,并且响应于当所述计数达到零时的所述引用计数器的信号表示而将所述缓冲器返回到空闲缓冲器池。
3.按照权利要求1的装置,还包括分析机构,用于确定重发所述数据的所述最佳间隔;以及调谐机构,用于将所述定时机构调谐到用于重发所述数据的所述最佳间隔。
4.按照权利要求3的装置,其中,所述分析机构可操作来使用网络监视数据,以确定重发所述数据的所述最佳间隔。
5.一种存储控制器,包括用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;以及所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
6.按照权利要求5的存储控制器,还包括引用计数器,用于保持由所述第一访问器和所述第二访问器对于所述缓冲器引用的计数,所述引用计数器在所述第一访问器和所述第二访问器的每次所述引用时递增,并且在所述第一访问器和所述第二访问器的每次数据发送完成时递减,所述引用计数器当所述计数达到零时以信号表示;以及存储器管理器,被适配来允许由所述第一访问器和所述第二访问器读取访问所述缓冲器,并且响应于当所述计数达到零时的所述引用计数器的信号表示而将所述缓冲器返回到空闲缓冲器池。
7.按照权利要求5的存储控制器,还包括分析机构,用于确定重发所述数据的所述最佳间隔;以及调谐机构,用于将所述定时机构调谐到用于重发所述数据的所述最佳间隔。
8.一种网络设备,包括用于在具有多个路径的网络上进行数据发送的装置,包括缓冲器,用于包含将要发送到接收器的数据项;定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;缓冲器的第一访问器,用于访问第一发送的数据,并且启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;以及所述缓冲器的第二访问器,用于响应于所述定时器机构的所述信号表示而访问用于重发的所述数据,并且至少启动被设置到在所述定时器机构内的所述间隔的第二超时时钟,所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
9.一种用于在具有多个路径的网络上进行数据发送的方法,包括提供缓冲器,用于包含将要发送到接收器的数据项;提供定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;由第一访问器访问缓冲器中的数据以进行第一发送;启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;由第二访问器响应于所述定时器机构的所述信号表示而访问缓冲器中的数据;由所述第二访问器重发所述数据;启动被设置到在所述定时器机构内的所述间隔的第二超时时钟;由所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
10.一种计算机程序产品,被可触地包含在计算机可读介质中,包括计算机程序代码装置,用于当被安装到计算机系统中并被执行时,执行步骤提供缓冲器,用于包含将要发送到接收器的数据项;提供定时器机构,用于对向所述接收器重发所述数据项的预定最佳间隔定时,所述间隔小于从所述网络接收任何错误信号所需要的间隔,所述定时器机构还以信号表示所述预定最佳间隔的结束;由第一访问器访问缓冲器中的数据以进行第一发送;启动被设置到在所述定时器机构内的所述间隔的第一超时时钟;由第二访问器响应于所述定时器机构的所述信号表示而访问缓冲器中的数据;由所述第二访问器重发所述数据;启动被设置到在所述定时器机构内的所述间隔的第二超时时钟;由所述第二访问器尝试选择路径以发送所述数据,避免使用由所述第一访问器使用的路径元素。
全文摘要
一种用于在网络上进行数据发送的装置,包括缓冲器;定时器机构,用于对重发数据的最佳间隔(小于往返行程错误响应延迟)定时。第一访问器访问用于发送的缓冲器中的数据,并且启动第一超时时钟。缓冲器的第二或另外的访问器响应于超时而访问所述数据,启动超时时钟,并且尝试在路径上发送所述数据,而避免由先前的访问器使用的路径元素。计数器递增和递减访问器对于缓冲器引用的计数,并且当所述计数达到零时以信号表示。存储器管理器响应于引用计数器以信号表示计数已经达到零而将所述缓冲器返回空闲缓冲器池。可以使用分析机构来确定最佳的间隔,并且调谐定时器机构。
文档编号H04L12/56GK1742468SQ200380109225
公开日2006年3月1日 申请日期2003年10月28日 优先权日2003年1月30日
发明者卡洛斯·F·弗恩特, 罗伯特·M·琼斯, 威廉·J·帕辛厄姆, 威廉·J·斯凯尔斯 申请人:国际商业机器公司