Network acceleration device having persistent in-memory cache
First Claim
1. A method comprising:
- receiving, with a network device, a request by a client device for content from a server device, wherein the network device comprises a network acceleration device intermediately located between the client device and the network server;
determining whether the content resides within a cache of the network device;
downloading the content to the network device from the network server upon determining that the content does not reside within the cache;
storing the content to the cache within a named memory region of a physical memory provided by the network device;
mapping one or more data structures within a virtual memory space associated with a software process executing on the network device to the named memory region of the physical memory, wherein the software process manages the cache;
remapping the data structures to the named memory region of the physical memory in response to a failure of the software process that corrupts the virtual memory space associated with the failed software process, wherein remapping the named memory region comprises starting a new instance of the failed software process to create a new virtual memory space having new instances of the data structures and remapping the new instances of the data structures within the new virtual memory space to the named memory region of the physical memory; and
accessing the content stored in the cache after the failure without restoring the content to the cache.
1 Assignment
0 Petitions
Accused Products
Abstract
A network acceleration device includes a persistent, in-memory cache of network content. For example, the cache may store content in a manner that allows a software process to map virtual memory to specific, known regions of an underlying physical memory. Upon detecting a failure of a process executing within the network device, the network acceleration device may restart the software process and remap data structures of the cache to the known regions of the physical memory without necessarily requiring that the cache content be reloaded from a non-volatile memory, such as a hard drive. In this manner, the network acceleration device may accelerate download speeds by avoiding timely cache content restoration in the event of a software process failure.
120 Citations
17 Claims
-
1. A method comprising:
-
receiving, with a network device, a request by a client device for content from a server device, wherein the network device comprises a network acceleration device intermediately located between the client device and the network server; determining whether the content resides within a cache of the network device; downloading the content to the network device from the network server upon determining that the content does not reside within the cache; storing the content to the cache within a named memory region of a physical memory provided by the network device; mapping one or more data structures within a virtual memory space associated with a software process executing on the network device to the named memory region of the physical memory, wherein the software process manages the cache; remapping the data structures to the named memory region of the physical memory in response to a failure of the software process that corrupts the virtual memory space associated with the failed software process, wherein remapping the named memory region comprises starting a new instance of the failed software process to create a new virtual memory space having new instances of the data structures and remapping the new instances of the data structures within the new virtual memory space to the named memory region of the physical memory; and accessing the content stored in the cache after the failure without restoring the content to the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A network device comprising:
-
an in-memory cache that stores content within a named memory region of a physical memory provided by the network device; a software process that manages the in-memory cache; a cache server executing on the network device having a respective virtual memory space; and a cache client process executing on the network device to receive a request for the content from a client device, issue a cache access request to the cache server via a cache message protocol to determine whether the content resides within the cache, download the content from a network server when the content does not reside within the cache, and store the content to the cache upon determining that the content does not reside within the cache, wherein the cache server remaps one or more data structures of the virtual memory space to the named memory region of the physical memory in response to a failure of the software process to allow access of the content stored in the cache without restoring the content to the cache, and wherein the cache server remaps the named memory region by restarting the failed software process and reallocating the object within the named memory region to reference the same physical memory of the cache where the content was stored prior to the failure. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium comprising instructions for causing a programmable processor to:
-
receive, with a network device, a request by a client device for content from a server device, wherein the network device comprises a network acceleration device intermediately located between the client device and the network server; determine whether the content resides within a cache of the network device; download the content to the network device from the network server upon determining that the content does not reside within the cache; store the content to the cache within the network device in accordance with a named memory region of the cache; map at least one object within a virtual memory space associated with a process executing on the network device to the named memory region of the physical memory, wherein the process manages the cache; detect a failure of a process executing within the network device; and remap the at lest one object to the named memory region of the cache in response to detecting the failure of the process that manages the cache to allow access of the content stored in the cache without restoring the content to the cache, wherein remaining the named memory region comprises starting a new instance of the failed software process to create a new virtual memory space having new instances of the data structures and remapping the new instances of the data structures within the new virtual memory space to the named memory region of the physical memory. - View Dependent Claims (16, 17)
-
Specification