A content delivery network (“CDN”) is a geographically distributed network of cache servers that deliver content to end users. CDN nodes may be deployed in multiple locations. Requests for content may be directed to nodes that are in an optimal location for the requesting end users. CDNs were created to alleviate some of the workload from the Internet. CDNs heretofore serve as a layer of the Internet that provides many different types of digital content to users including, but not limited to, web objects, downloadable files, applications, streaming media, and the like.
As noted above, a CDN is a geographically distributed network of cache servers that provide low-latency access to digital content such as media content or a web page. Therefore, rather than making multiple requests to an origin server, which is situated at the Internet service provider's location, the content may be redundantly cached in different locations. In a CDN, the cache servers expedite delivery by being within geographic proximity of end users and by avoiding contact with a distant origin server.
While CDN offers many advantages, there are some notable drawbacks. For example, random access memory (“RAM”) in a cache server of a CDN has a limited capacity (e.g., 100 GB). Therefore, once the cache is at full capacity, additional content cannot be accommodated without deleting other content. CDNs may use a “least used content” approach for managing cache capacity (i.e., content that is used the least is deleted). However, multiple requests for deleted content may curb overall performance of the system, given that the cache server may have to retrieve the deleted content from an origin server that is not within a reasonable geographic proximity of a large group of users.
In view of the foregoing, disclosed herein are a system and method for caching digital content in a cloud environment. Cloud systems may auto scale when RAM resources are exhausted by launching a new server or virtual machine. Such a system may allow least used content to remain in RAM indefinitely without deletion. However, this may lead to a suboptimal allocation of new servers. A surge of least used content may occupy valuable RAM space. As such, a proper caching technique may be needed to ensure that the cloud system scales optimally based on frequently used content such that RAM occupancy of least used content is kept to a minimum. Nevertheless, simple deletion of least used content from RAM is not desirable for the reasons discussed above (i.e., numerous requests for deleted content may hinder performance due to the inconvenient geographic location of the origin server).
In one aspect, a method executed by at least one processor may include the following operations: identifying, in a random-access memory, digital content that has not been played back within a first time period, where the random-access memory is associated with an edge node of a content delivery network; transferring the digital content that has not been played back within the first time period to a storage device, where the storage device is associated with a middle-tier node of the content delivery network; identifying, in the storage device, digital content that has not been played back within a second time period; and, transferring the digital content that has not been played back within the second time period to an external storage device, where the external storage device is associated with an external node of the content delivery network. The edge node, middle-tier node, and the external node may be in the same geographic location.
In a further aspect, transferring the digital content that has not been played back within the first time period may further include converting the digital content into a file that is compatible with the storage device and the external storage device. In yet a further aspect, the method may include identifying digital content in the external storage device that has not been played back within a third time period, and deleting from the external storage device the digital content that has not been played back within the third time period.
In another example, the first time period, the second time period, and the third time period are configurable. Also, the edge node, the middle-tier node, and the external node may be virtual machines executing on a single host machine. However, the edge node, the middle-tier node, and the external node may also be arranged to execute on a separate, respective host machine.
In yet another example, the method may include the following operations: receiving a digital content request; determining that the requested digital content is not stored in the random-access memory associated with the edge node; and forwarding the digital content request to the middle-tier node.
The method may also include determining that the requested digital content is not in the storage device associated with the middle-tier node; and forwarding the digital content request to the external node.
In one example, the method may also include: determining that the requested digital content is not in the storage device associated with the middle-tier node; determining that the requested digital content is not in the external storage device associated with the external node; and, forwarding the digital content request to an origin server containing a repository of digital content.
In another aspect, the method may include determining that a performance metric is below a threshold, wherein the performance metric is at least partially based on time between receiving a digital content request and responding to the digital content request; and generating at least one additional edge node such that the performance metric meets or exceeds the threshold.
Also disclosed is a system that may include a random-access memory and at least one processor. The at least one processor may be configured to carry out the following operations: identify, in the random-access memory, digital content that has not been played back within a first time period, where the random-access memory is associated with an edge node of a content delivery network; transfer the digital content that has not been played back within the first time period to a storage device, where the storage device is associated with a middle-tier node of the content delivery network; identify, in the storage device, digital content that has not been played back within a second time period; and transfer the digital content that has not been played back within the second time period to an external storage device, where the external storage device is associated with an external node of the content delivery network.
In a further aspect, the at least one processor may also be configured to convert the digital content that has not been played back within the first time period into a file that is compatible with the storage device and the external storage device. In another example, at least one processor may be configured to identify digital content in the external storage device that has not been played back within a third time period; and, delete from the external storage device the digital content that has not been played back within the third time period.
In yet another example, the at least one processor is further configured to receive a digital content request; determine that the requested digital content is not stored in the random-access memory associated with the edge node; and forward the digital content request to the middle-tier node. In another example, the at least one processor is further configured to: determine that the requested digital content is not in the storage device associated with the middle-tier node; and forward the digital content request to the external node.
In a further example, the at least one processor is further configured to: determine that the requested digital content is not in the storage device associated with the middle-tier node; determine that the requested digital content is not in the external storage device associated with the external node; and, forward the digital content request to an origin server containing a repository of digital content.
In yet another aspect, the at least one processor of the system may be further configured to: determine that a performance metric is below a threshold, where the performance metric is at least partially based on time between receiving a digital content request and responding to the digital content request; and generate at least one additional edge node such that the performance metric meets or exceeds the threshold.
Aspects features and advantages of the present disclosure will be appreciated when considered with reference to the following description of examples and accompanying figures. The following description does not limit the application; rather, the scope of the disclosure is defined by the appended claims and equivalents.
The computer apparatus 100 may also contain hardware 104 such as processors and memory devices. In another example, the processors may be application specific integrated circuits (“ASICs”) or field-programmable gate arrays (“FPGAs”). The memory may be random-access memory (“RAM”) devices divided into multiple memory segments organized as dual in-line memory modules (“DIMMs”). The memory may store instructions that may be retrieved and executed by one or more processors. The memory may also store digital content that may be retrieved by users. While only one processor and one memory are shown in
In one example, reverse proxy 106 may instruct one or more processors to monitor delivery of content and scale when needed. Reverse proxy 106 may serve as an intermediary between end users and edge node 108. Edge node 108 may reply to requests for digital content as will be discussed further below. Middle-tier node 110 and external node 112 may cache certain digital content as will also be discussed below. Middle-tier node 110 may be in communication with origin server 114 in the event certain digital content cannot be found in any of the nodes.
The instructions for carrying out the techniques discussed herein may comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by a processor or multiple processors. In this regard, the terms “instructions,” “scripts,” or “modules” may be used interchangeably herein. The computer executable instructions may be stored in any computer language or format, such as in object code or modules of source code. Furthermore, it is understood that the instructions may be implemented in the form of hardware, software, or a combination of hardware and software and that the examples herein are merely illustrative.
Although all the components of computer apparatus 100 are functionally illustrated as being within the same apparatus 100, it will be understood that the components may or may not be stored within the same physical housing. As mentioned above, apparatus 100 may be one of many located in a data center. For example, turning now to
A data center and may be reachable via a local area network (“LAN”), wide area network (“WAN”), the Internet, etc. Such a data center may be geographically distributed to minimize latency. Therefore, for example, the edge node 202D, shown in
Referring to
Referring now to
Referring now to
As noted above, the system disclosed herein may make the first attempt to fill a digital content request from the RAM resources of an edge node. If the digital content is found in the edge node's RAM, the performance may be most favorable to the users given that the edge nodes are at a geographical location that is proximal to the users and that RAM access is efficient. The middle-tier nodes and the external nodes may also be geographically proximal to the users. However, the digital content of the middle-tier and external nodes are not in RAM so the performance may not be as desirable as that of the edge node, but still may be at a reasonable level of performance. Notwithstanding the favorable performance of the edge node, as noted earlier, the amount of RAM contained in the edge node is limited. It is not likely that the edge node's RAM may retain every conceivable item of digital content that a user may request. In view of this, a system for caching digital content may be needed.
Working examples of the caching system and method are shown in
Referring to
Referring to
Referring to block 906 of
In block 908, it may be determined that the digital content has not been played back within a second time period. In
Referring now to block 910 of
In another example, it may be determined that that digital content has not been accessed within the third time period (e.g., thirty days). In this instance the digital content may be deleted from the external node. In the event that a user requests the deleted digital content again in the future, the system may retrieve the digital content from the origin server. Therefore, digital content that is least popular may be moved further down the cache hierarchy.
Advantageously, the above-described system and method provides a scalable system that allows high demand digital content to be readily accessible. The above system may use a cloud approach that scales when RAM resources are exhausted. As noted above, when RAM resources are exhausted, a new edge node server may be launched. The new edge node server may be launched as a virtual machine by a hypervisor. The above-described system and method also removes content from RAM when it is determined that the content has not been accessed for a configurable amount of time. This may lead to an optimal allocation of new edge node servers such that the most popular content occupies the edge node's valuable RAM space. Meanwhile, content that is not as popular may be place in a storage device of a middle-tier or external node. As noted above, RAM may be the most efficient way to access the digital content while permanent storage devices in the other tiers may not be as efficient.
Although the disclosure herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles of the disclosure. It is therefore to be understood that numerous modifications may be made to the examples and that other arrangements may be devised without departing from the spirit and scope of the disclosure as defined by the appended claims. Furthermore, while particular processes are shown in a specific order in the appended drawings, such processes are not limited to any particular order unless such order is expressly set forth herein. Rather, various steps can be handled in a different order or simultaneously, and steps may be omitted or added.
Number | Date | Country | |
---|---|---|---|
63154824 | Mar 2021 | US |