基于基数的流量控制的制作方法

文档序号:32436410发布日期:2022-12-06 19:12阅读:41来源:国知局
基于基数的流量控制的制作方法

1.本公开总体上涉及联网设备,并且具体而言涉及流处理系统中的拥塞控制。


背景技术:

2.数据中心中的低延时操作正在变成日益重要的主题。在数据中心中管理分组拥塞是递送可靠的低延时性能的重要部分。在数据中心中还关注管理或最小化分组丢失。如果延时增加到毫秒级或更多,则现有的拥塞控制方法是不充分的,尤其是在规模上。拥塞控制是数据中心中的系统性能的重要方面。


技术实现要素:

3.本公开的实施例旨在改善拥塞控制。例如,本公开的一个方面是改善拥塞控制收敛时间。在一些实施例中,描述了测量涉及特定拥塞点(例如,交换机的队列或图形处理单元(gpu)中的处理电路的资源)的基数(例如,通过对不同流的数量进行计数)的拥塞控制器。拥塞控制器可使用所测量的基数来更好地为拥塞点定制拥塞控制动作。
4.大多数现有的拥塞控制方法取决于参数,如交换机队列深度、延时等。现有的拥塞控制方法不能基于面对拥塞的流的数量或特定的流是否卡在线路的头部并且阻塞其他流来不同地(或适当地)作出反应。未能考虑面对拥塞的流的数量可导致低性能拥塞控制器,这将导致延时增加。本文中所描述的拥塞控制器被配置为在特定时间窗口估计或确定以特定流处理资源(例如,交换机的队列或gpu中的处理电路的资源)为目标的流的数目,且接着实现适当的拥塞控制动作以考虑以所述流处理资源为目标的流的所估计或确定的数目。以此方式,拥塞控制器能够基于前瞻性方法而不是总是被动的方式来实现一个或更多个拥塞控制动作。例如,拥塞控制的前瞻性方法可有助于改进拥塞控制器的性能和稳定性并减少数据中心中的总延时。本公开的另一方面是提供一种具有仅计数主要流并且过滤基本上不影响拥塞的小流的能力的方法。例如,本文描述的方法利用约90%的流是非常小并且应该被忽略的观点。如本文中所描述的拥塞控制方法可使用过滤机制来仅计数主要流。
5.在说明性示例中,公开了一种设备,所述设备包括:资源,所述资源被配置成接收多个数据流,其中当所述数据流的数量超过阈值时,所述资源受到流拥塞;以及控制器,其测量在所述资源处接收的实际数据流的基数并且响应于在所述资源处接收的所述实际数据流的所述基数而实现拥塞控制动作。
6.在另一示例中,公开了一种方法,该方法包括:测量在流处理资源处的实际数据流的基数;确定该实际数据流的基数触发拥塞控制动作;以及响应于确定所述实际数据流的所述基数触发所述拥塞控制动作,针对所述流处理资源实施所述拥塞控制动作。
7.在又一示例中,公开了一种系统,该系统包括处理器和与该处理器耦接的计算机存储器设备,其中该计算机存储器设备包括存储在其上的数据,该数据使该处理器能够:测量在流处理资源处的实际数据流的基数;确定所述实际数据流的所述基数触发拥塞控制动作;以及响应于确定所述实际数据流的所述基数触发所述拥塞控制动作,针对所述流处理
资源实施所述拥塞控制动作。
8.在此描述了附加特征和优点并且附加特征和优点从以下描述和附图中将是显而易见的。
附图说明
9.结合附图对本公开进行描述,这些附图不一定按比例绘制:
10.图1是示出了根据本公开的至少一些实施例的计算系统的框图;
11.图2是示出了根据本公开的至少一些实施例的另一计算系统的框图;
12.图3是示出了根据本公开的至少一些实施例的用于训练由拥塞控制器使用的数据模型的系统的框图;
13.图4是示出了根据本公开的至少一些实施例的操作拥塞控制器的第一方法的流程图;
14.图5是示出了根据本公开的至少一些实施例的操作拥塞控制器的第二方法的流程图;
15.图6是示出了根据本公开的至少一些实施例的操作拥塞控制器的第三方法的流程图;
16.图7是示出了根据本公开的至少一些实施例的训练由拥塞控制器使用的数据模型的方法的流程图;以及
17.图8是示出了根据本公开的至少一些实施例的操作拥塞控制器的第四方法的流程图。
具体实施方式
18.随后的描述仅提供了多个实施例,并且不旨在限制权利要求书的范围、适用性或配置。相反,随后的描述将为本领域技术人员提供实现所描述的实施例的描述。应当理解的是,在不背离所附权利要求的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
19.从以下描述中,并且由于计算效率的原因,将认识到,该系统的组件可以被布置在分布式组件网络内的任何适当位置处,而不影响该系统的操作。
20.此外,应理解的是,连接这些元件的各个链路可以是有线的、迹线的、或无线的链路、或其任何适当的组合、或能够向和从所连接的元件供应和/或传递数据的任何其他适当的已知或以后开发的元件。例如,用作链路的传输介质可以是用于电信号的任何适当的载体,包括同轴电缆、铜线和光纤、印刷电路板(pcb)上的电迹线等。
21.如在此使用的,短语“至少一个”、“一个或更多个”、“或”以及“和/或”是开放式表达,这些表达在操作中既是结合的又是析取的。例如,表述“a、b和c中的至少一个”、“a、b或c中的至少一个”、“a、b和c中的一个或更多个”、“a、b或c中的一个或更多个”、“a、b和/或c”以及“a、b或c”中的每一个表示:单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起、或a、b和c一起。
22.在此所使用的术语“自动”及其变体是指当执行过程或操作时在没有实质性人为输入的情况下完成的任何适当的过程或操作。然而,如果在执行过程或操作之前接收到输
入,则过程或操作可以是自动的,即使执行过程或操作使用实质或不重要的人类输入。如果这种输入影响将如何执行过程或操作,则人类输入被视为实质性的。同意过程或操作的执行的人类输入不被认为是“实质性的”。
23.如在此使用的术语“确定”、“计算(calculate)”和“计算(compute)”及其变化可互换地使用,并且包括任何适当类型的方法、过程、操作或技术。
24.在此将参照附图描述本公开的各个方面,这些附图是理想化配置的示意图。
25.除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,术语(例如在常用字典中定义的那些)应被解释为具有与它们在相关领域和本公开的背景下的含义一致的含义。
26.如在此使用的,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括(comprise)”、“包括(comprises)”和/或“包括(comprising)”时,其指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其他特征、整体、步骤、操作、元件、组件和/或其组合的存在或添加。术语“和/或”包括一个或更多个相关列出项的任何和所有组合。
27.现在参见图1-8,将描述根据本公开的至少一些实施例的用于在计算系统中实施拥塞控制的各个系统和方法。如本文中将更详细描述的,预期拥塞控制器被配置为测量涉及特定拥塞点(诸如流处理资源)的基数(例如,通过对不同流的数量进行计数)。还设想了拥塞控制器限制数据传输速率以防止分组丢失和/或延时增加。在一些示例中,基数可用于帮助拥塞控制器更有效地和高效地执行这些功能和其他功能。流处理资源的某些示例将被描述为在交换机或类似类型的联网设备中实施。流处理资源的其他示例将被描述为在gpu或gpu的组件中实施。虽然实施例将拥塞控制器描述为与正被管理(例如,受到由拥塞控制器实施的拥塞控制动作)的流处理资源位于同一设备中,但应理解,拥塞控制器可位于第一设备(例如,第一计算设备)中,而由拥塞控制器管理的流处理资源位于第二设备(例如,通信节点、交换机或不同于第一计算设备的gpu)中。
28.如在此将描述的,拥塞控制器可以确定何时实施拥塞控制动作,并且可以基于在流处理资源处测量的实际数据流的测量基数来选择特定拥塞控制动作。计算多集的精确基数通常需要与基数成比例的存储器量。对于非常大的数据集,诸如在数据中心中的交换机或gpu内运行的那些数据集,提供该存储器量可能是不切实际的。然而,可使用概率基数估计器来确定概率基数,概率基数估计器使用的存储器比计算多集的精确基数所需的存储器显著更少。可由本文中描述的拥塞控制器采用的概率基数估计器的一个示例是hyperloglog估计器。通过使用hyperloglog,拥塞控制器可被配置为估计超过109的基数,误差不超过2%并且使用少于2kb的存储器。
29.拥塞控制器的附加细节及其hyperloglog的利用将在此进一步详细描述。然而,应当理解,拥塞控制器可使用用于测量数据流的基数的其他机制。由拥塞控制器实现的概率基数估计器可利用多个不同的基数确定方法,包括但不限于loglog方法、hyperloglog++方法、流式hyperloglog方法、其组合、其变体等。
30.首先参见图1,示出了第一说明性计算系统100,其中可以利用拥塞控制器144来控制交换机104中的拥塞。计算系统100被示出为包括经由多个通信端口108连接一个或更多
个通信节点112的交换机104。所示的交换机104被示出为经由多个通信端口108与四个通信节点112连接。四个通信节点112的图示是为了便于讨论,并且不应被解释为限制本公开的实施例。具体地,交换机104可以被配置为连接任何数量的通信节点112,并且交换机104可以包括任何数量的端口108以促进这样的连接。甚至更具体地,交换机104可以被配置为连接比图1中所示的更多或更少数量的通信节点112。此外,本公开的实施例设想并非交换机104的所有端口108都需要与通信节点112连接。例如,交换机104的一个或更多个端口108可以保持不连接(例如,断开)并且可以不具有插入到端口108中的任何特定的联网电缆116。
31.通信节点112可以是相同类型的设备或不同类型的设备。作为非限制性示例,通信节点112中的一些或全部可对应于架顶式(tor)交换机。可替代地或附加地,通信节点112中的一个或更多个可对应于除tor交换机之外的设备。通信节点112不一定需要使用相同的通信协议进行通信,因为交换机104可以包括促进协议转换的组件和/或通信节点112可以经由可插拔网络适配器连接到交换机104。
32.虽然通信节点112可以对应于tor交换机,但是通信节点112中的一个或更多个可以被认为是主机设备、服务器、网络设备、数据存储设备、网络适配器(例如,网络接口卡(nic)或主机通道适配器(hca))或其组合。在一些实施例中,通信节点112可以对应于个人计算机(pc)、膝上型计算机、平板计算机、智能电话、服务器、服务器集合等中的一个或更多个。应当理解,通信节点112可以称为主机,其可以包括网络主机、以太网主机、无限带宽(ib)主机等。作为另一特定但非限制性示例,通信节点112中的一个或更多个可对应于向用户设备、客户端设备或计算系统100中的其他主机提供信息资源、服务和/或应用的服务器。应当理解,通信节点112可以被分配至少一个网络地址(例如,ip地址),并且分配至通信节点112的网络地址的格式可以取决于通信节点112连接至的网络的性质。
33.图1示出了一个或更多个联网电缆可以用于将通信节点112连接至交换机104。在一些实施例中,通信节点112可以经由双向通信链路116连接到单个端口108。双向通信链路116可通过联网电缆建立并且可使用已知的或将要开发的任何通信协议来传输数据分组。
34.通信节点112可以替代地或另外地经由多个端口108与交换机104相连接。在这种配置中,端口108中的一个可用于将分组从交换机104传送至通信节点112,而端口108中的另一个可用于将分组从通信节点112传送至交换机104。在该配置中,单独的联网电缆可用于数据上行链路120和数据下行链路124。
35.交换机104可以对应于光交换机和/或电交换机。在一些实施例中,交换机104可以包括切换硬件128,该切换硬件可配置为选择性地互连多个端口108,由此使得能够在多个端口108之间进行通信,这使得能够在通信节点112之间进行通信。在一些实施例中,切换硬件128可以被配置为选择性地使多个通信节点112能够基于切换硬件128的特定配置进行通信。具体地,切换硬件128可以包括可在不同匹配配置之间切换的光学和/或电气组件140。
36.在一些实施例中,交换机104可以对应于光路交换机,这意味着光学和/或电气组件140可以包括多个光学和/或光电子组件,这些光学和/或光电子组件将光信号从一个通道切换至另一个通道。在一些实施例中,光学和/或电气组件140可被配置成提供光交换结构。作为一个示例,一个或更多个光学和/或电气组件140可以被配置为通过机械地偏移或移动光纤以驱动一个或更多个替代光纤来操作。可替代地或附加地,一个或更多个光学和/或电气组件140可以包括通过赋予电光效应、磁光效应等等来促进在不同端口匹配之间切
换的组件。例如,可在光学和/或电气组件140中提供微镜、压电束转向机构、液晶、滤光片等以促进在光学通道的不同匹配配置之间的切换。
37.在一些实施例中,交换机104可以对应于电气交换机,这意味着光学和/或电气组件140可以包括被配置为管理分组流和分组传输的多个电气组件或传统电子电路。因此,光学和/或电气组件140可替代地或附加地包括一个或更多个集成电路(ic)芯片、微处理器、电路板、数据处理单元(dpu)、简单模拟电路组件(例如,电阻器、电容器、电感器等)、数字电路组件(例如,晶体管、逻辑门等)、存储器设备、现场可编程门阵列(fpga)、专用集成电路(asic)、其组合等等。
38.交换机104进一步被示出为包括处理器132和存储器136。处理器132可以对应于或包括ic芯片、微处理器等中的一个或更多个。存储器136可以包括任何数量的类型的存储器设备。作为示例,存储器136可以包括随机存取存储器(ram)、只读存储器(rom)、闪存、电可擦除可编程rom(eeprom)、动态ram(dram)、缓冲存储器、其组合等等。应当理解,拥塞控制器144可存储在第一类型的存储器设备中,而流处理资源148可对应于不同类型的存储器设备(例如,缓冲存储器或可用于提供交换机队列的任何其他合适的设备)。
39.处理器132和存储器136可以被配置为实施交换机中的拥塞控制操作。作为示例,存储器136可以存储可由处理器132执行的数据(例如,指令和/或机器学习模型)。当处理器132执行存储在存储器136中的数据时,拥塞控制器144的功能可在交换机104内实现。虽然图1示出了处理器132和包含拥塞控制器144的存储器136位于交换机104内,但应当理解的是,拥塞控制器144(以及实现拥塞控制器的适当硬件)可设置在通信节点112或多个通信节点112中。例如,通信节点112(例如,nic或hca)可配置为从交换机104获得基数信息并实现本文所述的拥塞决策和控制。因此,拥塞控制器144的特征及其能力可以在交换机104中、在通信节点112中、或其组合中提供而不背离本公开的范围。
40.更具体地,当处理器132执行拥塞控制器144时,可以针对流处理资源148执行一个或更多个拥塞控制功能。流处理资源148的非限制性示例包括被用作或被分配作为交换机中的队列的缓冲存储器。在一些实施例中,拥塞控制器144可被配置为测量流处理资源148(例如,队列)中的实际数据流的数量,然后确定流处理资源148的实际数据流的基数。基于在流处理资源148处接收的实际数据流的基数,拥塞控制器144可实施一个或更多个拥塞控制动作。除了拥塞控制动作,拥塞控制器144还可被配置为实施一个或更多个拥塞避免动作。拥塞避免动作还可响应于在流处理资源148处接收的实际数据流的基数来实现。可由拥塞控制器基于所测量的基数自动调用的拥塞控制动作的非限制性示例包括指数退避、窗口缩减和/或公平排队。
41.在一些实施例中,拥塞控制器144可被配置为测量一个或更多个处理资源148的实际数据流的基数,然后响应于在特定时间窗口实际数据流的基数降至预定阈值以下而自动地实现拥塞控制动作。可替代地或附加地,拥塞控制器144可被配置为测量一时间段内的实际数据流的基数并且在实施拥塞控制动作之前确定实际数据流的平均基数。在一些实施例中,拥塞控制器144可被配置成响应于实际数据流的基数降至第一阈值以下而实施第一拥塞控制动作,但拥塞控制器144还可被配置成响应于实际数据流的基数降至第二阈值以下而实施第二拥塞控制动作。在一些实施例中,第一阈值小于第二阈值,并且第一拥塞控制动作比第二拥塞控制动作更严重。
42.在一些实施例中,拥塞控制器144被配置成利用多个不同流(例如,基数)来改进一个或更多个流处理资源148的拥塞控制。拥塞控制器144可配置成利用多个不同的基数估计器。如果拥塞控制器144被配置为利用不同的基数估计器,那么拥塞控制器144可利用第一基数估计器直到基数达到预定阈值,此时拥塞控制器144开始利用第二基数估计器。拥塞控制器144可继续使用第二基数估计器达预定时间量和/或直到基数达到第二预定阈值,此时拥塞控制器144可切换回使用第一基数估计器或第三基数估计器。
43.如可以认识到的,拥塞控制器144可以被配置成利用任何适合的、已知的、或仍有待开发的基数估计器。作为一些非限制性实例,拥塞控制器144可利用hyperloglog估计器、loglog估计器、hyperloglog++估计器、流式hyperloglog估计器、线性计数等。hyperloglog估计器可具有三个主要操作(例如,加法操作、计数操作和合并操作)。hyperloglog估计器的数据可以存储在m个计数器的阵列中,这些计数器被称为寄存器,大小为m,被设置为初始状态。在加法操作中,hyperloglog估计器可利用散列函数计算输入数据的散列,得到第一位,将第一位相加以得到待修改的寄存器的地址。在计数操作中,hyperloglog估计器可以计算m个寄存器的调和平均值并且使用常数,得出计数的估计值e:
[0044][0045][0046]
e=αmm2z
[0047]
在上文中,n可以对应于m的未知基数,每个子集mj将具有n/m元素。在一些实施例中,可以引入常数αm以校正由于散列冲突而存在的系统乘法偏差。该常数并不简单,但可以被近似为以下所示:
[0048][0049]
然而,hyperloglog技术可能偏向低于阈值的小基数。拥塞控制器144可将不同的基数估计器用于小基数(例如,线性计数)。在基数估计小于上述阈值(例如,)的情况下,可使用替代计算:
[0050]
1.令v为等于0的寄存器的计数。
[0051]
2.如果v=0,则使用上面的标准hyperloglog估计器e。
[0052]
3.否则,使用线性计数:
[0053]
替换地或附加地,非常大的基数接近寄存器大小的限制(例如,对于32位的寄存器,),基数可通过下式估计:
[0054][0055]
在针对两个hyperloglog(h111、h112)的合并操作中,合并可以包括获得每对寄存器j:1..m的最大值。
[0056]
hll
union
[j]=max(hll1[j],hll2[j])
[0057]
在一些实施例中,拥塞控制器144可被配置为实现反应点(例如,响应于基数降至预定阈值以下)并且针对大基数的反应较不严重,从而提供更快的收敛。在一些实施例中,基数可被配置为仅反映极大的流(例如,大象流)。
[0058]
如上所述,拥塞控制器144可以被实施在交换机104内提供拥塞控制。然而,应当理解,其他设备也可以受益于如本文所描述的拥塞控制器144。例如,如图2所示,gpu 204也可以受益于拥塞控制器144的操作。图2示出了第二可能的计算系统200,其中gpu 204的流处理资源暴露于拥塞控制器144以减轻gpu 204内的拥塞问题。
[0059]
在一些实施例中,gpu 204包括接口208,该接口提供gpu 204与通信节点112之间的物理和/或电互连。gpu 204还被示为包括处理电路212,处理电路212可以包括一个或更多个流处理资源148。在一些实施例中,流处理资源148可以对应于存储器设备(例如,缓冲存储器)、寄存器、晶体管、模拟电路、数字电路、或在gpu 204内可用的任何适当类型的处理电路212。流处理资源148可能遭受拥塞,很像结合交换机104描述的流处理资源148。因此,拥塞控制器144可被配置为测量或估计处理电路212的流处理资源148中的实际流的基数,并基于该基数实施一个或更多个拥塞控制动作。
[0060]
现在参见图3,将描述根据本公开的至少一些实施例的拥塞控制器144的附加细节。拥塞控制器144被示出为包括指令320(例如,可由处理器132执行的机器可读指令)和/或一个或更多个数据模型324。数据模型324可以对应于机器学习模型、机器学习模型的集合、人工神经网络、人工神经网络的集合、其组合等中的一个或更多个。
[0061]
如可以认识到的,一个或更多个数据模型324可以与指令320合作以提供如在此描述的拥塞控制器144的功能。还应认识到,拥塞控制器144可仅包含指令320(例如,无数据模型324)或可仅包含数据模型324(例如,无指令320)。应认识到,由拥塞控制器144实施的基数估计器可实施为指令320和/或数据模型324。在利用数据模型324的拥塞控制器144中,可期望确保数据模型324在用于实际数据流的生产环境中之前被充分训练。作为示例,拥塞控制器144的数据模型324可仅在由模型训练系统304正确训练之后使用。
[0062]
模型训练系统304可以包括用训练数据316训练的多个候选模型308,所述训练数据316可以包括在流处理资源148中测量的实际数据流328。模型训练系统304还可包括训练控制312,其确保候选模型308在训练数据316上被训练预定时间量,直到预定量的训练数据316已被候选模型308处理,和/或直到候选模型308表现出预定和足够准确的行为(例如,在预定准确度(例如,小于2%)内确定或估计基数)。应当理解,当候选模型308已经被模型训练系统304充分训练时,候选模型308可以被传送到拥塞控制器144中以用作生产数据模型324。在一些实施例中,一个或更多个数据模型324可被配置为确定或估计基数。在一些实施例中,一个或更多个数据模型324可以被配置为确定或选择适当的拥塞控制动作,并且自动地使该拥塞控制动作由正被拥塞控制器144控制的一个或更多个流处理资源148实施。
[0063]
现在参见图4-6,将描述根据本公开的至少一些实施例的各个方法。所公开的方法
将以特定顺序被描述和/或被描述为由系统100的特定组件执行,但是应当理解,方法的步骤可以以任何合适的顺序(或并行)被执行,可以与来自其他方法的步骤组合,和/或可以由本文所描述的其他组件执行
[0064]
虽然将结合考虑拥塞控制的基数来描述各种方法,但应理解,基数可能不是在实施这些方法中的一个或更多个时由拥塞控制器144考虑的唯一输入。相反,基数可与拥塞控制器144可用的其他信息(例如,缓冲区占用率)一起使用。在一个示例中,拥塞控制器144可被配置为通过估计的基数来确定传输速率范围,并且使用缓冲区信息来精调实际速率。在此示例中,速率可由下式来表示:
[0065]
速率=线路_速率/基数*缓冲区因子
[0066]
(rate=line_rate/cardinality*buffer factor)
[0067]
其中,缓冲区因子在[0.9,1.1]中以校正基数估计误差和经过滤的小流。在此示例中,可直接从拥塞的交换机缓冲区计算速率。
[0068]
首先参见图4,将描述根据本公开的至少一些实施例的操作拥塞控制器144的第一方法400。方法400开始于拥塞控制器144测量流处理资源148处的实际数据流(步骤404)。拥塞控制器144可随后在该步骤中确定或估计流处理资源148处的实际数据流的基数。具体地,实际数据流的基数可由拥塞控制器144确定,然后与一个或更多个基数阈值进行比较以确定实际数据流的基数是否触发一个或更多个拥塞控制动作(步骤408)。
[0069]
在一些实施例中,拥塞控制器144可基于所确定的实际数据流的基数和基于实际数据流的基数是否已触发特定拥塞控制动作(例如,降至低于与特定拥塞控制动作相关联的预定阈值,其中不同的拥塞控制动作具有与其相关联的不同的基数阈值)来选择一个或更多个拥塞控制动作412(步骤412)。方法400然后可以继续,拥塞控制器144实施步骤412中针对流处理资源148选择的一个或更多个拥塞控制动作(步骤416)。可以在这个步骤中实施的拥塞控制动作的示例包括但不限于指数退避、窗口缩减和公平排队。
[0070]
现在参见图5,将描述根据本公开的至少一些实施例的操作拥塞控制器144的第二方法500。方法500开始于拥塞控制器144测量流处理资源148处的实际数据流的第一基数(步骤504)。方法500继续拥塞控制器144测量流处理资源148处的实际数据流的第二基数(步骤508)。可使用不同的基数估计器(例如,hyperloglog估计器、loglog估计器、hyperloglog++估计器、流式hyperloglog估计器、线性计数等)来测量(或估计)第一基数和第二基数。替换地或附加地,可使用相同的基数估计器来测量或估计第一基数和第二基数,但是可在不同的时间点测量或估计基数。
[0071]
方法500可以继续,拥塞控制器144基于在步骤504和508中确定的第一基数和第二基数确定基数随时间的衰减(步骤512)。随后,基数随时间的衰减可用于触发拥塞控制动作(步骤516)。在一些实施例中,拥塞控制动作可基于基数随时间的衰减是否满足、超过或低于预定阈值来选择。此外,可基于基数随时间衰减的幅度来选择拥塞控制动作。
[0072]
现在参见图6,将描述根据本公开的至少一些实施例的操作拥塞控制器144的第三方法600。方法600开始于拥塞控制器144测量在一时间段内流处理资源148处的实际数据流的基数(步骤604)。随着基数随时间被测量,拥塞控制器144可确定实际数据流的平均基数(步骤608)。在一些实施例中,在触发拥塞控制动作(步骤608)之前,可确定该时间段的实际数据流的平均基数。
[0073]
方法600可以继续,拥塞控制器144确定实际数据流的平均基数已经超过预定阈值(步骤612)。基于实际数据流的基数超过预定阈值,拥塞控制器144可触发拥塞控制动作(步骤616)。在一些实施例中,拥塞控制器144可基于实际数据流的平均基数超过预定阈值的程度来选择和触发一个或更多个不同的拥塞控制动作。
[0074]
现在参见图7,将描述根据本公开的至少一些实施例的一种训练由拥塞控制器144使用的候选模型308的方法700。方法700开始于模型训练系统304训练一个或更多个候选数据模型308(步骤704)。在一些实施例中,模型训练系统304可以利用训练控制312来用流处理资源148的实际或历史数据流的基数训练候选模型308(步骤704)。
[0075]
然后,模型训练系统304可以利用训练控制312来确定一个或更多个候选数据模型308已经被充分训练(步骤708)。如果候选模型308用训练数据316训练了至少预定时间量、已处理了预定数量的数据集、或已开始表现出如由训练控制312所确定的可接受行为或功能,则候选数据模型308可被标识为已经被充分训练。
[0076]
方法700然后可以通过使经训练的候选模型可用于拥塞控制器144以用作数据模型324来继续(步骤712)。然后,拥塞控制器144可结合确定拥塞控制动作已被触发而使用新训练的数据模型324(步骤716)。在一些实施例中,一个或更多个数据模型324可以支持拥塞控制器144测量或估计基数、选择拥塞控制动作和/或自动实施拥塞控制动作。
[0077]
现在参见图8,将描述根据本公开的至少一些实施例的操作拥塞控制器144的另一种方法800。方法800开始于拥塞控制器144测量或估计流处理资源处的实际数据流的基数(步骤804)。然后,拥塞控制器144可确定在特定的时间窗口所测量的或估计的基数是否低于第一阈值和/或第二阈值(步骤808)。
[0078]
方法800可以继续,如果所测量的基数降至第一阈值之下,则拥塞控制器144实施第一拥塞控制动作(步骤812)。替换地或附加地,如果所测量的基数降至不同于第一阈值的第二阈值之下,则拥塞控制器144可实施第二拥塞控制动作(步骤816)。在一些实施例中,第一阈值可小于第二阈值。在一些实施例中,第一拥塞控制动作可比第二拥塞控制动作更严重。例如,与较不严重的拥塞控制动作相比(其可对应于公平排队),更严重的拥塞控制动作可对应于流退避(或更显著的流退避)、窗口缩减(或更显著的窗口缩减)等。
[0079]
在说明书中给出了具体细节以便提供对这些实施例的透彻理解。然而,本领域普通技术人员将理解,实施例可以在没有这些具体细节的情况下实践。在其他实例中,可以在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术,以便避免使实施例模糊不清。
[0080]
虽然在此已经详细描述了本公开的说明性实施例,但应理解的是,本发明的概念可以另外不同地实施和采用,并且所附权利要求书旨在被解释为包括此类变化,除非被现有技术限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1