Systems and methods for distributed caching

By utilizing a distributed high-speed caching system and the collaborative work of eSSD and control server, the problems of high hardware consumption and performance bottlenecks in existing technologies are solved, achieving efficient and secure content delivery.

CN118427118BActive Publication Date: 2026-04-21SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2018-12-06
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing content delivery systems require a lot of expensive hardware and power consumption, and their limited use of caching devices leads to performance bottlenecks and vulnerability to hacking.

Method used

A distributed high-speed caching system is adopted, using Ethernet solid-state drives (eSSDs) as network-connected storage devices. The control server discovers and allocates device domains, the content server pushes content based on device location, and content distribution is achieved through content tables and redirection messages.

Benefits of technology

It reduces hardware and power consumption, improves system performance, reduces the risk of hacker attacks, and optimizes content delivery efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118427118B_ABST
    Figure CN118427118B_ABST
Patent Text Reader

Abstract

A system and method for distributed caching, the system having at least one network-connected storage device, a content server, and a control server. The control server is configured to discover the at least one network-connected storage device, collect device information from the at least one network-connected storage device, wherein the device information includes device location, assign each of the at least one network-connected storage devices to a device domain based on each device location, and provide the device information of the at least one network-connected storage device to the content server.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application filed on December 6, 2018, with application number 201811486808.X. Technical Field

[0002] Some embodiments of this disclosure generally involve content caching using storage devices attached to a network. Background Technology

[0003] Storage servers are used in a variety of data storage applications. In some applications, a storage server can provide data storage to multiple remote clients. For example, a storage server can store databases, media content, backup storage, etc. Media content delivery typically uses storage servers located in data centers around the world.

[0004] Figure 1 An exemplary prior art content delivery system is described.

[0005] See Figure 1 Data center 100 can be positioned to connect to backbone network 110 and local network 120. The backbone network is typically a remote network spanning long distances and crossing cities, states, countries, and the world, connecting data centers, servers, and users. Local network 120 typically spans shorter distances, for example, connecting end users to the data center and backbone network 110. Data center 100 includes edge routers 130 / 135, which are used by the data center's servers to connect to networks 110 / 120. For a content delivery system, the data center may include a content server 140 storing multimedia content 145 and multiple cache servers 150-156 for rapidly distributing the content to end-user devices. For example, content server 140 may store all content from a content provider and may receive updates using backbone network 110. Content server 140 may then distribute portions of the multimedia content to cache servers 150-156. End-user devices may request content via local network 120 and retrieve content from the appropriate cache servers 150-156.

[0006] Current content delivery systems suffer from several problems. They require a large amount of expensive hardware and consume significant amounts of power and cooling. Furthermore, the use of relatively few caching devices leads to performance bottlenecks and makes the system more vulnerable to hacking. Therefore, a new system is desired.

[0007] The above information is only used to enhance the understanding of the background of the embodiments of this disclosure, and therefore may contain information that does not constitute prior art. Summary of the Invention

[0008] Some embodiments of this disclosure provide a system and method for distributed caching. In various embodiments, the system includes: at least one network-connected storage device, a content server, and a control server. In various embodiments, the control server is configured to: discover the at least one network-connected storage device; collect device information from the at least one network-connected storage device, wherein the device information includes device location; assign each of the at least one network-connected storage device to a device domain based on each device location; and provide the device information of the at least one network-connected storage device to the content server.

[0009] In various embodiments, the at least one network-connected storage device includes an Ethernet solid-state drive (eSSD).

[0010] In various embodiments, the control server is also configured to generate a device table, wherein the device table includes entries for each of the storage devices of at least one discovered network connection, the entries including: a cache device identifier, device location, and an assigned device domain.

[0011] In various embodiments, the cache device identifier is an IP address.

[0012] In various embodiments, the content server is configured to push content to each of the at least one network-connected storage devices based on each device location.

[0013] In various embodiments, the content server has a cached content table having a content entry for each content stored on the storage device of the at least one network connection, wherein the content entry includes a cache device identifier and a content identifier.

[0014] In various embodiments, each of the at least one network-connected storage device includes a managed content table. In various embodiments, the managed content table has authorization entries for verifying access rights of client devices to each piece of content stored on the network-connected storage device.

[0015] In various embodiments, a distributed caching system may include: a plurality of network-connected storage devices. In various embodiments, each of the network-connected storage devices includes at least one piece of content and a domain based on device location. In various embodiments, the distributed caching system further includes a content server having memory and a processor, wherein the processor is configured to execute instructions from the memory, the instructions, when executed by the processor, causing the processor to: verify a client's access rights to a requested piece of content; identify the client's location; match the client's location with the nearest domain; update the managed content table of devices within the nearest domain to include the client's authorized entry; and deliver a redirection message to the client, wherein the redirection message includes a cache device identifier.

