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

Transaction locks for high availability

Assignee: Oracle America Inc
•
Filing: 1998-05-12
•
Granted: 2000-11-07
•
Expires: 2018-05-12
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract One embodiment of the present invention provides a method and an apparatus that ensures proper semantics for operations when operations are restarted on a secondary server in the event of a failure of a primary server. This embodiment keeps a record on the secondary server of which operation currently has exclusive access to a shared resource. The method operates by receiving a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource. In response to this message, the system updates state information, at the secondary server, to indicate that the first operation has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource. Upon receiving notification that the primary server has failed, the secondary server is configured to act as a new primary server. When the secondary server subsequently receives an operation retry request from a client of the primary server, it performs one of several operations. If the operation retry request is for the first operation, the system knows the first operation had exclusive access to the shared resource on the primary server. In this case, the secondary server acquires exclusive access to the shared resource, and completes the first operation. If the operation retry request is for a prior completed operation, the system returns to the client a saved result of the prior operation if the client has not received such saved result. Another embodiment of the present invention includes more that one secondary server.

Inventors

  • 👤 Kenneth W. Shirriff
  • 👤 Declan J. Murphy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 12:19
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/16; G06F11/20; G06F11/202; G06F11/2038; G06F11/2023; G06F11/2097; G06F2201/00; G06F2201/825

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 153 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 2
Independent Claim 153 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 3
Dependent Claim 35 words
The method of claim 1, further comprising if the operation retry request is for one of the prior operations, returning to the client a saved result if the client has not received such saved result.
Claim 4
Dependent Claim 38 words
The method of claim 1, further comprising if the operation retry request is for one of the prior operations, returning to the client a saved result, if such saved result is other than a normal operation completion indicator.
Claim 5
Dependent Claim 44 words
The method of claim 1, further comprising if the operation retry request is for other than the first operation and the prior operations, waiting for an operation that currently has exclusive access to the shared resource to complete before processing the operation retry request.
Claim 6
Dependent Claim 54 words
The method of claim 1, further comprising: receiving a notification that a first client is unresponsive and possibly dead after the secondary server is configured to act as the new primary server; and if the first client initiated the first operation, releasing the exclusive access to the shared resource held by the first operation.
Claim 7
Dependent Claim 42 words
The method of claim 1, further comprising: receiving an indication, at the secondary server, that the client has received a reply for the first operation; and updating state information, at the secondary server, to indicate that the client has received the reply.
Claim 8
Dependent Claim 27 words
The method of claim 6, wherein updating state information to indicate that the client has received the reply includes discarding state information associated with the first operation.
Claim 9
Dependent Claim 38 words
The method of claim 1, wherein updating the replicated mutual exclusion variable to indicate that the first operation has exclusive access to the share resource indicates that prior operations have completed their exclusive accesses to the shared resource.
Claim 10
Dependent Claim 45 words
The method of claim 1, further comprising: receiving an indication, at the secondary server, that the first operation has released its exclusive access to the shared resource; and updating the replicated mutual exclusion variable to indicate that the first operation has released its exclusive access.
Claim 11
Dependent Claim 12 words
The method of claim 1, wherein the shared resource includes secondary storage.
Claim 12
Dependent Claim 16 words
The method of claim 1, wherein the shared resource includes a directory in a file system.
Claim 13
Dependent Claim 14 words
The method of claim 1, wherein the first operation includes a file system operation.
Claim 14
Dependent Claim 12 words
The method of claim 1, wherein the first operation includes a transaction.
Claim 15
Independent Claim 223 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation currently has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; if the operation retry request is for one of the prior operations, returning to the client a saved result if the client has not received such saved result; if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation; and if the operation retry request is for a second operation, that is other than the first operation and the prior operations, waiting for an operation that currently has exclusive access to the shared resource to complete before processing the second operation.
Claim 16
Independent Claim 223 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation currently has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; if the operation retry request is for one of the prior operations, returning to the client a saved result if the client has not received such saved result; if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation; and if the operation retry request is for a second operation, that is other than the first operation and the prior operations, waiting for an operation that currently has exclusive access to the shared resource to complete before processing the second operation.
Claim 17
Dependent Claim 54 words
The method of claim 14, further comprising: receiving a notification that a first client is unresponsive and possibly dead after the secondary server is configured to act as the new primary server; and if the first client initiated the first operation, releasing the exclusive access to the shared resource held by the first operation.
Claim 18
Dependent Claim 37 words
The method of claim 14, further comprising: receiving an indication, at the secondary server, that the first operation has completed and the client has received a corresponding reply; and discarding state information associated with the first operation.
Claim 19
Dependent Claim 166 words
A program storage device storing instructions that when executed by a computer perform a method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 20
Dependent Claim 166 words
A program storage device storing instructions that when executed by a computer perform a method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 21
Dependent Claim 171 words
A computer instruction signal embodied in a carrier wave carrying instructions that when executed by a computer perform a method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 22
Dependent Claim 171 words
A computer instruction signal embodied in a carrier wave carrying instructions that when executed by a computer perform a method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; receiving, at the secondary server, notification that the primary server has failed; configuring the secondary server to act as a new primary server; receiving, at the new primary server, an operation retry request from the client; and if the operation retry request is for the first operation, acquiring exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completing the first operation.
Claim 23
Independent Claim 186 words
An apparatus that provides highly available operation locks, comprising: a secondary server for a shared resource, the secondary server acting as a backup for a primary server for the shared resource; an exclusive access logging mechanism, at the secondary server, that receives a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource, and updates a replicated mutual exclusion variable to indicate that the first operation currently has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource; a failover mechanism, on the secondary server, that receives a notification that the primary server has failed, and configures the secondary server to act as a new primary server for the shared resource; and a retry processing mechanism, on the new primary server, that receives an operation retry request from a client of the primary server, and if the operation retry request is for the first operation, acquires exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completes the first operation.
Claim 24
Independent Claim 186 words
An apparatus that provides highly available operation locks, comprising: a secondary server for a shared resource, the secondary server acting as a backup for a primary server for the shared resource; an exclusive access logging mechanism, at the secondary server, that receives a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource, and updates a replicated mutual exclusion variable to indicate that the first operation currently has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource; a failover mechanism, on the secondary server, that receives a notification that the primary server has failed, and configures the secondary server to act as a new primary server for the shared resource; and a retry processing mechanism, on the new primary server, that receives an operation retry request from a client of the primary server, and if the operation retry request is for the first operation, acquires exclusive access to the shared resource by updating the replicated mutual exclusion variable, and completes the first operation.
Claim 25
Dependent Claim 41 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to return to the client a saved result if the operation retry request is for one of the prior operations and the client has not received such saved result.
Claim 26
Dependent Claim 45 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to return to the client a saved result if the operation retry request is for one of the prior operations and if such saved result is other than a normal operation completion indicator.
Claim 27
Dependent Claim 50 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to wait for an operation that currently has exclusive access to the shared resource to complete before processing the operation retry request if the operation retry request is for other than the first operation and the prior operations.
Claim 28
Dependent Claim 57 words
The apparatus of claim 19, further comprising a shared resource locking mechanism, within the new primary server, that is configured to release the first operation's exclusive access to the shared resource, if a notification is received that the client is unresponsive and possibly dead after the secondary server is configured to act as the new primary server.
Claim 29
Dependent Claim 41 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to receive an indication that the client has received a reply for the first operation, and to update state information to indicate that the client has received the reply.
Claim 30
Dependent Claim 37 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to receive an indication that the client has received a reply for the first operation, and to discard state information associated with the first operation.
Claim 31
Dependent Claim 48 words
The apparatus of claim 19, wherein the retry processing mechanism is configured to receive an indication that the first operation has released its exclusive access to the shared resource, and to update the replicated mutual exclusion variable to indicate that the first operation has released its exclusive access.
Claim 32
Dependent Claim 12 words
The apparatus of claim 19, wherein the shared resource includes secondary storage.
Claim 33
Dependent Claim 16 words
The apparatus of claim 19, wherein the shared resource includes a directory in a file system.
Claim 34
Dependent Claim 13 words
The apparatus of claim 19, further comprising the primary server and the client.
Claim 35
Dependent Claim 14 words
The apparatus of claim 19, wherein the first operation includes a file system operation.
Claim 36
Dependent Claim 12 words
The apparatus of claim 19, wherein the first operation includes a transaction.
Claim 37
Independent Claim 108 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; and configuring the secondary server to act as a new primary server upon receiving notification that the primary server has failed.
Claim 38
Independent Claim 108 words
A method for providing highly available operation locks, the method operating in a distributed system including a primary server having a client and a secondary server for a shared resource, the method comprising: receiving, at the secondary server, a message from the primary server indicating that a first operation from the client on the primary server has acquired exclusive access to the shared resource; updating a replicated mutual exclusion variable, at the secondary server, to indicate that the first operation has exclusive access to the shared resource; and configuring the secondary server to act as a new primary server upon receiving notification that the primary server has failed.
Claim 39
Independent Claim 134 words
An apparatus that provides highly available operation locks, comprising: a secondary server for a shared resource, the secondary server acting as a backup for a primary server for the shared resource; an exclusive access logging mechanism, at the secondary server, that receives a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource, and updates a replicated mutual exclusion variable to indicate that the first operation currently has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource; and a failover mechanism, on the secondary server, that receives a notification that the primary server has failed, and configures the secondary server to act as a new primary server for the shared resource.
Claim 40
Independent Claim 134 words
An apparatus that provides highly available operation locks, comprising: a secondary server for a shared resource, the secondary server acting as a backup for a primary server for the shared resource; an exclusive access logging mechanism, at the secondary server, that receives a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource, and updates a replicated mutual exclusion variable to indicate that the first operation currently has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource; and a failover mechanism, on the secondary server, that receives a notification that the primary server has failed, and configures the secondary server to act as a new primary server for the shared resource.

References Cited (Backward Citations)

US5666479A Cited
US5463733A Cited
US5544353A Cited
US5692120A Cited
US5796934A Cited
US5852724A Cited
US5941999A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-11-07 2004-05-08 2004-11-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-11-07 2008-05-08 2008-11-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-11-07 2012-05-08 2012-11-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag