高速缓存优化的制作方法

文档序号:6593217阅读:201来源:国知局
专利名称:高速缓存优化的制作方法
高速缓存优化
背景技术
一般而言,可以利用计算设备和通信网络来交换信息。在通常应用中,计算设备可 以经由通信网络向另一计算设备请求内容。例如,个人计算设备处的用户可以利用软件浏 览器应用经由互联网向服务器计算设备请求网页。在这种情况下,用户计算设备可以称作 客户计算设备,服务器计算设备可以称作内容提供商。通常,考虑到向客户计算设备有效地发送所请求的内容和/或在考虑到与内容的 发送相关联的成本,一般激发内容提供商将所请求的内容提供给客户计算设备。对于大规 模的实现,内容提供商可以从大量的客户计算设备接收内容请求,大量的客户计算设备可 以使内容提供商的计算资源紧张。另外,客户计算设备所请求的内容可以具有多个组成部 分,这些组成部分可以进一步使内容提供商的计算资源紧张。参考示例,所请求的网页或初始内容可以与将用网页来显示的多个附加资源 (如,图像或视频)相关联。在一个具体实施例中,网页的附加资源由多个嵌入式资源标识 符(如,统一资源定位器“URL”)来标识。客户计算设备上的软件典型地处理嵌入式资源 标识符以产生对内容的请求。通常,与嵌入式资源相关的资源标识符引用与内容提供商相 关联的计算设备,使得客户计算设备向所引用的内容提供商计算设备发送对附加资源的请 求。因此,为满足内容请求,内容提供商将提供与网页相关联的客户计算设备数据以及与嵌 入式资源相关联的数据。一些内容提供商尝试通过使用内容传递网络(“CDN”)服务提供商来便于传送对 所请求的内容(如,网页和/或在网页中标识的资源)。CDN服务器提供商典型地在通信网 络中维持多个计算设备,通信网络可以维持来自不同内容提供商的内容。内容提供商可以 命令或者建议客户计算设备向CDN服务器提供商的计算设备请求内容提供商的内容的一 些或者全部。如内容提供商的情况一样,通常考虑到向客户计算设备有效地发送所请求的内容 和/或考虑到与内容的发送相关联的成本,一般还激发CDN服务提供商将所请求的内容提 供给客户计算设备。因此,CDN服务提供商常常考虑诸如所请求的内容的传递的等待时间 等因素,以满足服务水平协定或一般地提高传递服务的质量。


