[미국특허]
Network acceleration device having persistent in-memory cache
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
G06F-011/00
G06F-012/00
출원번호
UP-0228006
(2005-09-15)
등록번호
US-7676554
(2010-04-21)
발명자
/ 주소
Malmskog, Steven A.
Hoche-Mong, Michel
Chang, Thomas
출원인 / 주소
Juniper Networks, Inc.
대리인 / 주소
Shumaker & Sieffert, P.A.
인용정보
피인용 횟수 :
51인용 특허 :
13
초록▼
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 execut
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.
대표청구항▼
The invention claimed is: 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
The invention claimed is: 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. 2. The method of claim 1, wherein storing the content further comprises: allocating at least one object within the named memory region to an unused portion of the physical memory; and storing the content to the unused physical memory referenced by the object. 3. The method of claim 2, remapping the named memory region comprises: starting a new instance of the failed software process; reallocating the at least one object within the named memory region that references the same unused physical memory of the cache wherein the content was stored before detecting the failure. 4. The method of claim 1, further comprising: spawning a cache client on the network acceleration device to service the request; and issuing a cache access request with the cache client to a cache daemon executing on the network acceleration device via a cache message protocol to determine whether the content resides within the cache of the intermediate network acceleration device. 5. The method of claim 1, further comprising: detecting the failure of the software process prior to completion of the downloading of the content; continuing to download the content with the cache client from the network server after remapping the cache to the named memory region; and continuing to store the content with the cache client to the cache after remapping the named memory region. 6. The method of claim 1, further comprising detecting the failure as a failure of the cache daemon that prevents the cache client from storing the content to the cache. 7. The method of claim 1, further comprising: receiving a request for the content from a client device after remapping the named memory region; spawning a cache client to service the request upon receiving the request; and transmitting the content from the cache to the client device. 8. The method of claim 1, wherein storing the content to the cache comprises storing the content to an in-memory cache located within the physical memory of the network device in accordance with the named memory region. 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. 10. The network device of claim 9, further comprising: a buffer allocator that allocates at least one object within the named memory region that references unused physical memory of the cache, wherein the cache stores the content to the unused physical memory referenced by the object. 11. The network device of claim 9, wherein the cache client process further: continues to download the content from the network server after the cache server remaps the named memory region; and continues to store the content to the cache via a cache storage API after the cache server remaps the named memory region. 12. The network device of claim 11, wherein the cache server remaps the named memory region by: stopping the cache client process from downloading the content from the network server after detecting the failure; and releasing the cache client process after detecting the failure. 13. The network device of claim 9, further comprising: a second cache client process executing on the network device that receives a request for the content from a second client device after remapping the named memory region, issues a cache access request to read the content from the cache, receives the content from the cache in response to the cache access request, and transmits the content received from the cache to the second client device. 14. The network device of claim 9, wherein the network device comprises an intermediate network acceleration device located between a client device and a network server, and wherein the network device transparently intercepts access requests from the client device to the network server and services the access requests from the cache. 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. 16. The computer-readable medium of claim 15, wherein the instructions cause the processor to store the content by: allocating the at least one object within the named memory region that references unused physical memory of the cache; and storing the content to the unused physical memory referenced by the object. 17. The computer-readable medium of claim 16, wherein the instructions cause the processor to remap the named memory region by: restarting the failed process; reallocating the at least one object within the named memory region that references the same unused physical memory of the cache to which the content was stored before detecting the failure.
Huston,Arthur Charles Thomas; Haines,Matthew Dennis; Abbott, III,Freeland Knight; Beguelin,Adam Louis; Chowla,Michael Alexander, Approach for managing and providing content to users.
Lango, Jason; Merrick, Jeffrey Dale; Roussos, Konstantinos; Tsai, Robert; Wagner, J. Christopher, Caching media data using content-sensitive identifiers.
Christopher H. Stewart ; Svilen B. Pronev ; Darrell J. Starnes, Method and apparatus for efficient storage and retrieval of objects in and from an object storage device.
Kee,Thomas E.; Kearny,Ryan C.; DeCaprio,Donald Joseph; Saether,Christian D., Method and system for automatically updating content stored on servers connected by a network.
Markowitz, Robert Edward; O'Neil, Joseph Thomas; Rosen, Kenneth H.; Stuntebeck, Peter H., Proxy apparatus and method for streaming media information and for increasing the quality of stored media information.
Hughes, David Anthony; Ennis, Damon John; Tedijanto, Theodore Ernest; Ho, Hon Tat, Determining a transit appliance for data traffic to a software service.
Hughes, David Anthony; Bheemarajaiah, Santosh; Ennis, Damon John; Merwin, Dave Holt; Muralt, Rolf; Ozduygu, Onur; Roselle, Kevin James; Singh, Pawan Kumar, Dynamic monitoring and visualization for network health characteristics.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.