Exactly one cache framework
First Claim
1. A system for managing objects on a network, comprising:
- a plurality of network servers, each network server adapted to communicate with a network data source; and
a lead server in said plurality of network servers, the lead server containing a distributed consensus algorithm for selecting a host server from said plurality of network servers, the host server containing an object related to a data item in the network data source such that any of said plurality of network servers needing to access the data item can access the object on the host server.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for managing objects in a clustered network includes a file system containing at least one copy of a data object. The system can include several clustered servers in communication with the file system. A lead server is selected, which contains a distributed consensus algorithm for selecting a host server, and which utilizes multicasting while executing rounds of the algorithm. The selected host server can contain a copy of the data object, such as in local cache, providing access to the local copy to any other server in the cluster. Any change made to an item hosted by the host server can also be updated in the file system. If the host server becomes unable to host the object, a new host can be chosen using the distributed consensus algorithm. The other servers are then notified of the new host by multicast messaging.
108 Citations
47 Claims
-
1. A system for managing objects on a network, comprising:
-
a plurality of network servers, each network server adapted to communicate with a network data source; and
a lead server in said plurality of network servers, the lead server containing a distributed consensus algorithm for selecting a host server from said plurality of network servers, the host server containing an object related to a data item in the network data source such that any of said plurality of network servers needing to access the data item can access the object on the host server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for managing objects on a network, comprising:
-
a plurality of network servers, each network server adapted to communicate with a network data source; and
a lead server in said plurality of network servers, the lead server containing a distributed consensus algorithm for selecting a host server from said plurality of network servers, the host server containing a copy of a data item located in the network data source such that any of said plurality of network servers needing to access the data item can access the copy on the host server.
-
-
9. A system for managing objects on a network, comprising:
-
a plurality of network servers, each network server adapted to communicate with a network data source; and
a lead server in said plurality of network servers, the lead server containing a distributed consensus algorithm for selecting a host server from said plurality of network servers, the host server containing the sole access point to a data item located in the network data source such that any of said plurality of network servers needing to access the data item must access the data item through the host server.
-
-
10. A system for managing objects on a network, comprising:
-
a file system containing at least one copy of a data item;
a plurality of servers in communication with the file system;
a lead server in said plurality of servers, the lead server containing a distributed consensus algorithm for selecting a host server from said plurality of servers; and
a host server in said plurality of servers, said host server containing a local copy of the data item, said host server adapted to provide access to the local copy to any of said plurality of servers and update the copy of the data item in the file system any time an update is made to the local copy. - View Dependent Claims (11, 12, 13)
-
-
14. A system for managing objects on a network, comprising:
-
a file system containing at least one copy of a data item;
a plurality of servers in communication with the file system;
a hardware cluster containing hardware cluster servers located in said plurality of servers, said hardware cluster containing a distributed consensus algorithm for selecting a lead server from among said hardware cluster servers;
a lead server in said hardware cluster servers, the lead server containing an algorithm for selecting a host server from said plurality of servers; and
a host server in said plurality of servers, said host server containing a local copy of the data item, said host server adapted to provide access to the local copy to any of said plurality of servers and update the copy of the data item in the file system any time an update is made to the local copy. - View Dependent Claims (15)
-
-
16. A method for managing objects on a network, comprising:
-
selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
pulling a copy of a data item from a file system to the host server; and
notifying other network servers that the host server contains a copy of the data item to be used in processing network requests. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
updating the data item in the file system when the copy on the host server is modified.
-
-
18. A method according to claim 16, further comprising the step of:
restricting other network servers to pass through the host server to access the file system.
-
19. A method according to claim 16, further comprising the step of:
ensuring that only one copy of the data item exists outside the file system.
-
20. A method according to claim 16, further comprising the step of:
ensuring that one copy of the data item always exists outside the file system.
-
21. A method according to claim 16, further comprising the step of:
selecting a new host server from among a plurality of network servers using a distributed consensus algorithm if the host server is no longer able to host the object.
-
22. A method according to claim 16, further comprising the step of:
pulling a copy of a data item from a file system to the a new host server if the host server is no longer able to host the object, the host server selected using the distributed consensus algorithm.
-
23. A method according to claim 16, further comprising the step of:
notifying other network servers that a new host server contains a copy of the data item to be used in processing network requests if the host server is no longer able to host the object.
-
24. A framework for managing objects on a network, comprising:
-
a plurality of servers, each server capable of caching a data object;
a file system containing at least one copy of a data item;
a distributed consensus algorithm for selecting a host server from among said plurality of servers, the host server to cache a copy of the data object; and
a distribution system for notifying servers on the network that the host computer contains a copy of the data object.
-
-
25. A method for leasing an object to a server on a network, comprising:
-
selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
assigning a data object to the host server, the host server assigned to provide sole access to a data item for a specific period of time;
pulling a copy of a data item from a file system to the host server; and
notifying other network servers that the host server contains a copy of the data item to be used in processing network requests. - View Dependent Claims (26, 27)
assigning the data object to the host server for another period of time once the specific period of time expires.
-
-
27. A method according to claim 25, further comprising the step of:
assigning the data object to a new host server for another specific period of time once the specific period of time expires on the host server.
-
28. A method for leasing an object to a server on a network, comprising:
-
selecting a lead server from among a plurality of hardware cluster servers in a hardware cluster;
selecting a host server from among a plurality of network servers using a distributed consensus algorithm on said lead server;
assigning a data object to the host server, the host server assigned to provide sole access to a data item for a specific period of time;
pulling a copy of a data item from a file system to the host server; and
notifying other network servers that the host server contains a copy of the data item to be used in processing network requests.
-
-
29. A method for assigning ownership of an object on a network, comprising:
-
selecting a lead server from among a plurality of hardware cluster servers in a hardware cluster;
selecting a host server from among a plurality of network servers using a distributed consensus algorithm on said lead server;
assigning a data object to the host server, the host server assigned to provide sole access to a data object on the network;
pulling a copy of a data object from a file system to the host server; and
notifying other network servers that the host server contains a copy of the data object to be used in processing network requests.
-
-
30. A method for hosting Java Messenger Service (JMS) on a network, comprising:
-
selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
assigning a JMS object the host server, the JMS object comprising a JMS message store providing the sole access point and message queue for JMS over the network; and
notifying the network servers that the host server is hosting the sole JMS message store. - View Dependent Claims (31, 32, 33)
checking the JMS message store for messages intended for one of the plurality of network servers.
-
-
32. A method according to claim 30, further comprising the step of:
sending a JMS message from a network server to the JMS message store on the host server.
-
33. A method according to claim 30, further comprising the step of:
sending messages in the JMS message store on the host server to a JMS component.
-
34. A method for ensuring the existence of an object in a cluster, comprising:
-
providing access to a data object using a host server in a plurality of servers;
selecting a new host server from among the plurality of servers using a distributed consensus algorithm if the host server is unable to provide access to the data object;
pulling information to the new host server needed to provide access to the data object; and
notifying other servers in said plurality of servers that anew host server is providing access to the data object.
-
-
35. A method for ensuring the availability of an administration server in a cluster, comprising:
-
selecting a lead server from among a plurality of servers;
selecting an administration server from among a plurality of servers using a distributed consensus algorithm on the lead server;
pulling administration information from a data source to the administration server and updating administration information in the data source in order to coordinate information in the data source and on the administration server; and
notifying other servers in the cluster of the identity of the administration server. - View Dependent Claims (36)
-
-
37. A method for distributing objects in a cluster, comprising:
-
selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
assigning a data object to the host server, the host server assigned to provide sole access to a data item; and
multicasting a notification to other servers in the cluster that the host server contains a copy of the data item to be used in processing network requests.
-
-
38. A method for distributing objects in a cluster, comprising:
-
selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
contacting each server in the cluster to determine whether the selected host is acceptable to that server; and
multicasting a notification to other servers in the cluster to commit the selection of a new host server if all servers in the cluster agree that the selected host is acceptable.
-
-
39. A computer-readable medium, comprising:
-
means for selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
means for assigning a data object to the host server, the host server assigned to provide sole access to a data item;
means for pulling a copy of a data item from a file system to the host server; and
means for notifying other network servers that the host server contains a copy of the data item to be used in processing network requests.
-
-
40. A computer program product for execution by a server computer for managing objects on a network, comprising:
-
computer code for selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
computer code for pulling a copy of a data item from a file system to the host server; and
computer code for notifying other network servers that the host server contains a copy of the data item to be used in processing network requests.
-
-
41. A system for distributing objects in a cluster, comprising:
-
means for selecting a host server from among a plurality of network servers using a distributed consensus algorithm;
means for pulling a copy of a data item from a file system to the host server; and
means for notifying other network servers that the host server contains a copy of the data item to be used in processing network requests.
-
-
42. A computer system comprising:
- a processor;
object code executed by said processor, said object code configured to;
select a host server from among a plurality of network servers using a distributed consensus algorithm;
pull a copy of a data item from a file system to the host server; and
notify other network servers that the host server contains a copy of the data item to be used in processing network requests.
- a processor;
-
43. A method for managing objects on a network, comprising:
-
selecting a host server from among a plurality of network servers in a software cluster using a Paxos algorithm; and
assigning a data object to the host server, the data object existing only on the host server in the network. - View Dependent Claims (44, 45, 46, 47)
pulling data for the data object from a file system.
-
-
45. A method according to claim 43, further comprising the step of:
notifying other network servers that the host server contains an object for the data item to be used in processing network requests.
-
46. A method according to claim 43, further comprising the step of:
multicasting the identification of the new host server to the other network servers.
-
47. A method according to claim 43, wherein said step of selecting a host server from among a plurality of network servers in a software cluster using a Paxos algorithm comprises multicasting rounds of information to the other network servers.
Specification