IP Library Granted Patent US 9,720,995
Granted Patent B1
US 9,720,995 · App. 14/811,706 · Granted Aug 1, 2017

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

Inventor: Bruce Schuchardt (Newberg, OR)
Assignee: Pivotal Software, Inc.
G06F17/30581G06F17/30371G06F17/30876
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,720,995
App. No.
14/811,706
Granted
Aug 1, 2017
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 (43)

1. A method performed by a distributed computing system comprising a plurality of computing nodes and a plurality of processes, the system including a first process holding a data region and executing on a first node, a second process on a second node, and a third process executing on a third node, the third process using the data region and holding a replica of the data region, the first, second, and third nodes being distinct from each other, the method being a method of replicating the data region from the first node to the second node, the method comprising:

determining to create a new replica of the entire data region in the second process on the second node directly from the first node, wherein, at a time of the determining, the second process does not hold any replica of the data region, wherein the second process includes an algorithm that, when executed, uses data of the data region stored on the first node and alters a datum of the data region, and wherein the datum as altered by the algorithm is transmitted to the first node for storage in the data region;

initiating a capturing of an image of the entire data region on the first node and a replicating of the image on the second node;

after initiating the capturing of the image, after capturing a first data item from the data region on the first node as a captured data item in the image, and before the replicating of the image on the second node is completed, (i) receiving a change to the first data item in the data region caused by the third process on the third node that changes the first data item to a changed data item in the data region on the first node, whereby the captured data item in the image and the changed data item in the data region on the first node are different, and (ii) sending, by the third process, the changed data item to the second node; and

executing the algorithm on the second node, the algorithm using as an input the changed data item on the second node before the replicating of the image on the second node is completed.

2. The method of claim 1 , further comprising:

receiving, at the first node, a communication indicating an intent to replicate the data region at the second node to create the new replica of the data region on the second node, wherein capturing the image of the data region on the first node occurs in response to receiving the communication.

3. The method of claim 2 , further comprising:

waiting on the first node until completion of all operations capable of altering the data region that were pending when the communication is received, before initiating the capturing of the image of the data region on the first node.

4. The method of claim 1 , further comprising:

storing, on the second node, the changed data item as post-image data that will be incorporated, after the replicating of the image on the second node is completed, into the new replica on the second node.

5. The method of claim 1 , further comprising:

sending both the changed data item and the captured data item to the second node; and

providing both the changed data item and the captured data item as input to the algorithm before the replicating of the image on the second node is completed.

6. One or more computer-readable non-transitory storage media encoded with instructions that, when executed by a distributed computing system comprising a plurality of computing nodes and a plurality of processes, the system including a first process holding a data region and executing on a first node, a second process on a second node, and a third process executing on a third node, the third process using the data region and holding a replica of the data region, the first, second, and third nodes being distinct from each other, cause the distributed computing system to perform operations for replicating a data region from the first node to the second node, the operations comprising:

determining to create a new replica of the entire data region in the second process on the second node directly from the first node, wherein, at a time of the determining, the second process does not hold any replica of the data region, wherein the second process includes an algorithm that, when executed, uses data of the data region stored on the first node and alters a datum of the data region, and wherein the datum as altered by the algorithm is transmitted to the first node for storage in the data region;

initiating a capturing of an image of the entire data region on the first node and a replicating of the image on the second node;

after initiating the capturing of the image, after capturing a first data item from the data region on the first node as a captured data item in the image, and before the replicating of the image on the second node is completed, (i) receiving a change to the first data item in the data region caused by the third process on the third node that changes the first data item to a changed data item in the data region on the first node, whereby the captured data item in the image and the changed data item in the data region on the first node are different, and (ii) sending, by the third process, the changed data item to the second node; and

executing the algorithm on the second node, the algorithm using as an input the changed data item on the second node before the replicating of the image on the second node is completed.

7. The one or more media of claim 6 , wherein the operations further comprise:

receiving, at the first node, a communication indicating an intent to replicate the data region at the second node to create the new replica of the data region on the second node, wherein capturing the image of the data region on the first node occurs in response to receiving the communication.

8. The one or more media of claim 7 , wherein the operations further comprise:

waiting on the first node until completion of all operations capable of altering the data region that were pending when the communication is received, before initiating the capturing of the image of the data region on the first node.

9. The one or more media of claim 6 , wherein the operations further comprise:

storing, on the second node, the changed data item as post-image data that will be incorporated, after the replicating of the image on the second node is completed, into the new replica on the second node.

10. The one or more media of claim 6 , wherein the operations further comprise:

sending both the changed data item and the captured data item to the second node; and

providing both the changed data item and the captured data item as input to the algorithm before the replicating of the image on the second node is completed.

11. A system comprising:

a distributed computing system comprising a plurality of computing nodes and a plurality of processes, the system including a first process holding a data region and executing on a first node, a second process on a second node, and a third process executing on a third node, the third process using the data region and holding a replica of the data region, the first, second, and third nodes being distinct from each other, the distributed computing system further comprising one or more storage devices storing instructions that are operable, when executed by the distributed computing system, to cause the distributed computing system to perform operations for replicating a data region from the first node to the second node, the operations comprising:

determining to create a new replica of the entire data region in the second process on the second node directly from the first node, wherein, at a time of the determining, the second process does not hold any replica of the data region, wherein the second process includes an algorithm that, when executed, uses data of the data region stored on the first node and alters a datum of the data region, and wherein the datum as altered by the algorithm is transmitted to the first node for storage in the data region;

initiating a capturing of an image of the entire data region on the first node and a replicating of the image on the second node;

after initiating the capturing of the image, after capturing a first data item from the data region on the first node as a captured data item in the image, and before the replicating of the image on the second node is completed, (i) receiving a change to the first data item in the data region caused by the third process on the third node that changes the first data item to a changed data item in the data region on the first node, whereby the captured data item in the image and the changed data item in the data region on the first node are different, and (ii) sending, by the third process, the changed data item to the second node; and

executing the algorithm on the second node, the algorithm using as an input the changed data item on the second node before the replicating of the image on the second node is completed.

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

receiving, at the first node, a communication indicating an intent to replicate the data region at the second node to create the new replica of the data region on the second node, wherein capturing the image of the data region on the first node occurs in response to receiving the communication.

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

waiting on the first node until completion of all operations capable of altering the data region that were pending when the communication is received, before initiating the capturing of the image of the data region on the first node.

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

storing, on the second node, the changed data item as post-image data that will be incorporated, after the replicating of the image on the second node is completed, into the new replica on the second node.

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

sending both the changed data item and the captured data item to the second node; and

providing both the changed data item and the captured data item as input to the algorithm before the replicating of the image on the second node is completed.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2015
From: SCHUCHARDT, BRUCE
To: GEMSTONE SYSTEMS, INC.
Reel/Frame 036571/0820 →
MERGER Recorded Sep 15, 2015
From: GEMSTONE SYSTEMS, INC.
To: VMWARE, INC.
Reel/Frame 036571/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2015
From: VMWARE, INC.
To: GOPIVOTAL, INC.
Reel/Frame 036571/0865 →
CHANGE OF NAME Recorded Sep 15, 2015
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 036617/0236 →
Continuity (2)
Continuation 14171424 · Feb 3, 2014
Continuation 12319647 · Jan 9, 2009