CN107852370A - 用于可扩展网络缓冲器管理的系统和方法 - Google Patents
用于可扩展网络缓冲器管理的系统和方法 Download PDFInfo
- Publication number
- CN107852370A CN107852370A CN201680039375.6A CN201680039375A CN107852370A CN 107852370 A CN107852370 A CN 107852370A CN 201680039375 A CN201680039375 A CN 201680039375A CN 107852370 A CN107852370 A CN 107852370A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- cloud service
- buffer
- out period
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/722—Admission control; Resource allocation using reservation actions during connection setup at the destination endpoint, e.g. reservation of terminal resources or buffer space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
- H04L49/9052—Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种用于可扩展网络缓冲器管理的计算机实现的方法,所述方法可包括(1)经由至客户端的连接来接收待传输到云服务的数据,(2)将所述数据缓冲在至少一个数据缓冲器中,(3)确定所述数据在所述客户端连接的超时周期内将不被传输到所述云服务,(4)延迟从所述客户端连接接收额外数据持续所述超时周期的一部分,以及(5)在所述超时周期已经经过之前,将来自所述客户端连接的数据缓冲在至少一个二级数据缓冲器中,其中所述二级数据缓冲器的大小小于所述数据缓冲器。本发明还公开了各种其他方法、系统和计算机可读介质。
Description
背景技术
云数据存储服务已经成为用于保护有价值数据的流行方式,从而提供场外数据存储以及高可用性和安全性水平。然而,云存储服务可能不提供最终用户以及尤其是具有大量用户的组织所需要或期望的用户接口或数据通信特征。为了满足这些需要,已经开发出备份管理服务以在云存储提供方与最终用户之间调解。备份管理服务可由具有许多最终用户的企业或其他组织、第三方或者云存储提供方自己管理。
备份管理服务所解决的一些问题可包括等待时间、带宽和连接管理问题,这些问题导致客户端或云服务端上的连接超时、频繁重试和带宽利用不足。因此,本公开确定并解决了对用于可扩展网络缓冲器管理的额外且改善的系统和方法的需要。
发明内容
如下文将更详细地描述,本公开描述各种用于可扩展网络缓冲器管理的系统和方法,其通过将数据缓冲在主要数据缓冲器和二级数据缓冲器中、保持客户端与缓冲器管理系统之间和缓冲器管理系统与云服务之间的连接并且监视和控制带宽利用来管理客户端与云存储服务之间的数据通信。
在一个实施例中,一种用于可扩展网络缓冲器管理的计算机实现的方法可包括(1)经由至客户端的连接来接收待传输到云服务的数据,(2)将数据缓冲在一个或多个数据缓冲器中,(3)确定数据在客户端连接的超时周期内将不被传输到云服务,(4)延迟从客户端连接接收额外数据持续超时周期的一部分,以及(5)在超时周期已经经过之前,将来自客户端连接的数据缓冲在大小比数据缓冲器小的一个或多个二级数据缓冲器中。
在一些实施例中,延迟从客户端连接接收额外数据可包括延迟向客户端通知已经接收到数据。在一些实施例中,计算机实现的方法还可包括确定没有数据缓冲器可用于缓冲经由客户端连接所接收的数据。在一些实施例中,延迟从客户端连接接收额外数据可包括将来自客户端连接的数据缓冲在二级数据缓冲器中并且延迟从客户端连接接收额外数据持续超时周期的一部分。在一个实施方案中,计算机实现的方法还可包括确定数据在客户端连接的超时周期内将被传输到云服务并且延迟从客户端连接接收额外数据,直到已经接收到对云服务已经接收到数据的确认。
在一个实施方案中,计算机实现的方法还可包括(1)经由至云服务的连接来接收待传输到客户端的数据,(2)将数据缓冲在一个或多个数据缓冲器中,(3)确定数据在云服务连接的超时周期内将不被传输到客户端,(4)延迟从云服务连接接收额外数据持续云服务连接超时周期的一部分,以及(5)在云服务连接超时周期已经经过之前,将来自云服务连接的数据缓冲在一个或多个二级数据缓冲器中。
在一个实施方案中,计算机实现的方法还可包括(1)保持至云服务的一个或多个额外连接,(2)确定额外数据在云连接的超时周期内将不经由客户端连接接收,并且(3)在云连接的超时周期已经经过之前,使用至云服务的额外连接将数据的至少一部分传输到云服务。在一些实施例中,计算机实现的方法还可包括至少部分地基于云连接的超时周期与从客户端接收待填充数据缓冲器的数据的时间的比,来确定要保持的至云服务的多个额外连接。
在一个实施方案中,计算机实现的方法还可包括(1)确定至云服务的一组连接的总带宽利用率,(2)确定带宽利用率低于阈值,并且(3)递增地增大一个或多个连接向云服务传输数据的速率。在一个实施方案中,计算机实现的方法还可包括确定带宽利用率高于阈值并且延迟在至云服务的一个或多个连接上传输数据持续某一时间间隔。在一个实施方案中,计算机实现的方法还可包括重新分配一个或多个数据缓冲器作为一个或多个较小的二级数据缓冲器并且延迟从客户端连接接收额外数据持续某一时间间隔。
在一个实施方案中,计算机实现的方法还可包括(1)从云服务接收针对数据传输的重试通知,其指示应当减小向云服务传输数据的速率,(2)确定在使用中的二级数据缓冲器的数量高于阈值,并且(3)延迟重试数据传输持续某一时间间隔。
在一个实施方案中,一种用于实现上述方法的系统可包括存储在存储器中的若干模块,诸如(1)通信模块,其经由至客户端的连接来接收待传输到云服务的数据,(2)缓冲模块,其将数据缓冲在一个或多个数据缓冲器中,(3)流量模块,其确定数据在客户端连接的超时周期内将不被传输到云服务,(4)计量模块,其延迟从客户端连接接收额外数据持续超时周期的一部分,(5)二级缓冲模块,其在超时周期已经经过之前,将来自客户端连接的数据缓冲在大小比数据缓冲器小的一个或多个二级数据缓冲器中。该系统还可包括至少一个物理处理器,其被配置为执行通信模块、缓冲模块、流量模块、计量模块和二级缓冲模块。
在一些实施例中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,一种计算机可读介质可包括一个或多个计算机可执行指令,其在由计算设备的至少一个处理器执行时可致使计算设备(1)经由至客户端的连接来接收待传输到云服务的数据,(2)将数据缓冲在一个或多个数据缓冲器中,(3)确定数据在客户端连接的超时周期内将不被传输到云服务,(4)延迟从客户端连接接收额外数据持续超时周期的一部分,以及(5)在超时周期已经经过之前,将来自客户端连接的数据缓冲在大小比数据缓冲器小的一个或多个二级数据缓冲器中。
来自任意上述实施方案的特征可根据本文所述的一般原理彼此结合使用。在结合附图和权利要求阅读以下详细描述后,将更全面地理解这些以及其他实施方案、特征和优点。
附图说明
附图示出多个示例性实施方案,且是说明书的一部分。这些附图与以下描述一起展示并说明本公开的各种原理。
图1是用于可扩展网络缓冲器管理的示例性系统的框图。
图2是用于可扩展网络缓冲器管理的额外示例性系统的框图。
图3是用于可扩展网络缓冲器管理的示例性方法的流程图。
图4是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算系统的框图。
图5是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算网络的框图。
在整个附图中,相同的参考字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易存在各种修改形式和替代形式,但附图中以举例的方式示出了具体实施方案,这些实施方案将在本文中详细描述。然而,本文所述的示例性实施方案并不旨在限于所公开的特定形式。相反,本公开涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开大体上针对于用于可扩展网络缓冲器管理的系统和方法。如下文将更详细地解释,通过管理缓冲器、连接和带宽,本文所述的系统和方法可以有效的带宽利用和减小数量的连接超时和/或重试请求管理许多备份客户端与云存储服务之间的数据通信。
下文将参考图1至2提供用于可扩展网络缓冲器管理的示例性系统的具体实施方式。还将结合图3提供对应的计算机实现的方法的详细描述。此外,将分别结合图4和5提供能够实现本文所述的实施方案中的一者或多者的示例性计算系统和网络架构的具体实施方式。
图1是用于可扩展网络缓冲器管理的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如下文将更详细地解释,示例性系统100可包括通信模块104,其经由至客户端的连接来接收待传输到云服务的数据。示例性系统100可额外包括缓冲模块106,其将所述数据缓冲在一个或多个数据缓冲器中。示例性系统100还可包括流量模块108,其确定所述数据在客户端连接的超时周期内将不被传输到云服务。示例性系统100可额外包括计量模块110,其延迟从客户端连接接收额外数据持续超时周期的一部分。示例性系统100还可包括二级缓冲模块112,其在超时周期已经经过之前,将来自客户端连接的数据缓冲在一个或多个二级数据缓冲器中,其中所述二级数据缓冲器的大小小于数据缓冲器。虽然示出为单独元件,但图1的模块102中的一者或多者可表示单个模块或应用程序的若干部分。
在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,其在由计算设备执行时可致使计算设备执行一个或多个任务。例如,并且如下文将更详细地描述,模块102中的一者或多者可表示被存储并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2所示的设备(例如,计算设备202、云服务206和/或客户端208)、图4中的计算系统410和/或图5中的示例性网络架构500的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
如图1所示,示例性系统100还可包括一个或多个数据库,诸如云数据存储器120。在一个实施例中,云数据存储器120可被配置为存储来自计算设备的数据,所述计算设备诸如为台式计算机、膝上型或笔记本计算机、平板计算机和/或移动设备(诸如智能电话)。
云数据存储器120可表示单个数据库或计算设备或者多个数据库或计算设备的部分。例如,云数据存储器120可表示图2中的计算设备202或云服务206的部分、图4中的计算系统410的部分和/或图5中的示例性网络架构500的部分。另选地,图1中的云数据存储器120可表示能够由计算设备访问的一个或多个在物理上单独的设备,所述计算设备诸如为图2中的计算设备202或云服务206、图4中的计算系统410和/或图5中的示例性网络架构500的部分。
图1中的示例性系统100可以多种方式来实现。例如,示例性系统100的全部或部分可表示图2中的示例性系统200的部分。如图2所示,系统200可包括计算设备202,其经由网络204与云服务206通信。在一个实施例中,计算设备202可用模块102中的一者或多者编程,且/或可存储云数据存储器120中的全部或部分数据。除此之外或另选地,云服务206可用模块102中的一者或多者编程,且/或可存储云数据存储器120中的全部或部分数据。
在一个实施方案中,来自图1的模块102中的一者或多者可在由计算设备202和/或云服务206的至少一个处理器执行时使得计算设备202和/或云服务206能够管理一个或多个客户端208与云服务206之间的数据通信。例如,并且如下文将更详细地描述,通信模块104可经由至客户端208的连接接收待传输到云服务206的数据210。缓冲模块106可接着将数据210缓冲在至少一个数据缓冲器212中。流量模块108可接着确定数据210在客户端连接的超时周期214内将不被传输到云服务206。作为响应,计量模块110可延迟从客户端连接接收额外数据216持续超时周期214的一部分。二级缓冲模块112可在超时周期214已经经过之前,将来自客户端连接的数据210缓冲在大小比数据缓冲器212小的至少一个二级数据缓冲器218中。
计算设备202和客户端208通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202和客户端208的示例包括但不限于膝上型计算机、平板计算机、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、其中一者或多者的组合、图4中的示例性计算系统410,或任何其他合适的计算设备。
云服务206通常表示能够接收、存储和传输数据的任何类型或形式的计算设备。云服务206的示例包括但不限于被配置为提供各种数据库服务且/或运行某些软件应用程序的应用程序服务器和数据库服务器。
网络204通常表示能够促进通信或数据传送的任何介质或架构。网络204的示例包括但不限于内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、图5中的示例性网络架构500等。网络204可使用无线或有线连接促进通信或数据传送。在一个实施方案中,网络204可促进计算设备202与云服务206之间的通信。
图3是用于可扩展网络缓冲器管理的示例性计算机实现的方法300的流程图。图3所示的步骤可由任何合适的计算机可执行代码和/或计算系统执行。在一些实施方案中,图3所示的步骤可由图1中的系统100、图2中的系统200、图4中的计算系统410和/或图5中的示例性网络架构500的部分的部件中的一者或多者执行。
如图3所示,在步骤302处,本文所述的系统中的一者或多者可经由至客户端的连接来接收待传输到云服务的数据。例如,通信模块104可作为图2中的计算设备202的部分经由至客户端208的连接接收待传输到云服务的数据210。
如本文使用,术语“云服务”或“云存储服务”通常是指能够向个人或组织客户端提供数据存储的在线和/或第三方托管(例如,提供存储作为服务)的任何服务、平台和/或基础设施。在一些实施例中,云计算服务可向一个或多个客户端提供数据视图而不向客户端提供对所有底层系统的完整访问。例如,云计算服务可允许消费者指定服务要求和/或资源要求而不要求且/或允许消费者控制底层硬件资源。云计算服务的示例可包括但不限于亚马逊简单存储服务、谷歌云服务、微软商务云存储以及美国电话电报公司云存储。
通信模块104可以多种方式从客户端接收待传输到云服务的数据。例如,通信模块104可建立至客户端的传输层安全性/安全套接字层(TSL/SSL)连接,使得客户端和服务器两者可验证另一者的身份并且可在传输期间对所述数据进行加密。通信模块104可另选地使用任何合适的协议来建立连接并且从客户端接收数据。
在步骤304处,本文所述的系统中的一者或多者可将所述数据缓冲在至少一个数据缓冲器中。例如,缓冲模块106可作为图2中的计算设备202的部分将数据210缓冲在至少一个数据210缓冲器中。如本文使用,术语“数据缓冲器”可指用于聚集且/或临时存储数据的任何存储缓冲器、高速缓冲存储器和/或其他数据结构或机构。
缓冲模块106可以多种方式缓冲所述数据。例如,并非向客户端连接分配单个大型缓冲器以将来自客户端的数据同步传输到云服务,缓冲模块106可向每个客户端连接分配若干较小缓冲器。随着每个缓冲器被填满,并且只要存在额外缓冲器可用于所述连接,缓冲模块106就可将控制杈返回给客户端以发送额外数据。
在步骤306处,本文所述的系统中的一者或多者可确定所述数据在客户端连接的超时周期内将不被传输到云服务。例如,流量模块108可作为图2中的计算设备202的部分确定数据210在至客户端208的连接的超时周期214内将不被传输到云服务。
流量模块108可以多种方式确定所述数据在客户端连接的超时周期内将不被传输到云服务。例如,流量模块108可使用计算系统的配置超时值作为超时周期的初始值。如果流量模块108在配置超时周期之前观测到客户端丢弃连接,则流量模块108可将超时值减小到客户端所使用的超时值。在一些实施例中,流量模块108可保持传输时间统计数据以确定客户端超时周期将在所述数据被传输到云服务之前期满的可能性。传输时间统计数据可包括平均传输时间、传输时间范围和传输时间标准偏差。
在步骤308处,本文所述的系统中的一者或多者可延迟从客户端连接接收额外数据持续超时周期的一部分。例如,计量模块110可作为图2中的计算设备202的部分延迟从至客户端208的连接接收额外数据216持续超时周期214的一部分。
计量模块110可以多种方式延迟从客户端接收额外数据。例如,在已经从客户端接收到数据并且将其存储在数据缓冲器中之后,计量模块110通过延迟向客户端通知已经接收到数据来延迟从客户端连接接收额外数据。以此方式,可在向云服务传输数据的同时减慢从客户端接收数据,其中数据接收在客户端的超时周期结束之前持续进行。重新建立连接并且使客户端尝试重新发送明显丢失的数据可为非常耗时的。计量模块110可通过控制从客户端接收数据的速率来避免对数据吞吐量的相关联影响。
在一个实施方案中,本文所述的系统可包括(1)确定所述数据在客户端连接的超时周期内将被传输到云服务并且(2)延迟从客户端连接接收额外数据,直到已经接收到对云服务已经接收到所述数据的确认。例如,作为图2中的计算设备202的部分,甚至当数据预期在客户端的超时周期内将被传输到云服务时,流量模块108仍可确定可能在客户端的超时周期期满之前未接收到来自云服务的预期确认的可能性高于阈值。为了减小丢失至客户端的连接的概率,流量模块108可指示计量模块110延迟接收额外数据,使得数据缓冲器将继续可用于从客户端接收数据,并且可将吞吐量保持处于接近恒定速率。
在步骤310处,本文所述的系统中的一者或多者可在超时周期已经经过之前,将来自客户端连接的数据缓冲在大小比数据缓冲器小的至少一个二级数据缓冲器中。例如,二级缓冲模块112可作为图2中的计算设备202的部分在超时周期214已经经过之前,将来自至客户端208的连接的数据210缓冲在至少一个二级数据缓冲器218中,所述二级数据缓冲器的大小小于数据210缓冲器。
如本文使用,术语“二级数据缓冲器”通常是指用于聚集且/或临时存储数据的任何存储缓冲器、高速缓冲存储器和/或其他数据结构或机构。二级数据缓冲器可比主要数据缓冲器小得多,并且可被大小设定为客户端数据传输的较小倍数。由于二级数据缓冲器留作备用并且期望仅在需要控制从客户端传输数据的速率时使用,所以二级数据缓冲器可仅表示总缓冲存储器的较小百分比(5%至10%)。
二级缓冲模块112可以多种方式将客户端数据缓冲在次要缓冲器中。例如,二级缓冲模块112可确定没有数据缓冲器可用于缓冲经由客户端连接所接收的数据,将来自客户端连接的数据缓冲在二级数据缓冲器中,并且延迟从客户端连接接收额外数据持续超时周期的一部分。
在一个实施方案中,二级缓冲模块112可确定向云服务传输数据已经减慢并且可能需要额外二级数据缓冲器。二级缓冲模块112可接着重新分配一个或多个数据缓冲器作为较小的二级数据缓冲器并且延迟从客户端连接接收额外数据持续某一时间间隔。通过这样做,二级缓冲模块112可在客户端的超时周期已经期满之前继续从客户端接收并且缓冲数据。
除了管理从客户端传输数据之外,本文所述的系统和方法可使用数据缓冲器和额外连接来管理向云服务传输数据。正如客户端,至云服务的连接可当在超时周期内不在所述连接上传输数据时被丢弃。在一些实施例中,本文所述的系统可至少部分地基于云连接的超时周期与用于从客户端接收待填充数据缓冲器的数据的时间的比,来确定应当保持许多至云服务的额外连接。
在一个实施方案中,本文所述的系统可包括(1)保持至云服务的一个或多个额外连接,(2)确定额外数据在云连接的超时周期内将不经由客户端连接接收,并且(3)在云连接的超时周期已经经过之前,使用至云服务的额外连接将所述数据的至少一部分传输到云服务。例如,作为图2中的计算设备202的部分,流量模块108可确定客户端208正在以比云服务206能够接收数据的速率慢得多的速率传输数据。为了防止至云服务206的连接超时,流量模块108可确定许多至云服务206的额外连接应当致力于客户端208。从客户端接收并且缓存的数据的一部分可在所述连接中的每一者上传输,这又使得至云服务的连接不会超时。
在一个实施方案中,本文所述的系统可包括(1)确定至云服务的多个连接的总带宽利用率,(2)确定带宽利用率低于阈值,并且(3)递增地增大一个或多个连接向云服务传输数据的速率。例如,作为图2中的计算设备202的部分,流量模块108可测量至云服务的每个连接的带宽利用并且计算用于所有连接的总带宽利用率的百分比。如果流量模块108确定带宽利用率低于阈值(诸如分配给至云服务的连接的最大带宽),则流量模块108可发信号通知计量模块110递增地增大用于一个或多个云服务连接的数据传输速率。通过这样做,本文所述的系统可利用尽可能多的可用带宽并且避免违反客户端节流保证。
在一个实施方案中,本文所述的系统可包括(1)确定带宽利用率高于阈值并且(2)延迟在至云服务的一个或多个连接上传输数据持续某一时间间隔。例如,作为图2中的计算设备202的部分,流量模块108可确定总带宽利用率高于阈值并且指示计量模块110延迟在至云服务的一个或多个连接上传输数据。通过这样做,本文所述的系统可防止针对在计算设备202上运行的进程拒绝除向云服务传输数据之外的服务。通过将数据传输速率的递增增大与在带宽利用已经达到阈值的情况下的传输延迟组合,可针对利用那个带宽的连接保留某个百分比的可用带宽,同时防止向其他进程拒绝服务。
在一个实施方案中,本文所述的系统可包括(1)经由至云服务的连接来接收待传输到客户端的数据,(2)将所述数据缓冲在至少一个数据缓冲器中,(3)确定所述数据在云服务连接的超时周期内将不被传输到客户端,(4)延迟从云服务连接接收额外数据持续云服务连接超时周期的一部分,以及(5)在云服务连接超时周期已经经过之前,将来自云服务连接的数据缓冲在一个或多个二级数据缓冲器中。例如,作为图2中的计算装置202的部分,(1)通信模块104可经由至云服务的连接来接收待传输到客户端的数据,(2)缓冲模块106可将所述数据缓冲在至少一个数据缓冲器中,(3)流量模块108可确定所述数据在云服务连接的超时周期内将不被传输到客户端,(4)计量模块110可延迟从云服务连接接收额外数据持续云服务连接超时周期的一部分,并且(5)二级缓冲模块112可在云服务连接超时周期已经经过之前,将来自云服务连接的数据缓冲在至少一个二级数据缓冲器中。
本文所述的系统可使用在许多方面镜射备份过程但在数据缓冲器和二级数据缓冲器的使用方面具有一些差异的方法将来自云服务的数据恢复到客户端。当从云恢复数据时,缓冲模块106可将较大百分比的缓冲存储器分配给二级数据缓冲器。例如,缓冲存储器的70至80%可被分配用于数据缓冲器,剩余存储器被分配用于二级数据缓冲器。当可用的数据缓冲器已被填满时,二级缓冲模块112开始用从云服务接收的数据填充二级数据缓冲器,其中在对云服务的数据读取请求之间延迟云超时的20%至30%。通过这样做,本文所述的系统可防止至云服务的连接超时,从而产生数据吞吐量丢失。
如上所述,本文所述的系统和方法可管理大量备份客户端与云存储服务之间的数据通信。本文所述的系统和方法可通过管理数据缓冲器以防止与备份客户端或云服务的连接丢失来优化带宽利用并且提供较大整体数据吞吐量。通过管理可用带宽作为可用于所有连接的带宽池,本文所述的系统和方法可递增地增大带宽利用,同时防止对在缓冲器管理计算设备上运行的其他进程拒绝服务。
图4是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算系统410的框图。例如,计算系统410的全部或部分可单独地或与其他元件组合地执行且/或作为一种装置用于执行本文所述的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。计算系统410的全部或部分还可执行且/或作为一种装置用于执行本文所描述且/或示出的任何其他步骤、方法或过程。
计算系统410在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统410的示例包括但不限于工作站、膝上型计算机、客户端侧终端、服务器、分布式计算系统、手持式设备或任何其他计算系统或设备。在其最基本的配置下,计算系统410可包括至少一个处理器414和系统存储器416。
处理器414通常表示能够处理数据或解译并执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器414可接收来自软件应用程序或模块的指令。这些指令可致使处理器414执行本文所描述且/或示出的一个或多个示例性实施方案的功能。
系统存储器416通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器416的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施方案中,计算系统410可包括易失性存储器单元(诸如系统存储器416)和非易失性存储设备(诸如主存储设备432,如下文详细描述)两者。在一个实施例中,来自图1的模块102中的一者或多者可被加载到系统存储器416中。
在某些实施方案中,除处理器414和系统存储器416之外,示例性计算系统410还可包括一个或多个部件或元件。例如,如图4所示,计算系统410可包括存储器控制器418、输入/输出(I/O)控制器420和通信接口422,其每一者可经由通信基础结构412互连。通信基础结构412通常表示能够促进计算设备的一个或多个部件之间的通信的任何类型或形式的基础结构。通信基础结构412的示例包括但不限于通信总线(诸如工业标准架构(ISA)、外围部件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器418通常表示能够处理存储器或数据或者控制计算系统410的一个或多个部件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器418可经由通信基础结构412控制处理器414、系统存储器416和I/O控制器420之间的通信。
I/O控制器420通常表示能够协调且/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器420可控制或促进计算系统410的一个或多个元件之间的数据传送,所述元件诸如为处理器414、系统存储器416、通信接口422、显示适配器426、输入接口430和存储接口434。
通信接口422在广义上表示能够促进示例性计算系统410与一个或多个额外设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口422可促进计算系统410与包括额外计算系统的专用或公共网络之间的通信。通信接口422的示例包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器以及任何其他合适的接口。在至少一个实施方案中,通信接口422可经由到网络(诸如互联网)的直接链路来提供到远程服务器的直接连接。通信接口422还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施方案中,通信接口422还可表示主机适配器,所述主机适配器被配置为经由外部总线或通信信道来促进计算系统410与一个或多个额外网络或存储设备之间的通信。主机适配器的示例包括但不限于小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤信道接口适配器、以太网适配器等。通信接口422还可允许计算系统410参与分布式或远程计算。例如,通信接口422可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图4所示,计算系统410还可包括至少一个显示设备424,所述显示设备经由显示适配器426耦接到通信基础结构412。显示设备424通常表示能够在视觉上显示由显示适配器426转发的信息的任何类型或形式的设备。类似地,显示适配器426通常表示被配置为转发来自通信基础结构412(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以供在显示设备424上显示的任何类型或形式的设备。
如图4所示,示例性计算系统410还可包括经由输入接口430耦接到通信基础结构412的至少一个输入设备428。输入设备428通常表示能够向示例性计算系统410提供输入(由计算机或人类生成)的任何类型或形式的输入设备。输入设备428的示例包括但不限于键盘、指向设备、语音识别设备或任何其他输入设备。
如图4所示,示例性计算系统410还可包括主存储设备432和经由存储接口434耦接到通信基础结构412的备用存储设备433。存储设备432和433通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备432和433可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口434通常表示用于在存储设备432和433与计算系统410的其他部件之间传送数据的任何类型或形式的接口或设备。在一个实施例中,来自图1的云数据存储器120可存储在主存储设备432中。
在某些实施方案中,存储设备432和433可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备432和433还可包括用于允许将计算机软件、数据或其他计算机可读指令加载到计算系统410中的其他类似结构或设备。例如,存储设备432和433可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备432和433还可为计算系统410的一部分,或者可为通过其他接口系统访问的独立设备。
可将许多其他设备或子系统连接到计算系统410。相反,不需要存在图4所示的所有部件和设备来实践本文所描述且/或示出的实施方案。上文提及的设备和子系统也可通过不同于图4所示的方式互连。计算系统410也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个可被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)、BLU-RAY磁盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
可将包含计算机程序的计算机可读介质加载到计算系统410中。然后可将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器416中和/或存储设备432和433的各个部分中。当由处理器414执行时,加载到计算系统410中的计算机程序可致使处理器414执行和/或作为一种装置用于执行本文所描述和/或示出的示例性实施方案中的一者或多者的功能。除此之外或作为另外一种选择,可以固件和/或硬件实施本文描述和/或示出的示例性实施方案中的一个或多个。例如,计算系统410可被配置为适于实现本文所公开的示例性实施方案中的一者或多者的专用集成电路(ASIC)。
图5是示例性网络架构500的框图,其中客户端系统510、520和530以及服务器540和545可耦接到网络550。如上文所详述,网络架构500的全部或部分可单独地或与其他元件组合地执行且/或作为一种装置用于执行本文所公开的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。网络架构500的全部或部分还可用于执行且/或作为一种装置用于执行本公开中阐述的其他步骤和特征。
客户端系统510、520和530通常表示任何类型或形式的计算设备或系统,诸如图4中的示例性计算系统410。类似地,服务器540和545通常表示被配置为提供各种数据库服务且/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络550通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或互联网。在一个实施例中,客户端系统510、520和/或530和/或服务器540和/或545可包括图1的系统100的全部或部分。
如图5所示,可将一个或多个存储设备560(1)-(N)直接附接到服务器540。类似地,可将一个或多个存储设备570(1)-(N)直接附接到服务器545。存储设备560(1)-(N)和存储设备570(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备560(1)-(N)和存储设备570(1)-(N)可表示被配置为使用各种协议与服务器540和545通信的网络附接存储(NAS)设备,所述协议诸如为网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS)。
服务器540和545还可连接到存储区域网络(SAN)结构580。SAN结构580通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或架构。SAN结构580可促进服务器540和545与多个存储设备590(1)-(N)和/或智能存储阵列595之间的通信。SAN结构580还可经由网络550以及服务器540和545以如下方式促进客户端系统510、520和530与存储设备590(1)-(N)和/或智能存储阵列595之间的通信:设备590(1)-(N)和阵列595呈现为客户端系统510、520和530的本地附接设备。跟存储设备560(1)-(N)和存储设备570(1)-(N)一样,存储设备590(1)-(N)和智能存储阵列595通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方案中,并且参考图4的示例性计算系统410,通信接口(诸如图4中的通信接口422)可用于提供每个客户端系统510、520和530与网络550之间的连接性。客户端系统510、520和530能够使用例如网页浏览器或其他客户端软件来访问服务器540或545上的信息。此类软件可允许客户端系统510、520和530访问由服务器540、服务器545、存储设备560(1)-(N)、存储设备570(1)-(N)、存储设备590(1)-(N)或智能存储阵列595托管的数据。虽然图5描绘了使用网络(诸如互联网)来交换数据,但本文所描述和/或示出的实施方案并非限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,本文所公开的一个或多个示例性实施方案中的全部或部分可被编码为计算机程序并且加载到服务器540、服务器545、存储设备560(1)-(N)、存储设备570(1)-(N)、存储设备590(1)-(N)、智能存储阵列595或其任何组合上并加以执行。本文所公开的一个或多个示例性实施方案中的全部或部分还可被编码为计算机程序,存储在服务器540中,由服务器545运行,并且通过网络550分配到客户端系统510、520和530。
如上文所详述,计算系统410和/或网络架构500的一个或多个部件可单独地或与其他元件组合地执行且/或作为一种装置用于执行用于可扩展网络缓冲器管理的示例性方法的一个或多个步骤。
虽然上述公开使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或它们的任意组合)配置单独和/或共同地实施。此外,包含在其他组件内的组件的任何公开应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同的功能。
在一些实施例中,图1中的示例性系统100的全部或部分可表示基于云计算或网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或部分可促进基于云的计算环境内的多重租赁。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述的功能中的一种或多种的多租户应用。例如,本文所述的软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或部分可在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常是指由虚拟机管理器(例如,超级管理程序)从计算硬件中提取出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常是指覆盖操作系统环境和/或从操作系统环境中提取出来的任何数据层和/或应用程序层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,该软件虚拟化解决方案将虚拟化层呈现为如同它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些实施例中,图1中的示例性系统100的全部或部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实施,所述移动计算设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些实施例中,移动计算环境可具有一个或多个显著特征,包括例如依赖电池供电、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速计等提供的)位置和移动数据、用于限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、用于限制应用程序的安装(例如,仅限于安装来源于经批准的应用程序商店的应用程序)的控制设备,等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
另外,图1中的示例性系统100的全部或部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,消费由一个或多个信息管理系统产生的数据,且/或产生被一个或多个信息管理系统消费的数据。如本文所用,术语“信息管理”可以是指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。
在一些实施方案中,图1中的示例性系统100的全部或部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据,且/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可以是指对受保护数据的访问控制。信息安全系统的示例可包括但不限于提供受管理的安全服务的系统、数据丢失防护系统、身份验证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等。
根据一些实施例,图1中的示例性系统100的全部或部分可表示一个或多个端点安全系统的部分,与一个或多个端点安全系统通信,且/或从一个或多个端点安全系统接收保护。如本文所用,术语“端点安全”可以是指保护端点系统以避免未授权和/或非法的使用、访问和/或控制。端点保护系统的示例可包括但不限于反恶意软件系统、用户验证系统、加密系统、保密系统、垃圾邮件过滤服务等。
本文描述和/或示出的过程参数和步骤序列仅以举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必以示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外的步骤。
虽然本文已经在全功能计算系统的背景中描述和/或示出了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不考虑用于实际开展分配的计算机可读介质的特定类型。本文所公开的实施方案还可使用执行某些任务的软件模块来实施。这些软件模块可包括脚本文件、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个。
此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所陈述的模块中的一者或多者可接收待转换的数据,转换所述数据,输出转换的结果以将所述数据传输到云存储服务或从云存储服务传输所述数据,使用转换的结果来管理所述数据的传输,并且存储转换的结果以管理将数据传输到云存储服务或从云存储服务传输数据。除此之外或作为另外一种选择,本文所述的模块中的一个或多个可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
前文的描述旨在使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各个方面。该示例性描述并非旨在是详尽的或限于所公开的任何确切形式。在不脱离本公开的精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应参考所附权利要求及其等同形式来确定本公开的范围。
除非另有说明,否则本说明书和权利要求中所用的术语“连接到”和“联接到”(以及它们的衍生形式)应被理解为既允许直接的连接,又允许间接(即,经由其他元件或组件)的连接。此外,本说明书和权利要求中所用的术语“一”或“一个”应被理解为意指“至少一个...”。最后,为了便于使用,本说明书和权利要求中所用的术语“包括”和“具有”(以及它们的衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。
Claims (20)
1.一种用于可扩展网络缓冲器管理的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备执行,所述方法包括:
经由至客户端的连接来接收待传输到云服务的数据;
将所述数据缓冲在至少一个数据缓冲器中;
确定所述数据在所述客户端连接的超时周期内将不被传输到所述云服务;
延迟从所述客户端连接接收额外数据持续所述超时周期的一部分;
在所述超时周期已经经过之前,将来自所述客户端连接的数据缓冲在至少一个二级数据缓冲器中,其中所述二级数据缓冲器的大小小于所述数据缓冲器。
2.根据权利要求1所述的计算机实现的方法,其中延迟从所述客户端连接接收额外数据包括延迟向所述客户端通知所述数据已被接收。
3.根据权利要求1所述的计算机实现的方法:
还包括确定没有数据缓冲器可用于缓冲经由所述客户端连接所接收的所述数据;
其中延迟从所述客户端连接接收额外数据包括:
将来自所述客户端连接的所述数据缓冲在所述二级数据缓冲器中;
延迟从所述客户端连接接收额外数据持续所述超时周期的一部分。
4.根据权利要求1所述的计算机实现的方法,还包括:
确定所述数据在所述客户端连接的所述超时周期内将被传输到所述云服务;
延迟从所述客户端连接接收额外数据,直到已经接收到对所述云服务已经接收到所述数据的确认。
5.根据权利要求1所述的计算机实现的方法,还包括:
经由至所述云服务的连接来接收待传输到所述客户端的数据;
将所述数据缓冲在至少一个数据缓冲器中;
确定所述数据在所述云服务连接的超时周期内将不被传输到所述客户端;
延迟从所述云服务连接接收额外数据持续所述云服务连接超时周期的一部分;
在所述云服务连接超时周期已经经过之前,将来自所述云服务连接的数据缓冲在至少一个二级数据缓冲器中。
6.根据权利要求1所述的计算机实现的方法,还包括:
保持至所述云服务的至少一个额外连接;
确定所述额外数据在所述云连接的超时周期内将不经由所述客户端连接接收;
在所述云连接的所述超时周期已经经过之前,使用至所述云服务的所述额外连接将所述数据的至少一部分传输到所述云服务。
7.根据权利要求6所述的计算机实现的方法,还包括至少部分地基于所述云连接的所述超时周期与用于从所述客户端接收待填充数据缓冲器的数据的时间的比,来确定要保持的至所述云服务的多个额外连接。
8.根据权利要求1所述的计算机实现的方法,还包括:
确定至所述云服务的多个连接的总带宽利用率;
确定所述带宽利用率低于阈值;
递增地增大至少一个连接将数据传输到所述云服务的速率。
9.根据权利要求8所述的计算机实现的方法,还包括:
确定所述带宽利用率高于所述阈值;
延迟在至所述云服务的至少一个连接上传输数据持续某一时间间隔。
10.根据权利要求9所述的计算机实现的方法,还包括:
重新分配至少一个数据缓冲器作为至少一个较小的二级数据缓冲器;
延迟从所述客户端连接接收额外数据持续某一时间间隔。
11.根据权利要求1所述的计算机实现的方法,还包括:
从所述云服务接收针对数据传输的重试通知,所述重试通知指示应当减小向所述云服务传输数据的速率;
确定在使用中的二级数据缓冲器的数量高于阈值;
延迟重试所述数据传输持续某一时间间隔。
12.一种用于可扩展网络缓冲器管理的系统,所述系统包括:
存储在存储器中的通信模块,所述通信模块经由至客户端的连接来接收待传输到云服务的数据;
存储在存储器中的缓冲模块,所述缓冲模块将所述数据缓冲在至少一个数据缓冲器中;
存储在存储器中的流量模块,所述流量模块确定所述数据在所述客户端连接的超时周期内将不被传输到所述云服务;
存储在存储器中的计量模块,所述计量模块延迟从所述客户端连接接收额外数据持续所述超时周期的一部分;
存储在存储器中的二级缓冲模块,所述二级缓冲模块在所述超时周期已经经过之前,将来自所述客户端连接的数据缓冲在至少一个二级数据缓冲器中,其中所述二级数据缓冲器的大小小于所述数据缓冲器;
至少一个物理处理器,所述至少一个物理处理器被配置为执行所述通信模块、所述缓冲模块、所述流量模块、所述计量模块和所述二级缓冲模块。
13.根据权利要求12所述的系统,其中所述计量模块通过延迟向所述客户端通知所述数据已被接收,来延迟从所述客户端连接接收额外数据。
14.根据权利要求12所述的系统,其中:
所述流量模块确定没有数据缓冲器可用于缓冲经由所述客户端连接所接收的所述数据;
所述计量模块通过以下方式来延迟从所述客户端连接接收额外数据:
将来自所述客户端连接的所述数据缓冲在所述二级数据缓冲器中;
延迟从所述客户端连接接收额外数据持续所述超时周期的一部分。
15.根据权利要求12所述的系统,其中:
所述流量模块确定所述数据在所述客户端连接的所述超时周期内将被传输到所述云服务;
所述计量模块延迟从所述客户端连接接收额外数据,直到已经接收到对所述云服务已经接收到所述数据的确认。
16.根据权利要求12所述的系统,其中:
所述通信模块经由至所述云服务的连接来接收待传输到所述客户端的数据;
所述缓冲模块将所述数据缓冲在至少一个数据缓冲器中;
所述流量模块确定所述数据在所述云服务连接的超时周期内将不被传输到所述客户端;
所述计量模块延迟从所述云服务连接接收额外数据持续所述云服务连接超时周期的一部分;
所述二级缓冲模块在所述云服务连接超时周期已经经过之前,将来自所述云服务连接的数据缓冲在至少一个二级数据缓冲器中。
17.根据权利要求12所述的系统,其中:
所述通信模块保持至所述云服务的至少一个额外连接;
所述流量模块确定所述额外数据在所述云连接的超时周期内将不经由所述客户端连接接收;
所述计量模块在所述云连接的所述超时周期已经经过之前,使用至所述云服务的所述额外连接将所述数据的至少一部分传输到所述云服务。
18.根据权利要求17所述的系统,其中所述流量模块至少部分地基于所述云连接的所述超时周期与用于从所述客户端接收待填充数据缓冲器的数据的时间的比,来确定要保持的至所述云服务的多个额外连接。
19.根据权利要求12所述的系统,其中:
所述流量模块:
确定至所述云服务的多个连接的总带宽利用率;
确定所述带宽利用率低于阈值;
所述计量模块递增地增大至少一个连接将数据传输到所述云服务的速率。
20.一种非暂态计算机可读介质,包括一个或多个计算机可读指令,所述计算机可读指令当由计算设备的至少一个处理器执行时,使得所述计算设备:
经由至客户端的连接来接收待传输到云服务的数据;
将所述数据缓冲在至少一个数据缓冲器中;
确定所述数据在所述客户端连接的超时周期内将不被传输到所述云服务;
延迟从所述客户端连接接收额外数据持续所述超时周期的一部分;
在所述超时周期已经经过之前,将来自所述客户端连接的数据缓冲在至少一个二级数据缓冲器中,其中所述二级数据缓冲器的大小小于所述数据缓冲器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2560MU2015 | 2015-07-03 | ||
IN2560/MUM/2015 | 2015-07-03 | ||
US14/833590 | 2015-08-24 | ||
US14/833,590 US9998394B2 (en) | 2015-07-03 | 2015-08-24 | Systems and methods for scalable network buffer management |
PCT/US2016/040856 WO2017007731A1 (en) | 2015-07-03 | 2016-07-01 | Systems and methods for scalable network buffer management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107852370A true CN107852370A (zh) | 2018-03-27 |
CN107852370B CN107852370B (zh) | 2021-01-05 |
Family
ID=57684321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680039375.6A Active CN107852370B (zh) | 2015-07-03 | 2016-07-01 | 用于可扩展网络缓冲器管理的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9998394B2 (zh) |
EP (1) | EP3318025B1 (zh) |
JP (1) | JP6507274B2 (zh) |
CN (1) | CN107852370B (zh) |
WO (1) | WO2017007731A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11750706B1 (en) * | 2020-03-26 | 2023-09-05 | Amazon Technologies, Inc. | Data transmission time management |
US11924086B2 (en) * | 2022-05-18 | 2024-03-05 | Oracle International Corporation | Load-based management for NVME over TCP connections |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820129B1 (en) * | 2000-09-22 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method of managing network buffers |
US20050052994A1 (en) * | 2003-09-04 | 2005-03-10 | Hewlett-Packard Development Company, L.P. | Method to regulate traffic congestion in a network |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6501733B1 (en) * | 1999-10-01 | 2002-12-31 | Lucent Technologies Inc. | Method for controlling data flow associated with a communications node |
JP4311636B2 (ja) * | 2003-10-23 | 2009-08-12 | 株式会社日立製作所 | 記憶装置を複数の計算機で共用する計算機システム |
US8793394B2 (en) * | 2003-12-03 | 2014-07-29 | Nec Corporation | Session relaying apparatus, session relay method, and session relay program |
US8379515B1 (en) * | 2007-02-01 | 2013-02-19 | F5 Networks, Inc. | TCP throughput control by imposing temporal delay |
JP5146032B2 (ja) * | 2008-03-17 | 2013-02-20 | 富士通株式会社 | 入出力制御方法、制御装置及びプログラム |
US8627123B2 (en) * | 2010-03-25 | 2014-01-07 | Microsoft Corporation | Managing power provisioning in distributed computing |
US8589019B2 (en) * | 2011-05-13 | 2013-11-19 | Qualcomm Incorporated | Systems and methods for vehicle monitoring with processing interruption tolerance |
WO2011157156A2 (zh) * | 2011-06-01 | 2011-12-22 | 华为技术有限公司 | 数据存储系统的操作方法和装置 |
US9342369B2 (en) * | 2013-01-07 | 2016-05-17 | Wal-Mart Stores, Inc. | System and method for increasing throughput of a PaaS system |
US20140330888A1 (en) | 2013-05-03 | 2014-11-06 | Nvidia Corporation | Dynamically modifying a frame rate of data transmission associated with an application executing on a data server on behalf of a client device to the client device |
US10282236B2 (en) * | 2015-04-21 | 2019-05-07 | International Business Machines Corporation | Dynamic load balancing for data allocation to servers |
-
2015
- 2015-08-24 US US14/833,590 patent/US9998394B2/en active Active
-
2016
- 2016-07-01 CN CN201680039375.6A patent/CN107852370B/zh active Active
- 2016-07-01 JP JP2017568320A patent/JP6507274B2/ja active Active
- 2016-07-01 EP EP16742494.4A patent/EP3318025B1/en active Active
- 2016-07-01 WO PCT/US2016/040856 patent/WO2017007731A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820129B1 (en) * | 2000-09-22 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method of managing network buffers |
US20050052994A1 (en) * | 2003-09-04 | 2005-03-10 | Hewlett-Packard Development Company, L.P. | Method to regulate traffic congestion in a network |
Also Published As
Publication number | Publication date |
---|---|
WO2017007731A1 (en) | 2017-01-12 |
JP6507274B2 (ja) | 2019-04-24 |
CN107852370B (zh) | 2021-01-05 |
US20170005944A1 (en) | 2017-01-05 |
US9998394B2 (en) | 2018-06-12 |
EP3318025B1 (en) | 2020-11-11 |
JP2018533854A (ja) | 2018-11-15 |
EP3318025A1 (en) | 2018-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735509B2 (en) | Systems and methods for synchronizing microservice data stores | |
US9477517B2 (en) | Service broker systems, methods, and apparatus | |
US10182048B1 (en) | Systems and methods for automatically populating one-time-password input fields | |
US20190235979A1 (en) | Systems and methods for performing computing cluster node switchover | |
US9626120B1 (en) | Systems and methods for dynamically adjusting batch request sizes | |
US11361320B2 (en) | Fraud detection and control in multi-tiered centralized processing | |
CN108604239B (zh) | 用于有效分类数据对象的系统和方法 | |
US9548971B2 (en) | Systems and methods for smart cipher selection | |
CN108027757A (zh) | 用于从不透明数据备份流恢复数据的系统和方法 | |
CN105453039B (zh) | 用于在高输入/输出负载环境中即时恢复虚拟机的系统和方法 | |
US11080385B1 (en) | Systems and methods for enabling multi-factor authentication for seamless website logins | |
US11449637B1 (en) | Systems and methods for providing web tracking transparency to protect user data privacy | |
US9823857B1 (en) | Systems and methods for end-to-end quality of service control in distributed systems | |
US10033732B1 (en) | Systems and methods for detecting cloning of security tokens | |
JP6677803B2 (ja) | 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法 | |
CN107852370A (zh) | 用于可扩展网络缓冲器管理的系统和方法 | |
US11361100B1 (en) | Systems and methods for detecting potentially malicious content in decentralized machine-learning model updates | |
US11461462B1 (en) | Systems and methods for producing adjustments to malware-detecting services | |
US11436372B1 (en) | Systems and methods for protecting user privacy | |
US11314883B2 (en) | Systems and methods of providing access to secure data | |
US11102175B1 (en) | Systems and methods for categorizing web applications based on age restrictions in online content policies | |
US10616214B1 (en) | Systems and methods for preventing loss of possession factors | |
US10592160B1 (en) | Systems and methods for monitoring data synchronization progress in a multi-hop data recovery system | |
US10200499B1 (en) | Systems and methods for reducing network traffic by using delta transfers | |
US11475171B2 (en) | Authentication using pairwise secrets constructed from partial secrets |
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 |