Client-server computer system with application recovery of server applications and client applications
First Claim
1. In a client-server computer system having a client and a server, a computer-implemented method comprising the following steps:
- client sending a request from the client to the server;
server processing the request to prepare a reply to the request;
forcibly logging in a stable log at the server a log record containing the reply;
sending the reply from the server to the client after the log record is logged in the stable log; and
wherein the log record is the only forced logging event for the request/reply exchange.
2 Assignments
0 Petitions
Accused Products
Abstract
A client-server computer system has one or more clients connected to one or more servers. During request/reply interactions, a client-side application sends a request for services (e.g., read a file, return some information, update a database record, process data, etc.) to the server. A server-side application request program processes the request, prepares a reply to the request, and returns the reply to the client-side application. The server runs a resource manager to log operations and data pages in a manner that enables application and database recovery. Among other tasks, the server'"'"'s resource manager creates a stable log file that can be used to help recover the client-side application in the event of a system crash. To capture the client-server interaction, the server'"'"'s resource manager records the reply in the log buffer and commits the reply record to the stable log before the reply is sent back to the client. This results in only one forced logging event for each request/reply exchange. The server further maintains an active application table and a message lookup table to speed recovery. The active application table lists all currently active applications running at the client and server to identify those applications that should be recovered. The message lookup table keeps copies of the logged replies that can be used during client recovery in place of the logged records to avoid searching the server'"'"'s stable log file. The server further truncates parts of its stable log file when notified that reply log records are no longer needed by the client.
374 Citations
74 Claims
-
1. In a client-server computer system having a client and a server, a computer-implemented method comprising the following steps:
-
client sending a request from the client to the server;
server processing the request to prepare a reply to the request;
forcibly logging in a stable log at the server a log record containing the reply;
sending the reply from the server to the client after the log record is logged in the stable log; and
wherein the log record is the only forced logging event for the request/reply exchange. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
generating a stability notification at the client in response to one of (1) installing an application state of an application responsible for the request in a stable log at the client some time after the reply is received from the server, or (2) slogging in the client'"'"'s stable log the reply received from the server;
sending the stability notification from the client to the server; and
discarding the log record from the stable log at the server in response to receiving the stability notification.
-
-
17. A computer-implemented method as recited in claim 1, further comprising the following steps:
-
completing an application at the client;
sending a notice of termination from the client to the server;
logging at the server that the client application has terminated;
discarding all log records for replies pertaining to the application from the stable log at the server in response to receiving the notice of termination;
sending a confirmation of the termination notice from the server to the client; and
terminating the application at the client following receipt of the confirmation.
-
-
18. A computer-implemented method as recited in claim 1, further comprising the step of using the log records for replies at the server'"'"'s stable log to recover the client following a client crash.
-
19. Computer-readable media distributed at the server and the client having computer-executable instructions to perform the steps in the method as recited in claim 1.
-
20. In a server computer system for serving one or more clients, a computer-implemented method implemented at the server computer system comprising the following steps:
-
receiving a request from a client;
processing the request to prepare a reply to the request without logging the request in a stable log;
forcibly logging in the stable log a log record containing the reply; and
sending the reply to the client after the log record is logged in the stable log. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
receiving a stability notification from the client indicating one of (1) that the client installed an application state of an application to which the reply pertains some time after the reply is sent to the client, or (2) that the client logged the reply in a client-side stable log; and
discarding the log record from the stable log in response to receiving the stability notification.
-
-
30. A computer-implemented method as recited in claim 20, further comprising the following steps:
-
receiving a notice of termination from the client indicating that an application to which the reply pertains is terminating; and
discarding from the stable log all log records for replies pertaining to the terminating application in response to receiving the notice of termination.
-
-
31. A computer-implemented method as recited in claim 20, further comprising the step of using the log record to recover the client following a client crash.
-
32. A computer programmed to perform the steps in the method as recited in claim 20.
-
33. A computer-readable media distributed at the server and the client, which directs server and client to perform the steps in the method as recited in claim 20.
-
34. In a server computer system for serving a client, a computer-implemented method implemented at the server computer system comprising the following steps:
-
storing an application identification of an active application executing on the client in an active application table;
receiving from the client a request generated by the application and identified via an application identification;
force logging, in a stable log, a log record containing a reply to the request;
storing the reply in a message lookup table; and
sending the reply to the client. - View Dependent Claims (35, 36, 37, 38, 39, 40)
-
-
41. In a client-server computer system having a client and a server, an application recovery system comprising:
-
a client-side application that executes on the client to send a request to the server;
a server-side application request program that executes on the server to process the request, prepare a reply to the request, and return the reply to the client; and
a resource manager that executes on the server to create a stable log file that can be used to recover the client-side application in the event of a system crash, the resource manager being configured to forcibly log in the stable log file a log record containing the reply, wherein the log record is the only forced logging event for the request/reply exchange. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
a client-side resource manager that executes at the client, the client-side resource manager occasionally (1) installing an application state of client-side application in a stable log at the client, or (2) logging in the client'"'"'s stable log the reply received from the server;
the client-side resource manager sending a stability notification to the server indicating that the reply is now stably recorded at the client or that the reply is no longer needed at the server because a later application state has been installed; and
the resource manager at the server being configured to discard the log record from the stable log at the server in response to receiving the stability notification.
-
-
55. An application recovery system as recited in claim 41, wherein:
-
the client-side application completes and sends a notice of termination to the server;
the resource manager forces a log record describing the application termination;
the resource manager is configured to discard all log records for replies pertaining to the client-side application from the stable log in response to receiving the notice of termination.
-
-
56. An application recovery system as recited in claim 41, wherein the resource manager uses the log records to recover the client-side application following a client crash.
-
57. A server computer system for serving one or more clients, comprising:
-
a volatile main memory having a log buffer;
a non-volatile memory that persists across a system crash, the non-volatile memory having a stable log;
a processing unit coupled to the main memory and the non-volatile memory;
an application stored in the volatile main memory and executable on the processing unit to receive and process requests from a client and to send a reply back to the client; and
a resource manager stored in the volatile main memory and executable on the processing unit to record the reply in the log buffer and to commit the reply record to the stable log when the reply is sent back to the client. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
-
- 68. For use on a server computer system having a non-volatile memory with a stable log, a stable database, a volatile main memory with a log buffer, and a processing unit, in which the server computer system receives requests from one or more clients and returns replies to the clients, a resource manager executable on the server processing unit to record a client reply in the log buffer and to manage when to flush the reply record from the log buffer to the stable log, the resource manager being configured to commit the reply record to the stable log at or just before a time when the reply is sent to the client.
Specification