IP Library Granted Patent US 9,922,043
Granted Patent B1
US 9,922,043 · App. 14/524,529 · Granted Mar 20, 2018

Data management platform

Inventors: Daniel Allen Smith (Portland, OR); Bruce J. Schuchardt (Newberg, OR); Xiaojian Zhou (Portland, OR)
Assignee: Pivotal Software, Inc.
G06F17/30174G06F12/0253G06F17/30309G06F17/30575G06F2212/702
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,922,043
App. No.
14/524,529
Granted
Mar 20, 2018
Kind
B1
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for distributed data management. One of the methods includes maintaining, by a first member in a distributed data management system having multiple computing members installed on multiple respective computers, a first garbage collection version vector that includes, for each member in the distributed data management system, a garbage collection version that represents a number of garbage collection processes performed by the member on a respective copy of a replicated data region maintained by the member in the data management system. If the first garbage collection version vector is different than a second garbage collection version vector received from a different provider member, a first replication process is performed that is different than a second replication process that is performed when the first garbage collection version vector matches the second garbage collection version vector.

Claims (67)

1. A computer-implemented method comprising:

Maintaining a respective garbage collection version vector for each member of a plurality of members in a distributed data management system, wherein each garbage collection version vector has a plurality of elements that each represent a respective count of garbage collection processes that have been performed by a corresponding member of the plurality of members of the distributed data management system, each garbage collection process being performed by each member on a respective copy of a replicated data region maintained by the member in the data management system and removing data entries marked as deleted in the data region from memory;

receiving, by a first member of the plurality of members having a first garbage collection version vector, a second garbage collection version vector maintained by a different second member of the plurality of members;

determining, by the first member, that the first garbage collection version vector is different than the second garbage collection version vector; and

in response to determining that the first garbage collection version vector is different than the second garbage collection version vector, performing, by the first member, a first replication process that is different than a second replication process, wherein the second replication process is performed when the first garbage collection version vector matches every other garbage collection version vector received from one or more other members of the plurality of members.

2. The method of claim 1 , wherein the second replication process is a delta replication process.

3. The method of claim 2 , wherein the first replication process is a full replication process, and further comprising:

receiving all data entries stored on the second member.

4. The method of claim 1 , wherein the first replication process is a full replication process, and further comprising:

revoking, by the first member, an update to a data entry stored on the first member.

5. The method of claim 1 , further comprising:

determining, by the first member, that the first member has been restarted; and

in response, requesting, by the first member, the second garbage collection version vector from the second member.

6. The method of claim 1 , wherein each garbage collection process clears memory occupied by each data entry that is marked as a deleted data entry.

7. The method of claim 6 , further comprising:

receiving, by the first member, a request to delete a first data entry; and

in response, marking, by the first member, the data entry as deleted.

8. The method of claim 1 , further comprising:

performing, by the first member, a garbage collection process to clear memory occupied by one or more data entries that are marked as deleted;

incrementing, by the first member, a garbage collection version in the first garbage collection version vector; and

distributing, by the first member, the first garbage collection version vector to one or more other members of the distributed data management system.

9. The method of claim 1 , wherein determining that the first garbage collection version vector is different than the second garbage collection version vector comprises determining that every component of the second garbage collection version vector is at least that of a corresponding component of the first garbage collection version vector.

10. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

maintaining a respective garbage collection version vector for each member of a plurality of members in a distributed data management system, wherein each garbage collection version vector has a plurality of elements that each represent a respective count of garbage collection processes that have been performed by a corresponding member of the plurality of members of the distributed data management system, each garbage collection process being performed by each member on a respective copy of a replicated data region maintained by the member in the data management system and removing data entries marked as deleted in the data region from memory;

receiving, by a first member of the plurality of members having a first garbage collection version vector, a second garbage collection version vector maintained by a different second member of the plurality of members;

determining, by the first member, that the first garbage collection version vector is different than the second garbage collection version vector; and

in response to determining that the first garbage collection version vector is different than the second garbage collection version vector, performing, by the first member, a first replication process that is different than a second replication process, wherein the second replication process is performed when the first garbage collection version vector matches every other garbage collection version vector received from one or more other members of the plurality of members.

11. The system of claim 10 , wherein the second replication process is a delta replication process.

12. The system of claim 11 , wherein the first replication process is a full replication process, and wherein the operations further comprise:

