← Back to Patent Explorer
US6182086B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Client-server computer system with application recovery of server applications and client applications

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-03-02
•
Granted: 2001-01-30
•
Expires: 2018-03-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 David B. Lomet
  • 👤 Gerhard Weikum

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 03:21
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1471; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 80
Claim 1
Independent Claim 88 words
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.
Claim 2
Dependent Claim 88 words
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.
Claim 3
Dependent Claim 34 words
A computer-implemented method as recited in claim 1 , wherein the server logging steps comprise capturing in the log information that enables undo recovery of incomplete requests in the event of a system crash.
Claim 4
Dependent Claim 46 words
A computer-implemented method as recited in claim 1 , wherein the server logging steps comprise capturing in the log information, including data read by the request, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 5
Dependent Claim 45 words
A computer-implemented method as recited in claim 1 , wherein the server logging steps comprise capturing in the log information, including references to data read, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 6
Dependent Claim 39 words
A computer-implemented method as recited in claim 1 , further comprising the step of maintaining at both the server and the client an active application table listing currently active applications for which the server or the client is responsible.
Claim 7
Dependent Claim 27 words
A computer-implemented method as recited in claim 5 , further comprising the step of recovering only the applications listed on the active application table following a crash.
Claim 8
Dependent Claim 39 words
A computer-implemented method as recited in claim 1 , further comprising the step of maintaining at both the server and the client a message lookup table that temporarily stores records of replies sent from the server to the client.
Claim 9
Dependent Claim 36 words
A computer-implemented method as recited in claim 7 , further comprising the step of using the reply record from the message lookup table should the client resubmit the associated request during recovery from a client crash.
Claim 10
Dependent Claim 59 words
A computer-implemented method as recited in claim 7 , further comprising the step of removing reply records from the message lookup table in response to either of the following events: (1) the client installs an application state of an application to which the reply pertains, or (2) the client logs the reply in a stable log at the client.
Claim 11
Dependent Claim 23 words
A computer-implemented method as recited in claim 1 , further comprising the step of tagging each reply with a message sequence number (MSN).
Claim 12
Dependent Claim 29 words
A computer-implemented method as recited in claim 10 , further comprising the step of tracking at the client a last used MSN for each application running on the client.
Claim 13
Dependent Claim 65 words
A computer-implemented method as recited in claim 10 , further comprising the step of tracking at the client, for each application running at the client, a “redo” MSN that is one of (1) an oldest MSN that follows a most recent installation point of the application, or (2) an MSN assigned to the installation point itself if no more recent message for the application exists.
Claim 14
Dependent Claim 49 words
A computer-implemented method as recited in claim 10 , further comprising the step of tracking at the client, for each application running at the client, a “stable” MSN that pertains to reply messages that are not stable at the client but may have stable log records at the server.
Claim 15
Dependent Claim 34 words
A computer-implemented method as recited in claim 1 , further comprising the step of subsequently logging in a stable log at the client a client log record containing a reply received from the server.
Claim 16
Dependent Claim 52 words
A computer-implemented method as recited in claim 14 , further comprising the step of discarding the client log record from the client's stable log in response to installing an application state of an application to which the reply pertains at a point in time after receipt of the reply from the server.
Claim 17
Dependent Claim 98 words
A computer-implemented method as recited in claim 1 , further comprising the following steps: 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.
Claim 18
Dependent Claim 91 words
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.
Claim 19
Dependent Claim 33 words
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.
Claim 20
Dependent Claim 25 words
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 .
Claim 21
Dependent Claim 77 words
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.
Claim 22
Dependent Claim 77 words
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.
Claim 23
Dependent Claim 34 words
A computer-implemented method as recited in claim 20 , wherein the server logging steps comprise capturing in the log information that enables undo recovery of incomplete requests in the event of a system crash.
Claim 24
Dependent Claim 46 words
A computer-implemented method as recited in claim 20 , wherein the server logging steps comprise capturing in the log information, including data read by the request, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 25
Dependent Claim 45 words
A computer-implemented method as recited in claim 20 , wherein the server logging steps comprise capturing in the log information, including references to data read, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 26
Dependent Claim 27 words
A computer-implemented method as recited in claim 20 , further Comprising the step of maintaining an active application table listing currently active applications running at the client.
Claim 27
Dependent Claim 27 words
A computer-implemented method as recited in claim 24 , further comprising the step of recovering only the applications listed on the active application table following a crash.
Claim 28
Dependent Claim 29 words
A computer-implemented method as recited in claim 20 , further comprising the step of maintaining a message lookup table that temporarily stores records of replies sent to the client.
Claim 29
Dependent Claim 37 words
A computer-implemented method as recited in claim 26 , further comprising the step of using reply records from the message lookup table during recovery of the client in place of the log record on the stable log.
Claim 30
Dependent Claim 60 words
A computer-implemented method as recited in claim 26 , further comprising the step of removing the reply record from the message lookup table in response to either of the following events: (1) the client installs an application state of an application to which the reply pertains, or (2) the client logs the reply in a stable log at the client.
Claim 31
Dependent Claim 79 words
A computer-implemented method as recited in claim 20 , further comprising the following steps: 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.
Claim 32
Dependent Claim 57 words
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.
Claim 33
Dependent Claim 26 words
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.
Claim 34
Dependent Claim 16 words
A computer programmed to perform the steps in the method as recited in claim 20 .
Claim 35
Dependent Claim 28 words
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 .
Claim 36
Dependent Claim 85 words
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.
Claim 37
Dependent Claim 85 words
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.
Claim 38
Dependent Claim 29 words
A computer-implemented method as recited in claim 34 , further comprising the step of recovering only the active applications listed on the active application table following a client crash.
Claim 39
Dependent Claim 37 words
A computer-implemented method as recited in claim 34 , further comprising the step of using the reply stored in the message lookup table in place of the log record to recover the client from a client crash.
Claim 40
Dependent Claim 51 words
A computer-implemented method as recited in claim 34 , further comprising the step of removing the reply from the message lookup table in response to either of the following events: (1) the client installs an application state of the application, or (2) the client logs the reply in its stable log.
Claim 41
Dependent Claim 29 words
A computer-implemented method as recited in claim 34 , further comprising the step of occasionally storing the active application table and the message lookup table on the stable log.
Claim 42
Dependent Claim 16 words
A computer programmed to perform the steps in the method as recited in claim 34 .
Claim 43
Dependent Claim 28 words
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 34 .
Claim 44
Dependent Claim 122 words
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.
Claim 45
Dependent Claim 122 words
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.
Claim 46
Dependent Claim 33 words
An application recovery system as recited in claim 41 , wherein the resource manager captures in the log information that enables undo recovery of incomplete requests in the event of a system crash.
Claim 47
Dependent Claim 45 words
An application recovery system as recited in claim 41 , wherein the resource manager captures in the log information, including data read by the request, that enables undo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 48
Dependent Claim 44 words
An application recovery system as recited in claim 41 , wherein the resource manager captures in the log information, including references to data read, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 49
Dependent Claim 26 words
An application recovery system as recited in claim 41 , wherein the resource manager maintains an active application table listing currently active applications running on client.
Claim 50
Dependent Claim 28 words
An application recovery system as recited in claim 45 , wherein the resource manager recovers only the applications listed on the active application table following a system crash.
Claim 51
Dependent Claim 30 words
An application recovery system as recited in claim 41 , wherein the resource manager maintains a message lookup table that temporarily stores records of the replies sent to the client.
Claim 52
Dependent Claim 42 words
An application recovery system as recited in claim 47 , wherein the resource manager uses the reply record from the message lookup table in place of the log record in the stable log to recover the client-side application following a client crash.
Claim 53
Dependent Claim 61 words
An application recovery system as recited in claim 47 , wherein the resource manager removes the reply record from the message lookup table in s response to either of the following events: (1) the client installs an application state of an application to which the reply pertains, or (2) the client logs the reply in a stable log at the client.
Claim 54
Dependent Claim 34 words
An application recovery system as recited in claim 41 , further comprising a client-side resource manager that executes at the client, the client-side resource manager tracking the last received reply for the client-side application.
Claim 55
Dependent Claim 51 words
An application recovery system as recited in claim 41 , further comprising a client-side resource manager that executes at the client, the client-side resource manager tracking one of (1) an oldest reply that is received after a most recent installation point of the client-side application, or (2) the installation point itself.
Claim 56
Dependent Claim 44 words
An application recovery system as recited in claim 41 , further comprising a client-side resource manager that executes at the client, the client-side resource manager tracking reply messages that are not stable at the client but may have stable log records at the server.
Claim 57
Dependent Claim 48 words
An application recovery system as recited in claim 41 , further comprising a client-side resource manager that executes at the client, the client-side resource manager occasionally logging in non-forced manner, in a stable log at the client, a client log record containing the reply received from the server.
Claim 58
Dependent Claim 124 words
An application recovery system as recited in claim 41 , further comprising: 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.
Claim 59
Dependent Claim 64 words
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.
Claim 60
Dependent Claim 27 words
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.
Claim 61
Dependent Claim 121 words
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.
Claim 62
Dependent Claim 121 words
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.
Claim 63
Dependent Claim 35 words
A server computer system as recited in claim 57 , wherein the resource manager captures in the logged reply record information that enables undo recovery of incomplete requests in the event of a system crash.
Claim 64
Dependent Claim 47 words
A server computer system as recited in claim 57 , wherein the resource manager captures in the logged reply record information, including data read by the request, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 65
Dependent Claim 46 words
A server computer system as recited in claim 57 , wherein the resource manager captures in the logged reply record information, including references to data read, that enables redo recovery of incomplete requests so that their execution can continue, in the event of a system crash.
Claim 66
Dependent Claim 27 words
A server computer system as recited in claim 57 , wherein the resource manager maintains an active application table listing currently active applications running on the client.
Claim 67
Dependent Claim 27 words
A server computer system as recited in claim 61 , wherein the resource manager recovers only the applications listed on the active application table following a crash.
Claim 68
Dependent Claim 24 words
A server computer system as recited in claim 57 , wherein the resource manager maintains a message lookup table that temporarily stores reply records.
Claim 69
Dependent Claim 38 words
A server computer system as recited in claim 63 , wherein the resource manager uses the reply record from the message lookup table during recovery of the client in place of the log record on the stable log.
Claim 70
Dependent Claim 63 words
A server computer system as recited in claim 57 , wherein the resource manager discards the reply record from the stable log in response to receiving a notification from the client indicating (1) the client has installed an application state of an application to which the reply pertains, or (2) the client has logged the reply in a stable log at the client.
Claim 71
Dependent Claim 42 words
A server computer system as recited in claim 57 , wherein the resource manager discards the reply record from the stable log in response to receiving a notification from the client indicating that an application to which the reply pertains is terminating.
Claim 72
Dependent Claim 30 words
A server computer system as recited in claim 57 , wherein the resource manager uses the reply record from the stable log to recover the client following a client crash.
Claim 73
Dependent Claim 112 words
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.
Claim 74
Dependent Claim 112 words
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.
Claim 75
Dependent Claim 25 words
A resource manager as recited in claim 68 , further configured to maintain an active application table listing currently active applications running on the client.
Claim 76
Dependent Claim 25 words
A resource manager as recited in claim 69 , further configured to recover only the applications listed on the active application table following a crash.
Claim 77
Dependent Claim 31 words
A resource manager as recited in claim 68 , further configured to maintain a message lookup table that temporarily stores a copy of the reply record committed to the stable log.
Claim 78
Dependent Claim 36 words
A resource manager as recited in claim 71 , further configured to use the reply record from the message lookup table during recovery of the client in place of the log record on the stable log.
Claim 79
Dependent Claim 61 words
A resource manager as recited in claim 71 , further configured to remove the reply record from the message lookup table in response to client notifications of either of the following events: (1) the client installs an application state of an application to which the reply pertains, or (2) the client logs the reply in a stable log at the client.
Claim 80
Dependent Claim 13 words
A computer-readable medium storing a resource manager as recited in claim 68 .

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-01-30 2004-07-31 2005-01-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-01-30 2008-07-31 2009-01-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-01-30 2012-07-31 2013-01-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag