拓扑敏感的缓存协作 相关申请的交叉引用
本申请主张于 2009 年 2 月 20 日申请的、 序列号为 61/208,176 的临时专利申请之 权益, 该临时申请以引用方式包含于此。
技术领域
本发明涉及内容分发网络领域, 更具体地, 涉及对内容分发和存储的管理。 背景技术
内容分发网络 (CDN) 包含分布在网络基础设施中的缓存设备 (cache)。这些缓存 设备通常被安置在遵循底层网络拓扑结构的层级中。 每个缓存设备通常包含一个与用于存 储内容的海量存储设备相关联的网络单元或网络节点。 每个缓存设备仅服务于直接附属该 缓存设备的用户, 即在该分发层级中位于该缓存设备之下的用户。缓存设备之间的合作主 要限于父缓存设备和兄弟缓存设备之间的流量交互。在此架构中, 该层级中同一层的所有 缓存设备大部分具有相同的内容。 它们一旦接收到一个请求, 可直接提供所请求的内容, 如 果所请求的内容已存储在缓存设备中 ( 即, 缓存命中 ), 或者如果该内容没有存储在缓存设备中 ( 即, 缓存未命中 ), 则将该请求转发至父缓存设备。
利用底层网络基础设施的扁平结构, 以及通过 IP 编址的方式进入内容分发层级 的能力, 使得缓存设备从内容分发网络中其他缓存设备获取内容成为可能。 即, 如果一个子 缓存设备本地未存有所请求的内容对象或标题的备份, 那么它可以向除其父缓存设备以外 的其他缓存设备请求项目。 在一个扁平化内容分发网络中, 进行初始决策, 该初始决策涉及 哪些内容对象或标题应该被存储在哪些缓存设备中, 以及一个内容对象在整个内容分发网 络中应存储多久。内容请求被路由至最能够响应该请求的缓存设备。对内容对象进行初始 分发之后, 在缓存设备之间并无对存储内容的进一步协作。 发明内容 现有技术中这些和其他各种不足, 通过一种在内容分发网络 (CDN) 环境中提供协 调的全局与局部缓存管理功能的系统、 方法和设备, 得以解决。 本地缓存设备或内容存储节 点 (CSN) 包括一个供局部空间和联合空间之间分割或分配的本地海量存储设备, 其中, 局 部空间主要用于更受欢迎的内容, 而联合空间主要用于次受欢迎的内容。与每个内容对象 相关联的效用参数都会受到监控, 并用于在组成内容分发网络的各种缓存设备的局部空间 和联合空间之间迁移内容。所述联合空间作为一个更大的虚拟联合空间的一部分来管理, 该虚拟联合空间是通过组合多个内容存储节点的联合空间来建立的。
可选地, 在父内容存储节点与子内容存储节点之间的反向信道容量, 用于方便内 容在同层或不同层的缓存设备之间的高效迁移。 使用该反向信道容量的决策取决于可用通 信信道的类型的成本、 海量存储的成本、 内容对象的文件大小和 / 或其他因素。
这样, 各种实施例利用网络中一组分布式缓存设备节点间的协作, 可选地结合该
底层网络的拓扑信息, 以通过对磁盘空间与未使用的上行容量的使用来降低传输带宽的成 本。 附图说明
通过结合附图来考虑以下的具体实施例, 本发明的教导将更容易被理解 : 图 1 描述了基于一个实施例的内容分发系统 (CDS) 的高阶框图 ; 图 2 描述了一个适用于执行在此描述的功能的通用计算机的高阶框图 ; 图 3-5 图示出基于多种实施例的缓存设备的存储器使用情况 ; 图 6 描绘了基于一个实施例的存储分配方法的流程图 ; 以及 图 7 描绘了一个适用于图 6 中存储分配方法的内容晋级 / 降级方法的流程图。 为了帮助理解, 尽可能地, 相同的编号用来指代图中相同的要素。具体实施方式
本发明将在内容分发网络 (CDN) 环境中阐述, 该内容分发网络包括由内容存储节 点或缓存设备构成的层级, 其中, 父 / 子 ( 上行 / 下行 ) 通信通路被用于在相同或不同层级 的缓存设备之间迁移内容。
各种实施例将单个缓存设备的存储空间分配给局部空间和联合空间, 其中, 局部 空间主要用于更受欢迎的内容, 而联合空间主要用于次受欢迎的内容。表明内容受欢迎程 度的参数都会被监控, 并用于在构成内容分发网络的各种缓存设备的局部空间和联合空间 之间迁移内容。缓存设备中局部空间和联合空间的相对容量可能随时间变化, 以响应在内 容受欢迎程度、 缓存设备间内容请求的差异程度、 局部 / 区域内容偏好等方面的全局或局 部变化。
各种实施例利用父内容存储节点与子内容存储节点间现存的反向信道容量, 以促 进缓存设备之间内容的高效迁移。在此情况下, 成本较低 ( 且已存在 ) 的、 与父节点相关联 的正向和反向数据信道, 可用于在与共同的父节点相关联的子节点间迁移内容。
本发明的部分基于发明人的认知 : 虽然内容分发网络中的网络流量往往是不对称 的, 下行方向的需求高于上行方向的需求, 但现今网络中的大部分具有对称的容量。因此, 上行带宽通常是可用的且未充分使用的, 这使得内容的对等 ( 例如, 子节点到子节点 ) 迁移 也许能够在不增加网络传输资源的情况下进行, 因为现存 ( 闲置 ) 的资源也许能够被使用。
各种实施例利用这些否则闲置的网络资源, 来增加缓存设备间的内容迁移的容 量, 以便更智能地在联合缓存的环境中构建可用资源池。 组合或者联合缓存内容分发网络, 提供比层级内容分发系统中传统可用的内容存储大得多的内容存储, 这部分归功于需要存 储在每个缓存设备中的内容对象或对象的数量的减少。内容请求的对等满足的增长, 也减 少了必须上行发送给与高成本通信资源相关的内容演化 (content evolves) 或其他网络单 元的请求数量。
图 1 描绘了基于一个实施例的内容分发系统 (CDS) 的高阶框图。图 1 中内容分发 系统 100 运转以分发诸如电影、 电视节目、 音乐等内容。一般来说, 内容对象或对象最初存 储在一个内容库中或由一些其他内容源提供, 例如, 该内容分发系统中的远程服务器或缓 存设备。特别地, 图 1 中的内容分发系统 100 包含一个中央或顶层的内容汇聚节点 110, 内 容汇聚节点 110 接收来自内容库 150 或其他内容源 160 中任一个的内容。 内容汇聚节点 110 将内容分发至多个第二层网络单元中的每一个, 该多个第二层网络单元作为内容存储节点 进行工作, 并以网络单元 120-1 至 120-N 表示 ( 所有第二层网络单元以 120 集中表示 )。第 二层网络单元 120 中的每一个都将内容分发至各自的多个第三层网络单元, 该多个第三层 网络单元作为内容存储节点进行工作, 并以网络单元 130-1 至 130-N 表示 ( 所有第三层网 络单元以 130 集中表示 )。第三层网络单元 130 中的每一个都将内容分发至各自的多个客 户端设备, 该多个客户端设备用 140-1 至 140-N 表示 ( 所有客户端设备用 140 集中表示 )。
内容汇聚节点 110、 第二层网络单元 120 和第三层网络单元 130 共同表示一个接入 网络, 该接入网络适用于支持客户端设备 140 在必要时访问核心网络 180。
内容库 150 示为直接和 / 或通过核心网络 180, 与内容汇聚节点 110 通信, 而其他 内容源 160 通过核心网络 180 与内容汇聚节点 110 通信。
图中也示出与核心网络 180 通信的网络管理设备 170。网络管理设备 170 在各种 实施例中作为内容管理设备进行工作, 该内容管理设备适用于管理多个内容缓存设备的海 量存储设备中联合空间的分配。 尽管网络管理设备 170 示为仅与核心网络 180 通信, 但本领域技术人员应该理解, 网络管理设备 170 可与被管理的网络中任何适合的网络单元进行通信, 例如内容汇聚节点 110。此外, 尽管网络管理设备 170 示为一个单独单元, 网络管理设备 170 可包含于内容汇 聚节点 110、 第二层网络单元 120 和第三层网络单元 130 中的任一个。
图 1 中所示内容分发系统 110 为一个实施例的简化表示。 发明人认为, 可对系统 1 进行多种变化。例如, 本领域技术人员应该理解, 尽管示出一单个内容汇聚节点 110 以简化 讨论, 但也可采用多个内容汇聚节点, 并且这种使用情况属于发明人所认知到的。类似地, 尽管仅示出了两个层级 (120/130) 的内容存储节点, 更多或者更少层级的内容存储节点也 可用于各种实施例的环境。另外, 术语 “多个 (plurality)” 的使用, 虽然它所涉及内容存储 节点、 客户端设备等物的数量, 但不应该被解释为表示一个特定数值。例如, 第二层网络单 元 120 的数量 N 不必等同于第三层网络单元 130 的数量 N 和 / 或客户端设备 140 的数量 N。
内容汇聚节点 110 经由各自的高带宽 ( 且高成本 ) 通信信道 HBC, 将内容传递给 第二层内容存储节点 120 中的每一个。第二层内容存储节点 120 经由各自的正向信道 FC 和反向信道 RC, 与对应的第三层内容存储节点 130 通信。第三层内容存储节点 130 经由如 标准的最后一英里通信信道 (LM), 与其各自邻近的客户端设备 140 通信。在一个与电信网 络相关的实施例中, 内容汇聚节点 110 包括局间通信中心, 第二层内容存储节点 120 中的 每一个包括中心局 (CO), 第三层内容存储节点 130 中的每一个包括数字用户线接入复用器 (DSLAM)。在与有线电视网络相关的其他实施例中, 内容汇聚节点包括有线电视头端设备。
内容存储节点 120/130 中的每一个都和一个或者多个用于存储内容对象的海量 存储设备相关联。一个内容存储节点的典型配置将在下面参照图 2 更详细地论述。
在常规操作中, 客户端设备 140 向服务于客户端设备的内容存储节点 130 请求内 容。如果和内容存储节点 130 相关联的海量存储设备包含所请求的内容, 那么该内容将被 直接提供给该客户端设备。否则, 必须从另一内容存储节点、 内容汇聚节点 110、 内容库 150 或一些其他内容源 160 中获取该内容。在后一种情况中, 获取并提供所请求的内容所需要
的时间, 一定程度上降低了用户体验。
内容存储节点 120/130 中的每一个, 在其海量存储设备中, 只能存储通过内容分 发网络可获取的全部内容中的一部分。与内容存储节点 120/130 相关联的海量存储设备被 分配给局部空间和联合空间, 这将会在下文中更具体地论述。
内容分发系统中的每个内容对象都有一个与其相关联的效用参数。 该效用参数基 于以下一个或多个因素 : 内容对象的受欢迎程度、 内容对象的文件大小、 内容对象的位置、 内容对象的获取成本和其他因素。 可选地, 对这些因素按其相互关系进行加权处理。 根据内 容的相对受欢迎程度、 存储空间的成本、 对等带宽的使用率、 父到子带宽的使用率等方面, 来选择与内容对象的效用参数相关联的因素。
可选地, 内容对象的效用水平, 在局部效用水平和 / 或联合效用水平的范围中被 构造, 其中, 局部效用水平包括涉及与内容存储节点相关联的子网内的客户端设备的内容 对象的效用水平, 而联合效用水平包括涉及整个内容存储节点的内容对象的效用水平。
各种实施例调整存储在局部空间和联合空间中的特定内容对象, 以响应与可用内 容对象相关的效用参数的变化。例如, 在一个实施例中, 最受欢迎的内容对象存储在每个 内容存储节点的局部空间中, 而次受欢迎的内容对象分布在所有内容存储节点的联合空间 中。内容存储节点的局部空间是有限的, 因此使用基于相对效用的内容对象的等级排序列 表, 以决定哪些内容对象被存储在局部空间中。 可将优先权给予更受欢迎的内容对象、 文件 大小更小的内容对象等。如果一个内容对象的受欢迎程度随时间推移降低 ( 例如, 相对效 用降低 ), 其可能从局部空间中 “被降级” 并移至联合空间中。类似地, 如果一个内容对象随 时间推移变得更受欢迎 ( 例如, 相对效用增加 ), 则其可能从联合空间、 内容库或其他内容 源中 “被晋级” 至局部空间。 一般来说, 更受欢迎并因而被更频繁请求的内容对象或标题, 将趋于具有更高的 价值效用参数, 从而该等内容对象或标题将趋向于被存储在局部空间中。 在此情况下, 诸如 新电影、 电视节目、 体育赛事、 音乐等非常受欢迎的内容对象将趋向被存储在本地, 以便为 请求用户提供更快速的数据流。
各种实施例以及进一步的实施例, 调整内容存储节点中局部空间和联合空间的比 例, 以响应与满足内容对象请求相关的成本变化。例如, 在海量存储相对便宜而带宽成本 ( 例如, 在内容汇聚节点 110 和第二层内容目的节点 120 之间 ) 相对昂贵之处, 在本地存储 更多内容对象、 文件更大的内容对象等, 变得更为可取。在这种情况下, 所增加的海量存储 设备的容量和 / 或该海量存储设备的局部空间所增加的分配是合适的。类似地, 在海量存 储相对昂贵而带宽成本相对便宜的场景中, 在本地存储更少的内容对象、 文件更小的内容 对象等, 变得更为可取。在这种情况下。所减少的海量存储设备的容量和 / 或该海量存储 设备的局部空间所减少的分配是合适的。
各种实施例以及进一步的实施例运转, 以将内容移至更可能需要该内容的内容存 储节点, 例如, 将特定族群的内容移至服务于相应族群群体的内容存储节点。 这可能出现在 关于特定族群内容的逐渐增长的请求提高了这类内容的相对效用水平的情况下。
在各种实施例中, 网络管理设备 170 调整与缓存设备或内容存储节点相关的一个 或多个海量存储设备中局部空间和联合空间的分配。在各种实施例中, 网络管理设备 170 通过诸如调整用于确定与每个内容对象相关的效用参数的因素的相对权重, 调整内容存储
节点的运行。在此情况下, 可调整存储分配方法, 以响应网络性能和 / 或成本准则的变化。
在各种实施例中, 网络管理设备 170 使得内容分发系统在虚拟联合空间中分配相 对次受欢迎的内容, 该虚拟联合空间是通过逻辑组合或聚集分配在与传统节点内容相关的 海量存储设备中的联合空间来创建的。可以预见各种分配方法, 包括基于一个或多个关于 内容对象效用的因素的分发方法, 该等因素将后续论述。
图 2 示出了一个适用于执行此处所描述功能的通用计算机的高阶框图。特别地, 系统 200 包括一个或多个处理单元 220( 例如, 中央处理器 (CPU))、 存储器 230, 如随机存取 存储器 (RAM) 和 / 或只读存储器 (ROM), 以及多种输入 / 输出设备 210( 例如, 存储设备, 包 括但不限于磁带驱动器、 软盘驱动器、 硬盘驱动器或光盘驱动器、 接收装置、 发送装置、 扬声 器、 显示器、 输出端口、 通信网络接口和用户输入设备 ( 例如键盘、 数字键盘、 鼠标等 ))。另 外, 还示出了一个本地存储设备 240, 例如一个或多个诸如硬盘驱动器、 磁盘驱动器阵列等 海量存储设备。
系统 200 是有助于实现此处所描述的各种功能的基本计算单元的简化表示, 该等 功能涉及参照图 1 的上述内容、 内容存储节点 120/130 和 / 或客户端设备 140。存储器 230 示为包括存储分配工具 232 及内容服务和监控工具 234。在各种实施例中, 存储分配工具 232 包括由内容存储节点 120/130 中每一个所执行的软件指令。 在各种实施例中, 内容服务 和监控工具 234 包括由内容汇聚节点 110、 网络管理设备 170 和 / 或分发节点 120/130 所执 行的软件指令。 可以预见, 此处作为软件方法讨论的步骤中的一些步骤可在硬件中实施, 例如, 像 与处理器配合以执行各种方法步骤的电路。本发明的部分可以作为计算机程序产品来实 现, 其中, 计算机指令当由计算机执行时, 调整该计算机的操作, 以使本发明的方法和 / 或 技术被调用或者另行提供。 用于调用这种发明方法的指令可以被存储在固定的或可移动的 媒介中, 通过在广播或者其他信号承载媒介中的数据流被传输, 和 / 或被存储在根据指令 运行的计算设备的工作存储器中。 因此, 一个实施例包括一装置, 该装置包含用于存储软件 指令的存储器和用于执行软件指令的处理器的装置, 其中, 当该等软件指令由该处理器执 行时, 使该装置执行一种或多种基于此处讨论的各种实施例的方法。
基于该等各种实施例的方法调整各种内容缓存设备或内容存储节点的操作, 以由 此提供一个缓存联合 ( 即, 多个相互协作的缓存 )。在此情况下, 最可能被客户端设备请求 的内容, 对该客户端设备而言, 也为最有可能访问就绪的内容。
在各种实施例中, 在内容存储节点中可用存储器的一个可变部分被分配给缓存联 合。 对未被分配给该缓存联合的存储器进行本地管理, 而分配给该缓存联合的存储器, 通过 与其他内容存储节点中被分配给缓存联合的存储器相协调的方式进行管理。
在一个实施例中, 未被分配给缓存联合的存储器用于存储被认为最受欢迎的内容 对象。一个内容对象的受欢迎程度可由用户总数量 ( 例如, 与一个特定节点、 一组节点或整 个网络相关联的内容对象请求的数量 )、 与一个特定内容存储节点相关联的区域人口统计 等决定。因此, 一个受欢迎的内容对象或标题也许会在许多 ( 或所有 ) 内容存储节点的本 地管理的存储器中被多次存储。
在一个实施例中, 被分配给缓存联合的存储器用于存储, 相对未分配给缓存联合 的存储器中所存储的内容对象, 次受欢迎的内容对象。 在各种实施例中, 缓存联合中仅存储
该等次受欢迎的内容对象的一个副本。例如, 假设一个由 10 个内容存储节点构成的缓存联 合存储有总数为 10000 的次受欢迎的内容对象, 该缓存联合的 10 个内容存储节点中的每一 个都分别存有 1000( 大约 ) 个次受欢迎的内容对象。 在其他的实施例中, 一些或者所有次受 欢迎的内容对象被存储在多个内容存储节点中 ( 虽然不是在所有的内容存储节点中 )。缓 存联合的作用是将多个内容存储节点或缓存设备的可用存储器抽出, 以组成单个大缓存。
图 3 从一单个缓存设备的视角, 图示出了局部和联合存储空间。特别地, 图 3 示出 了一个父内容存储节点 120, 其与两个子内容存储节点 130-1 和 130-2 通信。 内容存储节点 130-2 示为与各自子网络中多个客户端设备 140 通信。与内容存储节点 130-2 相关联的海 量存储设备 240, 示为包含分配给联合空间和局部空间的存储空间。
图 3 还示出了一个全局受欢迎度图 (GP) 和子网受欢迎度图 (SP)。该全局受欢迎 度图示出了在与内容分发网络 ( 或内容分发网络的地理区域 ) 中所有内容存储节点相关的 用户中的内容受欢迎度。 子网受欢迎度图示出了在与一个特定的内容存储节点相关的用户 中的内容受欢迎度。该等图中每个竖条都与一个或多个具有特定受欢迎度等级 ( 或受欢迎 度等级范围 ) 的内容对象相关联, 其中该等竖条的长度表示内容对象的相对受欢迎度。也 就是说, 一个相对较长的竖条表示相对更受欢迎的内容。
该局部空间包括由子网用户或客户端设备确定的最受欢迎的文件和内容对象。 也 就是说, 在一个与子网相关联的内容存储节点的局部空间中, 存储着一个或多个最受欢迎 的分段。 由于与其他内容存储节点相关联的子网中的用户或客户端设备也许会在该等其他 子网中展现相似的内容偏好或受欢迎度, 因此, 在内容分发网络中的其他位置, 可产生文件 和 / 或内容对象的一个可能的副本。该子网受欢迎度图 SP 示出了一个特定子网的内容对 象的子网受欢迎度的图形表示。
联合空间包括该内容分发系统中可用的剩余文件和内容对象中的一部分。 也就是 说, 在与该子网相关联的内容存储节点的联合空间中, 将存储一个或多个剩余的受欢迎分 段。受欢迎内容对象或标题的其他分段, 存储于与一个或多个其他内容存储节点相关联的 海量存储设备中所分配的联合空间。
需要指出的是, 与联合空间相关联的受欢迎度曲线, 包括在形成整个联合存储空 间或虚拟联合存储空间的多个缓存中存储的分段。基于该等各种实施例的方法, 将调整局 部和联合存储空间的比例, 以及存储在该局部和联合存储空间中的内容对象, 以实现向更 高效分发内容分发网络中内容对象的渐进发展。 该效率, 正如在此详述的, 反映了内容迁移 / 服务器效率, 以及带宽利用效率, 如层级拓扑的对等通信中的反向信道。
在一个实施例中, 联合空间包括在整个内容分发网络中受欢迎的文件和内容对 象, 而未复制在内容分发网络中他处可获取的内容对象。
在另一个实施例中, 联合空间包括存储在多个内容存储节点中的文件和内容对 象。这种联合空间中内容对象的多副本存储, 对于内容分发系统中的内容对象的区域分配 和 / 或层级分配的场境特别有用。在本实施例中, 联合空间中所存储的内容对象的副本数, 可选地, 受限于一个数字或数量阈值。
图 4 从网络视角图示出了局部和联合存储空间。特别地, 图 4 示出了一个父内容 存储节点 120, 其与两个子内容存储节点 130-1 和 130-2 通信。该等内容存储节点 130 中的 每一个, 示为与各自子网络的客户端设备 140 通信。内容存储节点 130 中的每一个都和各自的海量存储设备 240 相关联。海量存储设备 240-1 示为将其 75%的容量分配给联合空 间, 25%的容量分配给局部空间。海量存储设备 240-2 示为将其 50%的容量分别分配给联 合和局部空间。
从网络视角来看, 虚拟联合空间 410 是由两个海量存储设备的联合空间分配来确 定的。 在增加更多内容存储节点的内容分发网络环境中, 随着联合空间被分配的容量增长, 虚拟联合空间 410 变得越来越大。
上述缓存联合能够存储巨量的内容对象, 故而能够服务巨量的内容隧道请求。然 而, 内容对象在缓存联合的内容存储节点中的分布式存储增加了各个内容存储节点间的流 量, 因为内容对象或标题在缓存设备间被迁移以满足用户的请求。
一般来说, 缓存联合中的每个缓存设备在其本地存储器中存储有最受欢迎项目的 备份。其存储比局部项目次受欢迎、 但比未存储在其联合存储中的项目更受欢迎的项目的 副本, 如果该等项目未存储在其他缓存设备的联合存储中。 其将关于其未包含、 但存储于该 联合中另一缓存设备的内容的请求, 路由至该缓存设备。
局部和联合存储间的分隔是动态且可变的。用于联合缓存的存储容量控制 1) 对 等链路上的负载和 2) 缓存设备间链路上的负载。也就是说, 可选地, 根据缓存设备间的链 路使用率, 调整存储资源的分配。如果缓存设备间的带宽可用, 通过增加联合存储的部分, 联合和局部间的资源分配能够用来减小源服务器的负载。 一种特殊情况是, 如果联合缓存经一拓扑连接, 其中, 被交换的流量流过从源缓存 设备至下一跳路由器的上行链路, 接着下行至目标缓存设备。 在大多数网络中, 由于互联网 流量的不对称性, 上行链路未被充分使用, 并可被用于缓存协作。 下行链路上的负载将变化 很小, 并且, 由于该内容仍需被传递至该目标缓存设备, 这种变化应是不可避免的。在这种 结构中, 缓存设备间交换的流量不和其他流量竞争。在此场景中, 例如, 将 95%的存储容量 用于联合缓存, 将 5%用于局部缓存, 已由发明人确定为一个健壮的设置, 该设置较好地工 作于很多拓扑, 例如下面参照图 5 所描述的拓扑。
图 5 图示出了几种内容分发网络的拓扑结构。 特别地, 图 5 图示出了层级拓扑 510 的框图、 缓存联合层内连接拓扑 520 和缓存联合层际连接拓扑 530。 示例性地, 拓扑 510-530 中的每一个包括用 L1、 L2、 L3 表示的内容存储节点或缓存设备的三层层级, 如关于图 1 中系 统 100 的前述部分。最底层 (L3) 将内容分发给请求该内容的客户端设备 C。L1-L2 通信资 源的成本高于 L2-L3 通信资源的成本。L2-L3 通信资源的成本高于 L3-L2 客户端通信资源 的成本。
正如此处所示, 各种实施例通过利用内容分发网络中未充分使用的资源来提高该 网络的效率。 特别地, 各种实施例调整在此所述的缓存联合算法, 以动态调整内容分发网络 中上行链路和下行链路间的负载, 从而使层级间上行和下行流量变得更加对称。 也就是说, 通过尽可能地平衡 L2-L3 的流量, 可能使 L1-L2 的流量显著减小。L1-L2 流量的这一减小 为网络运营者提供了极大的成本节约。 通常, 分配给联合存储空间的存储容量的增加, 增加 L3-L2 上行流量的数量并减小 L1-L2 下行流量的事件。
图 5 分别在拓扑模型 510、 520-1530 的下方, 示出对应的柱状图 515、 525 和 535。 从左向右, 每个柱状图表示 L1-L2 通信水平 / 成本、 L2-L2 通信水平 / 成本和 L2-L3 通信水 平 / 成本。
在层级拓扑 510 中, 该层级 L1、 L2 和 L3 中每一层的节点或缓存设备, 仅与父或子 节点通信。缓存联合层内连接拓扑 520 通过增加 L2-L2 通信来改进层级拓扑 510。所增加 的 L2-L2 通信运行, 以减少 L1-L2 通信, 并从而降低了 L1-L2 通信的成本。 相似地, 缓存联合 层际连接拓扑 530 通过增加额外的 L2-L3 通信信道来改进层级拓扑 510。所增加的 L2-L3 通信信道也运行, 以减少 L1-L2 通信, 并从而降低了 L1-L2 通信的成本。
因此, 实施例预见利用拓扑构建的内容分发网络, 该等拓扑基于图 5 中所示特定 拓扑 510-530 中的任一个。备选实施例预见利用这些拓扑的变形构建的内容分发网络, 例 如, 增加 L2-L2 链路或通信信道, 以及额外的 L2-L3 链路或通信信道。
上文中参照图 1 和图 5 的所述的内容分发网络 (CDN) 拓扑结构, 提供了一种内容 存储节点 (CSN) 的层级排布, 其中, 最低层级的内容存储节点与各自的客户端组相关联, 较 高层级的内容存储节点与各自较低层级的内容分发节点组相关联, 等等。多个顶层内容存 储节点中每一个都示为与内容汇聚节点 110 通信。需要注意的是, 和内容汇聚节点 110 相 关联的功能, 可通过诸如一个或多个顶层内容存储节点来执行。
网络管理设备利用多种存储分配方法, 以趋于改善效率和降低成本的方式, 来调 整任一拓扑中内容缓存设备或内容存储节点中联合和局部空间的分配。如前所述, 网络拓 扑结构的变化, 例如增加或删除对等链路、 层际连接或层内连接, 以及通信信道过载 ( 即, 带宽使用率超过预期特定水平 ) 等等, 供网络管理设备使用, 来可信赖地调整一个或多个 内容存储节点中联合 / 局部空间的分配。 图 6 示出了基于一个实施例的存储分配方法的流程图。例如, 存储分配方法 600 适用于内容存储节点, 如参照图 1 的前述内容存储节点。
方法 600 开始于步骤 610, 当接收到一个关于内容对象的请求时, 例如从一个客户 端 140 接收该请求 .
在步骤 620 中, 所请求的内容对象的效用被确定。 也就是说, 参照方框 625, 利用一 个或多个下列因素, 来确定与该内容对象相关的效用参数 : 该内容对象的受欢迎度, 该内容 对象的文件大小, 该内容对象的位置, 获取该内容对象的成本消耗和 / 或其他因素。
在步骤 630 中, 所请求的内容对象的位置被确定。 也就是说, 参照方框 635, 确定该 所请求的内容对象是否存储在本地存储设备的局部空间、 本地存储设备的联合空间、 远程 存储设备的联合空间、 内容库或其他内容源中。
在步骤 640 中, 开始向请求用户提供该内容对象。也就是说, 在各种实施例中, 在 请求用户和与所请求的内容对象相关联的服务器间建立会话, 其中, 所请求的内容对象以 内容流或文件的形式传送给该用户。
在步骤 650 中, 如与所请求的内容对象相关联的效用参数所指示, 执行内容晋级 / 降级方法。参照方框 645, 所请求的内容对象根据其效用水平被优先地存储在 ( 按优先级 的降序 ) 本地存储设备的局部空间、 本地存储设备的联合空间以及远程存储设备的联合空 间。假设本地存储设备的局部空间已被充分利用, 所请求的内容对象在该局部空间中的存 储, 要求从局部空间中删除 ( 即, 降级 ) 一个现已存储的内容对象。 然后, 从局部空间中被降 级的内容对象 ( 或所请求的内容项目, 若其效用水平太低 ) 将优先被存储在本地存储设备 的联合空间中, 这也许依次要求从这个联合空间中删除 ( 降级 ) 一个现已存储的项目。接 着, 效用水平最低的所请求的内容对象或被降级的内容对象, 优先被存储在另一内容存储
节点的联合空间中。一个内容晋级 / 降级方法的实施例将在下文参照图 7 论述。
可选地, 对与所请求内容相关联的晋级 / 降级方法进行调整, 以响应副本数量较 高阈值和副本数量较低阈值中之一或两者。在一个实施例中, 副本数量较高阈值为可存储 在联合空间中的内容对象的副本的最大数量。在一个实施例中, 副本数量较低阈值为可存 储在联合空间中内容对象的副本的最大数量, 其中一个额外副本的存储将会导致另一内容 对象的删除 / 降级。在其他实施例中, 只有单个副本数量阈值和每个内容对象相关联, 该单 个副本数量阈值表示内容对象在联合空间中可被存储的次数。
应该理解, 在各种实施例中, 存储决策的频率也许高于内容分发系统中交换的信 息, 以至于副本的实际数量也许会变化。因此, 在任一给定时间, 副本的数量也许比目标值 / 阈值小或者大。
在步骤 660 中, 视情况执行本地存储的分配。也就是说, 在步骤 660 中, 海量存储 设备中局部空间分配和联合空间分配的比例视情况被调整。参照方框 665, 调整该分配, 以 响应带宽成本变化 ( 即, L1-L2 或 L2-L2 带宽成本的减小或增大 )、 存储成本的变化 ( 即, 海 量存储或缓存存储成本的减小或增加 )、 拓扑结构的变化 ( 例如上述参照图 5 所示 ) 和 / 或 其他因素。 本领域技术人员应该理解, 尽管图 6 的方法 600 示为以一个特定的顺序实现步骤, 但可在仍在实践本发明时调整该特定顺序。例如, 提供内容对象 (640) 给请求用户的步骤, 可在确定所请求的内容对象的效用 (620)、 执行任何与所请求的内容对象相关的晋级 / 降 级操作 (650) 或执行任何本地存储再分配操作 (660) 等步骤之前或之后启动执行。 类似地, 本地存储再分配步骤 (660) 可在任何时间执行。
图 7 示出了一个内容晋级 / 降级方法的流程图。图 7 的内容晋级 / 降级方法适用 于, 例如, 图 6 的存储再分配方法 600。
方法 700 开始于步骤 710, 当所请求的内容对象的效用与存储在局部空间中的内 容对象的效用相比较时。 如果所请求的内容对象的效用未大于局部空间现有的内容对象的 效用, 则该方法跳转至步骤 740。 否则, 在步骤 720 和 730 中, 所请求的内容对象在局部空间 中, 替代具有较低效用的局部空间现有的内容对象。特别地, 在步骤 720 中, 所请求的内容 对象被存储在 ( 即, 晋级至 ) 该局部空间, 而在步骤 730 中, 局部空间现有的内容对象被从 局部空间中移除 ( 即, 降级 )。
在步骤 740 中, 被降级的局部空间的内容对象 ( 或所请求的内容对象, 若步骤 710 中的查询被否定回答 ) 的效用, 被与存储在联合空间的内容对象的效用相比较。如果被降 级的局部空间的内容对象 ( 或未被晋级的所请求的内容对象 ) 具有比联合空间现有的内容 对象更大的效用, 则该方法跳转至步骤 750。否则, 该方法结束。
在步骤 750 中, 确定被降级的局部空间的内容对象 ( 或未被晋级的所请求的内容 对象 ) 在联合空间所存储的副本的数量是否超过数量阈值。如果是, 则该方法结束。否则, 在步骤 760 和 770 中, 被降级的局部空间的内容对象 ( 或未被晋级的所请求的内容对象 ) 在 联合空间中, 替换具有较低效用的联合空间现有的内容对象。特别地, 在步骤 760 中, 被降 级的局部空间的内容对象 ( 或未被晋级的所请求的内容对象 ) 被存储在联合空间中, 而在 步骤 770 中, 具有较低效用的联合空间现有的内容对象从联合空间中被移除 ( 即, 降级 )。
本领域技术人员应该理解, 尽管图 7 的方法 700 示为以一个特定的顺序实现步骤,
但可在实践本发明时调整该特定顺序。 此外, 应能理解, 可修改此处参照附图阐述的各实施 例, 以响应与不同内容对象相关联的不同文件大小。 例如, 文件相对较小的多个内容对象可 能被晋级和 / 或降级, 分别地, 对文件相对较大的内容对象执行降级和 / 或晋级。例如, 一 个高效用的、 具有庞大文件的内容对象, 可替代局部空间中两个或更多个内容对象。 该等被 代替或降级的内容对象自身可替代联合空间中多个内容对象。 在一个实施例中, 其中, 被替 代或者被降级的内容对象中只有一个能被插入联合空间中, 确定优先选择具有最高效用的 内容对象。如果存在空间不足, 那么尽可能插入文件较小的内容对象。
此处描述的方法运行, 以随内容受欢迎度的变化, 递增地和 / 或逐步地调整海量 存储设备中局部空间和联合空间的分配比例。 那些趋于极受欢迎的内容对象, 随时间流逝, 将被存储在内容存储节点的局部空间中。 那些趋于极不受欢迎的内容对象, 随时间流逝, 将 被从局部空间中移除降级, 并仅存储在联合空间中, 或者, 如果足够不受欢迎, 仅存储在内 容库或其他非缓存位置中。假设内容对象受欢迎度 ( 例如, 参照图 3 的上述标注 ) 为正态 分布曲线, 各种实施例运行, 以便在各内容存储节点或缓存设备中的每一个的局部空间和 联合空间之间, 平衡基于受欢迎度的内容对象的存储。
一个实施例中提供了一种改进的缓存管理方法, 其中, 在内容分发网络中, 调整多 个内容存储节点中内容缓存的操作, 以逐渐由个体缓存转向协作缓存。 在此情况下, 因减少 内容的复制而提高的缓存效率, 与因增加本地受欢迎内容的副本而提升的效率相平衡。也 就是说, 尽管完全缓存协作显著降低了指向源服务器的带宽 ( 其直接转换为关于互联网服 务提供商的对等链路的带宽节省 ), 但完全缓存协作也确实增加了缓存设备间的交互流量 的总量。通过智能地选择缓存协作的阈值水平, 一个基于多种实施例的内容分发网络利用 其可用资源来减少对等链路。在各种实施例中, 提供一种回转 (U turn) 配置, 其中, 内容存 储节点利用通常未被使用的带宽来再分发内容。
本发明为支持内容传播和 / 或分发的网络运营者提供了显著的优势, 所述网络运 营者能够将存储设备放置在网络中, 并知悉底层网络拓扑结构。 优势包括带宽成本的节约、 闲置资源的利用率提高和改善的客户服务。
所提出的方案使用网络内部一组分布式缓存节点间的协作, 以及底层网络拓扑结 构的信息, 以通过利用磁盘空间和闲置的上行链路的容量, 降低传输带宽的成本。
在一个实施例中, 服务于一个具有很强人口偏好的地理区域的内容存储节点, 将 趋向于接收关于内容对象的请求, 该等内容对象在他处, 特别是对网络中同层的其他节点, 一般较少被关注。 该方案将使该节点将其可用存储中的大部分用于其局部部分, 其中, 该局 部部分将为其所服务群体保存最受欢迎的对象。小部分存储将被用作联合空间, 并将保存 在整个网络中适度受欢迎的内容对象。局部空间和联合空间的比例, 根据族群内容和一般 兴趣内容的比例来被调整。 因此, 这部分网络的流量中的相当部分在本地得到服务, 从而改 善响应速率并减少该节点的上行链路的使用率。
在另一个实施例中, 一给定对象的全局受欢迎度的突然增加, 将会使整个网络中 保持其多个副本。 每个副本将被存储在节点的局部缓存部分, 这会缓解来自源节点的流量, 并支持网络适应流量模式中该突变, 同时保持低响应时间和增强的响应能力。
在另一个实施例中, 曾很受欢迎但受欢迎程度开始降低的对象, 将开始逐渐从网 络所有缓存设备的局部部分中被移除, 并将被存储在一个节点的联合部分。由于其受欢迎水平持续降低, 其最终将被从所有存储空间中移除。 使用这种办法, 该对象将被从网络内部 提供, 而不需要从内容源中获取它, 只要其全局受欢迎水平允许它被存储。
在本发明的另一个实施例中, 一个被添加到网络中的新的缓存启用节点, 开始将 其联合部分存储添加到全局池中, 因而增加了全体容量并减小了该网络的上行和下行带宽 的使用率。网络中的所有节点或许最终会根据新池的大小和当前内容受欢迎程度, 重新分 发其自身分段大小。
尽管此处已展现并详细说明各种包含本发明教义的实施例, 但本领域技术人员仍 能够容易地设想许多包含上述教义的其他变化的实施例。