IP Library Granted Patent US 10,303,700
Granted Patent B1
US 10,303,700 · App. 15/665,346 · Granted May 28, 2019

Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication

Inventor: Bruce Schuchardt (Newberg, OR)
Assignee: Pivotal Software, Inc.
G06F16/275G06F16/2365G06F16/955
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 10,303,700
App. No.
15/665,346
Granted
May 28, 2019
Kind
B1
Abstract

Data accessible to a first process is replicated for use by a second process. Modifications to the data during the replication process may cause algorithms requiring the values of data both before and after replication to pause. Sending the values of the datum, before and after modification, to a process that will access the replicated data enables algorithms that use both values to initiate execution without waiting for the replication process to be completed.

Claims (55)

1. A method performed by a distributed computing system executing a plurality of processes, the processes including (i) a first process that executes on a first node and maintains a data region and (ii) a second process that executes on a second node and is associated with the data region, the method comprising:

receiving, by the first process, a state marker message representing an intent to create a replica of the data region;

providing, by the first process, one or more post-image changes to first data of the data region, the one or more post-image changes being made after the state marker message was received;

receiving, by the second node, one or more post-image changes to first data of the data region made after the state marker message was received;

continuing, by the second node, the second process using the one or more post-image changes to the first data region before the data region has been fully replicated;

waiting to initiate replication of the data region until the data region maintained by the first process has stabilized;

determining that the data of the data region maintained by the first process has stabilized;

in response to determining that the data of the data region has stabilized, starting replication of the data region maintained by the first process to generate a replica of the data region maintained by the second process; and

updating the replica of the data region maintained by the second process with the one or more post-image changes to the first data of the data region.

2. The method of claim 1 , wherein determining that the data of the data region has stabilized comprises:

identifying one or more messages issued by one or more other processes before the state marker message was issued, each message communicating a change to the data region maintained by the first process, and

determining that all of the one or more messages issued by the one or more other processes before the state marker message was issued have been received by the first process.

3. The method of claim 2 , wherein waiting to initiate replication of the image of the data region until the data region maintained by the first process has stabilized comprises waiting for the first node to receive one or more messages issued by the one or more other processes before the state marker message was issued.

4. The method of claim 1 , further comprising:

in response to receiving, by the first node, the state marker message, generating, by the first process, an image of the data region maintained by the first process.

5. The method of claim 1 , wherein the second process uses one or more pre-image changes to the data region that were issued before the state marker message was received.

6. The method of claim 1 , further comprising transmitting the post-image data to the second process before transmitting the pre-image data to the second process.

7. The method of claim 1 , wherein, at a time of starting replication of the data region maintained by the first process, the second process does not maintain a replica of the data region.

8. A system comprising a plurality of computers, the system executing, on the plurality of computers, a plurality of processes, the processes including (i) a first process that executes on a first node and maintains a data region and (ii) a second process that executes on a second node and is associated with the data region, the system further comprising one or more non-transitory storage devices storing instructions that are operable, when executed by the system, to cause the system to perform operations comprising:

receiving, by the first process, a state marker message representing an intent to create a replica of the data region;

providing, by the first process, one or more post-image changes to first data of the data region, the one or more post-image changes being made after the state marker message was received;

receiving, by the second node, one or more post-image changes to first data of the data region made after the state marker message was received;

continuing, by the second node, the second process using the one or more post-image changes to the first data region before the data region has been fully replicated;

waiting to initiate replication of the data region until the data region maintained by the first process has stabilized;

determining that the data of the data region maintained by the first process has stabilized;

in response to determining that the data of the data region has stabilized, starting replication of the data region maintained by the first process to generate a replica of the data region maintained by the second process; and

updating the replica of the data region maintained by the second process with the one or more post-image changes to the first data of the data region.

9. The system of claim 8 , wherein determining that the data of the data region has stabilized comprises:

identifying one or more messages issued by one or more other processes before the state marker message was issued, each message communicating a change to the data region maintained by the first process, and

determining that all of the one or more messages issued by the one or more other processes before the state marker message was issued have been received by the first process.

10. The system of claim 9 , wherein waiting to initiate replication of the image of the data region until the data region maintained by the first process has stabilized comprises waiting for the first node to receive one or more messages issued by the one or more other processes before the state marker message was issued.

11. The system of claim 8 , wherein the operations further comprise:

in response to receiving, by the first node, the state marker message, generating, by the first process, an image of the data region maintained by the first process.

12. The system of claim 8 , wherein the second process uses one or more pre-image changes to the data region that were issued before the state marker message was received.

13. The system of claim 8 , wherein the operations further comprise:

transmitting the post-image data to the second process before transmitting the pre-image data to the second process.

14. The system of claim 8 , wherein, at a time of starting replication of the data region maintained by the first process, the second process does not maintain a replica of the data region.

15. One or more computer-readable non-transitory storage media encoded with instructions that, when executed by a system executing a plurality of processes, the processes including (i) a first process that executes on a first node and maintains a data region and (ii) a second process that executes on a second node and is associated with the data region, cause the system to perform operations comprising:

receiving, by the first process, a state marker message representing an intent to create a replica of the data region;

providing, by the first process, one or more post-image changes to first data of the data region, the one or more post-image changes being made after the state marker message was received;

receiving, by the second node, one or more post-image changes to first data of the data region made after the state marker message was received;

continuing, by the second node, the second process using the one or more post-image changes to the first data region before the data region has been fully replicated;

waiting to initiate replication of the data region until the data region maintained by the first process has stabilized;

determining that the data of the data region maintained by the first process has stabilized;

in response to determining that the data of the data region has stabilized, starting replication of the data region maintained by the first process to generate a replica of the data region maintained by the second process; and

updating the replica of the data region maintained by the second process with the one or more post-image changes to the first data of the data region.

16. The one or more storage media of claim 15 , wherein determining that the data of the data region has stabilized comprises:

identifying one or more messages issued by one or more other processes before the state marker message was issued, each message communicating a change to the data region maintained by the first process, and

determining that all of the one or more messages issued by the one or more other processes before the state marker message was issued have been received by the first process.

17. The one or more storage media of claim 16 , wherein waiting to initiate replication of the image of the data region until the data region maintained by the first process has stabilized comprises waiting for the first node to receive one or more messages issued by the one or more other processes before the state marker message was issued.

18. The one or more storage media of claim 15 , wherein the operations further comprise:

in response to receiving, by the first node, the state marker message, generating, by the first process, an image of the data region maintained by the first process.

19. The one or more storage media of claim 15 , wherein the second process uses one or more pre-image changes to the data region that were issued before the state marker message was received.

20. The one or more storage media of claim 15 , wherein the operations further comprise:

transmitting the post-image data to the second process before transmitting the pre-image data to the second process.

Assignments (5)
MERGER Recorded May 20, 2026
From: PIVOTAL SOFTWARE, INC.
To: VMWARE LLC
Reel/Frame 075613/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2018
From: SCHUCHARDT, BRUCE
To: GEMSTONE SYSTEMS, INC.
Reel/Frame 044609/0090 →
MERGER Recorded Jan 12, 2018
From: GEMSTONE SYSTEMS, INC.
To: VMWARE, INC.
Reel/Frame 044609/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2018
From: VMWARE, INC.
To: GOPIVOTAL, INC.
Reel/Frame 044609/0507 →
CHANGE OF NAME Recorded Jan 12, 2018
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 045065/0234 →
Continuity (3)
Continuation 14811706 · Jul 28, 2015
Continuation 14171424 · Feb 3, 2014
Continuation 12319647 · Jan 9, 2009