[0016] In various embodiments, each of the plurality of network-connected storage devices includes an Ethernet solid-state drive (eSSD).

[0017] In various embodiments, the instructions also cause the content server to verify the storage of the most recent content within the domain.

[0018] In various embodiments, the instructions also cause the content server to push a first fragment of the requested content to a storage device connected to a network in the nearest domain.

[0019] In various embodiments, the instructions also cause the content server to push additional fragments of the requested content to a storage device connected to a network in the nearest domain.

[0020] In various embodiments, the device location includes a physical location.

[0021] In various embodiments, a distributed caching system includes: a plurality of Ethernet solid-state drives (eSSDs), each of said plurality of eSSDs including an IP address; a content server; and a control server. In various embodiments, the control server has a first memory and a first processor, wherein said first processor is configured to execute a first instruction from the first memory, which, when executed by the first processor, causes the first processor to: discover each of the plurality of eSSDs; collect device information from each of the plurality of eSSDs, said device information including device location based on IP address; assign each of the plurality of SSL certificates to a device domain based on each device location; and provide the content server with a list of eSSDs and each corresponding device location.

[0022] In various embodiments, the first instruction further causes the control server to generate a device table, wherein the device table has entries for each of the plurality of eSSDs. In various embodiments, each entry has: a cache device identifier, the device location, and an allocated device domain.

[0023] In various embodiments, the content server is configured to push content to each of the plurality of eSSDs based on each device location.

[0024] In various embodiments, the content server has a cached content table with content entries for each piece of content stored on the plurality of eSSDs. In various embodiments, the content entries have: a cache device identifier and a content identifier.

[0025] In various embodiments, each of the plurality of eSSDs includes a managed content table. In various embodiments, the managed content table includes authorization entries for verifying client devices' access rights to content stored on each of the plurality of eSSDs.

[0026] In various embodiments, the content server has a second memory and a second processor. In various embodiments, the second processor is configured to execute second instructions from the second memory, which, when executed by the second processor, cause the second processor to: verify the client's access rights to the requested content; identify the client's location; match the client's location with the nearest domain; update the managed content table of the eSSD in the nearest domain to include the client's authorized entry; and deliver a redirection message to the client, wherein the redirection message includes a cache device identifier.

[0027] In various embodiments, the second instruction also causes the content server to: verify the storage of content in the nearest domain; and push the requested content to the eSSD in the nearest domain.

[0028] In various embodiments, a network-connected storage device includes: a network connection; persistent memory storing at least one multimedia content; and a storage controller. In various embodiments, the content controller has a memory storing a managed content table, wherein the managed content table includes authorized entries for the at least one multimedia content; and a processor configured to execute instructions from the memory, the instructions, when executed by the processor, causing the processor to: verify a client's access rights to the requested multimedia content according to the managed content table; and deliver the requested multimedia content to the client via the network connection.

[0029] In various embodiments, the authorization entry includes a client ID, a content ID, a download timestamp, a usage timestamp, and a usage count.

[0030] In various embodiments, the at least one multimedia content includes a first segment of the multimedia content.

[0031] In various embodiments, the network-connected storage device may request a second segment of multimedia content from the content server based on the delivery of a first segment of the multimedia content.

[0032] In various embodiments, the network-connected retransmission device can notify the content server based on the delivery of the first segment of the multimedia content. Attached Figure Description

[0033] Some embodiments can be understood in more detail from the following description taken in conjunction with the accompanying drawings, in which:

[0034] Figure 1 An example of an existing technology content delivery system is described;

[0035] Figure 2 Distributed caching systems according to various embodiments of the present invention are described;

[0036] Figure 3 Communication diagrams for initializing a distributed cache system according to various embodiments of the present invention are depicted;

[0037] Figure 4 Methods for system initialization according to various embodiments of the present invention are described;

[0038] Figure 5A A device list for use on a control server is described according to various embodiments;

[0039] Figure 5B Content tables for caching used by a content server are described according to various embodiments;

[0040] Figure 5C Redirect messages that can be sent from a content server to a client device according to various embodiments are described;

[0041] Figure 5D Content tables for use on network-connected storage devices are described according to various embodiments;

[0042] Figure 6 Communication diagrams for downloading content using a distributed caching system according to various embodiments of the present invention are depicted.

[0043] Figure 7Methods for downloading content using a distributed caching system according to various embodiments of the present invention are described;