receiving all data entries stored on the second member.

13. The system of claim 10 , wherein the first replication process is a full replication process, and wherein the operations further comprise:

revoking, by the first member, an update to a data entry stored on the first member.

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

determining, by the first member, that the first member has been restarted; and

in response, requesting, by the first member, the second garbage collection version vector from the second member.

15. The system of claim 10 , wherein each garbage collection process clears memory occupied by each data entry that is marked as a deleted data entry.

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

receiving, by the first member, a request to delete a first data entry; and

in response, marking, by the first member, the data entry as deleted.

17. The system of claim 10 , wherein the operations further comprise:

performing, by the first member, a garbage collection process to clear memory occupied by one or more data entries that are marked as deleted;

incrementing, by the first member, a garbage collection version in the first garbage collection version vector; and

distributing, by the first member, the first garbage collection version vector to one or more other members of the distributed data management system.

18. The system of claim 10 , wherein determining that the first garbage collection version vector is different than the second garbage collection version vector comprises determining that every component of the second garbage collection version vector is at least that of a corresponding component of the first garbage collection version vector.

19. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

maintaining a respective garbage collection version vector for each member of a plurality of members in a distributed data management system, wherein each garbage collection version vector has a plurality of elements that each represent a respective count of garbage collection processes that have been performed by a corresponding member of the plurality of members of the distributed data management system, each garbage collection process being performed by each member on a respective copy of a replicated data region maintained by the member in the data management system and removing data entries marked as deleted in the data region from memory;

receiving, by a first member of the plurality of members having a first garbage collection version vector, a second garbage collection version vector maintained by a different second member of the plurality of members;

determining, by the first member, that the first garbage collection version vector is different than the second garbage collection version vector; and

in response to determining that the first garbage collection version vector is different than the second garbage collection version vector, performing, by the first member, a first replication process is different than a second replication process, wherein the second replication process is performed when the first garbage collection version vector matches every other garbage collection version vector received from one or more other members of the plurality of members.

20. The computer program product of claim 19 , wherein the second replication process is a delta replication process.

21. The computer program product of claim 20 , wherein the first replication process is a full replication process, and wherein the operations further comprise:

receiving all data entries stored on the second member.

22. The computer program product of claim 19 , wherein the first replication process is a full replication process, and wherein the operations further comprise:

revoking, by the first member, an update to a data entry stored on the first member.

23. The computer program product of claim 19 , wherein the operations further comprise:

determining, by the first member, that the first member has been restarted; and

in response, requesting, by the first member, the second garbage collection version vector from the second member.

24. The computer program product of claim 19 , wherein each garbage collection process clears memory occupied by each data entry that is marked as a deleted data entry.

25. The computer program product of claim 24 , wherein the operations further comprise:

receiving, by the first member, a request to delete a first data entry; and

in response, marking, by the first member, the data entry as deleted.

26. The computer program product of claim 19 , wherein the operations further comprise:

performing, by the first member, a garbage collection process to clear memory occupied by one or more data entries that are marked as deleted;

incrementing, by the first member, a garbage collection version in the first garbage collection version vector; and

distributing, by the first member, the first garbage collection version vector to one or more other members of the distributed data management system.

27. The computer program product of claim 19 , wherein determining that the first garbage collection version vector is different than the second garbage collection version vector comprises determining that every component of the second garbage collection version vector is at least that of a corresponding component of the first garbage collection version vector.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2018
From: VMWARE, INC.; VMWARE SOFTWARE INDIA PRIVATE LIMITED
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 047397/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2018
From: SCHUCHARDT, BRUCE J.; ZHOU, XIAOJIAN
To: VMWARE, INC.
Reel/Frame 045431/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2016
From: VMWARE INC.; VMWARE SOFTWARE INDIA PRIVATE LIMITED
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 040010/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2016
From: KUMAR, NEERAJ; WALE, SUMEDH; CHAKRABORTY, SOUBHIK
To: VMWARE SOFTWARE INDIA PRIVATE LIMITED
Reel/Frame 039491/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2016
From: SMITH, DANIEL ALLEN; RAMNARAYANAN, JAGANNATHAN
To: VMWARE, INC.
Reel/Frame 039491/0573 →
Continuity (1)
Provisional Application 61896466 · Oct 28, 2013