Processing write requests with server having global knowledge
First Claim
1. A computer implemented method of processing write requests in a distributed system comprising a plurality of servers each storing a replica of the same data and engaging in replication to maintain data consistency among each of the replicas stored on the plurality of servers, the method comprising:
- storing a policy at a first server for deciding whether to accept or deny a write request if a central server is unavailable, wherein the first server is one of a first plurality of servers and the central server is one of a second plurality of servers;
receiving at the first server a write request with data to be written to a replica stored on the first server;
determining by the first server whether the data to be written to the replica stored on the first server is subject to a global data rule;
in response to the determining by the first server that the data to be written to the replica is subject to the global data rule, the first server transmitting an approval request to the central server to approve the acceptance of the write request, wherein the central server has global knowledge;
receiving a message from the central server indicating whether the approval request has been approved;
in response to the central server approving the approval request, the first server accepting the write request and writing the data to the replica stored on the first server;
in response to the central server not approving the approval request, the first server denying the write request;
wherein the plurality of receiving servers replicate changes made to at least one of the plurality of receiving servers each time a first period of time elapses; and
wherein the plurality of central servers replicate changes made to at least one of the plurality of central servers each time a change is made to at least one of the plurality of central servers.
2 Assignments
0 Petitions
Accused Products
Abstract
Described are embodiments directed to processing write requests using designated servers with global knowledge of information within a distributed system. The designated servers are used to enforce a data rule that limits the data that may be written to the distributed system. In order to ensure that data written to the distributed system is consistent with the data rule, when another server within the distributed system receives a request to write information that is subject to the data rule, it must consult with one of the designated servers before it can accept the write request. If the designated server determines that the data is consistent with the data rule, the write request is approved. Otherwise, the write request is denied.
12 Citations
17 Claims
-
1. A computer implemented method of processing write requests in a distributed system comprising a plurality of servers each storing a replica of the same data and engaging in replication to maintain data consistency among each of the replicas stored on the plurality of servers, the method comprising:
-
storing a policy at a first server for deciding whether to accept or deny a write request if a central server is unavailable, wherein the first server is one of a first plurality of servers and the central server is one of a second plurality of servers; receiving at the first server a write request with data to be written to a replica stored on the first server; determining by the first server whether the data to be written to the replica stored on the first server is subject to a global data rule; in response to the determining by the first server that the data to be written to the replica is subject to the global data rule, the first server transmitting an approval request to the central server to approve the acceptance of the write request, wherein the central server has global knowledge; receiving a message from the central server indicating whether the approval request has been approved; in response to the central server approving the approval request, the first server accepting the write request and writing the data to the replica stored on the first server; in response to the central server not approving the approval request, the first server denying the write request; wherein the plurality of receiving servers replicate changes made to at least one of the plurality of receiving servers each time a first period of time elapses; and wherein the plurality of central servers replicate changes made to at least one of the plurality of central servers each time a change is made to at least one of the plurality of central servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer implemented method of enforcing a global data rule in a distributed system comprising a plurality of servers each storing a replica of the same data and engaging in replication to maintain data consistency among the replicas stored on the plurality of servers, the method comprising the steps of:
-
storing at a central server a global data rule for enforcement by the central server, wherein the central server is one of a first plurality of servers; receiving at the central server an approval request transmitted by a receiving server that is one of a second plurality of servers, wherein the approval request relates to a write request received at the receiving server and the approval request includes data to be written to a replica stored on the receiving server, the data being subject to the global data rule, wherein the receiving server stores a policy for deciding whether to accept or deny a write request if none of the first plurality of servers is available; determining by the central server, whether the data to be written to the receiving server satisfies the global data rule; in response to a determination that the data does not satisfy the global data rule, transmitting a message to the receiving server denying the approval request; and in response to a determination that the data satisfies the global data rule; writing the data to a replica stored on the central server; and transmitting a message to the receiving server approving the write request; wherein the second plurality of servers replicate changes made to at least one of the first plurality of servers each time a first period of time elapses; and wherein the first plurality of servers replicate changes made to at least one of the second plurality of servers each time a second period of time elapses, the second period of time being shorter than the first period of time. - View Dependent Claims (10, 11, 12)
-
-
13. A distributed system, comprising:
-
a plurality of central servers, each of the plurality of central servers storing a data rule that requires global knowledge to enforce and each being operable to; receive an approval request seeking approval to write data to a receiving server, wherein the approval request includes the data, wherein the data is subject to the data rule; determine whether the write data complies with the data rule; in response to a determination that the data does not comply with the data rule, transmit a message to the receiving server denying the approval request; and in response to a determination that the data complies with the data rule; write the data to the central server, and transmit a message to the receiving server approving the approval request; and a plurality of receiving servers, each of the receiving servers operable to; receive a write request to write data to the receiving server; store a policy for deciding whether to accept or deny a write request if none of the plurality of central server is available; send an approval request to one of the plurality of central servers, wherein the approval request seeks approval from the one of the plurality of central server for the write request; in response to receiving a message from the central server approving the approval request, accept the write request and write the data to the receiving server; and in response to receiving a message from the central server denying the approval request, deny the write request; and wherein the plurality of receiving servers replicate changes made to at least one of the plurality of receiving servers each time a first period of time elapses; and wherein the plurality of central servers replicate changes made to at least one of the plurality of central servers each time a change is made to at least one of the plurality of central servers. - View Dependent Claims (14, 15, 16, 17)
-
Specification