[0044] Figure 8 Communication diagrams are depicted according to various embodiments of the present invention for downloading content using a distributed caching system when the content is currently unavailable on a local caching device;

[0045] Figure 9 Methods for downloading content using a distributed caching system when content is currently unavailable on a local caching device, according to various embodiments of the present invention, are described. Detailed Implementation

[0046] The features of the inventive concept and methods of implementing it can be more readily understood by referring to the following detailed description of the embodiments and accompanying drawings. In the following, embodiments will be described in more detail with reference to the accompanying drawings, wherein the same reference numerals throughout denote the same elements. However, the invention may be embodied in various different forms and should not be construed as being limited to the embodiments shown herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey aspects and features of the invention to those skilled in the art. Therefore, processes, elements, and techniques that are not necessary for those skilled in the art to fully understand aspects and features of the invention may not be described. Unless otherwise stated, the same reference numerals denote the same elements throughout the drawings and written description, and therefore their description will not be repeated. In the drawings, the relative dimensions of elements, layers, and regions may be exaggerated for clarity.

[0047] In the following description, numerous specific details are set forth for illustrative purposes to provide a thorough understanding of the various embodiments. However, it will be apparent that the various embodiments can be practiced without these specific details or using one or more equivalent arrangements. In other instances, well-known structures and devices are not shown in block diagram form to avoid unnecessarily obscuring the various embodiments.

[0048] It should be understood that when a component, layer, region, or assembly is referred to as being "on," "connected to," or "coupled to" another component, layer, region, or assembly, it can be directly on, connected to, or coupled to the other component, layer, region, or assembly, or there can be one or more intermediate components, layers, regions, or assemblies. However, "direct connection / direct coupling" means that one component is directly connected to or coupled to another component without any intermediate components. Similarly, other expressions describing relationships between components, such as "between," "immediately between," or "adjacent" and "directly adjacent," can be interpreted similarly. It will also be understood that when a component or layer is referred to as being "between" two components or layers, it can be the only component or layer between the two components or layers, or there can be one or more intermediate components or layers.

[0049] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms “a” and “an” are also intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that, as used herein, the terms “comprising,” “including,” “having,” “having,” and “containing” designate the presence of the stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.

[0050] As used herein, the terms “substantially,” “about,” “approximately,” and similar terms are used as approximate terms rather than terms of degree and are intended to take into account the inherent biases of measured or calculated values ​​that will be recognized by one of ordinary skill in the art. As used herein, “about” or “approximately” includes the value and means taking into account the measurement in question and the error (i.e., limitations of the measurement system) associated with the measurement of the particular quantity, within an acceptable range of deviation for a particular value as determined by one of ordinary skill in the art. For example, “about” may mean within one or more standard deviations, or within ±30%, 20%, 10%, or 5% of the value. Furthermore, when describing embodiments of the invention, the use of “may” refers to “one or more embodiments of the invention.” As used herein, the terms “use,” “being used,” and “being utilized” can be considered synonyms for the terms “utilize,” “being utilized,” and “being exploited,” respectively. Moreover, the term “exemplary” is intended to indicate an example or illustration.

[0051] When an embodiment can be implemented differently, a particular order of processing can be performed differently than the order in which they are described. For example, two consecutively described processes can be performed substantially simultaneously or in the reverse order of their description.

[0052] Various embodiments are described herein with reference to cross-sectional views, which are schematic diagrams of embodiments and / or intermediate structures. Therefore, variations in the illustrated shapes can be expected due to, for example, manufacturing techniques and / or tolerances. Furthermore, the specific structural or functional descriptions disclosed herein are merely for the purpose of describing embodiments according to the concepts of this disclosure. Therefore, the embodiments disclosed herein should not be construed as limited to the specific illustrated shapes of the regions, but rather include shape deviations caused, for example, by manufacturing processes. For example, an injection region shown as rectangular typically has rounded or curved features at its edges and / or a gradient of injection concentration, rather than a binary variation from an injection region to a non-injection region. Similarly, a buried region formed by injection may result in some injection in the region between the buried region and the surface through which the injection is carried out. Therefore, the regions shown in the figures are schematic in nature, and their shapes are not intended to show the actual shapes of the regions of the device, nor are they intended to be limiting.

