CN107810501B - 分层高速缓存填充 - Google Patents

分层高速缓存填充 Download PDF

Info

Publication number
CN107810501B
CN107810501B CN201680038924.8A CN201680038924A CN107810501B CN 107810501 B CN107810501 B CN 107810501B CN 201680038924 A CN201680038924 A CN 201680038924A CN 107810501 B CN107810501 B CN 107810501B
Authority
CN
China
Prior art keywords
server
servers
local
hash
file
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.)
Active
Application number
CN201680038924.8A
Other languages
English (en)
Other versions
CN107810501A (zh
Inventor
安德鲁·陈
克里斯托弗·布兰德
丹尼尔·P·埃利斯
亚历克斯·古塔林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netflix Inc
Original Assignee
Netflix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netflix Inc filed Critical Netflix Inc
Publication of CN107810501A publication Critical patent/CN107810501A/zh
Application granted granted Critical
Publication of CN107810501B publication Critical patent/CN107810501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明的一个实施例提出了用于在服务器网络内复制文件的技术。该技术包括确定区域服务器集群中所包括的一个或多个区域主服务器,并且使得每个区域主服务器从填充源中获取文件。该技术还包括:针对区域服务器集群中所包括的至少一个本地服务器集群,确定至少一个本地服务器集群中所包括的一个或多个本地主服务器,并且使得每个本地主服务器从一个或多个区域主服务器的一个区域主服务器中获取文件。

Description

分层高速缓存填充
相关申请的交叉引用
本公开要求享有于2015年4月30日提交的序列号为62/155,430且代理人案号为NETF/0094USL的美国临时专利申请、以及于2016年3月10日提交的序列号为15/067,099且代理人案号为NETF/0094US的美国专利申请的权益。这些相关申请的主题通过引用结合于此。
技术领域
本发明的实施例一般地涉及计算机网络上的数据传输,并且更具体地,涉及分层高速缓存填充。
背景技术
许多基于web的应用通过互联网以分布式的方式提供诸如流式音频和/或流式视频之类的服务。一般而言,这种应用通过在位于一个或多个网络位置的多个服务器上分发每个内容标题(例如,音频文件或视频文件)的多个副本来进行操作。通过在多个服务器之间镜像内容,该内容可以被大量用户访问,而这些用户不需要经历显着的等待时间。此外,维护特定内容标题的多个副本使得基于web的应用在关于特定服务器的硬件或软件故障发生时能够快速且无缝地恢复。
为了进一步减少与向用户提供内容标题相关联的延迟时间和总体网络需求,其上存储内容标题的服务器通常在地理上分布在由web应用服务的一个或多个区域中。web应用然后被配置为将每个用户引导到位于用户附近的特定服务器,以便更有效地向用户提供内容标题。
管理在大的地理区域内或跨越不同地理区域分布的服务器上所存储的内容标题可能带来若干挑战。具体地,将给定的内容标题复制到位于大地理区域的多个服务器可能会消耗大量的网络资源,例如,带宽。网络资源的消耗增加了基于web的应用的成本,特别是当全部或部分网络基础设施是由第三方提供的时候。另外,用于将给定内容标题复制到多个服务器的传统技术通常会导致最先接收内容标题的服务器在带宽使用和处理负载方面经历显着的波动,例如,当其他网络服务器以对内容标题的副本的请求“淹没(flood)”最先接收内容标题的服务器时。这种波动会对这些“初始的”服务器的性能产生负面影响,这会降低通过初始的服务器向访问基于web的应用的用户提供的服务的质量和/或导致初始的服务器经历软件和/或硬件故障。
如前所述,用于在服务器网络上分发内容的改进技术将是有用的。
发明内容
本发明的一个实施例提出了一种用于在服务器网络内复制文件的方法。该方法包括确定区域服务器集群中所包括的一个或多个区域主服务器,并且使得每个区域主服务器从填充源获取文件。该方法还包括:针对区域服务器集群中所包括的至少一个本地服务器集群,确定至少一个本地服务器集群中所包括的一个或多个本地主服务器,并且使得每个本地主服务器从一个或多个区域主服务器中的一个区域主服务器中获取文件。
除此之外,另外的实施例提供了被配置为实施上述方法的控制服务器和非暂态计算机可读介质。
所公开的技术的至少一个优点是可以经由特定的内容服务器层以可预测的、分散式的和高度容错的方式在网络中复制每个文件,而不需要维护主索引的实体。另外,可以将预定延迟分配给每层,以便防止较低层淹没较高层所包括的内容服务器,这降低了通过网络基础设施复制新文件或现有文件时的服务器负载波动的严重性。此外,因为每层所包括的内容服务器是基于与文件相关联的标识符来确定的,所以每个文件可以经由不同的内容服务器序列通过网络基础设施传播。因此,网络和处理负载被更均匀地分布在内容服务器之间,这提高了通过内容服务器向访问基于web的应用的用户提供的服务的整体质量。
附图说明
为了能够以更详细的方式理解本发明的上述特征,可以通过参考实施例(其中一些在附图中示出)来提供对上面简要总结的本发明的更具体的描述。然而应当注意,附图仅示出了本发明的典型实施例,因此不应被视为限制了本发明的范围,因为本发明可以承认其它同等有效的实施例。
图1示出根据本发明的各种实施例的用于将内容分发到内容服务器和端点设备的网络基础设施;
图2是根据本发明的各种实施例的可以结合图1的网络基础设施实现的内容服务器的框图;
图3是根据本发明的各种实施例的可以结合图1的网络基础设施实现的控制服务器的框图;
图4示出了根据本发明的各种实施例的图1的内容服务器在地理上是如何分布的;
图5A-5C示出了根据本发明的各种实施例的用于在图1的地理上分布的内容服务器的不同层之间复制文件的技术;和
图6A和图6B示出了根据本发明的各种实施例的用于在地理上分布的内容服务器之间复制文件的方法步骤的流程图。
具体实施方式
在下面的描述中,阐述了许多具体细节以提供对本发明的更透彻的理解。然而,可以在没有这些具体细节中的一个或多个细节的情况下实践本发明对于本领域技术人员是显而易见的。
图1示出了根据本发明的各种实施例的用于向内容服务器110和端点设备115分发内容的网络基础设施100。如图所示,网络基础设施100包括内容服务器110、控制服务器120和端点设备115,其中的每一个经由通信网络105连接。
每个端点设备115经由网络105与一个或多个内容服务器110(也称为“高速缓存”或“节点”)通信以下载内容,例如文本数据、图形数据、音频数据、视频数据以及其他类型的数据。在本文也被称为“文件”的可下载内容然后被呈现给一个或多个端点设备115的用户。在各种实施例中,端点设备115可以包括计算机系统、机顶盒、移动计算机、智能手机、平板电脑、控制台和手持式视频游戏系统、数字录像机(DVR)、DVD播放器、连接的数字电视、专用媒体流式传输设备(例如机顶盒)和/或具有网络连接性并且能够向用户呈现内容(例如,文本、图像、视频和/或音频内容)的任何其他技术上可行的计算平台。
每个内容服务器110可以包括web服务器、数据库和服务器应用217,其被配置为与控制服务器120通信以确定由控制服务器120跟踪和管理的各种文件的位置和可用性。每个内容服务器110还可以与填充源130和一个或多个其他内容服务器110通信,以便用各种文件的副本“填充”每个内容服务器110。另外,内容服务器110可以对从端点设备115接收到对文件的请求进行响应。然后可以从内容服务器110或经由更广泛的内容分发网络来分发文件。在一些实施例中,内容服务器110使得用户能够进行认证(例如,使用用户名和密码)以访问存储在内容服务器110上的文件。尽管在图1中仅示出单个控制服务器120,但是在各种实施例中,多个控制服务器120可以被实施来跟踪和管理文件。
在各种实施例中,填充源130可以包括在线存储服务(例如,
Figure BDA0001533358770000041
简单存储服务,
Figure BDA0001533358770000042
云存储等),其中包括数千或数百万个文件的文件目录被存储和访问,以便填充内容服务器110。尽管在图1中仅示出了单个填充源130,但是在各种实施例中,可以实现多个填充源130以服务对文件的请求。
图2是根据本发明的各种实施例的可以结合图1的网络基础设施100来实现的内容服务器110的框图。如图所示,内容服务器110包括但不限于中央处理单元(CPU)204、系统盘206、输入/输出(I/O)设备接口208、网络接口210、互连212以及系统存储器214。
CPU 204被配置为检索并执行存储在系统存储器214中的编程指令,例如服务器应用217。类似地,CPU 204被配置为存储应用数据并从系统存储器214中获取应用数据。互连212被配置为促进在CPU 204、系统盘206、I/O设备接口208、网络接口210和系统存储器214之间传输数据(例如,编程指令和应用数据)。I/O设备接口208被配置为从I/O设备216接收输入数据,并且经由互连212将输入数据发送到CPU 204。例如,I/O设备216可以包括一个或多个按钮、键盘、鼠标和/或其他输入设备。I/O设备接口208还被配置为经由互连212从CPU204接收输出数据,并将输出数据发送到I/O设备216。
系统盘206可以包括一个或多个硬盘驱动器、固态存储设备或类似的存储设备。系统盘206被配置为存储与内容目录相关联的诸如文件218(例如,音频文件、视频文件和/或字幕)之类的非易失性数据。然后文件218可以由一个或多个端点设备115经由网络105获取。在一些实施例中,网络接口210被配置为遵照以太网标准进行操作。
系统存储器214包括服务器应用217,服务器应用217被配置为服务从端点设备115和其他内容服务器110接收的对文件218的请求。当服务器应用217接收到对文件218的请求时,服务器应用217从系统盘206获取相应的文件218,并经由网络105将文件218发送到端点设备115或内容服务器110。服务器应用217还被配置为从控制服务器120请求指令,例如可以从填充源130、特定内容服务器110等请求特定文件的(一个或多个)位置和/或(一个或多个)时间。
图3是根据本发明的各种实施例的可以结合图1的网络基础设施100来实现的控制服务器120的框图。如图所示,控制服务器120包括但不限于中央处理单元(CPU)304、系统盘306、输入/输出(I/O)设备接口308、网络接口310、互连312以及系统存储器314。
CPU 304被配置为检索并执行被存储在系统存储器314中的编程指令,诸如控制应用317。类似地,CPU 304被配置为存储应用数据并且从存储在系统盘306中的系统存储器314和数据库318中获取应用数据。互连312被配置为促进CPU 304、系统盘306、I/O设备接口308、网络接口310和系统存储器314之间的数据传输。I/O设备接口308被配置为通过互连312在I/O设备316和CPU 304之间传输输入数据和输出数据。系统盘306可以包括一个或多个硬盘驱动器、固态存储设备等。系统盘206被配置为存储与内容服务器110、(一个或多个)填充源130和文件218相关联的信息的数据库318。
系统存储器314包括控制应用317,控制应用317被配置为访问存储在数据库318中的信息并且处理该信息以确定特定文件218将在网络基础设施100中所包括的内容服务器110之间被复制的方式。例如,当要向内容服务器110填充新文件218的副本时,从数据库318访问与内容服务器110相关联的标识符(ID)(被称为服务器ID)的列表。然后,控制应用317结合与新文件218相关联的文件ID来处理服务器ID,以确定新文件218将如何以及在何时在网络基础设施100所包括的内容服务器210之间被复制,如下文结合图4-6进一步详细描述的。
如本文先前所描述的,对分布在大的地理区域上的内容服务器110上所存储的内容(例如音频和视频文件)进行管理会带来各种挑战。具体而言,为了服务具有不同网络和处理能力的各种各样的端点设备115,可以以多个(例如,10个或更多)不同的比特率对每个内容标题进行编码。因此,诸如电影或电视节目的单个内容标题可以与多个文件218相关联(每个文件218以不同的比特率对内容标题进行编码),其中每个文件218可以由被配置为将内容标题提供给端点设备115的内容服务器110存储。
因此,尝试用内容标题的大目录(其中每个内容标题都与多个文件218相关联)填充内容服务器110可能消耗大量的网络资源。因此,如果每个内容服务器110直接从第三方源(例如,填充源130)和/或通过第三方网络获取文件218,则可能导致显著的访问和带宽费用。
另一方面,通过尝试仅使用最先接收文件218的少量本地内容服务器110来填充内容服务器110以最小化对第三方源/网络的使用可能会给初始的(一个或多个)内容服务器110带来过度的负担。当其他内容服务器110以对文件218的请求来淹没(一个或多个)内容服务器110时,这样的负担可能导致初始的内容服务器110上的网络和处理负载波动。
因此,在各种实施例中,每个文件218可以经由内容服务器110的特定的层在网络基础设施100内被复制,其中网络服务器110可以基于包括在网络基础设施100中的服务器ID和与文件218相关联的文件ID进行精确计算。因为文件218将位于其中的内容服务器110可以基于服务器ID和文件ID被精确计算,所以文件218的访问是确定性的,这减少或消除了高速缓存未命中的发生。每层所包括的内容服务器110的数量可以例如基于具体文件218的流行度和对具体文件218的需求通过为每个文件218或每个层指定复制因子来控制。因此,内容服务器110在本地被填充的程度可以被调整,这减少了第三方网络和存储费用。此外,因为每层中所包括的内容服务器110是基于文件ID来确定的,所以可以经由不同的内容服务器110序列在网络基础设施100内复制每个文件218。因此,网络和处理负载被更均匀地分布在内容服务器110之间,这提高了经由内容服务器110向访问基于web的应用的用户提供的服务的整体质量。
在一些实施例中,多个文件218按类别分组,并且将唯一文件ID分配给与每个类别相关联的文件218。例如,与内容标题A(例如,电影或电视节目)相关联的文件218可以被分配第一文件ID,而与内容标题B相关联的文件218被分配第二文件ID。另外,在一些实施例中,不同的文件ID被分配从而以不同的比特率对内容标题分别进行编码。也就是说,在这样的实施例中,与内容标题A和第一比特率相关联的文件218可以被分配第一文件ID,而与内容标题A和第二比特率相关联的文件218可以被分配第二文件ID。这样的实施例使得能够将与特定类别相关联的完整的一组文件218一起存储在一个或多个内容服务器110中的每一个上。
另外,在一些实施例中,将唯一的文件ID分配给每个文件218。例如,与内容标题A和第一比特率相关联的文件218中的每个文件可以被分配不同的文件ID。这样的实施例使得能够将与特定类别相关联的文件218分发到多个内容服务器110上,例如,以使得文件218能够并行地传输到特定的端点设备115。此外,在一些实施例中,唯一文件ID被分配给文件218的粒度可以随类别而变化。
在各种实施例中,与特定文件218相关联的文件ID被编码在JavaScript对象表示法(JSON)对象中。JavaScript对象表示法(JSON)是以通常与JavaScript脚本语言兼容的方式表示被称为“对象”的数据结构的一种转换。对象可以包括一个或多个元素,其中每个元素用键指定。每个元素可以是字符串、数字、另一对象、数组、布尔值或空。数组是由方括号“[”和“]”划定的元素的有序列表。数组中的元素用逗号分隔。下面在表1中给出与文件218相关联的示例JSON对象。
Figure BDA0001533358770000081
表1:示例JSON对象
在上面给出的示例JSON对象中,第一个和最后一个大括号表示对象的开始和结束,“视频”是由方括号“[”和“]”划定的视频数组的关键字。数组包括两个元素,每个元素都用大括号表示。第一个这样的元素是包括具有如所示的值的“id”字段、“title(主题)”字段,“boxart(网址)”字段和“synopsis(剧情简介)”字段的对象。类似地,数组中的第二个元素具有如所示的值。因此,在这个示例中,指定了与第一文件218(“美丽心灵的永恒阳光”)相关联的文件ID 23432和与第二文件218(“面具”)相关联的文件ID 23521。
此外,在一些实施例中,内容服务器110可以通过将包括存储在数组中的多个文件ID的JSON对象传送到控制应用317来请求下载指令(例如,下载位置、时间延迟等)。表2中给出了包含这种文件ID数组的示例JSON对象。
Figure BDA0001533358770000091
表2:示例JSON数组
图4示出了根据本发明的各种实施例的图1的内容服务器110在地理上是如何分布的。如图所示,内容服务器110可以被组织成各种集群,包括区域集群410、本地集群420和清单集群430。
例如,在图4所示的示例性地理分布中,内容服务器110被组织到区域集群410-1和区域集群410-2中。在一些实施例中,每个区域集群410可以与不同的城市、州、国家、时区、大陆等相关联。每个区域集群410包括一个或多个本地集群420。例如,区域集群410-1包括本地集群420-1和本地集群420-2,区域集群410-2包括本地集群420-3、本地集群420-4和本地集群420-5。每个本地集群420包括一个或多个清单集群430,每个清单集群430包括一个或多个内容服务器110。例如,图4中所示的每个清单集群430包括五个内容服务器110。然而,每个清单集群430中可以包括任何数量的内容服务器110。此外,网络基础设施100中可以包括任何数量的区域集群410、本地集群420、清单集群430和内容服务器110。
图5A-5C示出了根据本发明的各种实施例的用于在图1的地理上分布的内容服务器110的不同层之间复制文件218的技术。为了满足峰值流量需求和冗余需求,可以在每个区域集群410所包括的内容服务器110上复制每个文件218的多个副本。因此,在各种实施例中,控制应用317可以执行一个或多个哈希运算(例如,下面描述的一致性哈希运算),以在多个内容服务器110之间均匀地复制文件218,而不需要预先计算文件应该被存储的位置并且不需要将内容服务器110的索引存储在中央服务器中。虽然本文描述的技术是结合特定的哈希运算来实现的,但是可以使用任何技术上可行的操作或技术来选择层中所包括的内容服务器110,其中特定的文件218通过层中的这些内容服务器110被复制。
在各种实施例中,控制应用317可以通过对与内容服务器110相关联的每个服务器ID执行哈希运算(例如,应用MD5消息摘要算法)来生成针对特定区域集群410所包括的每个内容服务器110的哈希值。控制应用317然后对得到的哈希值进行排序以形成哈希数据结构(例如,哈希环、哈希表等)。为了确定哪些内容服务器110将被用来在区域集群410上复制特定文件218,控制应用317然后通过将相同的(或不同的)哈希运算应用于与文件218关联的文件ID来生成针对文件218的哈希值。
然后,控制应用317将与文件218相关联的哈希值与哈希数据结构进行比较,并选择具有最接近文件218的哈希值的哈希值的内容服务器110作为该特定文件218的区域主服务器510。此外,如果为文件218和/或区域主服务器510层指定复制因子(RF)>1,则控制应用317(例如,基于哈希值)在哈希数据结构中选择接下来的一个或多个另外的内容服务器110作为区域主服务器510。在一些实施例中,控制应用317通过从与为区域集群410选择的第一区域主服务器510相关联的哈希值处开始、绕着哈希环或者沿着哈希表“行走”来选择哈希数据结构中的下一内容服务器110,直到选择了期望数量的区域主服务器510。
一旦选择了与区域集群410相关联的区域主服务器510,就基于从控制应用317接收的指令,立即从填充源130提取515文件218,如图5A所示。为了清楚地进行解释,在图5A中示出的每个区域集群410中仅示出了一个区域主服务器510。然而,在RF>1的实施例中,针对特定文件218选择了多个区域主服务器510,并且这些区域主服务器510可立即从填充源130提取文件218。
接下来,控制应用317过滤哈希数据结构以仅包括位于特定的本地集群420中的内容服务器110。控制应用317然后选择过滤后的哈希数据结构中所包括的一个或多个接下来的内容服务器110来作为本地集群420的本地主服务器520。例如,参考图5B,当确定本地集群420-1的一个或多个本地主服务器520时,控制应用317将过滤哈希数据结构以排除未被包括在本地集群420-1中的所有内容服务器110。然后,控制应用317通过过滤后的哈希数据结构中剩余的哈希值选择下一内容服务器110作为本地集群420-1的本地主服务器520。此外,如果针对文件218和/或针对本地主服务器520层指定了RF>1,则控制应用317选择过滤后的哈希数据结构中所包括的一个或多个接下来的内容服务器110作为本地集群420-1的本地主服务器520。控制应用317然后针对区域集群410中所包括的每个本地集群420重复该过程。
如图5B所示,本地主服务器520从区域主服务器510提取文件218。控制应用317还向本地主服务器520提供关于如何以及何时可以提取文件218的指令。在一些实施例中,为了防止(一个或多个)区域主服务器510被对文件218的请求所压倒,控制应用317指示与每个本地集群420相关联的本地主服务器520在从(一个或多个)区域主服务器510提取文件218之前等待第一预定时间段(例如,在(一个或多个)区域主服务器510从填充源130提取515文件之后的1到3个小时)。另外,控制应用317可以指示本地主服务器520仅在比第一预定时间段更长的第二预定时间段(例如,在(一个或多个)区域主服务器510从填充源130提取515文件218之后的2到4个小时)之后从更昂贵的源(例如,填充源130)提取文件218。实施第二预定时间段(其后,本地主服务器520可以从更昂贵的源提取文件)在降低网络成本和减少由于与相应的区域主服务器510相关联的网络问题、软件/硬件故障等而出现的长延迟之间达成平衡。此外,在一些实施例中,本地主服务器520可以从与不同区域集群410相关联的区域主服务器510获取文件218。
可选地,控制应用317可以再次过滤哈希数据结构以仅包括位于特定清单集群430中的内容服务器110。控制应用317然后选择过滤后的哈希数据结构中所包括的一个或多个接下来的内容服务器110作为清单集群430的清单主服务器530。例如,参考图5C,当确定清单集群430-1的一个或多个清单主服务器530时,控制应用317可以过滤哈希数据结构以排除未被包括在清单集群430-1中的所有内容服务器110。然后,控制应用317通过过滤后的哈希数据结构中剩余的哈希值选择下一内容服务器110作为清单集群430-1的清单主服务器530-3。此外,如果为文件218和/或清单主服务器530层指定了RF>1,则控制应用317可以选择过滤后的哈希数据结构中所包括的一个或多个接下来的内容服务器110作为清单集群430-1的清单主服务器530。控制应用317然后针对区域集群410中所包括的每个清单集群430重复该过程。另外,控制应用317针对基础设施网络100中所包括的每个区域集群410重复确定区域主服务器510、本地主服务器520和清单主服务器530的整个过程。
如图5C所示,清单主服务器530从本地主服务器520提取535文件218。在一些实施例中,为了防止(一个或多个)本地主服务器520被对文件218的请求所压倒,控制应用317指示与每个清单集群430相关联的清单主服务器530在从(一个或多个)本地主服务器520提取文件218之前等待第一预定时间段(例如,在(一个或多个)本地主服务器520从区域主服务器510获取525文件218之后的1到3个小时)。此外,控制应用317可以指示清单主服务器530在第二预定时间段(例如,在(一个或多个)本地主服务器520从一个或多个区域主服务器提取525文件218之后的2到4个小时)之后从更昂贵的源(例如,(一个或多个)区域主服务器510)提取文件218。此外,控制应用317可以指示清单主服务器530在第三预定时间段(例如,在(一个或多个)本地主服务器520从(一个或多个)区域主服务器510提取525文件218之后的4到6个小时)之后从填充源130提取文件218。
一旦特定的清单集群430内的清单主服务器530接收到文件218的副本,清单集群430中所包括的每个非主服务器540就可以从清单主服务器530中提取文件218。有利的是,清单集群430内的非主服务器540和清单主服务器530之间的提取通常不会引起任何第三方网络或存储费用。在一些实施例中,控制应用317指示非主服务器540在从清单主服务器530中提取文件218之前等待可选的第一预定时间段(例如,在(一个或多个)清单主服务器530从(一个或多个)本地主服务器530中提取535文件218之后的1到3个小时)。此外,控制应用317可以指示非主服务器540在从更昂贵的源(例如,(一个或多个)本地主服务器520、(一个或多个)区域主服务器510和填充源130)提取文件218之前等待。
为了避免“热邻居”问题(其中依次位于哈希数据结构中的内容服务器110接收多个流行文件218并且因此遭受性能的下降),控制应用317在生成哈希数据结构之前可选地将每个服务器ID与多个值组合。例如,控制应用317可以将每个服务器ID与固定范围的1000个常数组合。控制应用317然后对每个组合执行哈希运算以生成针对每个内容服务器110的1000个哈希值。因此,每个内容服务器110将在哈希数据结构中多次出现,这极大地降低了相同子集的内容服务器110将接收多个流行文件218的可能性。下面提供了一个示例。
在具体示例中,假设特定的区域集群410包括20个内容服务器。为了创建哈希数据结构(例如,哈希环),控制应用317将这20个服务器ID中的每一个服务器ID与固定范围的常数(例如,1至1000)组合,将哈希运算应用于每个组合,并且对生成的20000个哈希值进行排序以产生哈希环。进一步假设内容服务器110从A到T被命名,产生的哈希环可以包括以下哈希值:
00000000:D
00003064:A
00005662:S
00007174:N
00009947:A
00012516:T
00015577:Q
00016652:R
00021625:L
00025057:Q
00028665:K
23451234:F
23453753:R
23456802:Q
23459919:I
23462687:A
23463273:I
23466229:T
23471069:M
23475876:G
23476011:T
(哈希环循环回到开始)
在给定RF=3的情况下,控制应用317然后对与文件218相关联的文件ID执行哈希运算,并选择在哈希环上遇到的前3个内容服务器110。例如,假设对文件ID执行哈希运算产生哈希值00015500,则控制应用317将选择Q作为主内容服务器110,因为00015577是在00015500之后遇到的第一个内容服务器110,因此将选择R和L作为副本内容服务器110。
图6A和图6B示出了根据本发明的各种实施例的用于在地理上分布的内容服务器110上复制文件218的方法步骤的流程图。尽管结合图1-5C的系统描述了方法步骤,但是本领域技术人员将理解,被配置为以任意顺序执行方法步骤的任何系统都落入本发明的范围内。
如图6A所示,方法600在步骤605处开始,其中控制应用317通过对与内容服务器110的特定区域集群410中所包括的每个内容服务器110相关联的服务器标识符(ID)执行第一哈希运算来生成诸如哈希环或哈希表之类的哈希数据结构。在步骤610处,控制应用317通过对与文件218相关联的文件ID执行第二哈希运算来生成哈希值。在一些实施例中,第一哈希运算和第二哈希运算是相同的(例如,MD5哈希运算)。然而,在各种实施例中,第一哈希运算和第二哈希运算可以包括不同的运算。此外,在一些实施例中,第一哈希运算和/或第二哈希运算可以包括修改服务器ID和/或文件ID的一个或多个变换。
在步骤615处,控制应用317通过将第一哈希值与哈希数据结构进行比较来确定区域集群410中所包括的一个或多个区域主服务器510。在各种实施例中,一个或多个区域主服务器510由区域集群410中所包括的内容服务器110的子集组成。然后,在步骤620处,控制应用317使得每个区域主服务器510从填充源130提取文件218。例如,控制应用317可以通过响应于从区域主服务器510接收到JSON数组而向每个区域主服务器510发出指令并且通过指定文件ID,来使得区域主服务器510提取文件218。
接下来,在步骤625处,控制应用317选择区域集群410中所包括的内容服务器110的本地集群420。在步骤630处,控制应用317过滤哈希数据结构以基于针对文件ID生成的哈希值确定本地集群420中所包括的一个或多个本地主服务器520。在各种实施例中,一个或多个本地主服务器520由本地集群420中所包括的内容服务器110的子集构成。在步骤635处,控制应用317然后使得每个本地主服务器520在从区域主服务器510提取文件218之前等待预定时间段。在一些实施例中,本地主服务器520在从区域主服务器510提取文件218之前需要等待的预定时间对于每个本地主服务器520是相同的,而在其它实施例中,预定时间可以随本地主服务器520而变化。
在步骤640处,控制应用317确定是否需要为另外的本地集群420确定一个或多个本地主服务器520。如果控制应用317确定需要为另外的本地集群420确定一个或多个本地主服务器520,则方法600返回到上述的步骤625。如果控制应用317确定不需要为另外的本地集群420确定(一个或多个)本地主服务器520,则方法600进行到图6B所示的步骤645,在步骤645处,控制应用317选择内容服务器110的清单集群430。
在步骤650,控制应用317过滤哈希数据结构以基于哈希值确定清单集群430中所包括的一个或多个清单主服务器530。在各种实施例中,一个或多个清单主服务器530由清单集群430中所包括的内容服务器110的子集构成。
因为(一个或多个)区域主服务器510、(一个或多个)本地主服务器520和(一个或多个)清单主服务器530是基于服务器ID和文件ID来确定的,所以文件218在基础设施网络100中被复制的位置以及可以从每个位置提取文件218的时间可以由具有服务器ID和文件ID的记录的任何内容服务器110确定。因此,可以以分散式的、高度容错的方式通过基础设施网络100复制文件218,而不需要诸如控制服务器217之类的实体来维护主索引。
在步骤655处,控制应用317使得每个清单主服务器530在从本地主服务器520获取文件218之前等待预定时间段。在一些实施例中,清单主服务器530在从本地主服务器520获取文件218之前需要等待的预定时间对于每个清单主服务器530是相同的,而在其他实施例中,预定时间可以随清单主服务器530而变化。
在步骤660处,控制应用317确定是否需要为另外的清单集群430确定一个或多个清单主服务器530。如果控制应用317确定需要为另外的清单集群430确定一个或多个清单主服务器530,则方法600返回到上述的步骤645。如果控制应用317确定不需要为另外的清单集群430确定清单主服务器530,则方法600进行到步骤665,在步骤665处,控制应用317使得每个非主服务器540在从清单主服务器530提取文件218之前等待预定时间段。在一些实施例中,非主服务器540在从清单主服务器530提取文件218之前需要等待的预定时间对于每个非主服务器540是相同的,而在其他实施例中,预定时间可以随非主服务器540而改变。
在步骤670处,控制应用317确定是否需要为另外的文件218确定(一个或多个)区域主服务器510、(一个或多个)本地主服务器520和/或(一个或多个)清单主服务器530。如果控制应用317确定需要为另外的文件218确定(一个或多个)区域主服务器510、(一个或多个)本地主服务器520和/或(一个或多个)清单主服务器530,则方法600返回到步骤610。如果控制应用317确定不需要为另外的文件218确定(一个或多个)区域主服务器510、(一个或多个)本地主服务器520和/或(一个或多个)清单主服务器530,则方法600终止。
总而言之,控制应用对多个服务器ID执行哈希运算以生成哈希数据结构。控制应用然后对文件ID执行哈希运算,并将哈希值与哈希数据结构进行比较以选择一个或多个区域主服务器。然后针对每个本地集群和清单集群过滤哈希数据结构,以便分别确定将通过其复制文件的本地主服务器和清单主服务器。控制应用还向每个本地主服务器层、清单主服务器层和非主服务器层分配预定的延迟,以便控制通过基础设施网络复制文件的速率。
所公开的技术的至少一个优点是可以经由特定层的内容服务器以可预测的、分散式的和高度容错的方式在网络中复制每个文件,而不需要维护主索引的实体。另外,可以通过基于每个层或基于每个文件指定复制因子来例如基于文件的流行性和需求性控制每个层中所包括的通过其来复制文件的内容服务器的数量。此外,可以将预定的延迟分配给每一层,以便防止较低层淹没较高层所包括的内容服务器,这降低了服务器负载波动的严重性。此外,因为每一层所包括的内容服务器是基于与文件相关联的标识符来确定的,所以每个文件可以经由不同的内容服务器序列通过网络基础设施传播。因此,网络和处理负载更均匀地分布在内容服务器之间,这提高了通过内容服务器向正在访问基于web的应用的用户提供的服务的整体质量。
已经为了说明的目的呈现了各种实施例的描述,但并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。
本实施例的方面可以体现为系统、方法或计算机程序产品。因此,本公开的方面可以采用如下形式:完全是硬件实施例、完全是软件实施例(包括固件、驻留软件、微代码等)、或组合软件和硬件方面(在本文中可全部被一般地称为“电路”、“模块”或“系统”)的实施例。此外,本公开的方面可以采用体现在一个或多个计算机可读介质中的计算机程序产品(具有体现在上面的计算机可读程序代码)的形式。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电的、磁的、光的、电磁的、红外的或半导体系统、设备或装置,或前述各项的任何合适的组合。计算机可读存储介质的更具体的示例(非详尽列表)将包括以下项:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述各项的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。
以上参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的方面。应当理解,流程图和/或框图种的每个块以及流程图和/或框图中的块的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以形成机器,从而指令(其经由计算机的处理器或其它可编程数据处理装置执行)使得一个或多个流程图和/或框图的块中指定的功能/动作能够被实现。这样的处理器可以是但不限于通用处理器、特殊用途处理器、专用处理器、或现场可编程阵列。
附图中的流程图和框图说明了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个块可以表示代码的模块、段或部分,其包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令。还应指出的是,在一些替代的实施方式中,块中所述的功能可以不按附图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时被执行,或者这些块有时可以以相反的顺序被执行。还应指出的是,框图和/或流程图中的每个块和框图和/或流程图中的块的组合可以由执行指定功能或动作的专用的基于硬件的系统或专用的硬件和计算机指令的组合来实现。
上文已经参考具体实施例对本发明进行了描述。然而,本领域的普通技术人员将会理解,在不脱离如所附权利要求所阐述的本发明的较广阔的精神和范围的情况下,可以对实施例进行各种修改和改变。例如但不限于,虽然本文的许多描述涉及具体类型的文件、哈希运算和服务器层,但是本领域的技术人员将会理解,这里描述的系统和技术适用于其他类型的数据文件、算法和层级结构。因此,前面的描述和附图被认为是说明性的而不是限制性的。
尽管上文指出了本公开的实施例,但是可以在不脱离本发明的基本范围的情况下想出本公开的其它和另外的实施例,并且本发明的范围由所附权利要求来确定。

Claims (18)

1.一种分层高速缓存填充方法,包括:
确定区域服务器集群中所包括的一个或多个区域主服务器;
使得每个区域主服务器从填充源获取文件;以及
针对所述区域服务器集群中所包括的至少一个本地服务器集群:
确定所述至少一个本地服务器集群中所包括的一个或多个本地主服务器;以及
使得每个本地主服务器从所述一个或多个区域主服务器中的一个区域主服务器中获取所述文件,
其中,所述方法还包括:
基于多个服务器标识符ID执行第一哈希运算以生成哈希数据结构,其中,所述多个服务器标识符ID中所包括的每个服务器标识符ID与所述区域服务器集群中所包括的不同服务器相关联;以及
基于与所述从填充源获取的文件相关联的文件ID执行第二哈希运算以生成第一哈希值,
其中,确定所述一个或多个区域主服务器包括将所述第一哈希值与所述哈希数据结构进行比较。
2.如权利要求1所述的方法,还包括:针对所述至少一个本地服务器集群中所包括的每个清单服务器集群:
确定所述清单服务器集群中所包括的一个或多个清单主服务器;以及
使得每个清单主服务器从与所述本地服务器集群相关联的本地主服务器中获取所述文件。
3.如权利要求2所述的方法,其特征在于,还包括:使得至少一个本地主服务器在从所述一个或多个区域主服务器中的一个区域主服务器中获取所述文件之前等待第一预定时间段,并且使得至少一个清单主服务器在从所述至少一个本地主服务器中获取所述文件之前等待第二预定时间段。
4.如权利要求1所述的方法,其中,确定所述一个或多个本地主服务器包括基于所述第一哈希值对所述哈希数据结构执行过滤操作。
5.如权利要求4所述的方法,还包括:针对所述至少一个本地服务器集群中所包括的每个清单服务器集群:
基于所述第一哈希值过滤所述哈希数据结构以确定所述清单服务器集群中所包括的一个或多个清单主服务器;以及
使得每个清单主服务器从与所述本地服务器集群相关联的本地主服务器中获取所述文件。
6.如权利要求1所述的方法,其中,所述哈希数据结构包括哈希环,并且所述第一哈希运算和所述第二哈希运算包括一致性哈希运算。
7.如权利要求1所述的方法,其中,执行所述第一哈希运算包括针对每个服务器标识符ID:
将所述服务器标识符ID与多个不同的值进行组合以生成多个不同的服务器标识符ID实例;
对所述多个服务器标识符ID实例中的每一个执行所述第一哈希运算以生成多个哈希数据结构值;以及
将所述多个哈希数据结构值存储在哈希数据结构中。
8.如权利要求1所述的方法,其中,所述区域主服务器的数量和本地主服务器的数量基于与所述文件相关联的至少一个复制因子。
9.一种控制服务器,包括:
存储控制应用的存储器;以及
耦合到所述存储器的处理器,其中当由所述处理器执行时,所述控制应用将所述处理器配置为:
确定区域服务器集群中所包括的第一多个区域主服务器;
使得每个区域主服务器从填充源中获取文件;并且
针对所述区域服务器集群中所包括的至少一个本地服务器集群:
确定所述至少一个本地服务器集群中所包括的一个或多个本地主服务器;并且
使得每个本地主服务器从所述第一多个区域主服务器中的一个区域主服务器中获取所述文件,
其中,所述控制应用还将所述处理器配置为:
基于多个服务器标识符ID执行第一哈希运算以生成哈希数据结构,其中,所述多个服务器标识符ID中所包括的每个服务器标识符ID与所述区域服务器集群中所包括的不同服务器相关联;以及
基于与所述从填充源获取的文件相关联的文件ID执行第二哈希运算以生成第一哈希值,
其中,所述处理器被配置为通过将所述第一哈希值与所述哈希数据结构进行比较来确定所述第一多个区域主服务器。
10.如权利要求9所述的控制服务器,其中,所述控制应用还将所述处理器配置为:针对所述至少一个本地服务器集群中所包括的每个清单服务器集群:
确定所述清单服务器集群中所包括的一个或多个清单主服务器;以及
使得每个清单主服务器从与所述本地服务器集群相关联的本地主服务器中获取所述文件。
11.如权利要求10所述的控制服务器,其中,所述控制应用还将所述处理器配置为:使得至少一个本地主服务器在从所述第一多个区域主服务器中的一个区域主服务器中获取所述文件之前等待第一预定时间段,以及使得至少一个清单主服务器在从所述至少一个本地主服务器中获取所述文件之前等待第二预定时间段。
12.如权利要求9所述的控制服务器,其中,所述控制应用还将所述处理器配置为:
基于与第二文件相关联的第二文件ID执行第三哈希运算以生成第二哈希值;
将所述第二哈希值与所述哈希数据结构进行比较以确定所述区域服务器集群中所包括的第二多个区域主服务器,其中,所述第二多个区域主服务器包括未被包括在所述第一多个区域主服务器中的至少一个服务器;
使得每个区域主服务器从所述填充源中获取所述第二文件;以及
针对所述区域服务器集群中所包括的至少一个本地服务器集群:
基于所述第二哈希值对所述哈希数据结构执行过滤操作以确定所述本地服务器集群中所包括的多个本地主服务器,其中所述多个本地主服务器包括未被包括在所述一个或多个本地主服务器中的至少一个服务器;以及
使得每个本地主服务器从所述第二多个区域主服务器中的一个区域主服务器中获取所述第二文件。
13.如权利要求9所述的控制服务器,其中,所述控制应用还将所述处理器配置为:响应于从所述区域服务器集群中所包括的服务器中接收到文件ID数组,执行所述第一哈希运算并且将所述第一哈希值与所述哈希数据结构进行比较。
14.如权利要求13所述的控制服务器,其中,所述文件ID数组被包括在从所述服务器接收到的JavaScript对象表示法JSON对象中。
15.如权利要求9所述的控制服务器,其中,所述控制应用还将所述处理器配置为通过针对所述至少一个本地服务器集群中所包括的每个本地服务器集群执行如下操作来确定所述一个或多个本地主服务器:
从所述哈希数据结构中排除未被包括在本地服务器集群中的所有服务器;以及
确定所述哈希数据结构中剩余的具有最接近所述第一哈希值的哈希值的一个或多个服务器,以选择所述一个或多个本地主服务器。
16.如权利要求9所述的控制服务器,其中,所述第一多个区域主服务器中所包括的服务器的第一数量基于与区域主服务器层相关联的第一复制因子,并且所述一个或多个本地主服务器中所包括的服务器的第二数量基于与本地主服务器层相关联的第二复制因子。
17.一种包括指令的非暂态计算机可读存储介质,所述指令在由处理器执行时使得所述处理器执行如下步骤:
基于多个服务器标识符ID执行第一哈希运算以生成哈希环,其中,所述多个服务器标识符ID中所包括的每个服务器标识符ID与区域服务器集群中所包括的不同服务器相关联;
基于与从填充源获取的文件相关联的文件ID执行第二哈希运算以生成第一哈希值;
确定哈希环上最接近第一哈希值的一个或多个哈希值,以选择所述区域服务器集群中所包括的一个或多个区域主服务器;
使得每个区域主服务器从填充源中获取所述文件;以及
针对所述区域服务器集群中所包括的多个本地服务器集群中的每个本地服务器集群:
基于所述第一哈希值对所述哈希环执行过滤操作以确定所述本地服务器集群中所包括的一个或多个本地主服务器;以及
使得每个本地主服务器从所述一个或多个区域主服务器中的一个区域主服务器中获取所述文件。
18.如权利要求17所述的非暂态计算机可读存储介质,其中,对所述哈希环执行所述过滤操作包括:针对每个本地服务器集群:
从所述哈希环中排除未被包括在所述本地服务器集群中的所有服务器;以及
确定所述哈希环中剩余的具有最接近所述第一哈希值的哈希值的一个或多个服务器以选择所述一个或多个本地主服务器。
CN201680038924.8A 2015-04-30 2016-04-28 分层高速缓存填充 Active CN107810501B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562155430P 2015-04-30 2015-04-30
US62/155,430 2015-04-30
US15/067,099 2016-03-10
US15/067,099 US11010341B2 (en) 2015-04-30 2016-03-10 Tiered cache filling
PCT/US2016/029872 WO2016176499A1 (en) 2015-04-30 2016-04-28 Tiered cache filling

Publications (2)

Publication Number Publication Date
CN107810501A CN107810501A (zh) 2018-03-16
CN107810501B true CN107810501B (zh) 2022-01-11

Family

ID=56024386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680038924.8A Active CN107810501B (zh) 2015-04-30 2016-04-28 分层高速缓存填充

Country Status (11)

Country Link
US (2) US11010341B2 (zh)
EP (1) EP3289490B1 (zh)
JP (1) JP6564471B2 (zh)
KR (1) KR102031476B1 (zh)
CN (1) CN107810501B (zh)
AU (2) AU2016255442B2 (zh)
CA (1) CA2984312C (zh)
DK (1) DK3289490T3 (zh)
MX (1) MX2017013857A (zh)
SG (1) SG11201708828UA (zh)
WO (1) WO2016176499A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6620788B2 (ja) * 2017-06-15 2019-12-18 富士通クライアントコンピューティング株式会社 データ提供システム、情報処理方法および情報処理プログラム
US11947516B1 (en) * 2018-02-22 2024-04-02 Amazon Technologies, Inc. Multi-tier definition management for distributed data stores
US10880360B2 (en) * 2019-04-05 2020-12-29 International Business Machines Corporation File transmission in a cluster
CN110830564B (zh) * 2019-10-30 2022-11-01 北京金山云网络技术有限公司 Cdn调度方法、装置、系统及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855294A (zh) * 2012-08-13 2013-01-02 北京联创信安科技有限公司 一种智能哈希数据布局方法、集群存储系统及其方法
CN104065568A (zh) * 2014-07-07 2014-09-24 电子科技大学 一种Web服务器集群的路由方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372870B1 (en) * 2003-01-21 2016-06-21 Peer Fusion, Inc. Peer to peer code generator and decoder for digital systems and cluster storage system
JP2005031987A (ja) 2003-07-14 2005-02-03 Nec Corp コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム
EP1872270A1 (en) * 2005-04-22 2008-01-02 Thomson Licensing Network caching for hierarchical content
US8255420B2 (en) 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
JP2008035337A (ja) 2006-07-31 2008-02-14 Brother Ind Ltd ノード装置、配信装置、管理装置、情報処理プログラム、コンテンツ配信方法及びコンテンツ配信システム
US20080065704A1 (en) 2006-09-12 2008-03-13 Microsoft Corporation Data and replica placement using r-out-of-k hash functions
JP4830889B2 (ja) 2007-02-15 2011-12-07 ブラザー工業株式会社 情報配信システム、情報配信方法及びノード装置等
US20080301125A1 (en) * 2007-05-29 2008-12-04 Bea Systems, Inc. Event processing query language including an output clause
US8108933B2 (en) * 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
JP5233799B2 (ja) 2009-03-31 2013-07-10 ブラザー工業株式会社 コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム
US8332463B2 (en) 2009-05-27 2012-12-11 Brother Kogyo Kabushiki Kaisha Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP2011118593A (ja) 2009-12-02 2011-06-16 Nec Corp データ転送サーバ、データ転送システム、データ転送方法およびプログラム
US20110191447A1 (en) * 2010-01-29 2011-08-04 Clarendon Foundation, Inc. Content distribution system
US9355109B2 (en) 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US11195057B2 (en) * 2014-03-18 2021-12-07 Z Advanced Computing, Inc. System and method for extremely efficient image and pattern recognition and artificial intelligence platform
KR101326242B1 (ko) * 2012-01-20 2013-11-11 양재상 건물 바닥의 단열방수공법
KR101959970B1 (ko) 2012-09-05 2019-07-04 에스케이텔레콤 주식회사 컨텐츠 전송 서비스 방법, 이를 위한 캐시 장치
US9268808B2 (en) 2012-12-31 2016-02-23 Facebook, Inc. Placement policy
EP3076675B1 (en) * 2013-04-06 2019-08-21 Miranda Technologies Partnership Systems and methods for media distribution and management
US9495420B2 (en) * 2013-05-22 2016-11-15 International Business Machines Corporation Distributed feature collection and correlation engine
KR20150011087A (ko) 2013-07-22 2015-01-30 에스케이텔레콤 주식회사 컨텐츠 전송 서비스를 위한 분산 캐싱 관리 방법 및 이를 위한 중앙 관리 장치
US10255188B2 (en) * 2014-03-17 2019-04-09 Vmware, Inc. Migrating workloads across host computing systems based on cache content usage characteristics
KR102394959B1 (ko) * 2014-06-13 2022-05-09 삼성전자주식회사 멀티미디어 데이터를 관리하는 방법 및 장치
ES2881123T3 (es) * 2016-04-19 2021-11-26 Telefonica Cibersecurity & Cloud Tech S L U Método implementado por ordenador para generación de contraseñas y productos de programa informático del mismo
EP3494686B1 (en) * 2016-08-05 2020-12-30 Telefonaktiebolaget LM Ericsson (publ) Transport protocol server relocation
EP3587462B1 (en) * 2017-02-24 2021-08-11 Zeon Corporation Modified polymer latex production method
US20190230156A1 (en) * 2018-01-19 2019-07-25 Nutanix, Inc. System and method of managing cloud resources and services across two or more regions in a single view
US10616707B2 (en) * 2018-01-25 2020-04-07 Nutanix, Inc. Method of showing availability zones on a map for customer-owned and cloud provider-owned datacenters
US11532013B2 (en) * 2019-06-17 2022-12-20 Optimizely, Inc. Optimized simultaneous use of content experimentation and content caching
JP6836643B1 (ja) * 2019-11-27 2021-03-03 株式会社スカイコム 管理サーバ、文書ファイル管理システム、文書ファイル管理方法、および文書ファイル管理プログラム
US11429589B2 (en) * 2020-05-26 2022-08-30 Zscaler, Inc. Data loss prevention via indexed document matching
US11372728B2 (en) * 2020-08-06 2022-06-28 EMC IP Holding Company LLC Retention time based consistent hash ring
US11748303B2 (en) * 2020-11-23 2023-09-05 Ford Global Technologies, Llc Systems and methods for remote storage of information associated with a distributed ledger network
US11513904B2 (en) * 2020-12-17 2022-11-29 EMC IP Holding Company LLC Gold image library management system to reduce backup storage and bandwidth utilization
US20220197944A1 (en) * 2020-12-22 2022-06-23 Netapp Inc. File metadata service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855294A (zh) * 2012-08-13 2013-01-02 北京联创信安科技有限公司 一种智能哈希数据布局方法、集群存储系统及其方法
CN104065568A (zh) * 2014-07-07 2014-09-24 电子科技大学 一种Web服务器集群的路由方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fast Cascading Replication Strategy for Data Grid;LIANG HONG等;《COMPUTER SCIENCE AND SOFTWARE ENGINEERING》;20081212;第4段和第18段 *

Also Published As

Publication number Publication date
CA2984312A1 (en) 2016-11-03
US20210271639A1 (en) 2021-09-02
KR20170139671A (ko) 2017-12-19
US11010341B2 (en) 2021-05-18
SG11201708828UA (en) 2017-11-29
AU2016255442B2 (en) 2021-04-15
CN107810501A (zh) 2018-03-16
MX2017013857A (es) 2018-06-13
AU2021205036A1 (en) 2021-08-12
EP3289490B1 (en) 2021-03-17
JP6564471B2 (ja) 2019-08-21
DK3289490T3 (da) 2021-04-26
WO2016176499A1 (en) 2016-11-03
JP2018524656A (ja) 2018-08-30
AU2016255442A1 (en) 2017-11-16
US11675740B2 (en) 2023-06-13
KR102031476B1 (ko) 2019-10-11
CA2984312C (en) 2021-08-10
US20160321286A1 (en) 2016-11-03
EP3289490A1 (en) 2018-03-07

Similar Documents

Publication Publication Date Title
US11675740B2 (en) Tiered cache filling
US10019192B2 (en) Policy-based hierarchical data protection in distributed storage
US10154086B1 (en) Distributed consumer cloud storage system
US9104719B2 (en) Storing data and metadata in a distributed storage network
US8762479B2 (en) Distributing multi-media content to a plurality of potential accessing devices
CN104580439B (zh) 一种云存储系统中使数据均匀分布的方法
JP5647679B2 (ja) ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けするためのシステム、方法及びコンピュータ・プログラム
US10802914B2 (en) Method of using common storage of parity data for unique copy recording
KR20140021345A (ko) 샤딩 서비스를 제공하는 방법 및 장치
US9916208B2 (en) Determining a replication path for resources of different failure domains
US20220086253A1 (en) Configurable access-based cache policy control
US20220066879A1 (en) Metadata Based Listing in a Distributed Storage System
US20190004730A1 (en) Using index structure to guide load balancing in a distributed storage system
WO2018200770A1 (en) Hash data structure biasing
US20230362274A1 (en) Configurable access-based cache policy control
US10503595B2 (en) Combining deduplication with locality for efficient and fast storage
KR101565137B1 (ko) 무선 스트리밍 서비스 제공 방법 및 장치

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