Scalable cache
First Claim
1. In a system adapted to receive request for objects from one or more clients, said system comprised of a plurality of cache nodes, a method for retrieving a requested object of said objects, said method comprising the steps of:
- (a) sending one of said requests from one of said clients;
(b) receiving said request at a network dispatcher;
(c) forwarding said request from said network dispatcher to a cache node, selected by said network dispatcher, of a cache array, wherein one cache node of said cache array is a primary owner of said requested object; and
(d) returning said requested object from a servicing cache node of said cache array using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object.
1 Assignment
0 Petitions
Accused Products
Abstract
Requests for objects are received from one or more clients in a system comprised of a plurality of nodes. One of the requests is sent from one of the clients. The request is received from a first node of said plurality of nodes by a second node of said plurality of nodes. A requested object is returned from the second node of the plurality of nodes using one of a plurality of protocols. The method may be applied to a scalable and highly available cache array. The cache array may enhance the performance and throughput of Web servers connected to a network such as the Internet. A network dispatcher may send requests to a cache node of a cache array. The cache node selected by the network dispatcher may either serve the request, handoff the request to another cache node of a cache array, or communicate via one of a variety of protocols with another cache node of the cache array to cooperatively serve the request. A network dispatcher, operating in a special mode, may also function as a content based router. Thus, it is also possible for a network dispatcher to route requests using a combination of content-based and non-content-based routing in order to further improve system performance.
124 Citations
34 Claims
-
1. In a system adapted to receive request for objects from one or more clients, said system comprised of a plurality of cache nodes, a method for retrieving a requested object of said objects, said method comprising the steps of:
-
(a) sending one of said requests from one of said clients;
(b) receiving said request at a network dispatcher;
(c) forwarding said request from said network dispatcher to a cache node, selected by said network dispatcher, of a cache array, wherein one cache node of said cache array is a primary owner of said requested object; and
(d) returning said requested object from a servicing cache node of said cache array using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of retrieving a requested object, said method comprising the steps of:
-
(a) transmitting a request for the requested object to a cache array comprising a plurality of caches including a first cache and having a single cache image;
(b) determining whether the first cache corresponds to the requested object;
(c) identifying a second cache in the cache array corresponding to the requested object; and
(d) retrieving the requested object via the second cache using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object. - View Dependent Claims (18, 19, 20, 21, 22, 23)
determining whether the requested object is not stored in the second cache; and
retrieving the requested object from a server associated with the second cache.
-
-
22. The method according to claim 17, wherein steps (c) and (d) are performed if in step (b) it is determined that the first cache does not correspond to the requested object.
-
23. The method according to claim 17, wherein the one of the plurality of protocols is one of HTTP (HyperText Transfer Protocol), UDP (User Datagram Protocol), and Handoff interface.
-
24. A method of retrieving a target object of a plurality of objects, the target object requested by a client, said method comprising the steps of:
-
(a) assigning each of the plurality of objects to at least one of a plurality of nodes;
(b) assigning at least one of a plurality of caches to each of the plurality of nodes;
(c) transmitting a request for the target object to a first node of the plurality of nodes;
(d) determining if the target object is assigned to the first node; and
(e) if the target object is not assigned to the first node (i) transmitting the request to a second node of the plurality of nodes, the target object being assigned to the second node, and (ii) retrieving the target object from a cache of the plurality of caches assigned to the second node if the target object is stored in the cache assigned to the second node using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
if the target object is assigned to the first node, retrieving the target object from a cache of the plurality of caches assigned to the first node if the target object is stored in the cache assigned to the first node. -
31. The method according to claim 30, further comprising the step of
retrieving the target object from a server corresponding to the first node if the target object is not stored in the cache assigned to the first node. -
32. The method according to claim 24, wherein step (e) the target object is retrieved from a server corresponding to the second node if the target object is not stored in the cache assigned to the second node.
-
-
33. An article of manufacture comprising a computer usable medium having computer readable code means embodied therein for receiving a request for an object, said system comprised of a plurality of cache nodes, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect:
-
(a) sending one of said requests from one of said clients;
(b) receiving said request at a network dispatcher;
(c) forwarding said request from said network dispatcher to a cache node, selected by said network dispatcher, of a cache array, wherein one cache node of said cache array is a primary owner of said requested object; and
(d) returning said requested object from a servicing cache node of said cache array using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object.
-
-
34. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for retrieving a requested object of a plurality of objects in a system adapted to receive requests for said objects from one or more clients, said system comprised of a plurality of cache nodes, said method steps comprising:
-
(a) sending one of said requests from one of said clients;
(b) receiving said request at a network dispatcher;
(c) forwarding said request from said network dispatcher to a cache node, selected by said network dispatcher, of a cache array, wherein one cache node of said cache array is a primary owner of said requested object; and
(d) returning said requested object from a servicing cache node of said cache array using one of a plurality of protocols, wherein said one of the plurality of protocols is selected by the cache array based on the size of said requested object.
-
Specification