[0053] Electronic or electrical devices and / or any other related devices or components according to embodiments of the invention described herein can be implemented using any suitable hardware, firmware (e.g., application-specific integrated circuits), software, or a combination of software, firmware, and hardware. For example, various components of these devices may be formed on an integrated circuit (IC) chip or on a separate IC chip. Furthermore, various components of these devices may be implemented on flexible printed circuit films, tape-on-a-package (TCP), printed circuit boards (PCBs), or formed on a substrate. Additionally, various components of these devices may be processes or threads running on one or more processors, in one or more computing devices, executing computer program instructions and interacting with other system components to perform the various functions described herein. The computer program instructions are stored in memory, which may be implemented in the computing device using standard memory devices such as random access memory (RAM). The computer program instructions may also be stored in other non-transitory computer-readable media, such as CD-ROMs, flash drives, etc. Furthermore, those skilled in the art will recognize that the functions of various computing devices may be combined or integrated into a single computing device, or the functions of a particular computing device may be distributed across one or more other computing devices without departing from the spirit and scope of exemplary embodiments of the invention.

[0054] Unless otherwise defined, all terms used herein (including technical and scientific terms) shall have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. It will be further understood that terms such as those defined in common dictionaries shall be interpreted as having the same meaning as they have in the relevant field and / or the context of this specification, and shall not be interpreted as having an idealized or overly formal meaning unless expressly defined herein.

[0055] Embodiments of the present invention include systems and methods for distributed caching of storage devices using an attached network. In various embodiments, the system includes one or more storage devices on the attached network, such as Ethernet SSDs (eSSDs) or other microdevices on the attached network. The storage devices on the attached network may be distributed across a data center or throughout a local network. A control server is used to configure the storage devices on the attached network as caching devices. The caching devices can then be used as part of a multimedia content delivery system, wherein the caching devices operate in conjunction with a content server to serve multimedia or other content to users.

[0056] Figure 2 Distributed caching systems according to various embodiments of the present invention are described.

[0057] See Figure 2 In various embodiments, the distributed caching system 200 may be configured to provide storage services using multiple cache network-connected storage devices. For example, the distributed caching system 200 may include various components located in a data center 210. The data center 210 may be connected to a backbone network via a backbone edge router 230 and to a local network via a local edge router 235. In various embodiments, the data center 210 includes a content server 220 configured to store multimedia content 222. The multimedia content 222 may include, for example, video, audio, and other multimedia files. For example, in various embodiments, the multimedia content 222 may include a first video 224 and a second video 226. In various embodiments, the data center 210 includes one or more data center cache network-connected storage devices 240, 245. Similarly, in various embodiments, one or more local cache network-connected storage devices 250-256 may be located on a local network. In various embodiments, the cache network-connected storage devices may include microdevices such as eSSDs. For example, in various embodiments, the eSSD includes a storage controller with a processor, memory (e.g., DRAM), persistent memory (e.g., firmware), and a network connection, as well as persistent memory (e.g., flash memory). The eSSD is configured to perform input / output operations with a remote host via the network connection. In various embodiments, a storage device that caches the network connection can be configured to store a portion of multimedia content 222 and provide access to the stored media content to one or more client devices.

[0058] For example, in various embodiments, the first video 224 may be stored on a data center cache network-connected storage device 240, and the second video 226 may be stored on a data center cache network-connected storage device 245. A client device can retrieve the first video 224 and the second video 226 from the data center cache network-connected storage devices 240 and 245. In some embodiments, all or a portion of the multimedia content 222 may be stored on locally cache network-connected storage devices 250-256. For example, in various embodiments, the first video 224 may be stored on locally cache network-connected storage devices 250 and 252, while the second video 226 may be stored on locally cache network-connected storage devices 254 and 256. In various embodiments, the data center and locally cache network-connected storage devices may store a portion of the first video 224 and the second video 226. For example, storage device 250 connected to a local cache network can store a first portion of the first video 224, storage device 252 connected to a local cache network can store a second portion of the first video 224, and storage device 240 connected to a data center cache network can store a third portion of the first video 224. As will be discussed below, multimedia content 222 can be stored in various ways across multiple cache network-attached storage devices.

[0059] In various embodiments, control server 260 may be configured to perform management functions on devices 240, 245, 250-256 with various cache network connections. For example, control server 260 may be located in data center 210 and be able to communicate with each of the devices with cache network connections, while in other embodiments, control server 260 may be located on a local network or connected to a backbone network. In various embodiments, management functions may include initialization of devices with cache network connections (as described in detail below) and subsequent modifications to those settings.

[0060] Figure 3 Communication diagrams for initializing a distributed cache system according to various embodiments of the present invention are depicted. Figure 4 Methods for system initialization according to various embodiments of the present invention are described.

[0061] See Figure 3 and Figure 4In various embodiments, the control server 300 may configure attached cache network connection devices 320, 330, 340 for use in conjunction with the content server 310 to distribute multimedia content to client devices 350. In various embodiments, initialization may begin from "the start of the day" (S400). In various embodiments, "the start of the day" may occur when the distributed caching system is initially established or when storage devices 320, 330, 340 with new cache network connections are added to the distributed caching system.

