CN110059022A - 用于分布式高速缓存的系统和方法 - Google Patents

用于分布式高速缓存的系统和方法 Download PDF

Info

Publication number
CN110059022A
CN110059022A CN201811486808.XA CN201811486808A CN110059022A CN 110059022 A CN110059022 A CN 110059022A CN 201811486808 A CN201811486808 A CN 201811486808A CN 110059022 A CN110059022 A CN 110059022A
Authority
CN
China
Prior art keywords
content
storage equipment
client
network connection
processor
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.)
Granted
Application number
CN201811486808.XA
Other languages
English (en)
Other versions
CN110059022B (zh
Inventor
V.辛哈
H.史密斯
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110059022A publication Critical patent/CN110059022A/zh
Application granted granted Critical
Publication of CN110059022B publication Critical patent/CN110059022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于分布式高速缓存的系统和方法,所述系统具有至少一个网络连接的存储设备、内容服务器和控制服务器。控制服务器被配置为发现所述至少一个网络连接的存储设备,从所述至少一个网络连接的存储设备收集设备信息,其中设备信息包括设备位置,基于每个设备位置将所述至少一个网络连接的存储设备中的每个分配给设备域,以及向内容服务器提供所述至少一个网络连接的存储设备的设备信息。

Description

用于分布式高速缓存的系统和方法
相关申请的交叉引用
本申请要求2017年12月22日提交的美国临时专利申请No.62/610,036和2017年12月22日提交的美国临时专利申请No.62/609,948的优先权和权益,其内容通过引用整体并入这里。
技术领域
本公开的一些实施例一般涉及使用附接网络的存储设备的内容高速缓存。
背景技术
存储服务器用于各种数据存储应用。在一些应用中,存储服务器可以向多个远程客户端提供数据存储。例如,存储服务器可以存储数据库、媒体内容、备份存储等。媒体内容传递通常使用位于遍布世界各地的数据中心的存储服务器。
图1描绘了示例性现有技术内容传递系统。
参见图1,数据中心100可以定位成与骨干网络110和本地网络120连接。骨干网络通常是跨越很远距离、并且跨越城市、州、国家和世界连接数据中心、服务器和用户的远程网络。本地网络120通常跨越较短距离,例如,将终端用户连接到数据中心和骨干网络110。数据中心100包括边缘路由器130/135,数据中心的服务器使用边缘路由器130/135连接到网络110/120。对于内容传递系统,数据中心可以包括存储多媒体内容145的内容服务器140和用于将内容快速分发给终端用户设备的多个高速缓存服务器150-156。例如,内容服务器140可以存储内容提供商的内容的全部,并且可以使用骨干网络110接收更新。然后,内容服务器140可以将多媒体内容的部分分发到高速缓存服务器150-156。终端用户设备可以经由本地网络120请求内容,并从适当的高速缓存服务器150-156检索内容。
当前的内容传递系统存在多个问题。它们需要大量昂贵的硬件并消耗大量电力和冷却。此外,利用相对较少的高速缓存设备会导致性能瓶颈,并使系统更容易受到黑客攻击。因此,期望一种新系统。
以上信息仅用于增强对本公开的实施例的背景的理解,因此可能包含不构成现有技术的信息。
发明内容
本公开的一些实施例提供了一种用于分布式高速缓存的系统和方法。在各种实施例中,所述系统包括:至少一个网络连接的存储设备、内容服务器以及控制服务器。在各种实施例中,所述控制服务器配置为:发现所述至少一个网络连接的存储设备;从所述至少一个网络连接的存储设备收集设备信息,其中所述设备信息包括设备位置;基于每个设备位置将所述至少一个网络连接的存储设备中的每个分配给设备域;以及向内容服务器提供所述至少一个网络连接的存储设备的设备信息。
在各种实施例中,所述至少一个网络连接的存储设备包括以太网固态驱动器(eSSD)。
在各种实施例中,所述控制服务器还配置为生成设备表,其中所述设备表包括用于所发现的至少一个网络连接的存储设备中的每个的条目,所述条目包括:高速缓存设备标识符、设备位置和分配的设备域。
在各种实施例中,所述高速缓存设备标识符是IP地址。
在各种实施例中,所述内容服务器被配置为基于每个设备位置将内容推送到所述至少一个网络连接的存储设备中的每个。
在各种实施例中,所述内容服务器具有高速缓存的内容表,所述高速缓存的内容表具有存储在所述至少一个网络连接的存储设备上的每个内容的内容条目,其中所述内容条目包括:高速缓存设备标识符和内容标识符。
在各种实施例中,所述至少一个网络连接的存储设备中的每个包括托管内容表。在各种实施例中,所述托管内容表具有用于验证客户端设备对存储在所述网络连接的存储设备上的每个内容的访问权限的授权条目。
在各种实施例中,一种分布式高速缓存系统可以包括:多个网络连接的存储设备。在各种实施例中,所述网络连接的存储设备中的每个包括至少一个内容和基于设备位置的域。在各种实施例中,所述分布式高速缓存系统还包括内容服务器,所述内容服务器具有存储器和处理器,其中所述处理器被配置为执行来自所述存储器的指令,所述指令在由所述处理器执行时使所述处理器:验证客户端访问所请求的内容的访问权限;识别客户端的位置;将客户端的位置与最近的域匹配;更新最近的域内的设备的托管内容表,以包括客户端的授权条目;以及向客户端传递重定向消息,其中重定向消息包括高速缓存设备标识符。
在各种实施例中,所述多个网络连接的存储设备中的每个包括以太网固态驱动器(eSSD)。
在各种实施例中,所述指令还使得所述内容服务器:验证最近的域内的内容的存储。
在各种实施例中,所述指令还使得所述内容服务器:将所请求的内容的第一分片推送到最近的域中的网络连接的存储设备。
在各种实施例中,所述指令还使得所述内容服务器:将所请求的内容的其他分片推送到最近的域中的网络连接的存储设备。
在各种实施例中,所述设备位置包括物理位置。
在各种实施例中,一种分布式高速缓存系统,包括:多个以太网固态驱动器(eSSD),其中所述多个eSSD中的每个包括IP地址;内容服务器;以及控制服务器。在各种实施例中,所述控制服务器具有第一存储器和第一处理器,其中所述第一处理器被配置为执行来自第一存储器的第一指令,当所述第一指令由第一处理器执行时,使第一处理器:发现所述多个eSSD中的每个;从所述多个eSSD的每个eSSD收集设备信息,其中所述设备信息包括基于IP地址的设备位置;基于每个设备位置将所述多个SSL中的每个分配给设备域;以及向内容服务器提供eSSD和每个相应的设备位置的列表。
在各种实施例中,所述第一指令还使得控制服务器生成设备表,其中所述设备表具有用于所述多个eSSD中的每个的条目。在各种实施例中,每个条目具有:高速缓存设备标识符、所述设备位置、以及分配的设备域。
在各种实施例中,所述内容服务器被配置为基于每个设备位置将内容推送到所述多个eSSD中的每个。
在各种实施例中,所述内容服务器具有高速缓存的内容表,所述高速缓存的内容表具有存储在所述多个eSSD上的每个内容的内容条目。在各种实施例中,所述内容条目具有:高速缓存设备标识符和内容标识符。
在各种实施例中,所述多个eSSD中的每个包括托管内容表。在各种实施例中,所述托管内容表包括用于验证客户端设备对存储在所述多个eSSD中的每个上的内容的访问权限的授权条目。
在各种实施例中,所述内容服务器具有第二存储器和第二处理器。在各种实施例中,所述第二处理器被配置为执行来自第二存储器的第二指令,当所述第二指令由第二处理器执行时,使第二处理器:验证客户端访问所请求的内容的访问权限;识别客户端的位置;将客户端的位置与最近的域匹配;更新最近的域内的eSSD的托管内容表,以包括客户端的授权条目;以及向客户端传递重定向消息,其中重定向消息包括高速缓存设备标识符。
在各种实施例中,所述第二指令还使得内容服务器:验证最近的域内的内容的存储;以及将请求的内容推送到最近的域中的eSSD。
在各种实施例中,一种网络连接的存储设备,包括:网络连接;存储至少一个多媒体内容的持久存储器;以及存储控制器。在各种实施例中,所述内容控制器具有存储托管内容表的存储器,其中托管内容表包括用于所述至少一个多媒体内容的授权条目;以及处理器,其中所述处理器被配置为执行来自所述存储器的指令,所述指令在由所述处理器执行时使所述处理器:根据托管内容表验证客户端对所请求的多媒体内容的访问权限;以及经由网络连接将所请求的多媒体内容传递到客户端。
在各种实施例中,所述授权条目包括客户端ID、内容ID、下载时间戳、使用时间戳和使用计数。
在各种实施例中,所述至少一个多媒体内容包括多媒体内容的第一分片。
在各种实施例中,所述网络连接的存储设备可以根据多媒体内容的第一分片的传递,从内容服务器请求多媒体内容的第二分片。
在各种实施例中,所述网络连接的重传设备可以根据多媒体内容的第一分片的传递通知内容服务器。
附图说明
通过以下结合附图的描述,可以更详细地理解一些实施例,附图中:
图1描绘了示例现有技术内容传递系统;
图2描绘了根据本发明的各种实施例的分布式高速缓存系统;
图3描绘了根据本发明的各种实施例的用于初始化分布式高速缓存系统的通信图表;
图4描绘了根据本发明的各种实施例的用于系统初始化的方法;
图5A描绘了根据各种实施例的在控制服务器上使用的设备表;
图5B描绘了根据各种实施例的用于由内容服务器使用的高速缓存的内容表;
图5C描绘了根据各种实施例的可以由内容服务器发送到客户端设备的重定向消息;
图5D描绘了根据各种实施例的用于在连接网络的存储设备上使用的内容表;
图6描绘了根据本发明的各种实施例的用于利用分布式高速缓存系统来下载内容的通信图表;
图7描绘了根据本发明的各种实施例的用于利用分布式高速缓存系统下载内容的方法;
图8描绘了根据本发明的各种实施例的用于当内容当前在本地高速缓存设备上不可用时利用分布式高速缓存系统来下载内容的通信图表;
图9描绘了根据本发明的各种实施例的用于当内容当前在本地高速缓存设备上不可用时利用分布式高速缓存系统下载内容的方法。
具体实施方式
通过参考以下对实施例和附图的详细描述,可以更容易地理解本发明构思的特征和实现它们的方法。在下文中,将参考附图更详细地描述实施例,其中相同的附图标记始终表示相同的元件。然而,本发明可以以各种不同的形式体现,并且不应该被解释为仅限于这里所示的实施例。相反,提供这些实施例作为示例,使得本公开将是彻底和完整的,并且将向本领域技术人员充分传达本发明的方面和特征。因此,可能没有描述对于本领域普通技术人员完全理解本发明的方面和特征不必要的过程、元件和技术。除非另有说明,否则在整个附图和书面描述中相同的附图标记表示相同的元件,因此,不再重复其描述。在附图中,为了清楚起见,可夸大元件、层和区域的相对尺寸。
在以下描述中,出于解释的目的,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下或者利用一个或多个等同布置来实践各种实施例。在其他情况下,未以框图形式示出公知的结构和设备,以避免不必要地模糊各种实施例。
应当理解,当元件、层、区域或组件被称为“在......上”、“连接到”或“耦合到”另一个元件、层、区域或组件时,它可以直接在其他元件、层、区域或组件上、与其连接或耦合,或者可以存在一个或多个中间元件、层、区域或组件。然而,“直接连接/直接耦合”是指一个组件直接连接或耦合另一个组件而没有中间组件。同时,可以类似地解释描述组件之间的关系的其他表达,如“之间”、“紧挨…之间”或“邻近”和“直接邻近”。还将理解,当元件或层被称为在两个元件或层“之间”时,它可以是两个元件或层之间的唯一元件或层,或者也可以存在一个或多个中间元件或层。
这里使用的术语仅用于描述特定实施例的目的,并不意图限制本发明。如这里所用,单数形式“一”和“一个”也旨在包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”、“包含”、“具有”、“有”、和“含有”,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。如这里所使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。
如这里所使用的,术语“基本上”、“约”、“近似”和类似术语用作近似术语而不是程度术语,并且旨在考虑本领域普通技术人员将认识到的测量或计算值的固有偏差。如这里所用,“约”或“近似”包括所述值,并且意味着在本领域普通技术人员确定的特定值的可接受的偏差范围内,考虑所讨论的测量和与测量特定量相关联的误差(即测量系统的限制)。例如,“约”可意味着在一个或多个标准偏差内,或在所述值的±30%、20%、10%、5%内。此外,当描述本发明的实施例时,“可以”的使用是指“本发明的一个或多个实施例”。如这里所使用的,术语“使用”、“正使用”和“被使用”可以被分别认为是术语“利用”、“正利用”和“被利用”的同义词。而且,术语“示例性”旨在表示示例或说明。
当某个实施例可以不同地实现时,可以与所描述的顺序不同地执行特定的处理顺序。例如,两个连续描述的处理可以基本上同时执行或者以与所描述的顺序相反的顺序执行。
这里参考截面图描述了各种实施例,截面图是实施例和/或中间结构的示意图。因此,可以预期由于例如制造技术和/或公差导致的图示形状的变化。此外,这里公开的特定结构或功能描述仅仅是为了描述根据本公开的概念的实施例的目的。因此,这里公开的实施例不应被解释为限于区域的特定示出形状,而是包括由例如制造导致的形状偏差。例如,示出为矩形的注入区域通常在其边缘处具有圆形或弯曲的特征和/或注入浓度的梯度,而不是从注入区域到非注入区域的二元变化。同样地,通过注入形成的掩埋区域可能导致在掩埋区域和通过其进行注入的表面之间的区域中的一些注入。因此,附图中示出的区域本质上是示意性的,并且它们的形状不旨在示出设备的区域的实际形状,并且不旨在限制。
可以利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的组合来实现根据这里描述的本发明实施例的电子或电气设备和/或任何其他相关设备或组件。例如,这些设备的各种组件可以形成在一个集成电路(IC)芯片上或形成在单独的IC芯片上。此外,这些设备的各种组件可以在柔性印刷电路膜、带载封装(TCP)、印刷电路板(PCB)上实现,或者形成在一个基板上。此外,这些设备的各种组件可以是在一个或多个处理器上、在一个或多个计算设备中运行的进程或线程,执行计算机程序指令以及与其他系统组件交互以执行这里描述的各种功能。计算机程序指令存储在存储器中,该存储器可以使用诸如标准存储器设备(例如,随机存取存储器(RAM))在计算设备中实现。计算机程序指令还可以存储在诸如其他非暂时性计算机可读介质中,例如CD-ROM、闪存驱动器等。此外,本领域技术人员应该认识到,各种计算设备的功能可以组合或集成到单个计算设备中,或者特定计算设备的功能可以分布在一个或多个其他计算设备上而不脱离本发明的示例性实施例的精神和范围。
除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,诸如在常用字典中定义的那些术语应被解释为具有与其在相关领域和/或本说明书的上下文中的含义一致的含义,并且不应解释为理想化或过于正式的意义,除非在此明确定义。
本发明的实施例包括用于使用附接网络的存储设备的分布式高速缓存的系统和方法。在各种实施例中,该系统包括一个或多个附接网络的存储设备,诸如以太网SSD(eSSD)或其他附接网络的微设备。附接网络的存储设备可以分布在数据中心或整个本地网络中。控制服务器用于将附接网络的存储设备配置为高速缓存设备。然后,高速缓存设备可以用作多媒体内容传递系统的一部分,其中高速缓存设备与内容服务器一起操作以向用户提供多媒体或其他内容。
图2描绘了根据本发明的各种实施例的分布式高速缓存系统。
参见图2,在各种实施例中,分布式高速缓存系统200可以被配置为使用多个高速缓存网络连接的存储设备来提供存储服务。例如,分布式高速缓存系统200可以包括位于数据中心210中的各种组件。数据中心210可以经由骨干边缘路由器230连接到骨干网络,并且经由本地边缘路由器235连接到本地网络。在各种实施例中,数据中心210包括配置为存储多媒体内容222的内容服务器220。多媒体内容222可以包括例如视频、音频和其他多媒体文件。例如,在各种实施例中,多媒体内容222可以包括第一视频224和第二视频226。在各种实施例中,数据中心210包括一个或多个数据中心高速缓存网络连接的存储设备240、245。类似地,在各种实施例中,一个或多个本地高速缓存网络连接的存储设备250-256可以位于本地网络上。在各种实施例中,高速缓存网络连接的存储设备可以包括诸如eSSD的微设备。例如,在各种实施例中,eSSD包括具有处理器的存储控制器、存储器(例如DRAM)、永久存储器(例如固件)和网络连接以及永久存储器(例如闪存)。eSSD配置为经由网络连接与远程主机执行输入/输出操作。在各种实施例中,高速缓存网络连接的存储设备可以被配置为存储多媒体内容222的一部分并向一个或多个客户端设备提供对其存储的媒体内容的访问。
例如,在各种实施例中,第一视频224可以存储在数据中心高速缓存网络连接的存储设备240上,并且第二视频226可以存储在数据中心高速缓存网络连接的存储设备245上。客户端设备可以从数据中心高速缓存网络连接的存储设备240、245检索第一视频224和第二视频226。在一些实施例中,多媒体内容222的全部或一部分可以存储在本地高速缓存网络连接的存储设备250-256中。例如,在各种实施例中,第一视频224可以存储在本地高速缓存网络连接的存储设备250和252上,而第二视频226可以存储在本地高速缓存网络连接的存储设备254和256上。在各种实施例中,数据中心和本地高速缓存网络连接的存储设备可以存储第一视频224和第二视频226的一部分。例如,本地高速缓存网络连接的存储设备250可以存储第一视频224的第一部分,本地高速缓存网络连接的存储设备252可以存储第一视频224的第二部分,并且数据中心高速缓存网络连接的存储设备240可以存储第一视频224的第三部分。如下面将讨论的,多媒体内容222可以以多种方式跨多个高速缓存网络附接的存储设备而存储。
在各种实施例中,控制服务器260可以被配置用于对各种高速缓存网络连接的设备240、245、250-256执行管理功能。例如,控制服务器260可以位于数据中心210中并且能够与高速缓存网络连接的设备中的每个通信,而在其他实施例中,控制服务器260可以位于本地网络上或连接到骨干网络。在各种实施例中,管理功能可以包括高速缓存网络连接的设备的初始化(如下面将详细描述的)以及对该设置的后续修改。
图3描绘了根据本发明的各种实施例的用于初始化分布式高速缓存系统的通信图表。图4描绘了根据本发明的各种实施例的用于系统初始化的方法。
参见图3和图4,在各种实施例中,控制服务器300可以配置附接的高速缓存网络连接的设备320、330、340,用于与内容服务器310一起用于向客户端设备350分发多媒体内容。在各种实施例中,初始化可以从“一天的开始”开始(S400)。在各种实施例中,当最初建立分布式高速缓存系统时或者当新的高速缓存网络连接的存储设备320、330、340被添加到分布式高速缓存系统时,可以发生“一天的开始”。
在各种实施例中,在“一天的开始”之后,控制服务器300将发现每个可用的高速缓存网络连接的存储设备320-340(S410)。例如,在各种实施例中,控制服务器300将发现分组(360)发送到潜在具有高速缓存网络连接的存储设备的IP地址。例如,控制服务器300可以ping网络连接的存储设备的IP地址。在各种实施例中,网络连接的存储设备320、330、340可在它们可用时响应控制服务器300(370)。
在各种实施例中,网络连接的存储设备320、330、340的响应可以包括设备信息(S420)。例如,设备信息可以包括网络连接的存储设备的标识符(例如,IP或MAC地址)、设备的物理位置(例如,地理位置)、以及设备的性能特征(例如,可用存储空间、总存储空间、网络带宽等)。
在各种实施例中,控制服务器300可以利用设备信息来创建高速缓存域(S430)。例如,在各种实施例中,控制服务器300可以创建包括相对近的地理位置中的设备的高速缓存域。例如,网络连接的存储设备320可以代表全部位于相对相同的地理区域(例如,同一城市)的多个网络连接的存储设备。类似地,网络连接的存储设备330和340每个可以代表全部位于相对相同的地理区域中的多个网络连接的存储设备。
在各种实施例中,控制服务器300可以生成设备表(例如,将在下面描述的图5A中描绘的设备表),其包括所发现的网络连接的存储设备320、330、340中的每一个,并且更新380网络连接的存储设备的内容表(例如,将在下面描述的图5D中描绘的内容表)中的每个以包括控制服务器300(即,在控制服务器300的控制下)(S440)。在各种实施例中,控制服务器300可以向内容服务器310提供包括可用的网络连接的存储设备的表(例如,将在下面描述的图5B中所示的高速缓存的内容表),并且内容服务器310可以开始将内容分发到网络连接的存储设备320、330、340(390)(S450)。
图5A描绘了根据各种实施例的用于在控制服务器上使用的设备表。图5B描绘了根据各种实施例的用于由内容服务器使用的高速缓存的内容表。图5C描绘了根据各种实施例的可以由内容服务器发送到客户端设备的重定向消息。图5D描绘了根据各种实施例的用于在网络连接的存储设备上使用的内容表。
参见图5A,在各种实施例中,控制服务器可以生成并维护设备表500。在各种实施例中,设备表500被配置为列出可由高速缓存系统使用的高速缓存设备中的每个,并且包括它们的位置和域。设备表500最初可以在“一天开始”(例如,系统初始化)时生成,并且当高速缓存网络连接的存储设备被添加到高速缓存系统或从高速缓存系统中移除时,还可以由控制服务器更新。在各种实施例中,设备表500包括高速缓存设备标识502、设备位置504和域506。在各种实施例中,设备标识可以包括用于高速缓存网络连接的存储设备的唯一标识符。例如,在各种实施例中,设备标识可以包括设备的IP地址。在各种实施例中,设备位置504标识设备的实际地理位置。例如,在各种实施例中,设备位置504可以包括邮政编码。在其他实施例中,设备位置504可以包括设备的经度和纬度。在各种实施例中,设备域506是控制服务器已将设备添加到的组。例如,具有相同或相似设备位置的设备可以被分组在同一域中。在各种实施例中,设备表500包括在控制服务器的控制下的每个设备的设备条目508-516。
参见图5B,在各种实施例中,内容服务器可以配置有高速缓存的内容表518。在各种实施例中,高速缓存的内容表518被配置为向内容服务器提供高速缓存网络连接的存储设备、它们的位置、以及每个设备上存储的内容列表的列表。例如,在各种实施例中,高速缓存的内容表518可以包括高速缓存设备标识符520、位置522和内容标识符524。高速缓存设备标识符520和位置522可以对应于上述高速缓存设备标识符502和设备位置504。在各种实施例中,内容标识符524包括内容(例如,多媒体内容)的唯一标识符。例如,内容标识符524可以包括电影标题。在各种实施例中,高速缓存设备可以仅存储完整内容的一部分(例如,视频的一部分),并且内容标识符524还可以标识内容的哪个部分存储在高速缓存设备中。例如,高速缓存的内容表518包括设备条目526-534。在该示例中,第一高速缓存设备526位于邮政编码95134(例如,San Jose,California,USA)中,并且存储内容1的分片1到5(例如,内容1的前五个部分)。第二高速缓存设备528位于邮政编码95136(例如,San Jose,California,USA)中,并且存储内容1的分片6到10(例如,内容1的最后五个部分)。在各种实施例中,高速缓存的内容表518可以包括每个内容的条目(例如,如果设备存储多于一个内容,则每个设备可以具有多个列表,诸如包括条目530和532的设备3)。在各种其他实施例中,高速缓存的内容表518可以包括用于每个高速缓存设备的单个条目,并且列出在内容ID524中存储在设备上的所有内容。
在各种实施例中,高速缓存的内容表518可以由内容服务器结合控制服务器生成和维护。例如,在各种实施例中,控制服务器可以生成高速缓存的内容表,并用用于高速缓存的每个设备填充它。在其他实施例中,内容服务器可以生成高速缓存的内容表518,并且可以从控制服务器接收设备的列表。
参见图5C,在各种实施例中,重定向消息536可以由内容服务器发送到客户端以将客户端定向到存储所请求的数据的设备。例如,在各种实施例中,重定向消息536包括客户端标识符538、内容标识符540和高速缓存设备标识符542。在各种实施例中,客户端标识符538是客户端的唯一标识符。例如,客户端标识符538可以是IP地址。在其他示例中,客户端标识符538可以包括客户端用户名或与客户端相关联的安全令牌。在各种实施例中,内容标识符540包括内容的唯一标识符,并且可以对应于内容标识符524。在各种实施例中,高速缓存设备标识符542可以对应于高速缓存设备标识符502和520。例如,如上所述,高速缓存设备标识符502、520、542可以包括用于高速缓存设备的IP地址。
参见图5D,在各种实施例中,高速缓存网络连接的存储设备中的每个可以包括托管内容表544。在各种实施例中,托管内容表544存储在永久存储器中的网络连接的存储设备上,诸如在固件中或主存储器(例如闪存)中的设备存储器中。在各种实施例中,托管内容表544包括具有或先前已从设备下载内容的每个客户端的授权条目(条目556-564)。例如,托管内容表544可以包括具有客户端标识符546、内容标识符548、下载时间戳550、使用时间戳552和使用计数554的条目。在各种实施例中,客户端标识符546可以对应于上述客户端标识符538。在各种实施例中,内容标识符548可以是与内容标识符524和540相同的内容标识符。在各种实施例中,下载时间戳550可以是用于何时从内容服务器下载内容的时间戳。例如,在一些实施例中,设备可以被配置为在内容变得比预定阈值更旧之后移除内容。在各种实施例中,使用时间戳552包括客户端下载内容时的时间戳。在各种实施例中,使用计数554可以包括客户端对内容的总查看数。
图6描绘了根据本发明的各种实施例的用于利用分布式高速缓存系统来下载内容的通信图表。图7描绘了根据本发明的各种实施例的利用分布式高速缓存系统下载内容的方法。
参见图6和图7,在各种实施例中,分布式高速缓存系统可以利用内容服务器结合高速缓存网络连接的存储设备来分发内容,而无需控制服务器的进一步干预。在各种实施例中,高速缓存网络连接的存储设备包括位于第一位置并分配给“域A”的第一组一个或多个eSSD 320、位于第二位置并分配给“域B”的第二组一个或多个eSSD 330、以及位于第三位置并分配给“域C”的第三组一个或多个eSSD 340。
在各种实施例中,客户端350可以发送请求600以从内容服务器310访问内容(S700)。在各种实施例中,内容服务器310可以检查客户端对内容的访问权限(S710)。例如,该请求可以包括用于客户端的用户名和密码(或其他用户帐户标识信息)以验证用户的身份并将用户的身份与对内容的访问权限进行比较。在各种实施例中,内容服务器310可以识别客户端设备350的位置并识别具有相对靠近客户端设备350的高速缓存设备的域(S720)。例如,内容服务器310可以使用客户端350的IP地址来标识别客户端350的位置,然后使用高速缓存的内容表将客户端350与最近的高速缓存设备进行匹配,以识别哪些设备具有所请求的内容以及这些设备所处的位置。
在各种实施例中,内容服务器310可以向高速缓存设备320和客户端350提供授权更新610,使得客户端350可以从高速缓存设备320访问所请求的内容。例如,在各种实施例中,内容服务器310可以向所标识的高速缓存设备320提供对设备的托管内容表(例如,图5D的托管内容表)的更新,以允许客户端设备350访问高速缓存设备320并且可以向客户端设备350发送重定向消息(例如,图5C的重定向消息)(S730)。
在各种实施例中,客户端350从内容服务器310接收重定向消息,并使用重定向消息中提供的信息来从高速缓存设备320请求620内容(S740)。在各种实施例中,高速缓存设备320将从客户端350接收请求,并且高速缓存设备320将通过检查设备的托管内容表(例如,图5D的托管内容表)来验证客户端350具有访问内容的权限。一旦客户端350已被验证,高速缓存设备320就提供内容630(S750)。
图8描绘了根据本发明的各种实施例的当内容当前在本地高速缓存设备上不可用时利用分布式高速缓存系统来下载内容的通信图表。图9描绘了根据本发明的各种实施例的当内容当前在本地高速缓存设备上不可用时利用分布式高速缓存系统下载内容的方法。
参见图8和图9,在各种实施例中,即使本地高速缓存设备没有存储在设备上的内容,分布式高速缓存系统也可以利用内容服务器结合高速缓存网络连接的存储设备来分发内容,并且无需来自控制服务器的进一步干预。
在各种实施例中,客户端350可以发送请求800以从内容服务器310访问内容(S900)。在各种实施例中,内容服务器310可以检查客户端对内容的访问权限(S910)。如上所述,在各种实施例中,请求可以包括用于客户端的用户名和密码(或其他用户帐户标识信息)以验证用户的身份并将用户的身份与对内容的访问权限进行比较。在各种实施例中,内容服务器310可以标识客户端设备350的位置并标识具有相对靠近客户端设备350(例如,物理地或逻辑地)的高速缓存设备的域。在一些实例中,最接近的域(例如,邻近域)可能不包括托管所请求的内容的任何设备(S920)。例如,“域B”中的高速缓存设备330可以是到客户端350最近的高速缓存设备,但当前可能不包括所请求的内容。在各种实施例中,内容服务器310识别到客户端350的最近的域,并将内容或内容的第一分片推送810到识别的域中的高速缓存设备(S930)。在各种实施例中,可以更新高速缓存的内容表(例如,图5B的高速缓存的内容表)以反映新高速缓存的内容。在各种实施例中,内容服务器310可以向所识别的高速缓存设备330提供对设备的托管内容表的更新(例如,将授权条目添加到图5D的托管内容表)以允许客户端设备350访问高速缓存设备330,并且可以向客户端设备350发送重定向消息(例如,图5C的重定向消息)820(S940)。
例如,内容服务器310可以使用客户端350的IP地址来识别客户端350的位置,然后使用高速缓存的内容表来将客户端350与最近的高速缓存设备(例如,邻近的高速缓存设备)进行匹配以识别哪些设备具有所请求的内容以及这些设备所处的位置。在各种实施例中,客户端350从内容服务器310接收重定向消息,并使用重定向消息中提供的信息以从高速缓存设备320请求830内容,并且在通过检查设备的托管内容表(例如,图5D的托管内容表)而验证客户端350有权访问内容之后,高速缓存设备330提供内容840(S950)。
在各种实施例中,内容服务器310可以在客户端设备350需要时向高速缓存设备330发送850分片(S960)。例如,在各种实施例中,所请求的内容可以包括视频文件。视频文件可以分成多个分片。多个分片可以具有均匀或不均匀的尺寸。例如,第一分片可以包括视频的前3分钟,并且每个后续分片可以包括视频的下一个10分钟。在各种实施例中,当客户端播放视频时,高速缓存设备330可以在需要额外分片时(例如,当客户端将很快完成当前分片的下载时)通知内容服务器310,并且内容服务器310可以推送额外分片850到被使用的一个或多个高速缓存设备330(并根据需要更新高速缓存的内容表)。在各种实施例中,可以将分片推送到同一域内的不同高速缓存设备。在这些情况下,内容服务器310可以被配置为根据需要发送重定向消息以将客户端设备适当地定向到具有所请求内容的高速缓存设备。另外,内容服务器310还可以更新高速缓存设备的托管内容表,使得客户端将能够访问其存储的内容。
因此,本公开的上述实施例提供了用于分布式高速缓存系统的系统和方法。
前述内容是对示例实施例的说明,而不应解释为对其进行限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在示例实施例中可以进行许多修改而不实质上脱离示例实施例的新颖教导和优点。因此,所有这些修改旨在包括在权利要求中限定的示例实施例的范围内。在权利要求中,装置加功能的条款旨在覆盖这里描述的执行所述功能的结构,并且不仅包括结构等同物而且包括等同结构。因此,应该理解,前述内容是对示例实施例的说明,并且不应被解释为限于所公开的特定实施例,并且对所公开的示例实施例的修改以及其他示例实施例旨在被包括在所附权利要求的范围内。发明构思由所附权利要求限定,权利要求的等同物被包含在其中。

Claims (25)

1.一种分布式高速缓存系统,包括:
至少一个网络连接的存储设备;
内容服务器;以及
控制服务器,所述控制服务器包括:
存储器;以及
处理器,其中所述处理器被配置为执行来自所述存储器的指令,所述指令在由所述处理器执行时使所述处理器:
发现所述至少一个网络连接的存储设备;
从所述至少一个网络连接的存储设备收集设备信息,其中所述设备信息包括设备位置;
基于每个设备位置将所述至少一个网络连接的存储设备中的每个分配给设备域;以及
向内容服务器提供所述至少一个网络连接的存储设备的设备信息。
2.如权利要求1所述的分布式高速缓存系统,其中,所述至少一个网络连接的存储设备包括以太网固态驱动器(eSSD)。
3.如权利要求1所述的分布式高速缓存系统,所述指令还包括生成设备表,其中所述设备表包括用于所发现的至少一个网络连接的存储设备中的每个的条目,所述条目包括:高速缓存设备标识符、设备位置和分配的设备域。
4.如权利要求3所述的分布式高速缓存系统,其中,所述高速缓存设备标识符包括IP地址。
5.如权利要求1所述的分布式高速缓存系统,其中,所述内容服务器被配置为基于每个设备位置将内容推送到所述至少一个网络连接的存储设备中的每个。
6.如权利要求5所述的分布式高速缓存系统,其中,所述内容服务器包括高速缓存的内容表,所述高速缓存的内容表包括存储在所述至少一个网络连接的存储设备上的每个内容的内容条目,其中所述内容条目包括:高速缓存设备标识符和内容标识符。
7.如权利要求6所述的分布式高速缓存系统,其中,所述至少一个网络连接的存储设备中的每个包括托管内容表,其中所述托管内容表包括用于验证客户端设备对存储在所述网络连接的存储设备上的每个内容的访问权限的授权条目。
8.一种分布式高速缓存系统,包括:
多个网络连接的存储设备,其中所述网络连接的存储设备中的每个包括至少一个内容和基于设备位置的域;以及
内容服务器,所述内容服务器包括:
存储器;以及
处理器,其中所述处理器被配置为执行来自所述存储器的指令,所述指令在由所述处理器执行时使所述处理器:
验证客户端访问所请求的内容的访问权限;
识别客户端的位置;
将客户端的位置与最近的域匹配;
更新最近的域内的设备的托管内容表,以包括客户端的授权条目;以及
向客户端传递重定向消息,其中重定向消息包括高速缓存设备标识符。
9.如权利要求8所述的分布式高速缓存系统,其中,所述多个网络连接的存储设备中的每个包括以太网固态驱动器(eSSD)。
10.如权利要求8所述的分布式高速缓存系统,所述指令还包括:
验证最近的域内的内容的存储。
11.如权利要求10所述的分布式高速缓存系统,所述指令还包括:
将所请求的内容的第一分片推送到最近的域中的网络连接的存储设备。
12.如权利要求11所述的分布式高速缓存系统,所述指令还包括:
将所请求的内容的额外分片推送到最近的域中的网络连接的存储设备。
13.如权利要求8所述的分布式高速缓存系统,其中,所述设备位置包括物理位置。
14.一种分布式高速缓存系统,包括:
多个以太网固态驱动器(eSSD),其中所述多个eSSD中的每个包括IP地址;
内容服务器;以及
控制服务器,所述控制服务器包括:
第一存储器;以及
第一处理器,其中第一处理器被配置为执行来自第一存储器的第一指令,当所述第一指令由第一处理器执行时,使第一处理器:
发现所述多个eSSD中的每个;
从所述多个eSSD的每个eSSD收集设备信息,其中所述设备信息包括基于IP地址的设备位置;
基于每个设备位置将所述多个eSSD中的每个分配给设备域;以及
向内容服务器提供eSSD和每个相应的设备位置的列表。
15.如权利要求14所述的分布式高速缓存系统,所述第一指令还包括生成设备表,其中所述设备表包括用于所述多个eSSD中的每个的条目,所述条目包括:高速缓存设备标识符、所述设备位置、以及分配的设备域。
16.如权利要求15所述的分布式高速缓存系统,其中,所述内容服务器被配置为基于每个设备位置将内容推送到所述多个eSSD中的每个。
17.如权利要求16所述的分布式高速缓存系统,其中,所述内容服务器包括高速缓存的内容表,所述高速缓存的内容表包括存储在所述多个eSSD上的每个内容的内容条目,其中所述内容条目包括:高速缓存设备标识符和内容标识符。
18.如权利要求17所述的分布式高速缓存系统,其中,所述多个eSSD中的每个包括托管内容表,其中所述托管内容表包括用于验证客户端设备对存储在所述多个eSSD中的每个上的内容的访问权限的授权条目。
19.如权利要求14所述的分布式高速缓存系统,其中,内容服务器包括:
第二存储器;以及
第二处理器,其中第二处理器被配置为执行来自第二存储器的第二指令,当所述第二指令由第二处理器执行时,使第二处理器:
验证客户端访问所请求的内容的访问权限;
识别客户端的位置;
将客户端的位置与最近的域匹配;
更新最近的域内的eSSD的托管内容表,以包括客户端的授权条目;以及
向客户端传递重定向消息,其中重定向消息包括高速缓存设备标识符。
20.如权利要求19所述的分布式高速缓存系统,所述第二指令还包括:
验证最近的域内的内容的存储;以及
将请求的内容推送到最近的域中的eSSD。
21.一种网络连接的存储设备,包括:
网络连接;
存储至少一个多媒体内容的永久存储器;以及
存储控制器,包括:
存储托管内容表的存储器,其中托管内容表包括关于所述至少一个多媒体内容的授权条目;以及
处理器,其中所述处理器被配置为执行来自所述存储器的指令,所述指令在由所述处理器执行时,使所述处理器:
根据托管内容表来验证客户端对所请求的多媒体内容的访问权限;以及
经由网络连接将所请求的多媒体内容传递到客户端。
22.如权利要求21所述的网络连接的存储设备,其中,所述授权条目包括客户端ID、内容ID、下载时间戳、使用时间戳和使用计数。
23.如权利要求21所述的网络连接的存储设备,其中,所述至少一个多媒体内容包括多媒体内容的第一分片。
24.如权利要求23所述的网络连接的存储设备,其中,所述指令还使所述处理器:
根据多媒体内容的第一分片的传递,从内容服务器请求多媒体内容的第二分片。
25.如权利要求23所述的网络连接的存储设备,其中,所述指令还使所述处理器:
根据多媒体内容的第一分片的传递通知内容服务器。
CN201811486808.XA 2017-12-22 2018-12-06 用于分布式高速缓存的系统和方法 Active CN110059022B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762610036P 2017-12-22 2017-12-22
US201762609948P 2017-12-22 2017-12-22
US62/609,948 2017-12-22
US62/610,036 2017-12-22
US15/921,568 2018-03-14
US15/921,568 US10728332B2 (en) 2017-12-22 2018-03-14 System and method for distributed caching

Publications (2)

Publication Number Publication Date
CN110059022A true CN110059022A (zh) 2019-07-26
CN110059022B CN110059022B (zh) 2024-05-31

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699496A (zh) * 2012-09-27 2014-04-02 株式会社日立制作所 分级存储器管理
US20160294971A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed Content Discovery for In-Network Caching
WO2017124083A1 (en) * 2016-01-15 2017-07-20 Vid Scale, Inc. Scalable coding based video distribution
US9772866B1 (en) * 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772866B1 (en) * 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
CN103699496A (zh) * 2012-09-27 2014-04-02 株式会社日立制作所 分级存储器管理
US20160294971A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed Content Discovery for In-Network Caching
WO2017124083A1 (en) * 2016-01-15 2017-07-20 Vid Scale, Inc. Scalable coding based video distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周可, 黄永峰, 张江陵: "网络存储技术研究", 电子计算机与外部设备, no. 02 *

Also Published As

Publication number Publication date
US11290535B2 (en) 2022-03-29
KR20190076836A (ko) 2019-07-02
US20220217207A1 (en) 2022-07-07
US20190199796A1 (en) 2019-06-27
US20190199817A1 (en) 2019-06-27
US20200244736A1 (en) 2020-07-30
US20200322433A1 (en) 2020-10-08
US10728332B2 (en) 2020-07-28
US10681137B2 (en) 2020-06-09
KR102557994B1 (ko) 2023-07-20
US11283870B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
CN107690800B (zh) 管理动态ip地址分配
US11290535B2 (en) System and method for distributed caching
EP3497892B1 (en) Compressing forwarding tables
CN108494755B (zh) 一种传输应用程序编程接口api请求的方法及装置
US20080175222A1 (en) Url patterns for multi tenant systems
CN102014121B (zh) 作为通过事件驱动架构对服务激活去相关的手段的网络自动发现
US11936755B2 (en) Systems and methods for determining a destination location for transmission of packetized data in a network system based on an application server attribute
CN109347637B (zh) 一种认证方法、内容分发网络cdn和内容服务器
US10193768B2 (en) System for generating a virtualized network function
CN108337116B (zh) 消息保序方法及装置
EP3384642B1 (en) Forwarding table compression
WO2017067374A1 (zh) 一种消息推送方法及推送服务器
CN106506641A (zh) 一种客户端设备的标识值提取方法及装置
WO2016201780A1 (zh) 网关管理方法及装置
CN106649528A (zh) 图片写入和读取方法、装置
CN115242882A (zh) 一种基于传输层路由访问k8s容器环境的方法及装置
CN110059022B (zh) 用于分布式高速缓存的系统和方法
CN106130893A (zh) 一种数据包发送方法及电子设备
JP2015049910A (ja) 接続管理方法、プログラムおよび接続管理システム
CN114268630B (zh) 基于静态arp表项实现随机负载均衡访问方法、装置及设备
KR101583508B1 (ko) 서버측에서 클라이언트와 서버의 백엔드간의 연결을 매개하는 연결 관리 방법 및 시스템
KR102100319B1 (ko) 컨텐츠 전송 제어 방법 및 이를 위한 장치
CN105577793A (zh) 一种获得消息的方法及装置
CN117278562A (zh) 负载均衡方法、装置、系统、电子设备及存储介质

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