在网络基础设施中提供高速缓存服务的方法和装置制造方法

文档序号:7985280阅读:167来源:国知局
在网络基础设施中提供高速缓存服务的方法和装置制造方法
【专利摘要】本发明的各实施方式涉及在网络基础设施中提供高速缓存服务的方法和装置。在本发明的一个实施方式中,提供了一种用于在网络基础设施中提供高速缓存服务的方法,包括:响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中;响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符;以及响应于标识符指示存储节点中的数据有效,返回副本;其中至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。在本发明的另一实施方式中,提供了一种用于在网络基础设施中提供高速缓存服务的装置。
【专利说明】在网络基础设施中提供高速缓存服务的方法和装置
【技术领域】
[0001]本发明的各实施方式涉及高速缓存,更具体地,涉及用于在网络基础设施中提供高速缓存服务的方法和装置。
【背景技术】
[0002]网络技术的发展为人们的工作和生活提供了诸多便利,并且越来越多的应用涉及经由网络来进行数据访问。经由网络进行的数据访问的响应速度成为影响用户体验的一项关键因素。如何通过网络基础设施提供更快并且更加稳定的数据传输服务一直是网络技术的研究重点。
[0003]高速缓存技术已经被用于提高网络的访问速度,然而目前的各种技术方案需要针对特定的网络应用单独开发、或者专门开发或者部署专用硬件和软件产品,以用于缓存先前经由网络获得的数据。然而这些开发和部署工作的可重用性较差,并且会造成大量的人力和物力负担。

【发明内容】

[0004]因而,期望能够开发并实现一种在网络基础设施中提供高速缓存服务的技术方案。期望该技术方案能够在尽量不改变现有网络基础设施的结构的基础上与现有的网络应用相兼容,并且还期望该技术方案能够具有可扩展性,即,可以随着网络基础设施的建设而逐渐完善。为此,本发明的各个实施方式提供了一种于用于在网络基础设施中提供高速缓存服务的方法和装置。
[0005]在本发明的一个实施方式中,提供了一种用于在网络基础设施中提供高速缓存服务的方法,包括:响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中;响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符;以及响应于标识符指示存储节点中的数据有效,返回副本;其中至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。
[0006]在本发明的一个实施方式中,至少一个应用节点中的每一个和存储节点经由网络基础设施中的交换机连接。
[0007]在本发明的一个实施方式中,交换机是与至少一个应用节点直接连接的交换机。
[0008]在本发明的一个实施方式中,提供了一种用于在网络基础设施中提供高速缓存服务的装置,包括:缓存模块,配置用于响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中;获取模块,配置用于响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符;以及返回模块,配置用于响应于标识符指示存储节点中的数据有效,返回副本;其中至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。
[0009]在本发明的一个实施方式中,至少一个应用节点中的每一个和存储节点经由网络基础设施中的交换机连接。
[0010]在本发明的一个实施方式中,交换机是与至少一个应用节点直接连接的交换机。
[0011]根据本发明的各实施方式所提供的高速缓存服务可以在网络基础设施中实现,并且该实现对于用户而言是透明的。网络应用仅需要如同往常一样通过网络进行数据访问,即可获得较快的数据访问速度。
【专利附图】

