Floating single master operation
First Claim
1. In a network comprising a plurality of servers, wherein each of the servers is capable of performing a predefined task, a system for identifying a master server to exclusively perform the predefined task, comprising:
- a first data object having an attribute for identifying one of the plurality of servers as a master server to exclusively perform the predefined task; and
a second object used by a master server to perform the predefined task, wherein the value of the second object changes during performance of the predefined task, wherein the first data object and second data object are replicated in each of the plurality of servers, and transferring exclusive authority to perform the predefined task involves updating the attribute on a first server presently having exclusive authority to perform the predefined task to identify a second server to which exclusive authority to perform the predefined task is being transferred, updating the attribute on the second server to identify the second server as having exclusive authority to perform the predefined task, and updating the second object on the second server to the value of the second object on the first server when the attribute on the first server was changed to identify the second server as having exclusive authority to perform the predefined task.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for switching exclusive authority to perform a predefined system-wide task between machines in a network comprises: a database having an attribute for identifying a master server in the domain to exclusively perform the predefined network-wide task. The database is replicated on each of the servers in the domain. The attribute may be changed so as to change the master server to another one of the servers in the domain. While multiple servers in the network may be physically capable of performing the predefined system-wide task, at any one time only one server may be designated as the master server. The master server role may, however, be “floated” among various servers in the network. At any particular moment, the machine which currently holds the master server role is referred to as the master server role owner and is identified in an attribute, role owner, that is stored on each server in the network. Switching authority to perform a particular network-wide task requires updating the attribute on each of the servers in the network.
131 Citations
24 Claims
-
1. In a network comprising a plurality of servers, wherein each of the servers is capable of performing a predefined task, a system for identifying a master server to exclusively perform the predefined task, comprising:
-
a first data object having an attribute for identifying one of the plurality of servers as a master server to exclusively perform the predefined task; and
a second object used by a master server to perform the predefined task, wherein the value of the second object changes during performance of the predefined task, wherein the first data object and second data object are replicated in each of the plurality of servers, and transferring exclusive authority to perform the predefined task involves updating the attribute on a first server presently having exclusive authority to perform the predefined task to identify a second server to which exclusive authority to perform the predefined task is being transferred, updating the attribute on the second server to identify the second server as having exclusive authority to perform the predefined task, and updating the second object on the second server to the value of the second object on the first server when the attribute on the first server was changed to identify the second server as having exclusive authority to perform the predefined task. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a network comprising a plurality of servers, wherein each of the plurality of servers is capable of performing a predefined network-wide task, a system for dynamically identifying a master server to exclusively perform the predefined network-wide task, comprising:
-
a replicated database storing a role owner attribute identifying a master server to exclusively perform the predefined network-wide task and a second object used by a master server to perform the predefined task wherein the value of the second object changes during performance of the predefined task, and wherein a local copy of the database is stored on each of the plurality of servers;
a requesting server to request assignment of the master server role to the requesting server; and
the master server operative to receive the request, change the role owner attribute in the local copy of the replicated database to identify the requesting server, forward an updated attribute to the requesting server to be stored in the local copy of the replicated database located on the requesting server, and forward an updated second object to the second server wherein the value of the second object is the value of the second object on the master server when the attribute was updated to identify the requesting server. - View Dependent Claims (9)
at least a third server, wherein the third server replicates the role owner attribute from the local copy of the replicated database located on the requesting server or the master server.
-
-
10. In a network having a plurality of servers, wherein each of the plurality of servers is capable of performing a predefined network-wide task and has a replicated database stored thereon with a master role owner attribute for identifying a master with exclusive authority to perform a predefined network-wide task and with a second data object used by a master to perform the predefined task, wherein the value of the second object changes during performance of the predefined task, a method of transferring ownership of the master role from a current master server in the plurality of servers to a requesting server in the plurality of servers, comprising:
-
communicating a request to transfer ownership of the master server role from the current master server to a requesting server;
if the current master server is available to be replaced as master server, updating the master role owner attribute located in the local copy of the replicated database located on the master server to a value identifying the requesting server, updating the master role owner attribute on the local copy of the replicated database located on the requesting server to a value identifying the requesting server, and updating the second object on the local copy of the requesting server to the value of the second object on the master server when the attribute was changed to refer to the requesting server; and
replicating the local copy of the replicated database from the master server and requesting server to other servers in the plurality of servers. - View Dependent Claims (11)
-
-
12. In a network having a plurality of servers, wherein each server is capable of performing a predefined network-wide task and has a replicated database stored thereon with a master role owner attribute for identifying a master server role owner in the plurality of servers with exclusive authority to perform a predefined network-wide task, the plurality of servers including a current master server identified by the master role owner attribute and a second server, a method of controlling the master server role owner, comprising the following steps:
-
floating the role of master server from the current master server to the second server;
if the current master server has been taken off-line, seizing the role of master server;
if the current master server was previously taken off-line, restoring the current master server to the network and prior to beginning operation as the master server, verifying that another server is not operating as the master server; and
abandoning the role of master server. - View Dependent Claims (13, 14, 15, 16)
communicating a request from the second server to the current master server to transfer ownership of the master server role to the second server;
if the current master server is not available to be transferred, returning an error to the second server; and
if the current master server is available for transferring the role of master server, updating the master server role owner attribute stored in a local copy of a directory services database located on the master server to identify the second server, updating the master server role owner attribute in the local copy of the directory services database located on the second server, to identify the second server as the master server, and updating the master server role owner attribute on the local copies of all servers in the plurality of servers to identify the second server as the master server.
-
-
14. The method of claim 12, wherein the step of seizing the role of master server comprises the following steps:
-
receiving, at the second server, a command to seize ownership of the master server role;
updating the master server role owner attribute located locally on the second server to identify the second server; and
updating the master server role owner attribute in the local copies of the replicated database located on other servers in the plurality of servers to identify the second server as the master server.
-
-
15. The method of claim 12, wherein the step of restoring the current master server and prior to beginning operation as the master server, verifying that another server is not operating as the master server, comprises the following steps:
-
retrieving to the current master server from the replicated database located on another server in the plurality of servers, the master server role owner attribute;
if the replicated master server role owner attribute identifies the current master server, initiating operation as the current master server; and
if the replicated master server role owner attribute identifies the second server as the master server role owner, updating the master server role owner attribute in the local copy of the replicated database located on the current master server to identify the second server.
-
-
16. The method of claim 12, wherein the step of abandoning the role of master server comprises the following steps:
-
receiving a command to abandon the master server role;
updating the master server role owner attribute on the master server to identify another server in the plurality of servers; and
updating the master server role owner attribute in the local copies of the replicated database located on each server in the plurality of servers to correspond with the master server role owner attribute located on the master server.
-
-
17. A data structure stored on one or more computer-readable media, the data structure comprising:
-
a first data object having an attribute for identifying a master server in a plurality of servers to exclusively perform a predefined task, and a second object used by a master server to perform the predefined task, wherein the value of the second object changes during performance of the predefined task, wherein the first data object and second data object are replicated so as to be accessible to each server in the plurality of servers, and transferring exclusive authority to perform the predefined task involves updating the attribute on a first server presently having exclusive authority to perform the predefined task to identify a second server to which exclusive authority to perform the predefined task is being transferred, updating the attribute on the second server to identify the second server as having exclusive authority to perform the predefined task, and updating the second object on the second server to the value of the second object on the first server when the attribute on the first server was changed to refer to the second server.
-
-
18. A computer-readable media having stored thereon instructions for performing steps comprising:
-
updating in a local copy of a distributed database located on a first server an attribute identifying a master server with exclusive authority to perform a predefined task to identify a second server to which exclusive authority to perform the predefined task is being transferred;
updating in a local copy of the distributed database located on a second server the attribute identifying a master server to identify the second server as having exclusive authority to perform the predefined task;
and updating in a local copy of the distributed database located on the second server a second object to the value for the second object on the first server when the attribute on the first server was changed to refer to the second server. - View Dependent Claims (19)
-
-
20. In a network having a plurality of servers, wherein each of the plurality of servers is capable of performing a predefined network-wide task and has a replicated database stored thereon with a master role owner attribute for identifying a master with exclusive authority to perform the predefined network-wide task and with a second data object used by a master server to perform the predefined task, wherein the value of the second object changes during performance of the predefined task, a method of transferring ownership of the master role, comprising:
-
at a first server having a role owner attribute identifying a second server as the master server, communicating a request to the second server to transfer ownership of the master server role to the first server;
at the second server, receiving the request to transfer ownership of the master server role and verifying in the database replicated on the second server that the master role owner attribute identifies the second server as the master server role owner; and
at the second server, if the role owner attribute does not identify the second server as the master server role owner, communicating to the first server, the server identified in the master role owner attribute as the master server role owner. - View Dependent Claims (21, 22, 23, 24)
at the first server, receiving from the second server the identity of the server identified by the second server as the master server role owner, and forwarding to the server identified by the second server as the master server role owner a request to transfer ownership of the master server role.
-
-
22. The method of claim 20, wherein the second server communicates the identity of the server identified by the second server as the master server role owner if the copy of the role owner attribute on the second server is more recent than the copy of the role owner attribute on the first server.
-
23. The method of claim 20, further comprising,
at the second server, if the role owner attribute identifies the second server as the master server role owner, changing the value of the role owner attribute to identify the first server and forwarding to the first server the value of the second object when the value of the role owner attribute was changed to identify the first server. -
24. The method of claim 23, further comprising, at the first server changing the value of the role owner attribute to identify the first server as the role owner and changing the value of the second object to the value of the second object on the second server when the value of the role owner attribute was changed to identify the first server.
Specification