IP Library Granted Patent US 7,610,510
Granted Patent B2
US 7,610,510 · App. 11/707,441 · Granted Oct 27, 2009

Method and apparatus for transactional fault tolerance in a client-server system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,610,510
App. No.
11/707,441
Granted
Oct 27, 2009
Kind
B2
Abstract

Method and apparatus for transactional fault tolerance in a client-server system is described. In one example, output data generated by execution of a service on a primary server during a current epoch between a first checkpoint and a second checkpoint is buffered. A copy of an execution context of the primary server is established on a secondary server in response to the second checkpoint. The output data as buffered is released from the primary server in response to establishment of the copy of the execution context on the secondary server.

Claims (51)

1. A method of providing fault tolerance, comprising:

buffering output data generated by execution of a service on the primary server during a current epoch between a first checkpoint and a second checkpoint;

establishing a copy of an execution context of the primary server on a secondary server in response to the second checkpoint; and

releasing the output data as buffered from the primary server in response to establishment of the copy of the execution context on the secondary server.

2. The method of claim 1 , further comprising:

detecting a failure of the primary server during a next epoch between the second checkpoint and a third checkpoint; and

resuming execution of the service on the secondary server from the execution context in response to the failure.

3. The method of claim 2 , further comprising:

mirroring intermediate state information of the primary server onto the secondary server during the current epoch.

4. The method of claim 3 , further comprising:

discarding the intermediate state information at the secondary server in response to the failure.

5. The method of claim 3 , wherein the intermediate state information includes at least one of: memory pages modified during the current epoch or write requests to a storage volume managed by the primary server.

6. The method of claim 3 , wherein the step of establishing comprises:

committing the intermediate state information on the secondary server in response to the second checkpoint.

7. The method of claim 2 , wherein the output data comprises network output destined to at least one client in communication with the primary server via a network.

8. The method of claim 7 , further comprising:

transmitting output data generated by execution of the service on the secondary server based on error recovery of a network protocol used to communicate the network output.

9. The method of claim 7 , further comprising:

receiving, at the secondary server, network input generated by at least one client and received by the primary server during the current epoch in response to error recovery of a network protocol used by the at least one client.

10. The method of claim 1 , further comprising:

caching write requests to a storage volume managed by the primary server during the current epoch; and

causing the write requests to be written to the storage volume in response to establishment of the copy of the first execution context on the secondary server.

11. The method of claim 1 , further comprising:

mirroring the write requests to the storage volume on the secondary server in response to the second checkpoint.

12. The method of claim 1 , further comprising:

tracking modified memory pages of the primary server during the current epoch; and

mirroring the modified memory pages on the secondary server.

13. Apparatus for providing fault tolerance, comprising:

means for buffering output data generated by execution of a service on the primary server during a current epoch between a first checkpoint and a second checkpoint;

means for establishing a copy of an execution context of the primary server on a secondary server in response to the second checkpoint; and

means for releasing the output data as buffered from the primary server in response to establishment of the copy of the execution context on the secondary server.

14. The apparatus of claim 13 , further comprising:

means for detecting a failure of the primary server during a next epoch between the second checkpoint and a third checkpoint; and

means for resuming execution of the service on the secondary server from the execution context in response to the failure.

15. The apparatus of claim 14 , further comprising:

means for mirroring intermediate state information of the primary server onto the secondary server during the current epoch.

16. The apparatus of claim 13 , further comprising:

means for caching write requests to a storage volume managed by the primary server during the current epoch;

means for mirroring the write requests to the storage volume on the secondary server in response to the second checkpoint;

means for causing the write requests to be written to the storage volume in response to establishment of the copy of the first execution context on the secondary server.

17. The apparatus of claim 13 , further comprising:

means for tracking modified memory pages of the primary server during the current epoch; and

means for mirroring the modified memory pages on the secondary server.

18. The apparatus of claim 13 , wherein the output data comprises network output destined to at least one client in communication with the primary server and the secondary server via a network, and wherein the apparatus further comprises:

means for re-transmitting output data generated by execution of the service on the secondary server based on error recovery of a network protocol used to communicate the network output; and

means for receiving, at the secondary server, network input generated by at least one client and received by the primary server during the current epoch in response to error recovery of a network protocol used by the at least one client.

19. A fault tolerant system, comprising:

a primary server configured to execute a service for a plurality of clients;

a secondary server configured to execute the service;

checkpoint engines implemented in the primary server and the secondary server, the checkpoint engines configured to establish a copy of an execution context of the primary server on the secondary server at each of a plurality of checkpoints, buffer output data generated by the primary server between successive ones of the plurality of checkpoints, and release buffered output data in response to establishment of the copy of the execution context at each of the plurality of checkpoints.

20. The system of claim 19 , wherein the secondary server is configured to detect a failure of the primary server between a first checkpoint and a second checkpoint of the plurality of checkpoints and resume execution of the service from the execution context of the primary server as established at the first checkpoint.

Assignments (16)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2007
From: AGRAWAL, ANURAG; SHAH, DHARMESH; KALMALA, NAGARAJ; PANCHAKSHARAM, NEELAKANDAN; BHARADHWAJ, RAJEEV; LOKRAY, SAMEER; SM, SRIKANTH; BEAN, THOMAS
To: SYMANTEC CORPORATION
Reel/Frame 019013/0639 →