【附图说明】
[0012]结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
[0013]图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
[0014]图2示意性示出了网络环境的框图;
[0015]图3示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的架构图;
[0016]图4示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的方法的流程图;
[0017]图5示意性示出了根据本发明一个实施方式的基于网络基础设施提供的高速缓存服务来进行数据访问的过程的框图;
[0018]图6示意性示出了根据本发明一个实施方式时所传输的数据包的框图;以及
[0019]图7示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的装置的框图。
【具体实施方式】
[0020]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0021]图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU IOU RAM102,ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
[0022]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0023]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0024]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0025]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0026]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0027]下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0028]也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0029]也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0030]图2示意性示出了网络环境的框图200。概括而言,网络环境200中可以包括两种类型的节点:存储节点210和应用节点(例如可以包括应用节点I 220和应用节点2 222等)。在此,存储节点210表示数据存储库或者典型的块/文件存储系统,该存储节点210例如可以向各种网络应用提供数据。在本发明的上下文中,可以认为存储节点是数据提供者。尽管在图2中仅示出了一个存储节点210,在实际网络环境中还可以包括多个存储节点。应用节点通常是指网络应用运行于其上的服务器,应用节点用于针对数据执行计算。在本发明的上下文中,可以认为应用节点是数据消费者。
[0031]存储节点210和应用节点(例如,220和222)通过网络基础架构230连接。虚线框230示出了其中包括多个交换机的网络基础架构,尽管图中仅示出了交换机232和234,在该网络基础架构230中还可以包括其他交换机。
[0032]为了加快数据访问的速度,目前已经提出了可以针对特定网络应用设计并开发高速缓存方案。然而此方案的缺陷在于,必须针对期望使用高速缓存功能的每个网络应用单独进行设计和开发,例如应用节点I 220上运行有10个网络应用,则需要分别开发10套独立的高速缓存方案。
[0033]另一种方法是使用内容分发网络(Content Delivery Network, Q)N),其基本思路是尽可能避开网络中有可能影响数据传输速度和稳定性的瓶颈,并提供更快且更稳定的内容传输。通过单独部署支持CDN的服务器,来在现有的网络基础架构之上形成一层虚拟网络,CDN能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息,将用户的请求重新定向至适当的服务器。尽管CDN能够在一定程度上提高数据访问效率,然而CDN运营商需要投入大量的人力和物力来部署内容分发网络中的各个设备。
[0034]针对上述解决方案中的问题,本发明的各个实施方式提出了一种用于在网络基础设施中提供高速缓存服务的技术方案。图3示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的架构图300。
[0035]具体地,可以将高速缓存服务器338耦合至与应用节点(例如,320或322)相连接的交换机(例如,与各应用节点直接连接的交换机334)。在本发明的各实施方式中,可以将与应用节点直接连接的交换机简称为边缘交换机。由于边缘交换机与应用节点仅有“I跳”的距离,因而如果能将“热”数据(即,最近频繁被访问的数据)直接缓存在边缘交换机处,则可以大大提高数据访问的效率。
[0036]然而,通常由于交换机的存储容量较为有限,在难以将“热”数据存储在边缘交换机中的情况下,可以将高速缓存服务器耦合至边缘交换机,并利用该高速缓存服务器来存储“热”数据,以此实现提高数据访问效率的目的。应当注意,尽管在本发明的上下文中使用了术语“耦合”,然而“耦合”并不排除直接将边缘交换机中的存储空间用作高速缓存的情况。
[0037]另外,将高速缓存控制器336连接至边缘交换机334,用于在提供高速缓存服务期间控制边缘交换机334和高速缓存服务器338的动作。高速缓存控制器336可以用于对边缘交换机334(尽管在图3中仅示出了一个边缘交换机334,然而可以存在多个边缘交换机)进行配置、监视和管理,以便当所请求数据通过交换机时,高速缓存控制器336可以基于规则进行控制。因而,高速缓存服务器338可以在本地缓存先前被请求的数据,并且当相同或者不同的应用节点再次请求相同的数据时,可以直接将高速缓存服务器338中缓存的副本发送至应用节点。
[0038]应当注意,本发明提出了一种在网络基础设施中提供高速缓存服务的技术方案。该方案基于对现有网络基础设施的扩展而提供了高速缓存服务,而并不需要如现有的CDN那样设置一套单独的网络架构。采用本发明的方法和装置,可以在网络基础架构中实现“高速缓存即服务(caching as a service) ”的技术方案,并且可以将提供高速缓存服务这一公共功能的服务移至网络基础架构中,进而简化网络应用的业务逻辑。
[0039]另外,本发明的实施方式可以随着网络基础架构或者应用节点的变化而扩展。例如,当其他应用节点连接至如图3所示的网络基础架构时,可以向与该应用节点直接连接的边缘交换机耦合新的高速缓存服务器,利用高速缓存控制器326来控制该边缘交换机和高速缓存服务器。以此方式,可以逐步扩展网络基础架构330,以便在网络基础架构330中向各个应用节点提供高速缓存服务。
[0040]在本发明的一个实施方式中,提供了一种用于在网络基础设施中提供高速缓存服务的方法,包括:响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中;响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符;以及响应于标识符指示存储节点中的数据有效,返回副本;其中至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。
[0041]图4示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的方法的流程图400。首先,在步骤S402中,响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中。此步骤可以表示应用节点中的应用程序启动后请求访问存储节点中数据的过程。
[0042]以图3为示例,例如应用节点I 320通过网络基础架构330来访问存储节点310中的数据。此时,来自应用节点I 320的访问请求首先被路由至交换机334 (在此实施方式中,交换机334是与高速缓存服务器330相耦合、并且受到高速缓存控制器336控制的交换机),接着访问请求经由交换机332被路由至存储节点310。存储节点310响应于访问请求而向交换机334返回数据。此时,交换机334并不仅将所请求的数据返回应用节点I 320,而是还在高速缓存服务器338 (或者直接在交换机334)中存储所请求数据的副本。
[0043]存储数据副本的目的在于,当应用节点I 320 (或者其他应用节点,例如应用节点2 322)再次请求相同的数据时,可以从高速缓存服务器338直接返回数据,而不必经过交换机334和存储节点310之间的一系列网络设备。以此方式,通过对网络基础架构330的较小改造即可在网络基础架构330中提供高速缓存服务。另外,在高速缓存服务器338和各应用节点(例如,320和322)之间的距离仅为“2跳”。采用本发明的各实施方式,在缩短数据传输路径的同时还降低了传输期间出现的错误和重传的可能性,因而可以大大加快对于数据访问请求的响应速度,进而提供高效的高速缓存服务。
[0044]在步骤404中,响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符。此步骤的目的在于确定高速缓存服务器中的副本是否仍然有效。如果存储节点中的数据已经被更新,则在高速缓存服务器中存储的副本变为无效数据,不能用于响应于此中的数据访问请求;否则,高速缓存服务器中的副本仍然是有效的。
[0045]在步骤S406中,响应于标识符指示存储节点中的数据有效,返回副本。在此步骤中,直接从高速缓存服务器向应用节点返回所请求数据的副本。应当注意,在步骤S404中请求数据访问的应用节点可以与在步骤S402中请求数据访问的应用节点相同或者不同。本发明并不关注由哪个应用节点请求数据,而是关注于先前是否有节点已经请求过特定数据,并且该特定数据在存储节点中是否已经被更新。
[0046]在步骤S402-S406所述的实施方式中,至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。网络基础架构为应用节点和存储节点之间的数据通信提供了物理支持,而高速缓存服务器耦合至网络基础架构中的交换机,并且可以作为网络基础架构的一部分。
[0047]以此方式,基于本发明的各实施方式,网络基础架构本身可以提供高速缓存服务。应用节点的提供者不必再针对应用节点上运行的每个应用程序单独进行硬件和软件的配置,也不必额外购买CDN提供者的服务。通过将高速缓存服务整合到网络基础架构,可以大大降低网络服务提供者在支持高速缓存方面的投入的人力和物力。
[0048]在本发明的一个实施方式中,至少一个应用节点中的每一个和存储节点经由网络基础设施中的交换机连接。应当注意,该交换机是至少一个应用节点中的每一个和存储节点之间的通信路径中的交换机。当交换机位于存储节点和应用节点之间的通信路径上时,可以将存储节点中的数据的副本传输到耦合至交换机的高速缓存服务器之中,用于在后续的数据访问期间使用。
[0049]在本发明的一个实施方式中,交换机是与至少一个应用节点直接连接的交换机。应当注意,为了减小高速缓存服务器与至少一个应用节点之间的“跳”数,可以选择将高速缓存服务器耦合至与应用节点直接连接的交换机。此时,高速缓存服务器与应用节点之间的“跳”数为2,因而可以保证数据响应时间尽可能地短。
[0050]在本发明的一个实施方式中,进一步包括:响应于标识符指示存储节点中的数据无效,返回存储节点中的已更新数据;以及将已更新数据的副本缓存在高速缓存服务器中。在此实施方式中,如果存储节点中的数据已经被更新,则高速缓存服务器中的副本变为无效,需要经由通信路径中的各交换机,从存储节点向应用节点返回已更新的数据。另外,为了加速潜在的数据访问的速度,可以将已更新的数据的副本缓存在高速缓存服务器中(例如,从交换机发送至高速缓存服务器)。
[0051]根据本发明的各实施方式,可以采用多种方法来判断存储节点中的数据是否已经被更新并设置标识符。例如,可以周期性地向存储节点查询特定数据的副本是否已经被更新;或者,存储节点还可以在其中存储的数据被更新时通知高速缓存服务器。
[0052]在本发明的一个实施方式中,进一步包括:将数据的源地址存储在高速缓存服务器中。存储源地址的目的在于,高速缓存服务器可以向源地址发送消息进行查询。在本发明的一个实施方式中,标识符以如下步骤设置:周期性地向源地址发送查询请求以查询存储节点中的数据是否已被更新;以及响应于存储节点中的数据已被更新,将标识符设置为无效。当存储节点中的数据已经被更新时,将标识符设置为无效以便当应用节点再次请求相同数据时,从存储节点返回数据。本领域技术人员可以自定义查询周期的时间间隔,在此不再赘述。
[0053]在本发明的一个实施方式中,标识符以如下步骤设置:响应于从存储节点接收到更新通知,将标识符设置为无效。在此实施方式中,存储节点可以向与存储节点中的已更新数据相关联的全部交换机通知:高速缓存服务器中的副本为无效。继而,交换机可以忽略高速缓存服务器中的副本并向存储节点请求已更新的数据。
[0054]另外,存储节点中的特定数据被频繁请求的情况下,还可以响应于从存储节点接收到更新通知,更新存储节点中的数据并且将标识符设置为有效。以此方式,后续的访问请求的响应速度将会大大提高。
[0055]图5示意性示出了根据本发明一个实施方式的基于网络基础设施提供的高速缓存服务来进行数据访问的过程的框图500。在图5中,在应用节点I 520和应用节点2 522上分别运行了多个虚拟机(Virtual Machine, VM)实例:VM1 542、VM2 544、VM3 546 和 VM4548,并且这些实例均为基于存储节点510中的虚拟机模板(VMtemplate) 512而启动(boot)的。
[0056]例如,当在应用节点1520上运行VMl 542时,应用节点I 520经由网络基础架构530向存储节点510请求VM模板512,继而存储节点510经过通信路径中的交换机532和534返回VM模板512,交换机534向应用节点I 520发送该VM模板用于启动虚拟机I542 (如虚线箭头A所示)。此外,交换机534还向高速缓存服务器538发送VM模板(如虚线箭头B所示),此时VM模板在高速缓存服务器538中被缓存用于后续使用。此后,在启动虚拟机的其他实例时,则可以直接从应用节点附近的高速缓存服务器538返回VM模板。
[0057]由于VM模板在开发完成后的很长一段时间内不会被更新,因而采用图5所示的实施方式,不必向存储节点多次请求相同的VM模板,从而可以大大提高数据访问请求的响应速度。尽管在图5中结合了虚拟机的实例这一具体技术来阐明了基于本发明各实施方式的数据访问过程,本领域技术人员可以理解,在高速缓存服务器中缓存的数据副本还可以包括但不限于文本、图像、音频、视频等类型的数据文件或者多个数据文件的组合,只要这些数据文件或者组合能够在高速缓存服务器中进行缓存即可。
[0058]在本发明的一个实施方式中,该方法基于OpenFlow协议实现。OpenFlow是一种通信协议,其给出对于通过网络对于网络交换机或者路由器的转发层面的访问。简单而言,OpenFlow允许由运行在多个路由器上的软件来确定网络数据包通过网络交换机的路径。
[0059]OpenFlow提供了一种便利的技术手段,用于控制在交换机、服务器和各种节点之间转发数据。基于OpenFlow,本发明支持更为智能化的网络基础架构,并且向运行于各个节点处的应用提供高速缓存服务。通过将高速缓存服务的功能从应用级别迁移至网络级别,可以以更为简便的方式开发、部署和管理分布式系统。
[0060]另外,还可以设置提供高速缓存服务时所依据的规则(例如,可以在高速缓存服务器中提供该规则),例如,可以设置“开/关”功能以便激活或者禁止高速缓存服务,可以设置采用何种方式判断高速缓存服务器中缓存的副本是否有效,可以定义针对何种类型的数据提供(或不提供)高速缓存服务,还可以针对不同的应用节点提供不同的服务,等等。
[0061]在本发明的一个实施方式中,当激活网络基础架构中的高速缓存服务时,可以向期望对其提供高速缓存服务的网络数据包添加特殊标记,以表示该数据包是“可高速缓存的”。另外,还可以针对高速缓存服务器设置策略,以便基于数据访问的频率等因素在高速缓存服务器中缓存“最热”的数据。
[0062]图6示意性示出了根据本发明一个实施方式时所传输的数据包的框图600。在下文中仅以iSCSI协议为例说明如何在各个网络实体之间传输数据包。iSCSI协议是用于传统TCP/IP协议来包装SCSI (小型计算机接口)协议进行数据传输的协议。图6A示意性示出了网络数据包格式的图示600A。载荷640A被包装在iSCSI包中,该iSCSI包又被包装在TCP包中,而该TCP包又被包括在IP包中。IP报头中包括源IP地址、目的IP地址等,TCP报头包括源端口号、目的端口号等,而iSCSI报头包括逻辑块地址、数据长度等信息。
[0063]当基于OpenFlow来监视和管理边缘交换机时,可以在网络数据包通过边缘交换机时通知高速缓存控制器,并使其分析网络数据包中各层协议中的关键信息。例如,应用所在的应用节点的IP地址为10.32.0.100,存储节点的IP地址是10.32.0.200,当应用请求访问存储节点中的数据时,边缘交换机收到从应用节点发送至存储节点的请求(该请求的内容如图6B所示)。存储节点响应于接收到上述请求,将所请求数据返回应用节点上的应用。此时,边缘交换机将收到如图6C所示的“响应”。
[0064]在本发明的实施方式中,可以监测如图6B和6C所示的两个网络数据包,并且可以分析得出这两个网络数据包是一对请求/响应(Request/Response)。因此当检测到响应的时候,可以指示边缘交换机将该响应的副本发送至高速缓存服务器上。继而,高速缓存服务器即可缓存所请求的数据的副本并记录相关信息(比如源地址、逻辑块地址和大小等信息
坐')
寸/ ο
[0065]当再有针对相同数据的请求经过边缘交换机时,如果发现所请求数据的副本(有效副本)已经缓存在高速缓存服务器中,则可以立刻向应用发送该副本。以此方式可以减少网络传输路径的负荷,减少存储节点以及网络基础架构的负荷,同时提高应用的性能。
[0066]在本发明的一个实施方式中,可以在高速缓存控制器、高速缓存服务器中执行前文所述的各个方法。
[0067]图7示意性示出了根据本发明一个实施方式的用于在网络基础设施中提供高速缓存服务的装置的框图700。如图7所示,该装置包括:缓存模块710,配置用于响应于至少一个应用节点对存储节点中的数据的访问,将数据的副本缓存在高速缓存服务器中;获取模块720,配置用于响应于至少一个应用节点对存储节点中的数据的访问,获取指示存储节点中的数据是否有效的标识符;以及返回模块730,配置用于响应于标识符指示存储节点中的数据有效,返回副本;其中至少一个应用节点和存储节点经由网络基础设施连接,高速缓存服务器耦合至网络基础设施中的交换机。
[0068]在本发明的一个实施方式中,至少一个应用节点中的每一个和存储节点经由网络基础设施中的交换机连接。
[0069]在本发明的一个实施方式中,交换机是与至少一个应用节点直接连接的交换机。
[0070]在本发明的一个实施方式中,进一步包括:更新模块,配置用于响应于标识符指示存储节点中的数据无效,返回存储节点中的已更新数据;以及将已更新数据的副本缓存在高速缓存服务器中。
[0071]在本发明的一个实施方式中,进一步包括:存储模块,配置用于将数据的源地址存储在高速缓存服务器中。
[0072]在本发明的一个实施方式中,获取模块720包括:第一获取模块,配置用于周期性地向源地址发送查询请求以查询存储节点中的数据是否已被更新;以及响应于存储节点中的数据已被更新,将标识符设置为无效。
[0073]在本发明的一个实施方式中,获取模块720包括:第二获取模块,配置用于响应于从存储节点接收到更新通知,将标识符设置为无效。
[0074]在本发明的一个实施方式中,该装置基于OpenFlow协议实现。
[0075]在本发明的各实施方式中,在网络基础架构中提供高速缓存服务还具有如下优势:可以以透明方式向应用提供高速缓存服务,这可以节省针对特定应用来设计和实现高速缓存功能的各种开销;可以方便并且灵活地管理该服务(例如,通过高速缓存控制器来进行),此时用户仅需要定义提供服务时所基于的规则即可;可以通过从更为靠近应用的位置提供缓存的数据来改进应用的响应性能;另外,由于不必每次都从存储节点向应用节点传输数据,本发明的实施方式还可以降低网络基础架构中不必要的传输负载。
[0076]附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0077]以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本【技术领域】的其他普通技术人员能理解本文披露的各实施方式。
【权利要求】
1.一种用于在网络基础设施中提供高速缓存服务的方法,包括: 响应于至少一个应用节点对存储节点中的数据的访问,将所述数据的副本缓存在高速缓存服务器中; 响应于所述至少一个应用节点对所述存储节点中的所述数据的访问,获取指示所述存储节点中的所述数据是否有效的标识符;以及 响应于所述标识符指示所述存储节点中的所述数据有效,返回所述副本; 其中所述至少一个应用节点和所述存储节点经由所述网络基础设施连接,所述高速缓存服务器耦合至所述网络基础设施中的交换机。
2.根据权利要求1所述的方法,其中:所述至少一个应用节点中的每一个和所述存储节点经由所述网络基础设施中的所述交换机连接。
3.根据权利要求2所述的方法,其中所述交换机是与所述至少一个应用节点直接连接的交换机。
4.根据权利要求1-3中任一项所述的方法,进一步包括:响应于所述标识符指示所述存储节点中的数据无效, 返回所述存储节点中的已更新数据;以及 将所述已更新数据的副本缓存在所述高速缓存服务器中。
5.根据权利要求1-3中的任一项所述的方法,进一步包括:将所述数据的源地址存储在所述高速缓存服务器中。
6.根据权利要求5所述的方法,其中所述标识符以如下步骤设置: 周期性地向所述源地址发送查询请求以查询所述存储节点中的所述数据是否已被更新;以及 响应于所述存储节点中的所述数据已被更新,将所述标识符设置为无效。
7.根据权利要求1-3中的任一项所述的方法,其中所述标识符以如下步骤设置:响应于从所述存储节点接收到更新通知,将所述标识符设置为无效。
8.根据权利要求1-3中的任一项所述的方法,其中所述方法基于OpenFlow协议实现。
9.一种用于在网络基础设施中提供高速缓存服务的装置,包括: 缓存模块,配置用于响应于至少一个应用节点对存储节点中的数据的访问,将所述数据的副本缓存在高速缓存服务器中; 获取模块,配置用于响应于所述至少一个应用节点对所述存储节点中的所述数据的访问,获取指示所述存储节点中的所述数据是否有效的标识符;以及 返回模块,配置用于响应于所述标识符指示所述存储节点中的所述数据有效,返回所述副本; 其中所述至少一个应用节点和所述存储节点经由所述网络基础设施连接,所述高速缓存服务器耦合至所述网络基础设施中的交换机。
10.根据权利要求9所述的装置,其中:所述至少一个应用节点中的每一个和所述存储节点经由所述网络基础设施中的所述交换机连接。
11.根据权利要求10所述的装置,其中所述交换机是与所述至少一个应用节点直接连接的交换机。
12.根据权利要求9-11中任一项所述的装置,进一步包括:更新模块,配置用于响应于所述标识符指示所述存储节点中的数据无效,返回所述存储节点中的已更新数据;以及将所述已更新数据的副本缓存在所述高速缓存服务器中。
13.根据权利要求9-11中的任一项所述的装置,进一步包括: 存储模块,配置用于将所述数据的源地址存储在所述高速缓存服务器中。
14.根据权利要求13所述的装置,其中所述获取模块包括: 第一获取模块,配置用于周期性地向所述源地址发送查询请求以查询所述存储节点中的所述数据是否已被更新;以及响应于所述存储节点中的所述数据已被更新,将所述标识符设置为无效。
15.根据权利要求9-11中的任一项所述的装置,其中所述获取模块包括: 第二获取模块,配置用于响应于从所述存储节点接收到更新通知,将所述标识符设置为无效。
16.根据权利要求9-11中的任一项所述的装置,其中所述装置基于OpenFlow协议实现。
【文档编号】H04L29/08GK103795770SQ201210440761
【公开日】2014年5月14日 申请日期:2012年10月26日 优先权日:2012年10月26日
【发明者】万林涛, 王天青, 郭峰, 颜开 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1