通过结合附图参考以下的详细说明,将更好地理解本发明,从而本发明的上述方 面和许多伴随的优点将更容易被认识到,在附图中图1是示出了基于内容传递网络(CDN)的系统的一个实施例的框图,所述基于CDN 的系统包括一个或多个高速缓存服务器;图2是图1的基于CDN的系统的框图,示出了内容提供商对内容请求的处理;图3是图1的基于⑶N的系统的框图,示出了 DNS查询的处理和资源高速缓存组 件的分派;图4A至4F是图1的基于CDN系统的简化框图,示出了与高速缓存服务器对资源请求的处理相关联的实施例;图5是在高速缓存服务器处处理资源请求的说明性方法的流程图;以及图6是在高速缓存服务器处管理资源存储的方法的流程图。
具体实施例方式一般而言,本公开针对当客户计算设备向网络资源(如,内容传递网络(“⑶N”) 服务提供商)请求内容时使用的高速缓存资源的管理。具体地,将关于资源高速缓存组件 对内容的处理以及内容在存储和获取方面的分割,来描述本公开的方面。尽管关于示例和 实施例描述了本公开的不同方面,但本领域技术人员将应该理解所公开的实施例和示例不 应被理解为是限制性的。图1示出了用于管理内容存储和传递的内容传递环境100的框图。如图1所示, 内容传递环境100包括用于向内容提供商和/或CDN服务提供商请求内容的多个客户计算 设备102(通常称作客户端)。在说明性实施例中,客户计算设备102可以对应于多种计算 设备,包括个人计算设备、膝上型计算设备、手持计算设备、终端计算设备、移动设备、无线 设备、多种电子设备和装置等等。在说明性实施例中,客户计算设备102包括用于在诸如广 域网或局域网等通信网络108上建立通信的必要硬件和软件组件。例如,客户计算设备102 可以配备有便于经由互联网或内联网来通信的连网装置和浏览器软件应用。此外,客户计算设备102还可以包括用于执行或处理变换信息的必要硬件和软件 组件,如在以下将更详细地描述的。相关领域技术人员应理解,在执行诸如浏览器软件应用 等多用途软件应用的情况下,可以包括用于处理变换信息的附加硬件/软件。备选地,一些 或所有附加硬件/软件组件可以利用被配置为处理变换信息的单机或专用组件来实现。尽 管图1中没有示出,每个客户计算设备102使用某种本地DNS解析器组件(如,DNS名称服 务器),所述本地DNS解析器组件产生属于客户计算机的DNS查询。在一个实施例中,本地 DNS解析器组件可以属于客户计算机所属的企业网。在另一实施例中,本地DNS解析器组件 可以属于向客户计算机提供网络连接的互联网服务提供商(ISP)。内容传递环境100还可以包括内容提供商104,内容提供商104经由通信网络108 与一个或多个客户计算设备102通信。图1所示的内容提供商104与跟内容提供商相关联 的一个或多个计算设备的逻辑关联性相对应。具体地,内容提供商104可以包括web服务 器组件110,web服务器组件110与用于获得和处理来自客户计算设备102的对内容(如, 网页)的请求的一个或多个服务器计算设备相对应。内容提供商104还可以包括原始服务 器组件112和关联的存储组件114,原始服务器组件112和关联的存储组件114与用于获得 和处理来自CDN服务提供商的对网络资源的请求的一个或多个计算设备相对应。相关领域 技术人员应理解,内容提供商104可以与多种附加计算资源相关联,如,用于内容和资源管 理的附加计算设备、DNS名称服务器等等。继续参考图1,内容传递环境100还可以包括⑶N服务提供商106,⑶N服务提供 商106经由通信网络108与一个或多个客户计算设备102和内容提供商104通信。图1所 示的CDN服务提供商106与跟CDN服务提供商相关联的一个或多个计算设备的逻辑关联性 相对应。具体地,CDN服务提供商106可以包括与通信网络108上的结点相对应的多个存 在点(POP)位置 116、122。每个 P0P116、122 包括 DNS 组件 118、124,DNS 组件 118、124 由用于对来自客户计算机102的DNS查询进行解析的多个DNS服务器计算设备构成。每个POPl 16、122还包括资源高速缓存组件120、126,资源高速缓存组件120、1 用于存储来自内容提供商的对象并将所请求的不同对象发送至不同客户计算机。每个资源 高速缓存组件120、126由用于获得和处理对网络资源的请求的多个高速缓存服务器计算 设备130、132、134构成。每个高速缓存服务器计算设备130、132、134包括具有最低数据访 问等待时间(通常称作等待时间)的存储器140、142、144用于相应的高速缓存服务器计 算设备。相关领域技术人员应理解,为本公开的目的,数据访问等待时间可以包括使得可 以从存储位置获取到能发送的存储数据的最小时间段。此外,每个高速缓存服务器计算设 备130、132、134可以直接或共享地经由总线等与存储介质150、152、巧4相关联,存储介质 150、152、巧4的等待时间比所附的存储器140、142、144的等待时间长。例如,存储介质150、 152、巧4可以包括诸如磁盘存储器、闪速存储器、光学存储器等非易失性存储器。此外,内容 传递环境100可以包括基于网络的存储器160,基于网络的存储器160可以被高速缓存服务 器计算设备130、132、134以及其他计算设备用来实现内容管理。与存储介质150、152、154 相类似,基于网络的存储器160比所附存储器140、142、144的等待时间长。在说明性实施例中,认为DNS组件118、124和资源高速缓存组件120、126是被逻 辑分组的,而不管组件或组件的部分是否是物理分离的。此外,尽管POP 116、122在图1中 被示为逻辑地与CDN服务提供商106相关联,然而POP以最适合客户计算设备102的各种人 口统计特征的方式,在地理上遍及通信网络108而分布。此外,相关领域技术人员应理解, CDN服务提供商106可以与多种附加计算资源相关联,如,用于内容和资源管理的附加计算 设备等。相关领域技术人员应理解,实际上图1中的组件和配置是说明性的。因此,可以使 用附加的或备选的组件和/或配置,尤其是与便于通信的附加组件、系统和子系统有关的 附加或备选组件和/或配置。现在参考图2至4,将示出图1的内容传递环境100的不同组件之间的交互。然 而,为示例的目的,图已经被简化,使得许多用于便于通信的组件并没有被示出。相关领域 技术人员应理解,可以使用这种组件,相应地在不脱离本公开的精神和范围的情况下,将发 生另外的交互。此外,尽管通信可以被示为组件之间的直接通信,然而相关领域技术人员应 理解,所有说明性通信都可以直接发生在组件之间或者经由通信网络108来实现。在讨论 由高速缓存服务器计算设备140、142、144执行的对象管理之前,将描述在基于CDN的系统 中对来自客户计算设备102的资源请求的一般处理的简要概述。参考图2,客户计算设备102产生内容请求,内容提供商104例如经由网络服务器 110来接收和处理所述内容请求。根据说明性实施例,对内容的请求可以根据公共网络协 议,例如超文本传送协议(“HTTP”)。当接收到内容请求时,内容提供商104标识合适的响 应内容。在说明性实施例中,所请求的内容可以与经由诸如超文本置标语言(“HTML”)、可 扩展置标语言(“XML”)等信息处理显示在客户计算设备102上的网页相对应。所请求的 内容还可以包括上述的多个嵌入式资源标识符,嵌入式资源标识符与应该作为所请求内容 的处理的一部分由客户计算设备102获得的资源对象相对应。嵌入式资源标识符通常可以 称作原始资源标识符或原始URL。在一个实施例中,原始URL标识CDN服务提供商106的域(例如“cdnprovider.com”)、要请求的资源的相同名称(例如“resource. XXX”)以及在其中将找到资源的 相同路径(例如“path”)。此外,原始URL可以包括附加处理信息(例如“additional information”)。原始URL将具有以下形式http//additional information, cdnprovider. com/path/resources, xxx在另一实施例中,与CDN服务提供商106相关联的信息例如通过预先计划或其他 技术包括在原始URL中,使得原始URL可以维持与先前同内容提供商104有关的URL相关 联的所有信息。在该实施例中,原始URL将具有以下形式http//additional information.cdnprovider. com/www, contentprovider. com/path/resource, xxx当接收到所请求的内容时,客户计算设备102例如经由浏览器软件应用开始处理 包括在内容中的任何置标码并尝试获得由嵌入式资源标识符标识的资源。因此,获得内容 的第一步骤对应于客户计算设备102 (通过其本地DNS解析器)发起针对原始URL资源标 识符的DNS查询,这使得识别出对于变换后的URL的“.”和“com”部分而言是有权威的DNS 服务器。在解析嵌入式URL的“.,,和“com”部分之后,然后客户计算设备102发起对资源 URL的DNS查询,这使得识别出对嵌入式URL的“.cdnprovider"部分而言是有权威的DNS 服务器。与URL的“.,,和“com”部分相对应的DNS查询的发起是公知并且没有示出。现在参考图3,在说明性实施例中,原始URL的“cdnprovider”部分的成功解析标 识了与⑶N服务提供商106相对应的DNS服务器组件118的网络地址(如,IP地址)。在 一个实施例中,IP地址是对POP 116的DNS服务器组件118而言唯一的特定网络地址。在 另一实施例中,IP地址可以被一个或多个POP 116、122共享。在该实施例中,对共享的IP 地址的DNS查询使用一到多网络路由方案(如,任播),这种特定的Ρ0Ρ、Ρ0Ρ 118将根据网 络拓扑来接收请求。例如,在任播实现中,客户计算设备102向共享IP地址发起的DNS查 询将到达逻辑上与客户计算设备具有最短网络拓扑距离(常常称作网络跃距)的DNS服务 器组件。网络拓扑距离不必须与地理距离相对应。然而,在一些实施例中,可以推断网络拓 扑距离是客户计算设备102与POP之间的最短网络距离。继续参考图3,在上述任一实施例(或任何其他实施例)中,POPl 16的DNS组件 118中的特定DNS服务器从客户计算设备102接收与原始URL相对应的DNS查询。一旦DNS 组件118中的DNS服务器之一接收到请求,特定的DNS服务器就尝试解析请求。在说明性 实施例中,特定的DNS服务器可以通过标识将处理对所请求资源的请求的高速缓存服务器 组件的IP地址,来解析DNS查询。如上所述,所选择的资源高速缓存组件120、1 可以通 过在可能的情况下提供所请求的资源,或者通过尝试从另一来源(例如对等高速缓存服务 器计算设备或内容提供商104的原始服务器11 获得所请求的资源,来处理请求。当选择高速缓存服务器计算设备140、142、144(或资源高速缓存组件120、126) 时,DNS服务器组件118提供以下设备的IP地址高速缓存服务器计算设备、资源高速缓存 组件、或与资源高速缓存组件相关联的负载平衡/负载共享设备。这样客户计算设备102 可以使用互联网通信协议向IP地址所标识的高速缓存服务器计算设备140、142、144请求 资源。如以下将更详细地描述的,然后高速缓存服务器计算设备140、142、144处理请求,以 将资源提供给客户计算设备102。具体地,高速缓存服务器计算设备可以在从其他存储位 置接收到所请求内容的剩余部分时,开始发送来自本地存储器的所请求的内容的初始化部
7分。当接收到时,在适当情况下客户计算设备102上的浏览器应用处理所请求的资源。现在参考图4A至4F,将关于高速缓存服务器计算设备140、142、144对资源请求 的处理,来描述内容传递环境100的不同组件之间的交互的多个实施例。然而,为图4A至 4F中的示例的目的,已经简化了图,使得用于便于通信的许多系统、子系统和组件没有被示 出。一般而言,如以下将更详细地描述的,存储在高速缓存服务器计算设备130、132、134中 的每个对象被分割为用于存储存储器140、142、144中的初始化片段以及用于存储在等待 时间比其中存储有初始化片段的存储器长的介质中的一个或多个剩余片段。在一个实施例 中,一个或多个剩余片段包括多数片段(majority fragment)。现在参考图4A,高速缓存服务器计算设备132从客户计算设备102接收对对象的 请求。当接收到对对象的请求时,高速缓存服务器计算设备132开始从与高速缓存服务器 计算设备相关联的存储介质(在该示例中例如是本地磁盘存储器15 获取对象的多数片 段。在一个示例中,多数的存储位置对于高速缓存服务器计算设备132来说可以是先前已 知的,使得可以立即发送对多数片段部分的请求。可选地,在另一示例中,高速缓存服务器 计算设备132可以查询目录或服务,以识别对多数片段部分的合适的存储位置。如果多数 片段部分被存储在多个存储位置(如,为地理分布的目的),则可以使用服务来识别最佳或 可用的存储位置。实质上在请求多数片段部分的同时,高速缓存服务器计算设备132开始通过网络 从存储器组件142向发请求的客户计算设备102发送初始化片段。在该实施例中,从本 地磁盘存储器152调用数据的等待时间可以比从高速缓存服务器计算设备132的存储器 142(例如RAM)调用数据的等待时间长。因此,从存储器132获取初始化片段允许一旦处 理了请求高速缓存服务器计算设备就开始发送所请求的对象的至少一部分。同时,初始化 片段的尺寸足够大,以至于可以在初始化片段部分的发送完成之前获取一个或多个多数片 段。当完成从存储器142发送初始化片段部分时,高速缓存服务器计算设备132可以开始 在通信网络上向请求客户计算设备102发送多数片段。备选地,高速缓存服务器计算设备 132可以一旦开始接收多数片段就在通信网络上向请求客户计算设备102发送多数片段。 尽管初始化片段部分被示为是从本地高速缓存服务器计算设备存储器142提供的,然而相 关领域技术人员应理解,可以从其他存储位置和/或由其他高速缓存服务器存储和发送初 始化片段部分。在一个实施例中,高速缓存服务器计算设备132并不保留多数片段部分以处理对 相同对象的后续请求。相关领域技术人员应理解,根据高速缓存服务器计算设备的操作 (如,高速缓存服务器计算设备13 ,可以将多数片段部分存储在存储器142中以发送至客 户计算设备102。然而,在该实施例中,由于多数片段部分可以被删除(或者至少优先用于 重写),通常认为这种存储是瞬态的。相关领域技术人员应理解,对初始化片段和多数片段的定位、获取和发送的精确 定时可以变化。相关领域技术人员还应理解,由于网络包括多个本地和非本地的存储介质, 多数片段可以存储在POP 116,122内或网络108中的任何存储介质中,所述存储介质的等 待时间比其中存储有初始化片段的存储器的等待时间长。例如,一个或多个多数片段可以 存储在POP的对等高速缓存服务器计算设备的本地磁盘中、基于网络的存储160上、内容提 供商的原始服务器112上等等。如上所述,当客户计算设备102请求对象时,接收高速存储服务器计算设备可以立即开始提供来自本地存储器的初始化片段,同时从另一位置(如, 高速缓存的对等端的磁盘)获取多数片段分段。在另一说明性实施例中,可以将所请求的对象分割为三个或更多的片段用于获 取。在该实施例中,初始化片段可以以前述的方法存储在高速缓存服务器计算设备的存储 器中。此外,中间片段存储在另一存储位置(如,高速缓存服务器计算设备磁盘),而多数片 段存储在又一存储位置(如,存储在原始服务器112上)。当开始提供初始化片段时,获取 和提供中间片段,从原始服务器获取多数片段。在另一实施例中,中间片段的存储位置的等 待时间可以比存储器(如,初始化片段部分的存储位置)的等待时间长而比多数片段部分 的存储位置的等待时间短。因此,中间片段部分的尺寸将是获取多数片段部分所需时间的 函数。备选地,中间和多数片段部分的存储位置的等待时间可以不是实质上不同的。在该 实施例中,可以根据经济或服务标准(例如存储成本、带宽成本、有保证的服务有效性、冗 余存储等等)来分配中间和多数片段部分。此外如以上关于图4A所述的,在一个实施例中, 高速缓存服务器计算设备不保留初始化和多数片段部分以处理对相同对象的后续请求。现在参考图4B至4D,这些说明性实施例中由不同组件执行的处理与参考图4A所 描述的处理相似,不同之处在于从中提供多数片段的存储位置。参考图4B,高速缓存服务器 计算设备132获得对对象的请求,然后开始从另一高速缓存服务器计算设备130的磁盘存 储器150获取所请求对象的多数片段。在该示例中,高速缓存服务器计算设备130在相同 的POP 116中。采用上述的相同方式,接收高速存储服务器计算设备132将初始化片段部 分和多数片段部分发送至客户计算设备102。如先前所述,多数片段部分可以存储在存储 器142中以便于向客户计算设备102传送。然而可以不将多数片段部分可以保留在存储器 142中用于对对象的后续请求。现在参考图4C,高速缓存服务器计算设备132再次从客户计算设备102接收对对 象的请求。然而,在该说明性示例中,高速缓存服务器计算设备132向另一 POP 122的另一 高速缓存服务器计算设备130的磁盘存储器150请求多数片段。然后这样高速缓存服务器 计算设备132在获取多数片段部分的同时开始发送初始化片段部分。随后,将发送多数片 段部分。在另一备选实施例中,可以如图4D所示从单独的基于网络的存储器160获取多数 片段,或者如图4E所示从与原始服务器组件112相关联的存储介质114获取多数片段。在 这两个实施例中,如果有与网络通信相关联的附加等待时间,初始化片段部分的尺寸可以 比关于图4B至4D中的示例所讨论的初始化片段部分的尺寸大。如以下将描述的,可以动 态地调整初始化片段部分的尺寸。现在转向图4F,在另一实施例中,由高速缓存服务器计算设备132所发送的所请 求的对象可以分割为初始化片段、中间片段段和多数片段。具体地,当接收到对对象的请求 时,高速缓存服务器计算设备132从第一存储介质(如,硬盘15 获取与对象相关联的中 间片段。如先前所述,硬盘152具有比高速缓存服务器计算设备132的存储器142的等待 时间长的等待时间。同时,高速缓存服务器计算设备140、142、144开始从第二存储介质获 取与对象相关联的多数片段,第二存储介质也具有比高速缓存服务器计算设备132的存储 器142的等待时间长的等待时间。在该实施例中,第二存储介质是与原始服务器组件112 相关联的存储介质。实质上同时,高速缓存服务器计算设备132开始通过网络将对象的初 始化片段从存储器142发送至请求客户计算设备102。一但获取到中间片段,高速缓存服务
9器计算设备就开始通过网络将中间片段发送至发请求的客户计算设备,对于多数片段也是 如此。再次地,相关领域技术人员应理解,对初始化片段、中间片段以及多数片段的定位、获 取和发送的精确定时可以变化。此外,如先前所述,尽管中间和多数片段部分可以存储在存 储器142中以便于向客户计算设备102发送,然而这些部分可以不保留在存储器142中用 于对对象的后续请求。现在参考图5,将描述用于在高速缓存服务器计算设备130、132、134中处理资源 请求的例程500的一个实施例。在框502中,例程500以在高速缓存服务器计算设备130、 132、134处接收对对象的请求为开始。如先前所述,高速缓存服务器的特定的IP地址可以 由与CDN服务提供商106相关联的DNS服务器来分配。备选地,特定的高速缓存服务器计 算设备130、132、134可以由资源高速缓存组件中的软件/硬件组件来选择。在框504中,高速缓存服务器计算设备130、132、134从高速缓存服务器计算设备 的存储器140、142、144寻找并开始发送对象的初始化片段。在说明性实施例中,存储器 140、142、144对应于与接收高速缓存服务器计算设备相关联的本地存储器。备选地,存储 器可以对应于对等高速缓存服务器计算设备(如,在相同的POP中或跨POP的)的存储器。 此外,尽管初始化片段部分始终被示为存储在存储器上,然而相关领域技术人员应理解,初 始化片段部分还可以是从其他存储位置上提供的。认为这种变体在本公开的范围和精神之 内。在框506中,高速缓存服务器计算设备开始获取对象的所有剩余部分,包括所有 中间和多数片段。在说明性实施例中,中间和多数片段部分存储在等待时间比存储器长的 介质上。如先前所述,如果多数片段部分的存储位置未知,或者如果存在多个存储位置,则 高速缓存服务器计算设备可以使用服务或发送请求。在判定框508中,进行测试以确定初 始化片段部分的发送是否完成。如果发送没有完成,高速缓存服务器计算设备继续从存储 器发送初始化片段部分。此外,如果没有下载多数片段部分,高速缓存服务器计算设备继续 下载多数片段部分(或中间片段部分)。当初始化片段部分的发送完成时,在框510中,高速缓存服务器计算设备开始在 网络上向请求客户计算设备102发送剩余片段部分(包括所有中间和多数片段)。在框514 中,作为发送过程一部分,高速缓存服务器计算设备可以删除存储在存储器中的任何中间 或多数片段部分。在说明性实施例中,高速缓存服务器计算设备可以明确地从存储器删除 中间或多数片段部分。在另一实施例中,高速缓存服务器计算设备可以将用于存储中间或 多数片段部分的存储器标记为有效以用于重写。在另一实施例中,高速缓存服务器计算设 备可以降低用于存储中间或多数片段部分的存储器的存储器管理算法的优先级。另外,框 514可选地可以省略。例程结束于框516。在其他实施例中,当接收到对关联对象的请求时,立即开始发送初始化片段,在发 送初始化片段的同时或紧随其后,请求对多数片段的获取。现在参考图6,将描述在高速缓存服务器计算设备处管理资源的存储的例程600 的一个实施例。在框602中,高速缓存服务器计算设备接收存储对象的请求。在框604中, 高速缓存服务器计算设备确定与对象相关联的初始化片段以及一个或多个剩余片段。这种 确定过程的一部分包括确定初始化片段的尺寸。在一个实施例中,初始化片段的尺寸基 于与从其他存储位置获取一个或多个剩余片段相关联的等待时间,相较于与(同时)发送
10初始化片段部分相关联的等待时间。如先前所述,初始化组块的尺寸可以被选择为,使得在 向客户计算设备102发送初始化片段部分完成之前,完成中间和/或多数片段部分的获取。 具体地,初始化片段的尺寸可以基于可以在存储介质的平均或最大等待时间期间发送的 网络数据包的数量的吞吐量,相较于至客户计算设备102的数据包的最快可能吞吐量。相 关领域技术人员应理解,初始化片段的尺寸可以以多种方式来确定,例如静态地或动态地 或其他,初始化片段的尺寸可以基于多种因素,包括上述的因素以及诸如对象的编码速率 等其他因素。在另一实施例中,可以将附加的高速缓存管理方法融入初始化片段部分的尺寸的 考虑。在一个示例中,初始化片段的尺寸可以基于对对象的请求频率。例如,频繁被请求的 对象可以具有较大的初始化片段,以便减少从较长等待时间的存储介质提供一个或多个剩 余片段所需的IO请求的数量。在另一示例中,初始化片段的尺寸基于对所请求对象的另一 有关对象的请求频率。再参考图6,在框606中,高速缓存服务器计算设备将初始化片段存储在高速缓 存服务器计算设备的存储器中。可选地,高速缓存服务器计算设备可以仅仅将初始化片段 与存储位置相关联并存储该关联,尤其例如在另一计算设备控制初始化片段的存储的情况 下。在框608中,高速缓存服务器计算设备将一个或多个剩余片段存储在一个或多个存储 位置中。再次地,备选地,高速缓存服务器计算设备可以仅仅将一个或多个剩余片段与所选 择的一个或多个存储位置相关联并存储该关联。在另一说明性实施例中,多数片段的尺寸是对象的整个文件尺寸。根据该实施例, 高速缓存服务器组件可以将整个对象作为中间和/或多数片段部分来接收,并过滤还没有 发送的片段。可选地,高速缓存服务器计算设备可以向多数文件的存储位置仅请求多数文 件的一部分。然而,通过将整个对象作为多数和/或中间片段来存储,可以动态地修改初始 化片段部分的尺寸而无需相应地修改其他片段部分。备选地,在另一实施例中,中间和多数 片段的尺寸每个都相当于使所有片段的总和是对象的整个文件尺寸。在判定框610中,高速缓存服务器计算设备确定是否需要更新初始化片段。可以 以多种方式进行这样的确定。在一些说明性示例中,判定框610可以基于以下内容的确定 与多数片段的获取相关联的等待时间、对对象的请求频率、和/或对所请求对象的另一有 关对象的请求频率。在一个实施例中,判定框610包括关于初始化片段的新文件尺寸的特 别确定。可以采用与确定初始化片段的初始文件尺寸所采用的方法相似方法,并基于与以 上给出的因素相似的因素,来确定新文件尺寸。在框612中,如果确定需要更新,则高速缓存服务器计算设备将增量片段存储在 高速缓存服务器计算设备的存储器中,以补充初始化片段。在一个实施例中,增量片段和原 始初始化片段的尺寸一起对应于初始化片段的新近确定的文件尺寸。备选地,在另一实施 例中,如果需要更新,则通过更新过程所确定的合适尺寸的新初始化片段代替存储器中的 原始初始化片段。例程结束于框614。相关领域技术人员应理解,可以连续地执行例程600 的一部分(例如框610和612)以更新片段部分。相关和其他领域技术人员应理解,本公开中所描述的所有功能都可以体现在由所 公开的组件和移动通信设备的一个或多个处理器来执行的软件中。软件可以持久地存储在 任何类型的非易失性存储中。
诸如“能够”、“可能”或“可以”等条件式语言,除非特别声明或在上下文中理解, 否则通常用于表达的意思是特定实施例包括特定的特性、元件和/或步骤,而其他实施例 不包括。因此,这种条件式语言通常并不表示一个或多个实施例无论如何需要这些特性、元 件和/或步骤,也不表示一个或多个实施例有必要包括用于在有或没有用户输入或提示的 情况下判定是否包括或在任何具体实施例中执行这些特性、元件和/或步骤的逻辑。本文所描述的和/或附图中描绘的流程图中的任何过程描述、元件或块应当被理 解为,可以表示代码的模块、片段或部分,代码的模块、片段或部分包括用于在过程中实现 特定逻辑功能或步骤的一个或多个可执行指令。本领域技术人员应理解,备选的实现在此 包括本文描述的实施例的范围之内,其中,根据涉及的功能,元件或功能可以被删除或不按 所示或所述的顺序来执行,包括实质上同时执行或按相反顺序来执行。还应理解,可以使用 与存储计算机可执行组件的计算机可读介质(如,⑶-ROM、DVD-ROM、或网络接口)相关联 的驱动机制,将上述数据和/或组件存储在计算机可读介质上并加载到计算设备的存储器 中,此外,组件和/或数据可以包括在单一设备中或以任何方式分布。可以关于以下条款更进一步地理解上述实施例的不同方面条款1. 一种由计算机实现的方法,包括在高速缓存组件中接收用于存储的对象;将对象分割为用于存储在存储器中的初始化片段以及用于存储在等待时间比存 储器的等待时间长的介质中的多数片段,其中,初始化片段的尺寸基于与多数片段的获取 相关联的等待时间;在高速缓存组件处接收对对象的请求;从存储器发送对象的初始化片段;获取对象的多数片段;以及发送多数片段而不在存储器中保留多数片段以供后续处理。条款2. —种由计算机实现的方法,包括在高速缓存组件处接收对对象的请求;从存储器发送对象的初始化片段;获取对象的多数片段;以及发送多数片段,而不在存储器中保留多数片段以供后续处理。条款3.根据条款2所述的由计算机实现的方法,其中,获取多数片段包括从高速 缓存组件的本地磁盘存储器获取多数片段。条款4.根据条款2所述的由计算机实现的方法,其中,获取多数片段包括从另一 高速缓存组件的磁盘存储器获取多数片段。条款5.根据条款2所述的由计算机实现的方法,其中,获取多数片段包括从基于 网络的存储器获取多数片段。条款6.根据条款2所述的由计算机实现的方法,其中,获取多数片段包括从原始 服务器获取多数片段。条款7.根据条款2所述的由计算机实现的方法,还包括获取对象的中间片段;以及提供中间片段,而不在存储器中保留中间片段以供后续处理。
12
条款8.根据条款2所述的由计算机实现的方法,还包括确定是否更应该新初始化片段;如果是,则在存储器中存储增量片段以补充初始化片段。条款9.根据条款4所述的由计算机实现的方法,其中,确定是否应该更新初始化 片段是基于与多数片段的获取相关联的等待时间的确定的。条款10.根据条款4所述的由计算机实现的方法,其中,确定是否应该更新初始化 片段是基于对对象的请求频率的,使得增量片段的尺寸的改变基于请求频率的改变。条款11.根据条款4所述的由计算机实现的方法,其中,确定是否应该更新初始化 片段是基于对所请求对象的另一有关对象的请求频率的,使得增量片段的尺寸的改变基于 对该有关对象的请求频率的改变。条款12.根据条款2所述的由计算机实现的方法,还包括为初始化片段确定新文件尺寸;以及在存储器中存储增量片段,其中初始化片段和增量片段与新文件尺寸相对应。条款13.根据条款2所述的由计算机实现的方法,其中,多数片段与对象的整个文 件尺寸相对应。条款14. 一种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系 统用于实现如条款2所述的方法。条款15. —种由计算机实现的方法,包括在高速缓存组件处接收用于存储的对象;以及将对象分割为用于存储在存储器中的初始化片段以及用于存储在等待时间比存 储器的等待时间长的介质中的一个或多个剩余片段,其中初始化片段的尺寸基于与一个或 多个剩余片段的获取相关联的等待时间。条款16.根据条款8所述的由计算机实现的方法,其中,一个或多个剩余片段与多 数片段相对应,多数片段与对象的整个文件尺寸相对应。条款17.根据条款8所述的由计算机实现的方法,其中,一个或多个剩余片段与 中间片段和多数片段相对应,每个中间片段和多数片段各自都与对象的整个文件尺寸相对应。条款18.根据条款8所述的由计算机实现的方法,其中,不将所述一个或多个剩余 片段保留在存储器中以供后续处理。条款19. 一种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系 统用于实现如条款8所述的方法。条款20. —种由计算机实现的方法,包括在高速缓存组件处接收用于存储的对象;以及将对象分割为用于存储在存储器中的初始化片段以及用于在等待时间比存储器 的等待时间长的介质中的一个或多个剩余片段,其中初始化片段的尺寸基于对对象的请求频率。条款21.根据条款20所述的由计算机实现的方法,其中,一个或多个剩余片段与 多数片段相对应,多数片段与对象的整个文件尺寸相对应。条款22.根据条款20所述的由计算机实现的方法,其中,一个或多个剩余片段与中间片段和多数片段相对应,中间片段和多数片段各自都与对象的整个文件尺寸相对应。条款23.根据条款20所述的由计算机实现的方法,其中,不将所述一个或多个剩 余片段保留在存储器中以供后续处理。条款24. —种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系 统用于实现如条款20所述的方法。条款25. —种由计算机实现的方法包括在高速缓存组件处接收用于存储的对象;以及将对象分割为用于存储在存储器中的初始化片段以及用于存储在等待时间比存 储器的等待时间长的介质中的多数片段,其中,初始化片段的尺寸基于对所请求对象的另 一有关对象的请求频率。条款26.根据条款10所述的由计算机实现的方法,其中,多数片段与对象的整个 文件尺寸相对应。条款27.根据条款10所述的由计算机实现的方法,其中,不将一个或多个剩余片 段保留在存储器中以供后续处理。条款28. —种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系 统用于实现如条款10所述的方法。条款29. —种由计算机实现的方法包括在高速缓存组件处接收用于存储的对象;确定对象的初始化片段和多数片段;将存储器中的存储位置与初始化片段相关联;将存储位置与多数片段相关联,其中,多数片段的关联的存储位置与等待时间比 存储器的等待时间长的介质相对应;确定是否应该更新初始化片段;如果是,则将存储器中的存储位置与增量片段相关联,其中,曾量片段补充初始化 片段。条款30.根据条款13所述的由计算机实现的方法,其中,确定是否应该更新初始 化片段是基于与多数片段的获取相关联的等待时间的确定的。条款31.根据条款13所述的由计算机实现的方法,其中,确定是否应该更新初始 化片段是基于对对象的请求频率的,使得增量片段的尺寸的改变基于请求频率的改变。条款32.根据条款13所述的由计算机实现的方法,其中,确定是否应该更新初始 化片段是基于对所请求对象的另一有关对象的频率的,使得增量片段的尺寸的改变基于该 有关对象的请求频率的改变。条款33.根据条款13所述的由计算机实现的方法,其中,确定是否应该更新初始 化片段包括为初始化片段确定新文件尺寸,其中初始化片段和增量片段与新文件尺寸相 对应。条款34.根据条款13所述的由计算机实现的方法,其中,多数片段与对象的整个 文件尺寸相对应。条款35. —种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系 统用于实现如条款13所述的方法。
14
因此,通用计算设备可以被配置为,通过执行和/或处理上述不同数据和/或组 件,来执行本公开的处理、算法和方法。应强调的是,可以对上述实施例做出许多变化和修改,变化和修改的元素应被理 解为在其他可接受的示例中。这里所有这样的修改和变化在本公开的范围之内并且且由权 利要求来保护。
权利要求
1.一种由计算机实现的方法,包括 在高速缓存组件处接收用于存储的对象;将对象分割为用于存储在存储器中的初始化片段和用于存储在等待时间比存储器的 等待时间长的介质中的多数片段,其中,初始化片段的尺寸基于与多数片段的获取相关联 的等待时间;在高速缓存组件处接收对对象的请求; 从存储器发送对象的初始化片段; 获取对象的多数片段;以及发送多数片段,而不将多数片段保留在存储器中以供后续处理。
2.一种由计算机实现的方法,包括 在高速缓存组件处接收对对象的请求; 从存储器发送对象的初始化片段; 获取对象的多数片段;以及发送多数片段,而不将多数片段保留在存储器中以供后续处理。
3.如权利要求2所述的由计算机实现的方法,还包括 获取对象的中间片段;以及提供中间片段,而不将中间片段保留在存储器中以供后续处理。
4.如权利要求2所述的由计算机实现的方法,还包括 确定是否应该更新初始化片段;如果是,则在存储器中存储增量片段以补充初始化片段。
5.如权利要求4所述的由计算机实现的方法,其中,确定是否应该更新初始化片段是 基于对对象的请求频率的,使得增量片段的尺寸的改变基于请求频率的改变。
6.如权利要求4所述的由计算机实现的方法,其中,确定是否应该更新初始化片段是 基于对所请求对象的另一有关对象的请求频率的,使得增量片段的尺寸的改变基于对该有 关对象的请求频率的改变。
7.一种具有存储器的计算机系统,其中,存储器存储初始化片段,计算机系统用于实现 如权利要求2所述的方法。
8.一种由计算机实现的方法,包括在高速缓存组件处接收用于存储的对象;以及将对象分割为用于存储在存储器中的初始化片段、以及用于存储在等待时间比存储器 的等待时间长的介质中的一个或多个剩余片段,其中,初始化片段的尺寸基于与所述一个 或多个剩余片段的获取相关联的等待时间。
9.如权利要求8所述的由计算机实现的方法,其中,所述一个或多个剩余片段与中间 片段和多数片段相对应,其中中间片段和多数片段各自都与对象的整个文件尺寸相对应。
10.一种由计算机实现的方法,包括在高速缓存组件处接收用于存储的对象;以及将对象分割为用于存储在存储器中的初始化片段、和用于存储在等待时间比存储器的 等待时间长的介质中的多数片段,其中,初始化片段的尺寸基于对所请求对象的另一有关 对象的请求频率。
11.如权利要求10所述的由计算机实现的方法,其中,多数片段与对象的整个文件尺 寸相对应。
12.如权利要求10所述的由计算机实现的方法,其中,所述一个或多个剩余片段不被 保留在存储器中以供后续处理。
13.一种由计算机实现的方法,包括 在高速缓存组件处接收用于存储的对象; 确定对象的初始化片段和多数片段;将存储器中的存储位置与初始化片段相关联;将存储位置与多数片段相关联,其中,多数片段的关联的存储位置与等待时间比存储 器的等待时间长的介质相对应; 确定是否应该更新初始化片段;如果是,则将存储器中的存储位置与增量片段相关联,其中,增量片段补充初始化片段。
14.如权利要求13所述的由计算机实现的方法,其中,确定是否应该更新初始化片段 是基于对对象的请求频率的,使得增量片段的尺寸的改变基于请求频率的改变。
15.如权利要求13所述的由计算机实现的方法,其中,确定是否应该更新初始化片段 包括为初始化片段确定新文件尺寸,其中初始化片段和增量片段与新文件尺寸相对应。
全文摘要
提供了一种在高速缓存服务器计算设备处对资源请求进行管理和处理的系统和方法。高速缓存服务器计算设备将内容分割为用于存储在存储器中的初始化片段和用于存储在等待时间比存储器长的介质中的一个或多个剩余片段。当接收到对内容的请求时,高速缓存服务器计算设备从存储器发送初始化片段,获取一个或多个剩余片段,并发送一个或多个剩余片段,而不将一个或多个剩余片段保留在存储器中以供后续处理。
文档编号G06F13/00GK102067094SQ200980111426
公开日2011年5月18日 申请日期2009年3月31日 优先权日2008年3月31日
发明者克里斯托弗·L·斯科菲尔德, 大卫·R·理查森 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1