[0062] In various embodiments, after the “start of the day”, control server 300 will discover each available storage device 320-340 with a cached network connection (S410). For example, in various embodiments, control server 300 will send discovery packets (360) to the IP addresses of potential storage devices with cached network connections. For example, control server 300 may ping the IP addresses of network-connected storage devices. In various embodiments, network-connected storage devices 320, 330, 340 may respond to control server 300 when they are available (370).

[0063] In various embodiments, the response of the network-connected storage devices 320, 330, and 340 may include device information (S420). For example, the device information may include the identifier of the network-connected storage device (e.g., IP or MAC address), the physical location of the device (e.g., geographic location), and the performance characteristics of the device (e.g., available storage space, total storage space, network bandwidth, etc.).

[0064] In various embodiments, control server 300 may utilize device information to create cache domains (S430). For example, in various embodiments, control server 300 may create cache domains that include devices in relatively close geographical locations. For example, network-connected storage device 320 may represent multiple network-connected storage devices all located in the same relatively geographical area (e.g., the same city). Similarly, network-connected storage devices 330 and 340 may each represent multiple network-connected storage devices all located in the same relatively geographical area.

[0065] In various embodiments, the control server 300 may generate a device table (e.g., as described below). Figure 5A The device table depicted in the diagram includes each of the discovered network-connected storage devices 320, 330, and 340, and updates the content table of the network-connected storage device 380 (e.g., as described below). Figure 5DEach of the content tables depicted in the diagram includes a control server 300 (i.e., under the control of the control server 300) (S440). In various embodiments, the control server 300 may provide the content server 310 with tables including storage devices with available network connectivity (e.g., as described below). Figure 5B The content server 310 can begin distributing content to network-connected storage devices 320, 330, 340 (390) (S450).

[0066] Figure 5A A table of devices for use on a control server, according to various embodiments, is described. Figure 5B Content tables for caching used by content servers are described according to various embodiments. Figure 5C Redirect messages that can be sent from a content server to a client device according to various embodiments are described. Figure 5D Content tables for use on network-connected storage devices are described according to various embodiments.

[0067] See Figure 5A In various embodiments, the control server may generate and maintain a device table 500. In various embodiments, the device table 500 is configured to list each of the cache devices available to the cache system, including their location and domain. The device table 500 may initially be generated at the start of the day (e.g., system initialization) and may also be updated by the control server when storage devices connected to the cache network are added to or removed from the cache system. In various embodiments, the device table 500 includes a cache device identifier 502, a device location 504, and a domain 506. In various embodiments, the device identifier may include a unique identifier for the storage device used for the cache network connection. For example, in various embodiments, the device identifier may include the device's IP address. In various embodiments, the device location 504 identifies the actual geographical location of the device. For example, in various embodiments, the device location 504 may include a postal code. In other embodiments, the device location 504 may include the device's longitude and latitude. In various embodiments, the device domain 506 is a group to which the control server has added devices. For example, devices with the same or similar device locations may be grouped in the same domain. In various embodiments, device table 500 includes device entries 508-516 for each device under the control of the control server.

[0068] See Figure 5BIn various embodiments, the content server may be configured with a cached content table 518. In various embodiments, the cached content table 518 is configured to provide the content server with storage devices for cached network connections, their locations, and a list of content stored on each device. For example, in various embodiments, the cached content table 518 may include a cache device identifier 520, a location 522, and a content identifier 524. The cache device identifier 520 and location 522 may correspond to the cache device identifier 502 and device location 504 described above. In various embodiments, the content identifier 524 includes a unique identifier for the content (e.g., multimedia content). For example, the content identifier 524 may include a movie title. In various embodiments, the cache device may store only a portion of the complete content (e.g., a portion of a video), and the content identifier 524 may also identify which portion of the content is stored in the cache device. For example, the cached content table 518 includes device entries 526-534. In this example, the first cache device 526 is located in zip code 95134 (e.g., San Jose, California, USA) and stores fragments 1 to 5 of content 1 (e.g., the first five parts of content 1). The second cache device 528 is located in zip code 95136 (e.g., San Jose, California, USA) and stores fragments 6 to 10 of content 1 (e.g., the last five parts of content 1). In various embodiments, the cached content table 518 may include an entry for each content (e.g., if the device stores more than one piece of content, each device may have multiple lists, such as device 3 including entries 530 and 532). In various other embodiments, the cached content table 518 may include a single entry for each cache device and list all content stored on the device in content ID 524.

