IP Library › Granted Patent US 9,639,432
Granted Patent B2
US 9,639,432 · App. 14/557,317 · Granted May 2, 2017

Live rollback for a computing environment

Inventors: Chris Wade (Delray Beach, FL); Stanislaw Skowronek (New York, NY)
Assignee: Citrix Systems, Inc.
G06F11/1469G06F11/1438G06F11/36G06F11/3003G06F11/3096G06F11/3476G06F2201/815G06F2201/835G06F2201/84G06F2201/865
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 9,639,432
App. No.
14/557,317
Granted
May 2, 2017
Kind
B2
Abstract

A first computing device is provided for rolling back a computing environment. The computing device includes processors configured to acquire a stream containing entries including snapshot entries, memory entries, and input/output entries wherein each entry includes information and is associated with a timestamp. The processors are further configured to receive a snapshot entry associated with a first timestamp, revert to a memory state using information provided in at least one memory entry associated with a timestamp after the first timestamp, and re-execute a previously executed process, wherein the re-execution of the process is started using the first timestamp, information from the received snapshot entry, and information for input/output operations corresponding to the input/output entries associated with timestamps after the first timestamp.

Claims (53)

1. A first computing device for rolling back a computing environment, the first computing device comprising:

one or more processors configured to:

acquire a stream containing entries including snapshot entries, a plurality of memory entries, and at least one input/output entry, wherein:

each entry of the entries includes information and is associated with a timestamp; and

a first memory entry of the plurality of memory entries includes a reference to a second memory entry of the plurality of memory entries;

receive a snapshot entry of the snapshot entries, wherein the received snapshot entry is associated with a first timestamp;

revert to a memory state using information provided in the plurality of memory entries and following the reference includes in the first memory entry to the second memory entry; and

re-execute a previously executed process, wherein the re-execution of the process is started using the first timestamp and information from the received snapshot entry and includes information for input/output operations corresponding to the at least one input/output entry associated with timestamps after the first timestamp.

2. The first computing device of claim 1 , wherein the stream comprises a first stream of snapshot entries, a second stream of memory entries, and a third stream of input/output entries.

3. The first computing device of claim 1 , wherein the reversion to the memory state further comprises the one or more processors being configured to:

read the information provided in the plurality of memory entries; and

update a portion of the memory state using the information.

4. The first computing device of claim 1 , wherein the re-execution of the process started using the first timestamp and information in the received snapshot entry, comprises the one or more processors being configured to:

revert to a processor state using the information in the received snapshot entry;

revert the processor timestamp to the first timestamp; and

start the processor re-execution.

5. The first computing device of claim 1 , wherein the one or more processors are further configured to intercept input/output transactions during the re-execution.

6. The first computing device of claim 1 , wherein each entry of the stream includes a timestamp.

7. The first computing device of claim 1 , wherein the timestamp of an entry of the stream is relative to timestamps of the other entries of the stream.

8. A method for a rollback of a computing environment, the method being performed by a computing device that includes one or more processors, the method comprising:

acquiring a stream containing entries including snapshot entries, a plurality of memory entries, and at least one input/output entry, wherein:

each entry of the entries includes information and is associated with a timestamp; and

a first memory entry of the plurality of memory entries includes a reference to a second memory entry of the plurality of memory entries;

receiving a snapshot entry of the snapshot entries, wherein the received snapshot entry is associated with a first timestamp;

reverting to a memory state using information provided in the plurality of memory entries, and following the reference included in the first memory entry to the second memory entry; and

re-executing a previously executed process, wherein the re-execution of the process is started using the first timestamp and information from the received snapshot entry and includes information for input/output operations corresponding to the at least one input/output entry associated with timestamps after the first timestamp.

9. The method of claim 8 , wherein the stream comprises a first stream of snapshot entries, a second stream of memory entries, and a third stream of input/output entries.

10. The method of claim 8 , wherein reverting to the memory state further comprises:

reading the information provided in the plurality of memory entries; and

updating a portion of the memory state using the information.

11. The method of claim 8 , wherein re-executing the process uses the first timestamp and information in the received snapshot entry and further comprises:

reverting to a processor state using the information in the received snapshot entry;

reverting the processor timestamp to the first timestamp; and

starting the processor re-execution.

12. The method of claim 8 , further comprising:

intercepting input/output transactions during the re-execution.

13. A non-transitory computer readable storage medium storing instructions that are executable by a first computing device that includes one or more processors to cause the first computing device to perform a method for a rollback of a computing environment, the method comprising:

acquiring a stream containing entries including snapshot entries, a plurality of memory entries, and at least one input/output entry, wherein:

each entry of the entries includes information and is associated with a timestamp; and

a first memory entry of the plurality of memory entries includes a reference to a second memory entry of the plurality of memory entries;

receiving a snapshot entry of the snapshot entries, wherein the received snapshot entry is associated with a first timestamp;

reverting a memory state using information provided in the plurality of memory entries and following the reference included in the first memory entry to the second memory entry; and

re-executing a previously executed process, wherein the re-execution of the process is started using the first timestamp and information from the received snapshot entry and includes information for input/output operations corresponding to the at least one input/output entry associated with timestamps after the first timestamp.

14. The non-transitory computer readable storage medium of claim 13 , wherein the stream comprises a first stream of snapshot entries, a second stream of memory entries, and a third stream of input/output entries.

15. The non-transitory computer readable storage medium of claim 13 , wherein reverting to the memory state further comprises:

reading the information provided in the plurality of memory entries; and

updating a portion of the memory state using the information.

16. The non-transitory computer readable storage medium of claim 13 , wherein re-executing the process uses the first timestamp and information in the received snapshot entry and further comprises:

reverting a processor state using the information in the received snapshot entry;

reverting the processor timestamp to the first timestamp; and

starting the processor re-execution.

17. The non-transitory computer readable storage medium of claim 13 , wherein the set of instructions that are executable by the at least one processer of the first computing device to cause the first computing device to further perform:

intercepting input/output transactions during the re-execution.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2015
From: WADE, CHRIS; SKOWRONEK, STANISLAW
To: CITRIX SYSTEMS, INC.
Reel/Frame 034663/0196 →
Continuity (1)
Related Publication 20160154710A1 · Jun 2, 2016