Method and system in a computer network for the reliable and consistent ordering of client requests
First Claim
1. A method for reliably and consistently delivering client requests in a computer network having at least one client connectable to one or more servers among a plurality of servers, wherein each server among said plurality of servers replicates a particular network service to ensure that said particular network service remains uninterrupted in the event of a server failure, said method comprising the steps of:
- designating a particular server among said plurality of servers to manage client requests which seek to update a particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers;
specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests;
automatically transferring to said remaining servers from said particular server, said executable order and said client request which seeks to update said particular network service state, in response to initiating said client request; and
processing in a tentative mode at said particular server, said client request which seeks to update said particular network service state, without waiting for said executable order to be executed through to completion among said remaining servers, thereby promoting a reliable and consistent ordering of client request messaging deliveries and an overall reduction in server response time.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for reliably and consistently delivering client requests in a computer network having at least one client connectable to one or more servers among a group of servers, wherein each server among the group of servers replicates a particular network service to ensure that the particular network service remains uninterrupted in the event of a server failure. A particular server is designated among the group of servers to manage client requests which seek to update a particular network service state, prior to any receipt of a client request which seeks to update the particular network service state by any remaining servers among the group of servers. Thereafter, an executable order is specified in which client requests which seek to update the particular network service state are processed among the remaining servers, such that the executable order, upon execution, sequences the client request which seeks to update the particular network service state with respect to all prior and subsequent client requests. The executable order and the client request which seeks to update the particular network service state are automatically transferred to the remaining servers from the particular server, in response to initiating the client request. Thereafter, the client request which seeks to update the particular network service state is processed in a tentative mode at the particular server without waiting for the executable order to be executed through to completion among the remaining servers.
-
Citations
26 Claims
-
1. A method for reliably and consistently delivering client requests in a computer network having at least one client connectable to one or more servers among a plurality of servers, wherein each server among said plurality of servers replicates a particular network service to ensure that said particular network service remains uninterrupted in the event of a server failure, said method comprising the steps of:
-
designating a particular server among said plurality of servers to manage client requests which seek to update a particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers;
specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests;
automatically transferring to said remaining servers from said particular server, said executable order and said client request which seeks to update said particular network service state, in response to initiating said client request; and
processing in a tentative mode at said particular server, said client request which seeks to update said particular network service state, without waiting for said executable order to be executed through to completion among said remaining servers, thereby promoting a reliable and consistent ordering of client request messaging deliveries and an overall reduction in server response time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, wherein said particular server comprises a designated server.
-
-
3. The method of claim 2 wherein the step of tentatively processing in a tentative mode at said particular server, said client request which seeks to update said particular network service state, without waiting for said executable order to be executed through to completion among said remaining servers, further comprises the steps of:
-
forming a tentative response to said client request which seeks to update said particular server in said tentative mode; and
storing said tentative response within a buffer at said designated server, such that during said tentative mode, said tentative response does not alter the result of any client requests to retrieve data.
-
-
4. The method of claim 3 further comprising the steps of:
-
terminating said tentative mode, when each remaining server transmits a message to said particular server acknowledging receipt of said executable order and said client request which seeks to update said particular network service state;
releasing said tentative response from said buffer, in response to terminating said tentative mode;
transferring said tentative response to said at least one client, in response to releasing said tentative response from said buffer;
permitting updates to said particular network server resulting from said tentative response to become permanent, thereby altering future responses to client requests to retrieve data.
-
-
5. The method of claim 4 wherein the step of designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, further comprises the step of:
electing an alternative server among said plurality of servers to manage client requests which seek to update said particular network service state, if said particular server fails.
-
6. The method of claim 5 further comprising the step of:
permitting any server among said plurality of servers to respond to and process a client request to retrieve data at any time.
-
7. The method of claim 6 wherein the step of specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, further comprises the step of:
specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order comprises an ordering protocol.
-
8. The method of claim 7 wherein the step of specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order comprises an ordering protocol, further comprises the step of:
specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order is communicated via a two-phase ordering protocol immune from blocking if said particular server fails.
-
9. The method of claim 8 wherein the step of designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, further comprises the step of:
designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, wherein each server among said plurality of servers comprises a server replica.
-
10. The method of claim 9 wherein the step of specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, further comprises the step of:
specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, continues to function in the event of a communication failure within said plurality of servers.
-
11. The method of claim 10 further comprising the steps of:
-
transferring to a remaining server among said plurality of servers, said client request which seeks to update said particular network service state tentatively processing in a tentative mode at said remaining server, said client request which seeks to update said particular network service state, without waiting for said two-phase ordering protocol to be executed through to completion among said remaining servers, including said particular server;
transmitting to said distinguished server from said remaining server, a message acknowledging receipt of said executable order and said client request which seeks to update said particular network service state by said remaining server, at the end of a first phase of said two-phase ordering protocol;
transferring a confirmation message from said distinguished server to said remaining server upon successful transmission to said distinguished server from said remaining server of said message acknowledging receipt of said executable order and said client request which seeks to update said particular network by said remaining server at the end of a second phase of said two-phase protocol; and
terminating said tentative of mode at said remaining server following the completion of said second phase of said two-phase ordering protocol.
-
-
12. The method of claim 11 further comprising the step of:
recovering the results of a client request which seeks to update said particular network service state in the event of a host or communication failure within said plurality of servers.
-
13. The method of claim 12 further comprising the step of:
recovering a client request which seeks to update said particular network service state in the event of a host or communication failure within said plurality of servers.
-
14. A system for ordering client requests in a computer network having at least one client connectable to one or more servers among a plurality of servers, wherein each server among said plurality of servers replicates a particular network service to ensure that said particular network service remains uninterrupted in the event of a server failure, said system comprising:
-
means for designating a particular server among said plurality of servers to manage client requests which seek to update a particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers;
means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests;
means for automatically transferring to said remaining servers from said particular server, said executable order and said client request which seeks to update said particular network service state, in response to initiating said client request; and
means for tentatively processing in a tentative mode at said particular server, said client request which seeks to update said particular network service state, without waiting for said executable order to be executed through to completion among said remaining servers, thereby promoting a reliable and consistent ordering of client request messaging deliveries and an overall reduction in server response time. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
means for designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, wherein said particular server comprises a designated server.
-
-
16. The system of claim 15 wherein said means for tentatively processing in a tentative mode at said particular server, said client request which seeks to update said particular network service state, without waiting for said executable order to be executed through to completion among said remaining servers, further comprises:
-
means for forming a tentative response to said client request which seeks to update said particular server in said tentative mode; and
means for storing said tentative response within a buffer at said designated server, such that during said tentative mode, said tentative response does not alter the result of any future client requests to retrieve data.
-
-
17. The system of claim 16 further comprising:
-
means for terminating said tentative mode, when each remaining server transmits a message to said particular server acknowledging receipt of said executable order and said client request which seeks to update said particular network service state;
means for releasing said tentative response from said buffer, in response to terminating said tentative mode;
means for transferring said tentative response to said at least one client, in response to releasing said tentative response from said buffer;
means for permitting updates to said particular network server resulting from said tentative response to become permanent, thereby altering future responses to client requests to retrieve data.
-
-
18. The system of claim 17 wherein said means for designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, further comprises:
means for electing an alternative server among said plurality of servers to manage client requests which seek to update said particular network service state, if said particular server fails.
-
19. The system of claim 18 further comprising:
means for permitting any server among said plurality of servers to respond to and process a client request to retrieve data at any time.
-
20. The system of claim 19 wherein said means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, further comprises:
means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order comprises an ordering protocol.
-
21. The system of claim 20 wherein said means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order comprises an ordering protocol, further comprises:
means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, wherein said executable order is communicated via a two-phase ordering protocol immune from blocking if said particular server fails.
-
22. The system of claim 21 wherein said means for designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, further comprises:
means for designating a particular server among said plurality of servers to manage client requests which seek to update said particular network service state, prior to any receipt of a client request which seeks to update said particular network service state by any remaining servers among said plurality of servers, wherein each server among said plurality of servers comprises a server replica.
-
23. The system of claim 22 wherein said means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, sequences said client request which seeks to update said particular network service state with respect to all prior and subsequent client requests, further comprises:
means for specifying an executable order in which client requests which seek to update said particular network service state are processed among said remaining servers, such that said executable order, upon execution, continues to function in the event of a communication failure within said plurality of servers.
-
24. The system of claim 23 further comprising:
-
means for transferring to a remaining server among said plurality of servers, said client request which seeks to update said particular network service state;
means for tentatively processing in a tentative mode at said remaining server, said client request which seeks to update said particular network service state, without waiting for said two-phase ordering protocol to be executed through to completion among said remaining servers, including said particular server;
means for transmitting to said distinguished server from said remaining server, a message acknowledging receipt of said executable order and said client request which seeks to update said particular network service state by said remaining server, at the end of a first phase of said two-phase ordering protocol;
means for transferring a confirmation message from said distinguished server to said remaining server upon successful transmission to said distinguished server from said remaining server of said message acknowledging receipt of said executable order and said client request which seeks to update said particular network by said remaining server at the end of a second phase of said two-phase ordering protocol; and
means for terminating said tentative of mode at said remaining server following the completion of said second phase of said two-phase ordering protocol.
-
-
25. The system of claim 24 further comprising:
means for recovering the results of a client request which seeks to update said particular network service state in the event of a host or communication failure within said plurality of servers.
-
26. The system of claim 25 further comprising:
means for recovering a client request which seeks to update said particular network service state in the event of a host or communication failure within said plurality of servers.
Specification