[0069] In various embodiments, the cached content table 518 can be generated and maintained by the content server in conjunction with the control server. For example, in various embodiments, the control server can generate the cached content table and populate it with each device used for caching. In other embodiments, the content server can generate the cached content table 518 and can receive a list of devices from the control server.

[0070] See Figure 5CIn various embodiments, redirection message 536 may be sent by the content server to the client to direct the client to a device storing the requested data. For example, in various embodiments, redirection message 536 includes a client identifier 538, a content identifier 540, and a cache device identifier 542. In various embodiments, client identifier 538 is a unique identifier for the client. For example, client identifier 538 may be an IP address. In other examples, client identifier 538 may include a client username or a security token associated with the client. In various embodiments, content identifier 540 includes a unique identifier for the content and may correspond to content identifier 524. In various embodiments, cache device identifier 542 may correspond to cache device identifiers 502 and 520. For example, as described above, cache device identifiers 502, 520, and 542 may include an IP address for the cache device.

[0071] See Figure 5D In various embodiments, each of the network-connected storage devices that caches content may include a managed content table 544. In various embodiments, the managed content table 544 is stored in persistent storage on the network-connected storage device, such as in firmware or in device memory within main memory (e.g., flash memory). In various embodiments, the managed content table 544 includes authorized entries (entries 556-564) for each client that has or has previously downloaded content from the device. For example, the managed content table 544 may include entries having a client identifier 546, a content identifier 548, a download timestamp 550, a usage timestamp 552, and a usage count 554. In various embodiments, the client identifier 546 may correspond to the client identifier 538 described above. In various embodiments, the content identifier 548 may be the same content identifier as content identifiers 524 and 540. In various embodiments, the download timestamp 550 may be a timestamp indicating when content was downloaded from a content server. For example, in some embodiments, the device may be configured to remove content after it becomes older than a predetermined threshold. In various embodiments, the usage timestamp 552 includes a timestamp indicating when the client downloaded the content. In various embodiments, using count 554 may include the total number of times the content has been viewed by the client.

[0072] Figure 6 Communication diagrams for downloading content using a distributed caching system are depicted according to various embodiments of the present invention. Figure 7 Methods for downloading content using a distributed caching system according to various embodiments of the present invention are described.

[0073] See Figure 6 and Figure 7In various embodiments, the distributed caching system can utilize a content server in conjunction with storage devices connected to the caching network to distribute content without further intervention from the control server. In various embodiments, the storage devices connected to the caching network include a first group of one or more eSSDs 320 located in a first location and allocated to "domain A", a second group of one or more eSSDs 330 located in a second location and allocated to "domain B", and a third group of one or more eSSDs 340 located in a third location and allocated to "domain C".

[0074] In various embodiments, client 350 may send request 600 to access content from content server 310 (S700). In various embodiments, content server 310 may check the client's access rights to the content (S710). For example, the request may include a username and password (or other user account identification information) for the client to verify the user's identity and compare the user's identity with the access rights to the content. In various embodiments, content server 310 may identify the location of client device 350 and identify domains with cache devices relatively close to client device 350 (S720). For example, content server 310 may use the IP address of client 350 to identify the location of client 350, and then use the cached content table to match client 350 with the nearest cache devices to identify which devices have the requested content and the location of those devices.

[0075] In various embodiments, content server 310 may provide license updates 610 to caching device 320 and client 350, enabling client 350 to access requested content from caching device 320. For example, in various embodiments, content server 310 may provide the identified caching device 320 with a managed content table for the device (e.g., ...). Figure 5D The updated (managed content table) allows client device 350 to access cache device 320 and can send redirection messages to client device 350 (e.g., ...). Figure 5C (S730) redirection message.

[0076] In various embodiments, client 350 receives a redirection message from content server 310 and uses the information provided in the redirection message to request content 620 from caching device 320 (S740). In various embodiments, caching device 320 receives the request from client 350, and caching device 320 will check the device's managed content table (e.g., ...). Figure 5D The cache device 320 verifies that the client 350 has permission to access the content using a managed content table. Once the client 350 has been verified, the cache device 320 serves the content 630 (S750).

[0077] Figure 8 A communication diagram is depicted illustrating, according to various embodiments of the present invention, the downloading of content using a distributed caching system when the content is currently unavailable on a local caching device. Figure 9 Methods for downloading content using a distributed caching system when the content is currently unavailable on a local caching device, according to various embodiments of the present invention, are described.

[0078] See Figure 8 and Figure 9 In various embodiments, even if the local cache device does not have content stored on the device, the distributed caching system can utilize the content server in conjunction with the storage device connected to the cache network to distribute content without further intervention from the control server.

