延迟约束下的缓存集群的高效灵活的负载均衡
文献发布时间:2023-06-19 12:25:57
本申请要求于2019年01月29日提交的标题为“EFFICIENT AND FLEXIBLE LOAD-BALANCING FOR CLUSTERS OF CACHES UNDER LATENCY CONSTRAINT(延迟约束下的缓存集群的高效灵活的负载均衡)”的美国非临时专利申请第16/261,462号的权益和优先权,其内容通过引用整体明确地并入本文。
技术领域
本技术涉及用于实现网络内缓存系统的系统和方法。更具体地,它旨在通过增加网络内缓存集群的命中率来减少内容递送网络中的延迟和网络负载。
背景技术
到2021年,与视频点播(Vedio-on-Demand,VoD)和线性视频流送服务相关的互联网流量预计将达到74TB/s,占总互联网流量的82%。因此,已部署内容递送网络(ContentDelivery Networks,CDN)以促进网络扩展,同时为客户提供更好的体验质量。然而,视频流量的庞大规模和对体验质量的不断提高的期望给内容递送网络带来了严峻的工程挑战。在此种情况下,由于传统的内容递送网络(CDN)难以满足需求,因此网络可扩展性成为视频递送的关键问题。在这些挑战中,一个关键的挑战涉及提高相关资源(网络、存储和计算)的利用效率。这是一项重要改进,因为在许多情况下,简单地扩大处理硬件以响应不断增加的网络负载不足以满足内容用户所需的体验质量。
附图说明
为了描述可以获得本公开的上述和其他优点和特征的方式,将通过参考附图中图示的具体实施例对上面简要描述的原理进行更具体的描述。理解这些附图仅描述了本公开的示例性实施例并且因此不被认为是对其范围的限制,通过使用附图以额外的特异性和细节描述和解释了本文的原理,其中:
图1图示了根据本技术的一些实施例的包括网络定位符部分和内容标识符部分的修改的IPv6地址格式。
图2图示了根据本技术的一些实施例的具有改进的缓存服务器命中率的内容递送系统。
图3图示了根据本技术的一些实施例的具有改进的缓存服务器命中率的内容递送系统。
图4图示了根据本技术的一些实施例的用于优化内容递送网络中的内容请求的基于流行度的过滤的PI控制器。
图5示出了根据本技术的一些实施例的用于根据Yaksha派生控制器的接受概率输出来计算基于流行度的过滤标准的流程图。
图6图示了根据本技术的一些实施例的示例网络设备。
图7图示了根据本技术的一些实施例的计算设备的示例架构。
图8示出了根据本技术的一些实施例的示例内容请求过滤过程的流程图。
具体实施方式
下面详细讨论本公开的各种示例实施例。虽然讨论了具体的实现方式,但应该理解,这只是为了说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下可以使用其他组件和配置。因此,以下描述和附图是说明性的并且不应被解释为限制性的。描述了许多具体细节以提供对本公开的透彻理解。然而,在某些情况下,为了避免模糊描述,未描述众所周知的或传统的细节。本公开中对一个实施例或实施例的提及可以是指同一实施例或任一实施例;并且此提及意指至少一个实施例。
提及“一个实施例”或“实施例”是指结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。说明书中各处出现的短语“在一个实施例中”不一定都指同一实施例,也不是与其他实施例相互排斥的单独或替代的实施例。此外,描述了可以由一些实施例而不是由其他实施例展示的各种特征。
本说明书中使用的术语在本领域中、在本公开的上下文中以及在使用每个术语的特定上下文中一般具有它们的普通含义。替代语言和同义词可用于本文中讨论的任何一个或多个术语,并且在本文中是否详细阐述或讨论了术语并不特别重要。在某些情况下,提供了某些术语的同义词。一个或多个同义词的记载不排除使用其他同义词。本说明书中任何地方的示例的使用,包括本文讨论的任何术语的示例,仅是说明性的,并不旨在进一步限制本公开或任何示例术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
在不限制本公开范围的情况下,下面给出根据本公开实施例的仪器、装置、方法及其相关结果的示例。请注意,为了方便读者,在示例中可以使用标题或副标题,但其绝不应该限制本公开的范围。除非另有定义,本文使用的技术和科学术语具有本公开内容所属领域的普通技术人员通常理解的含义。在发生冲突的情况下,以本文件(包括定义)为准。
本公开的附加特征和优点将在随后的描述中阐述,并且部分地将是从描述中明显看出的,或者可以通过在此公开的原理的实践而获知。本公开的特征和优点可以通过所附权利要求中特别指出的手段和组合来实现和获得。本公开的这些和其他特征将从以下描述和所附权利要求中变得更加明显,或者可以通过在此阐述的原理的实践而获悉。
概述
公开了用于优化网络内缓存服务器集群的命中率性能和服务级别响应时间的系统、方法和计算机可读介质。所公开技术的方面涉及基于内容请求流量的多级流行度评估的过滤方案。在本技术的一些实施例中,控制器调谐的阈值参数用于区分流行内容和半流行内容。
在本技术的一个方面中,一种方法包括在边缘设备处指定用于将包括多个上次请求的内容标识符的元缓存划分为流行部分和半流行部分的阈值参数;使用适当的转发/路由协议,将针对元缓存的半流行部分中的内容标识符生成的第一缓存未命中请求重定向到一个或多个另外的缓存服务器;使用适当的转发/路由协议,将由一个或多个另外的缓存服务器针对元缓存的半流行部分中的内容标识符生成的第二缓存未命中请求重定向到托管所请求的内容的原始服务器。本技术的一些实施例还包括使用比例积分控制器调谐阈值参数的值以优化缓存命中率和一个或多个其他网络性能指标之间的权衡的步骤。
如此一来,本技术的实施例提供基于多级流行度的内容请求过滤,以提高内容递送网络中边缘缓存服务器的命中率。在一些实施例中,这通过维持与最近请求的内容的数量相对应的内容标识符的元缓存以及用于将元缓存条目划分为流行类别和半流行类别的阈值参数来完成。例如,标识为半流行的内容与不同的缓存未命中转发策略相关联,这与被视为流行的内容相反并且类似于被视为不流行的内容。为进一步扩展上述特征,在对元缓存的半流行部分中标识的内容的缓存未命中请求的情况下,第一接收缓存服务器可以将请求重定向到可能已经被伪随机选择的另一缓存服务器,而不是将请求直接转发到原始服务器。
在本技术的一个方面中,一种系统包括一个或多个内容请求过滤单元,该一个或多个内容请求过滤单元被通信耦合到一个或多个边缘缓存服务器,每个内容请求过滤单元还可以包括:跨阈值索引划分为流行部分和半流行部分的多个最近请求的内容标识符的元缓存,其中,仅在从半流行内容请求被顺序地引导跨过的多个缓存服务器中的每一个缓存服务器中都发生缓存未命中的情况下,针对半流行部分中的内容标识符的请求被转发到原始内容服务器。在本技术的一些实施例中,该系统还可以包括一个或多个PI控制器,该一个或多个PI控制器可操作地调谐元缓存的阈值参数,从而优化缓存命中率和一个或多个其他性能属性之间的权衡。
因此,包括最近使用的内容标识符的元缓存的内容过滤/路由单元可以基于前述内容的流行程度将不同的缓存未命中转发策略应用于针对内容的请求。在一些实施例中,本技术包括用于区分最近使用的内容标识符的元缓存中的流行内容和半流行内容的阈值参数。根据一些实施例,可以使用自调谐比例积分控制器来调谐阈值参数。例如,在遇到来自第一缓存服务器的初始缓存未命中之后,针对元缓存的半流行部分中标识的内容的请求可以被重定向到一个或多个另外的缓存服务器。因此,本技术的实施例使得能够在将内容请求重定向到原始内容服务器之前对所请求的内容执行更彻底的缓存搜索。
具体描述
多层次视频内容递送网络(CDN)架构通常包括三个主要组件:(i)请求和消费视频块的客户端,(ii)供应所请求的内容的原始服务器,以及(iii)边缘缓存,其位置更靠近客户端(即,在ISP网络中)并且存储最流行的视频块以减少原始服务器上的负载。要由内容递送网络(CDN)满足的关键特性是在最小化基础设施成本的同时以较小的延迟来供应内容。在不产生巨大基础设施成本的情况下实现低延迟内容递送的一种方法是基于将流行内容缓存为靠近用户,同时将不太流行的内容保留在更集中的服务器上。如此一来,各自合理地靠近客户端并且能够供应与单个原始服务器提供的相同的内容的缓存的网络,可以用于在边缘处缓存尽可能多的内容,并让尽可能多的不流行内容由原始服务器供应。
从选定的服务器(比如边缘缓存服务器)请求并被成功供应的内容的比率可以称为“命中率(hit rate)”。边缘缓存的命中率对诸如块下载时间之类的体验质量(Qualityof Experience,QoE)相关因素有很大影响。例如,已经表明缓存未命中将服务器延迟增加了一个数量级,这反过来又会导致客户端启动时间增加。服务器延迟劣化(degradation)的一个原因涉及在缓存服务器发生缓存未命中的情况下,将超文本传输协议(HTTP或HTTPS)连接代理(proxy)到原始服务器所产生的网络成本。因此,对于CDN架构的可扩展性,大多数内容请求都成功地由边缘缓存供应是很重要的,因为这减小了原始服务器上的负载。
然而,随着边缘缓存上负载的增加,通过简单地使用更强大的服务器或添加硬件资源来解决容量问题可能会变得非常昂贵。因此,在边缘处金次能够基于流行度的过滤可能变得必要,以便决定应该将内容缓存在何处,是否重定向请求或代理内容,以及将内容请求重定向到何处。当前的架构存在两个主要问题。即,在缓存未命中时,使用HTTP代理以便从原始处获取内容。与直接在第3层将请求重新路由到原始处相比,这具有不可忽略的性能成本。此外,现有架构不利用缓存的水平扩展来进行缓存之间的协作,反而,当存在缓存未命中时,请求通常被转发回原始处,而预先尝试另一缓存可以对半流行内容有益。
前述问题由本技术的涉及用于视频内容递送网络(CDN)的系统、方法和计算机可读介质的实施例解决,这利用块级内容寻址和多层次内容流行度评估(在部署的网络技术中)做出关于内容请求和内容递送的最佳处理的智能决定。一方面,内容相关流量的最佳处理旨在提高缓存系统的命中率,从而减少与对诸如视频之类的内容的请求的服务相关联的延迟和网络负载。因此,本公开的一些实施例旨在提高网络边缘的缓存命中率,同时还减少与缓存未命中相关的不利影响(即,延迟和网络负载)。为此,所公开技术的实施例利用网络层视频块命名来促进所请求的内容的基于流行度的多层次分类。
在一些实施例中,命名的视频块(嵌入在请求分组报头的网络地址内的内容标识符)可以在可部署在基于当前IP的网络中的系统和/或配置内的转发平面中使用。因此,每个视频片段都可以与唯一的网络标识符匹配,例如使用64比特编码来包含视频标识符、视频内片段的标识符以及潜在的附加元数据,比如片段持续时间和请求的视频比特率/质量。然后可以根据该名称构建IPv6地址。参考图1,修改的IPv6地址100的示例包括第一64比特部分104,该第一64比特部分104构成可以特定于视频制作者的路由前缀和子网标识符,并且充当网络定位符。此外,修改示例IPv6地址100还包括第二64比特部分106,该第二64比特部分106构成内容元数据并充当内容标识符。
根据本技术的一些实施例,作为内容请求分组报头的第3层地址部分的一部分的块级内容寻址可以用于在网络层提供内容感知和跟踪。在本技术的一些实施例中,上述网络级内容感知和跟踪可以与最新最近使用(Last Recently Used,LRU)的过滤策略结合使用以提供基于多级流行度的内容请求过滤。在一些实施例中,基于流行度的LRU过滤可以通过保持由最近最少使用(Least Recently Used)的替换策略驱动的标识符的“元缓存”来实现。元缓存中存在的内容标识符可以被视为流行度的指示符。然而,代替在“流行”和“不流行”内容之间分类,本技术的实施例公开了一种将内容在“流行”、“半流行”和“不流行”之间分类的三层次分类方法。因此,提高了准确性和效率,借此将不流行内容的递送卸载到原始服务器,并在缓存处供应流行内容。
根据本技术的一些实施例,块级内容寻址包括向每个视频块分配唯一且全局可路由的IPv6地址。暴露IPv6地址空间中的块和视频标识符提供了为所请求的内容提供了网络层可见性。因此,设置在客户端系统和网络缓存资源之间的内容路由/过滤服务可以用于检查以一个或多个边缘缓存服务器为目的地的内容请求分组,从而根据在内容请求分组中作为IP地址暴露的内容标识符构建最新最近使用的内容标识符的元缓存。内容路由/过滤服务然后可以基于最新最近使用的内容标识符的元缓存中的相应内容标识符的索引位置,为不同的客户端请求的内容分配特定的流行度评级(即流行或半流行度评级)。在一些实施例中,出于流行度评级的目的,可以相对于静态或动态计算的阈值水平来确定索引位置。取决于相应的内容标识符是设置在阈值水平之上还是之下,可以将内容标识为流行的或半流行的,而元缓存中未命中的内容标识符被视为对应于不流行的内容。内容路由/过滤服务然后可以基于所请求的内容的内容流行度分类做出带内内容请求转发决定。
根据本技术的一些实施例,可以在缓存服务器本地供应被视为流行的内容。相反地,对被视为不流行的内容的请求可以被定向到原始服务器并由其提供服务。对于在初始缓存服务器上不可用的半流行内容,有可能另一个(边缘)缓存具有该内容的副本。因此,在这些情况下,实施例提供通过另一个伪随机选择的边缘缓存进行绕路,而不是直接返回原始处。根据一些实施例,可以使用HTTP代理来处理在缓存未命中时重定向/绕路到第二缓存服务器和/或原始服务器。然而,在本技术的一些实施例中,可以使用分段路由负载均衡(Segment Routing Load Balancing,SRLB)方法(比如,例如,6LB负载均衡协议)来执行重定向/绕路以提高性能。例如,在所公开技术的一些实施例中,基于所请求的内容的经确定的流行度级别,利用IPv6分段路由(IPv6 Segment Routing,SRv6)来引导客户端请求通过候选服务器链。在图3中提供了SRv6实现的示例。
图2图示了根据本技术的一些实施例的示例内容递送网络(CDN)200的操作。在示例CDN网络200中,内容路由器202和204分别包括最新最近使用(LRU)过滤器组件206和208。LRU过滤器206包括具有关联的(流行度)阈值参数211的大小为C1的元缓存210,并且LRU过滤器208包括具有关联的阈值参数213的大小为C1的元缓存212。LRU过滤器206和208控制和过滤对原始服务器216和包括缓存服务器217和218的缓存服务器集群的访问。在一些实施例中,LRU过滤器功能可以并入一个或多个内容路由器中。在一些实施例中,LRU过滤器可以被实现为独立的设备、软件服务、协议或软件/硬件服务的组合。LRU过滤器可以靠近网络边缘设置,并负责控制和过滤去往和来自一个或多个相关联的缓存服务器和/或一个或多个原始内容服务器的内容请求。在一些实施例中,LRU过滤器可以被实现为通信地耦合到一个或多个内容路由器并且向对应的内容路由器提供关于如何路由针对不同内容的请求的必要信息的单元。
返回参考图2,根据一些实施例,由流线216、218和220示出了在接收到内容请求时示例CDN 200的操作。流线216对应于如下场景:其中在LRU过滤器206的元缓存210中找到了传入请求分组中的内容标识符(217),并且其相应索引值小于阈值索引值(即,其位置高于对应于元缓存210的流行部分的阈值索引211)。因此,LRU过滤器206将对应的内容标识符移动到元缓存210的顶部并且查询被对应的缓存服务器接受(即,查询由边缘服务器217服务)。在217缓存未命中的情况下,所请求的(流行)内容被从原始服务器216代理并且本地副本被保存在缓存服务器217上。
当考虑LRU缓存中元素的索引时,索引越小,该元素越早出现在缓存列表中。因此,索引越小,流行度就越高。因此,根据本技术的一些实施例,只要内容的索引小于阈值,就可以认为内容是流行的,而只要其索引大于阈值,就可以认为内容是半流行的。然而,应当注意,关于图2中的LRU缓存210和212的图示,LRU缓存图示的顶部描绘了与最近观察到的内容相对应的LRU堆的底部。因此,示例LRU缓存图示210和212对应于索引值排列的升序。
相反地,流线218对应于如下场景:其中在LRU过滤器206的元缓存210中未找到所请求的内容标识符(即,不流行的内容)。如此一来,LRU过滤器206在元缓存210的顶部添加/插入未命中的内容标识符(如果元缓存已满,则这导致删除元缓存中的最后的内容标识符),并且拒绝查询(即请求被直接转发到原始服务器216)。
如所描述的,本技术的实施例提供了介于不流行级别和流行级别之间的流行度的中级评级(半流行)。在图2的示例CDN 200中,这由对应于如下场景的流线220示出:其中嵌入在传入内容请求分组的第3层地址部分中的请求内容标识符对应于内容标识符(221),内容标识符(221)是在LRU 206的元缓存210中索引值大于阈值索引211的位置(即,其位置低于对应于元缓存210的半流行部分的阈值索引211)处找到的。针对半流行内容,在初始/第一接收缓存服务器(缓存服务器217)处的缓存未命中将导致LRU过滤器206或内容路由器202通过其关联的内容路由器204(例如通过使用分段路由负载均衡转发协议),将请求重新路由到第二伪随机选择的缓存服务器(218)。在接收到重定向的内容请求时,LRU过滤器208将相应的内容标识符(221)移动到元缓存212的顶部。如果服务第二伪随机选择的缓存服务器(218)的第二LRU过滤器(208)也没有所请求的内容(对应于内容标识符221),或者如果为第二伪随机选择的缓存服务器(218)服务的第二LRU过滤器(208)具有所请求的内容,但是是在阈值参数213之上的位置(即,在元缓存212的半流行部分中),则查询被转发到原始服务器216。如果根据第二边缘缓存服务器218的LRU过滤器212将重定向的内容视为流行的,则在第二边缘缓存服务器218上本地接受该请求,并且如果本地不可用,则从原始服务器216代理该内容。
在一些实施例中,上述缓存系统可以被实现为连接到指向列表内条目的指针的散列映射的双向链表。在本技术的一个实施例中,元缓存的大小被设置为缓存(元缓存过滤对该缓存的访问)的大小的六倍。这在轻负载的情况下提供了几乎最佳的命中率(因此阈值等于大小)。
本技术的一些实施例涉及针对半流行内容的过滤方案,该方案涉及将来自第一接收缓存服务器的缓存未命中重定向到另一个缓存服务器。该特征基于半流行内容在另一边缘缓存处可用的可能性,因此为了在返回原始处(通常在地理上更远)之前访问另一缓存而招致两个缓存之间的三角路由的转发延迟被认为是值得的。为此,根据一些实施例,在将请求重定向回原始服务器之前,可以利用IPv6分段路由(SRv6)和(一个或多个)分段路由负载均衡(SRLB)协议来访问多个伪随机选择的缓存。
图3图示了根据本技术的一些实施例的用于基于流行度过滤内容请求和响应流量的分段路由实现方式300的示例。在示例实现方式300中,可以位于客户端304附近(例如在客户端网络栈或机顶盒中)的调度器单元(302)被部署成将分段路由报头(包括分段标识符列表306)插入到内容请求分组中,以促进上游的请求过滤过程。例如,当客户端304发出新连接分组(例如TCP SYN)时,调度器302将分段标识符(SID)列表306插入到请求分组的分段路由报头中。在图3所示的示例实施例中,SID列表306包括三个条目,其中前两个条目对应于分段标识符1和3,分别标识两个伪随机选择的缓存服务器:缓存服务器1和缓存服务器3。SID列表306中最后的条目对应于原始服务器308的分段标识符。为了澄清起见,当使用IPv6转发平面实现分段路由时,SID列表可以互换地称为SRv6(使用IPv6转发的分段路由)列表。
接受服务器(其可以是缓存或原始服务器中的任何一者)在从客户端304接受新连接分组时,将其网络或分段地址作为元数据插入到返回给客户端的响应分组中。调度器(302)然后在连接的剩余生命周期中记录响应服务器的地址。因此,当客户端发出另外的分组(例如TCP ACK)到接受服务器时,调度器插入仅有一个分段标识符的分段路由报头,该一个分段标识符从SID列表306中标识的原始的三个服务器(即缓存服务器1、缓存服务器3和原始服务器)中标识接受服务器。
因此,一旦调度器接收到包含具有接受服务器的地址的元数据的响应,则与已建立的连接(到接受服务器)相关联的所有后续分组将仅包括与接受内容请求并终止连接的服务器/节点相对应的一个分段标识符(来自嵌入在初始内容请求或新连接分组中的原始分段标识符列表中指定的三个)。因此,客户端能够建立到接受服务器的直接数据连接,用于递送所请求的内容。
参考图3中的示例,LRU过滤器/内容路由器310、311和312被部署用于分别过滤对缓存服务器1、2和3的访问并管理缓存服务器1、2和3的缓存未命中响应。如此一来,每个LRU过滤器/内容路由器均被部署在它过滤访问的缓存服务器附近。根据图2和3中的示例实施例,LRU过滤器/内容路由器的过滤/管理操作取决于所请求的内容的基于阈值的流行度分类,如流行、半流行或不流行。
返回参考图3,在相应的LRU过滤器/内容路由器310处接收目的地为缓存服务器1的传入(新连接)内容请求313。如果在LRU过滤器/内容路由器310的元缓存的流行部分中找到所请求的内容标识符(从内容请求313中提取),则所请求的内容被视为“流行”。因此,内容请求在缓存服务器1(初始的接收缓存)处被接受并且相应的连接313在此处被终止。如此一来,请求分组被转发到缓存服务器1的本地栈,而无需访问其他分段。如果请求的“流行”内容在缓存服务器1上本地不可用,则请求被代理到原始服务器308并且根据缓存软件的插入策略(即,最近最少使用、最不常用、先进先出等)将内容插入到缓存服务器1中。在终止连接313之后,缓存服务器1将响应分组调遣回具有其分段标识符(1)的客户端,如图3中的标号314所表明的。
然而,如果在LRU过滤器/路由器310的元缓存的半流行部分(图2中的项目210和212)中找到所请求的内容标识符(从内容请求分组中提取),则所请求的内容被视为“半流行”。因此,LRU过滤器/路由器310触发重试,对应于图3中的连接316(图2中的连接220),并将请求转发到SRv6列表306中的下一个分段标识符条目(即,SID 3),其对应于第二伪随机选择的缓存服务器(缓存服务器3)。这将需要LRU过滤器/路由器310(与缓存服务器1相关联)将内容请求路由/转发到与缓存服务器3相关联的相应LRU过滤器/路由器312。如果所请求的“半流行”内容被LRU过滤器312视为流行,则在缓存服务器3(第二接收缓存)处接受重试/重定向的内容请求并且在此处终止相应的连接316。如此一来,请求分组被转发到缓存服务器3的本地栈,而无需访问其他分段,并且所请求的“半流行”内容直接在缓存服务器3处被供应。在终止连接316之后,接受服务器(缓存服务器3)将响应分组调遣回客户端,接受服务器在该响应分组中插入了其自身的分段标识符(3),如图3中的标记317所示。然而,如果所请求的“半流行”内容未被为缓存服务器3服务的LRU过滤器312找到或被视为流行,则拒绝连接请求316并且请求被跨连接318重定向到原始服务器308(在SRv6列表306中指定的最后分段)。原始服务器308将接受该请求并终止相应的连接318。如此一来,请求分组被转发到原始服务器308的本地栈,并且所请求的“半流行”内容直接在原始服务器308处被供应。在终止连接318之后,接受服务器(原始服务器308)将响应分组调遣回客户端,接受服务器在该响应分组中插入了其自身的分段标识符(ORIGIN),如图3中的标记319所示。
最后,如果从以初始接收缓存(缓存服务器1)为目的地的客户端请求分组中提取的所请求的内容标识符未在相应LRU过滤器/路由器310的元缓存中的任何地方(如图2中的项目210和212所示)找到,则所请求的内容被视为“不流行”。因此,如果所请求的“不流行”内容在缓存服务器1上本地不可获得,则未命中内容标识符被插入到与LRU过滤器/路由器310相关联的元缓存的顶部,并且请求被跨连接320重定向到原始服务器308。指向原始服务器308的查询被终止并被转发到本地栈。在终止连接320之后,接受服务器(原始服务器308)将响应分组调遣回客户端,接受服务器在该响应分组中插入了其自身的分段标识符(ORIGIN),如图3中的标记321所示。
因此,大概率不流行内容不是由边缘缓存供应的,而是直接卸载(在网络层)到原始服务器。卸载的连接不再需要在边缘处被代理,从而避免了不必要的HTTP终止,并且边缘代理的缓存不会被不流行的内容污染,从而增加命中率。
根据本技术的一些实施例,比例积分(PI)控制器可以用于调谐LRU滤波器的参数。例如,PI控制器可以用于调谐(流行度)阈值参数,该参数将最新最近请求的内容标识符的元缓存划分为流行部分和半流行部分,以此方式来控制和优化网络缓存服务器的缓存命中率性能和平均响应时间之间的权衡。例如,提高LRU过滤器的元缓存中的流行度阈值,会导致在相应缓存服务器处接受的请求数量增加,从而相应增加缓存服务器的响应时间。在一些实施例中,PI控制器可以与LRU过滤器结合使用以调谐LRU过滤器的流行度阈值参数(用于识别流行内容)。例如,PI控制器通过如下方式来完成该过程:将关联的缓存服务器(LRU过滤器访问的)的当前响应时间作为输入参数,并将其与对象流完成时间进行比较,以根据LRU过滤器的(流行度)阈值参数的值进行调整,直到达到所需的均衡为止。以此方式,PI控制器可以用于优化网络缓存访问。
图4图示了示例实现方式400,其中与LRU过滤器402协同工作的内容路由器401用于过滤和控制对缓存服务器403的访问。LRU过滤器402还包括大小为C1的元缓存404,用于存储内容标识符和与识别流行/半流行/不流行内容相关联的阈值参数k。内容请求的流行/半流行/不流行分类最终决定了哪些内容请求在缓存服务器处被接受,哪些内容请求被向不同的缓存服务器重试,哪些内容请求被拒绝并重定向到原始服务器。在示例实现400中,可以测量缓存服务器403的响应时间“δt”并将其作为输入提供给PI控制器406。PI控制器406基于输入响应时间,最佳地调谐LRU过滤器402的元缓存404中的阈值参数k的级别。通过这种方式,PI控制器可以用于调谐和优化LRU滤波器的操作,最终提高网络中的边缘缓存性能。
在本发明的一个实施例中,PI控制器可以使用诸如Yaksha之类的自调谐PI来实现,其通过根据接受概率过滤请求来控制网络服务器响应时间。此种自调谐PI控制器的一个优点是它可以作为缓存前面的独立模块,而无需任何集成工作。此外,自调谐功能消除了对人工输入或服务器特性的先验知识的要求。
根据一些实施例,通过将过滤标准从接受概率转换为最新最近使用的(LRU)流行度阈值,基于Yaksha的过滤可以适用于如本技术的一些实施例所规定的操作。
如果根据一些实施例,请求模式遵循泊松到达(Poisson arrival)并且流行度分布q(r)是已知的,则可以利用切比雪夫近似(Che’s approximation)来根据内容流行度阈值计算接受对内容的请求的概率。内容流行度阈值可以由等式(1.1)定义,其中k表示内容流行度阈值,而由等式(1.2)定义的p(k)表示作为内容流行度阈值k的函数的接受请求的概率。等式1.1和1.2中的参数t
然后由(1.2)定义的概率函数可以被取逆,以便计算作为由Yaksha过滤器(即,自调谐PI,被配置为根据接受概率过滤服务器请求)输出的接受概率的函数的k。这在图5中示出,其中缓存服务器502的响应时间“δt”被用作Yaksha过滤器504的输入。对应于接受概率p的Yaksha过滤器的输出506在506处被取逆,从而计算作为p的函数的内容流行度阈值参数k。然后可以使用阈值参数k来提供所请求的内容的多层次流行度评级。在一些实施例中,为了效率的目的,可以通过预先计算的反演表来执行逆运算(506)。
应当注意,所公开技术的实施例提供了直接用于流行度阈值参数k的任意自调谐PI控制器。在一些实施例中,可以对服务器端指标(metrics)(比如CPU使用率或TCP队列长度而不是流完成时间)执行调谐。此类指标可以比流完成时间更精确和即时,但可能需要接受系统和缓存服务器的更紧密耦合。
本公开现在转向图6和图7,其图示了计算网络设备的示例架构,比如客户端计算机、交换机、路由器、控制器、服务器等。
图6图示了计算系统架构600,其包括使用诸如总线之类的连接605彼此电通信的组件。系统600包括处理单元(CPU或处理器)610和系统连接605,该系统连接605将包括系统存储器615(比如只读存储器(ROM)620和随机存取存储器(RAM)625)的各种系统组件耦合到处理器610。系统600可以包括与处理器610直接连接、紧邻处理器610或集成为处理器610的一部分的高速存储器的缓存。系统600可以将数据从存储器615和/或存储设备630复制到缓存612以供处理器610快速访问。以此方式,缓存可以提供避免处理器610在等待数据时的时延的性能提升。这些和其他模块可以控制或被配置为控制处理器610执行各种动作。也可以使用其他系统存储器615。存储器615可以包括具有不同性能特性的多种不同类型的存储器。处理器610可以包括任何通用处理器,以及硬件或软件服务(比如存储在存储设备630中的服务1 632、服务2 634和服务3 636),这些硬件或软件服务被配置为控制处理器610以及其中软件指令被合并到实际处理器设计中的专用处理器。处理器610可以是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
为了支持用户与计算设备600交互,输入设备645可以表示任何数量的输入机构,比如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备635也可以是本领域技术人员已知的多种输出机构中的一种或多种。在一些情况下,多模式系统可以使用户能够提供多种类型的输入以与计算设备600通信。通信接口640通常可以支配和管理用户输入和系统输出。对在任何特定硬件布置上的操作没有任何限制,因此随着发展,这里的基本特征可以很容易地替换为改进的硬件或固件布置。
存储设备630是非易失性存储器并且可以是硬盘或其他类型的可以存储计算机可访问的数据的计算机可读介质,比如磁带、闪存卡、固态存储器设备、数字多功能盘、盒式磁带、随机存取存储器(RAM)625、只读存储器(ROM)620及其混合。
存储设备630可以包括用于控制处理器610的服务632、634、636。设想了其他硬件或软件模块。存储设备630可以连接到系统连接605。一方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与诸如处理器610、连接605、输出设备635等的必要硬件组件结合来实现该功能。
图7图示了适合于执行交换、路由、保证和其他联网操作的示例网络设备700。网络设备700包括中央处理单元(CPU)704、接口702和连接710(例如,PCI总线)。当在适当软件或固件的控制下工作时,CPU 704负责执行分组管理、错误检测和/或路由功能。CPU 704优选地在包括操作系统和任何适当应用软件的软件的控制下完成所有这些功能。CPU 704可以包括一个或多个处理器708,比如来自INTEL X106系列微处理器的处理器。在一些情况下,处理器708可以是专门设计的硬件,用于控制网络设备700的操作。在一些情况下,存储器706(例如,非易失性RAM、ROM、TCAM等)也形成CPU 704的一部分。然而,有许多不同的方式可以将存储器耦合到系统。在一些情况下,网络设备700可以包括与CPU704分离的存储器和/或存储硬件,比如TCAM。此种存储器和/或存储硬件可以经由例如连接710与网络设备700及其组件耦合。
接口702通常被提供为模块化接口卡(有时被称为“线卡”)。一般而言,它们控制通过网络发送和接收分组,并且有时支持与网络设备700一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、缆线接口、DSL接口、令牌环接口等。此外,可以提供各种超高速接口,比如快速令牌环接口、无线接口、以太网接口、千兆比特以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、WIFI接口、3G/4G/5G蜂窝接口、CAN总线、LoRA等。一般而言,这些接口可以包括适合与适当媒体进行通信的端口。在一些情况下,它们还可以包括独立的处理器,在一些情况下,还包括易失性RAM。独立处理器可以控制诸如分组交换、媒体控制、信号处理、密码处理和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许主微处理器704有效地执行路由计算、网络诊断、安全功能等。
虽然图7所示的系统是本公开的一种具体网络设备,但是它绝不是可以实现本文的概念的唯一网络设备架构。例如,可以使用具有处理通信以及路由计算等的单个处理器的架构。此外,其他类型的接口和媒体也可以与网络设备700一起使用。
不管网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器706),这一个或多个存储器或存储器模块被配置为存储用于通用网络操作的程序指令以及用于本文所述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动绑定、注册和关联表之类的表。存储器706还可以保存各种软件容器和虚拟化执行环境和数据。
网络设备700还可以包括专用集成电路(ASIC),其可以被配置为执行路由、交换和/或其他操作。例如,ASIC可以经由连接710与网络设备700中的其他组件通信,以交换数据和信号并协调网络设备700的各种类型的操作,比如路由、交换和/或数据存储操作。
图8图示了基于将流行度阈值参数应用于最新最近使用的内容标识符的元缓存的基于流行度的内容请求过滤过程的示例过程流800。基于相应内容标识符的索引位置与最新最近使用的内容标识符的元缓存内的阈值索引的比较来确定所请求的内容块的流行度。例如,设置在元缓存中高于阈值索引的索引位置处的内容标识符可以被视为更流行,而设置在低于阈值索引的索引位置处的内容标识符可以被视为不太流行(半流行)。在元缓存内没有相应内容标识符的内容可以被视为不流行。流行度确定然后可以确定LRU过滤/路由服务将如何转发内容请求。参考图8,在步骤802,关于最新最近使用的内容标识符的元缓存中的条目检查嵌入在传入内容请求分组中的内容标识符。如果元缓存中不存在传入内容标识符(804),则所请求的内容被视为不流行,将未命中内容标识符插入到元缓存的顶部,并在步骤806将请求重定向到原始服务器。然而,如果传入内容标识符存在于元缓存中(808),则操作移至步骤810,在步骤810中将元缓存中的内容标识符的索引位置与阈值索引值进行比较。
如果传入内容标识符在LRU元缓存中的索引位置高于(接近顶部)阈值索引(812),则内容被视为流行,并且操作移至步骤814,在步骤814中针对所述请求内容核查关联的缓存服务器(缓存1)。如果内容存在于缓存1(816)中,则在步骤818中直接从缓存1供应该内容。如果缓存1中不存在该内容(820),则操作移至步骤822,在步骤822中所请求的内容由缓存1从原始服务器代理。然后在步骤824将内容插入到缓存1中。
然而,如果传入内容标识符在元缓存中的索引位置低于(接近底部)阈值索引(826),则相应内容被视为“半流行”并且操作移至步骤834,在步骤834中内容请求例如由服务第一缓存服务器(缓存1)的第一LRU过滤/路由服务重定向到为第二缓存服务器(缓存2)服务的第二LRU过滤/路由服务。
在一些实施例中,转发和重定向操作可以使用基于SRv6的方法来实现,其中第一缓存服务器和第二缓存服务器和原始服务器中的每一个的分段标识符作为SID列表被插入到来自客户端的内容请求分组的报头中。
返回参考图8中的示例处理流800,为第二缓存服务器(缓存2)服务的第二接收LRU过滤/路由服务在接收到来自第一LRU过滤/路由服务的重定向内容请求时,验证在本地元缓存中是否存在传入内容标识符。如果传入内容标识符存在于元缓存中,则操作移至步骤836,在步骤836中将内容标识符在元缓存中的索引位置与阈值索引值进行比较。如果传入内容标识符在LRU元缓存中的索引位置高于(接近顶部)阈值索引(838),则该内容被视为流行,并且操作移至步骤839,在步骤839中针对所述请求的内容核查关联的缓存服务器(缓存2)。如果内容存在于缓存2(840)中,则在步骤841中直接从缓存2供应该内容。如果缓存2中不存在该内容(842),则操作移至步骤843,在步骤843中所请求的内容由缓存2从原始服务器代理。然后在步骤844将内容插入到缓存2中。
然而,如果传入内容标识符在LRU元缓存中的索引位置低于(接近底部)阈值索引(845),则相应内容被视为“半流行”并且操作移至步骤846,在步骤846中内容请求例如由为第二缓存服务器(缓存2)服务的第二LRU过滤/路由服务重定向到原始服务器(846)。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的线缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身之类的介质。
根据上述示例的方法可以使用被存储或以其他方式从计算机可读介质可用的计算机可执行指令来实现。此类指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或专用处理设备来执行特定功能或功能组的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制、中间格式指令,比如汇编语言、固件或源代码。可用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配设有非易失性存储器的USB设备、网络存储设备、等等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形状因子中的任一种。此类形状因子的典型示例包括膝上型电脑、智能电话、小型形状因子个人计算机、个人数字助理等。本文描述的功能也可以实施在外围设备或附加卡中。作为进一步示例,此功能也可以被实现在单个设备中运行的不同进程或不同芯片中的电路板上。
指令、用于传送此类指令的介质、用于运行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供在这些公开中描述的功能的手段。
尽管使用了各种示例和其他信息来解释所附权利要求范围内的方面,但不应基于此类示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例来推导出各种实现方式。此外,虽然一些主题可能已经以特定于结构特征和/或方法步骤的示例的语言进行了描述,但是应当理解,所附权利要求中定义的主题不一定限于这些描述的特征或动作。例如,此功能可以不同地分布在或在与本文所标识的组件不同的组件中执行。相反地,所描述的特征和步骤作为所附权利要求范围内的系统和方法的组件的示例被公开。
- 延迟约束下的缓存集群的高效灵活的负载均衡
- 基于缓存抢占延迟约束下AADL模型的可调度性分析方法