[0079] In various embodiments, client 350 may send request 800 to access content from content server 310 (S900). In various embodiments, content server 310 may check the client's access rights to the content (S910). As described above, in various embodiments, the request may include a username and password (or other user account identification information) for the client to verify the user's identity and compare the user's identity with access rights to the content. In various embodiments, content server 310 may identify the location of client device 350 and identify domains with caching devices relatively close to client device 350 (e.g., physically or logically). In some instances, the nearest domain (e.g., a neighboring domain) may not include any device hosting the requested content (S920). For example, caching device 330 in "domain B" may be the nearest caching device to client 350, but may not currently include the requested content. In various embodiments, content server 310 identifies the nearest domain to client 350 and pushes content or a first fragment of content 810 to the caching device in the identified domain (S930). In various embodiments, the cached content table can be updated (e.g., Figure 5B The content server 310 may update the managed content table of the identified cache device 330 to reflect the new cached content. In various embodiments, the content server 310 may provide updates to the managed content table of the device (e.g., adding licensed entries to the cached device 330) to the cached device's cache table. Figure 5D The managed content table) allows client device 350 to access cache device 330, and can send redirection messages to client device 350 (e.g., ...). Figure 5C (Redirect message) 820 (S940).

[0080] For example, content server 310 can use the IP address of client 350 to identify the location of client 350, and then use the cached content table to match client 350 with the nearest cache devices (e.g., neighboring cache devices) to identify which devices have the requested content and the location of those devices. In various embodiments, client 350 receives a redirection message from content server 310 and uses the information provided in the redirection message to request 830 content from cache device 320, and by checking the device's managed content table (e.g., ... Figure 5D After verifying that the client 350 has the right to access the content (the managed content table), the cache device 330 provides the content 840 (S950).

[0081] In various embodiments, content server 310 may send 850 fragments to cache device 330 when needed by client device 350 (S960). For example, in various embodiments, the requested content may include a video file. The video file may be divided into multiple fragments. The multiple fragments may have uniform or non-uniform sizes. For example, the first fragment may include the first 3 minutes of the video, and each subsequent fragment may include the next 10 minutes of the video. In various embodiments, when the client plays the video, cache device 330 may notify content server 310 when additional fragments are needed (e.g., when the client will soon finish downloading the current fragment), and content server 310 may push additional fragments 850 to one or more cache devices 330 in use (and update the cached content table as needed). In various embodiments, fragments may be pushed to different cache devices within the same domain. In these cases, content server 310 may be configured to send redirection messages as needed to appropriately direct the client device to the cache device with the requested content. In addition, the content server 310 can also update the managed content table of the cache device, enabling clients to access the content it stores.

[0082] Therefore, the above embodiments of this disclosure provide systems and methods for distributed caching systems.

[0083] The foregoing is illustrative of exemplary embodiments and should not be construed as limiting them. Although some exemplary embodiments have been described, those skilled in the art will readily understand that many modifications can be made to the exemplary embodiments without substantially departing from the novel teachings and advantages of the exemplary embodiments. Therefore, all such modifications are intended to be included within the scope of the exemplary embodiments defined in the claims. In the claims, the clauses for "means plus function" are intended to cover the structures described herein that perform the functions, and include not only structural equivalents but also equivalent structures. Therefore, it should be understood that the foregoing is illustrative of exemplary embodiments and should not be construed as limiting to the specific embodiments disclosed, and modifications to the disclosed exemplary embodiments, as well as other exemplary embodiments, are intended to be included within the scope of the appended claims. The inventive concept is defined by the appended claims, and equivalents of the claims are included therein.

Claims

1. A system comprising: At least one network-connected device has an identifier; Content server; as well as Control server, the control server comprising: Memory; and A processor is configured to execute instructions from the memory, which, when executed by the processor, cause the processor to: The device with at least one network connection was detected; Device information is collected from the at least one network-connected device, wherein the at least one network-connected device includes a storage device, the storage device includes an Ethernet solid-state drive (eSSD), and wherein the identifier of the at least one network-connected device includes a network protocol address, and wherein the device information includes a device location based on the network protocol address; Based on the device information, assign the at least one network-connected device to a device domain; and The content server is provided with the device information of the at least one network-connected device; The content server is configured to send content to the at least one network-connected device based on the device information.

2. The system of claim 1, wherein the instructions further include generating a device table, wherein, The device table includes entries for the devices used for the at least one network connection, and the entries include at least one of a cached device identifier, the device location, or the device domain.

3. The system as described in claim 2, wherein, The cache device identifier includes an IP address.

4. The system as claimed in claim 1, wherein, The content server includes a cached content table, which includes content entries of the content stored on the at least one network-connected device, wherein the content entries include at least one of a cached device identifier or a content identifier.

5. The system as described in claim 4, wherein, The at least one network-connected device includes a managed content table, wherein the managed content table includes authorization entries for verifying client devices' access rights to the content stored on the network-connected device.

6. A system comprising: A network-connected device, including at least one content and device-based information field, wherein the network-connected device has an identifier; and Content server, the content server comprising: Memory; and A processor is configured to execute instructions from the memory, which, when executed by the processor, cause the processor to: Verify the client's access permissions to the requested content; Identify the client's information; Match the client's information with the nearest domain; Update the managed content table of the devices with the most recent network connections within the domain; and A redirection message is transmitted to the client, wherein the network-connected device includes a storage device, the storage device includes an Ethernet solid-state drive (eSSD), and wherein the identifier of the network-connected device includes a network protocol address, and wherein the device information includes a device location based on the network protocol address.

7. The system of claim 6, wherein, The network protocol address includes the Internet Protocol (IP) address.

8. The system of claim 6, wherein the instructions further include: Verify the storage of the content within the nearest domain, wherein the client's information includes the client's location, wherein the managed content table of the device updating the network connection contains an authorized entry including the client, and wherein the redirect message includes a cache device identifier.

9. The system of claim 8, wherein the instructions further include: The first fragment of the requested content is sent to the device connected to the network in the nearest domain.

10. The system of claim 9, wherein the instructions further include: Send the second fragment of the requested content to the network-connected device in the nearest domain.

11. The system of claim 6, wherein, The device information includes the device location, which includes the physical location.

12. A system comprising: Network-connected devices have identifiers; Content server; and Control server, the control server comprising: First memory; and A first processor is configured to execute a first instruction from the first memory, wherein when the first instruction is executed by the first processor, the first processor: The device connected to the network was discovered; Device information is collected from the network-connected device, wherein the network-connected device includes a storage device, the storage device including an Ethernet solid-state drive (eSSD), and wherein the identifier of the network-connected device includes a network protocol address, and wherein the device information includes a device location based on the network protocol address; and The content server is provided with the identifier and device information of the network-connected device.

13. The system of claim 12, wherein, The network protocol address includes an Internet Protocol (IP) address, wherein the content server is configured to send content to the eSSD based on the device location.

14. The system of claim 12, wherein, The content server includes a cached content table, which includes content entries for content stored on the network-connected device. Each content entry includes a cached device identifier and a content identifier. The network-connected device also includes a managed content table for verifying client devices' access rights to the content.

15. The system according to claim 12, wherein, The content server includes: Second memory; and The second processor is configured to execute a second instruction from the second memory, the second instruction causing the second processor, when executed by the second processor, to: Verify the client's access permissions to the requested content; Identify the location of the client; Match the client's location with the nearest domain; Update the managed content table of the network-connected device in the nearest domain to include the client's authorization entry; A redirection message is transmitted to the client, wherein the redirection message includes a cache device identifier; Verify the storage of the requested content within the nearest domain; and The requested content is sent to the network-connected device in the nearest domain.

16. A network-connected device, comprising: Network connectivity; A permanent storage device for storing at least one multimedia content, said at least one multimedia content including a first segment of the multimedia content; as well as The controller includes: A storage device for storing a managed content table, wherein the managed content table includes licensed entries for the at least one multimedia content; and A processor, wherein the processor is configured to execute instructions from the memory, the instructions causing the processor, when executed by the processor, to: Based on the hosted content table, verify the client's access permissions to the requested multimedia content; and The requested multimedia content is delivered to the client via the network connection, wherein the network connection device further includes a storage device, the storage device including an Ethernet solid-state drive (eSSD), and wherein the identifier of the network connection device includes a network protocol address, and wherein the device information of the network connection device includes a device location based on the network protocol address.

17. The network-connected device as claimed in claim 16, wherein, The network protocol address includes an Internet Protocol (IP) address, and the authorization entry includes at least one of a client ID, a content ID, a download timestamp, a usage timestamp, or a usage count.

18. The network-connected device as claimed in claim 16, wherein, The instruction also causes the processor to: Based on the delivery of the first segment of the multimedia content, request the second segment of the multimedia content from the content server; and The content server is notified according to the delivery of the first segment of the multimedia content.

Citation Information

Patent Citations

  • Ip service configuration in wireless communications networks

    CN101690111A

  • Configuration services for user terminals

    CN105991796A