IP Library Granted Patent US 9,081,841
Granted Patent B2
US 9,081,841 · App. 13/732,041 · Granted Jul 14, 2015

Asynchronous distributed garbage collection for replicated storage clusters

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,081,841
App. No.
13/732,041
Granted
Jul 14, 2015
Kind
B2
Abstract

A method may be performed by a device of a group of devices in a distributed data replication system. The method may include storing objects in a data store, at least one or more of the objects being replicated with the distributed data replication system, and conducting a scan of the objects in the data store. The method may further include identifying one of the objects as not having a reference pointing to the object, storing a delete negotiation message as metadata associated with the one of the objects, and replicating the metadata with the delete negotiation message to one or more other devices of the group of devices.

Claims (50)

1. A method of garbage collection for a distributed storage system that stores a plurality of objects at a plurality of devices, at least some of which are at distinct geographic locations, wherein the distributed storage system stores one or more replicas of each object at distinct devices, the method comprising:

at a first device of the plurality of devices, wherein the first device has one or more processors and memory storing one or more programs configured for execution by the one or more processors:

identifying a first object of the plurality of objects, wherein the first object is stored in a data store associated with the first device and the first object does not have any object references;

in response to identifying that the first object does not have any object references, constructing a first delete negotiation message for the first object and storing the first delete negotiation message as metadata associated with the first object;

replicating the metadata associated with the first object, including the first delete negotiation message, to one or more other devices of the plurality of devices;

receiving updated metadata for the first object, wherein the updated metadata includes responses from the one or more other devices regarding the first delete negotiation message; and

when all of the responses from the one or more other devices confirm deletion of the first object, deleting the first object stored in the data store associated with the first device.

2. The method of claim 1 , further comprising:

determining that a second delete negotiation message, relating to the first object, indicates a failed negotiation; and

deleting the first delete negotiation message based on the second delete negotiation message indicating the failed negotiation.

3. The method of claim 1 , further comprising:

receiving a request to add a new reference to the first object; and

determining not to add the new reference to the object based on the first delete negotiation message.

4. The method of claim 1 , wherein the first delete negotiation message

identifies the first device as initiating delete negotiation.

5. The method of claim 1 , wherein each response from the one or more other devices is either:

a first indicator associated with providing a positive confirmation to the first delete negotiation message; or

a second indicator associated with providing a negative acknowledgement to the first delete negotiation message.

6. A distributed storage system that stores a plurality of objects at a plurality of devices, at least some of which are at distinct geographic locations, wherein the distributed storage system stores one or more replicas of each object at distinct devices, and each device of the plurality of devices has a respective set of one or more processors and respective memory storing one or more programs configured for execution by the respective one or more processors, the one or more programs comprising instructions for:

identifying a first object of the plurality of objects, wherein the first object is stored in a data store associated with a first device of the plurality of devices and the first object does not have any object references;

in response to identifying that the first object does not have any object references, constructing a first delete negotiation message for the first object and storing the first delete negotiation message as metadata associated with the first object;

replicating the metadata associated with the first object, including the first delete negotiation message, to one or more other devices of the plurality of devices;

receiving updated metadata for the first object, wherein the updated metadata includes responses from the one or more other devices regarding the first delete negotiation message; and

when all of the responses from the one or more other devices confirm deletion of the first object, deleting the first object stored in the data store associated with the first device.

7. The system of claim 6 , wherein the one or more programs further comprise instructions for:

determining that a second delete negotiation message, relating to the first object, indicates a failed negotiation; and

deleting the first delete negotiation message based on the second delete negotiation message indicating the failed negotiation.

8. The system of claim 6 , wherein the one or more programs further comprise instructions for:

receiving a request to add a new reference to the first object; and

determining not to add the new reference to the first object based on the first delete negotiation message.

9. The system of claim 6 , wherein the first delete negotiation message

identifies the first device as initiating delete negotiation.

10. The system of claim 6 , wherein each response from the one or more other devices is either:

a first indicator associated with providing a positive confirmation to the first delete negotiation message; or

a second indicator associated with providing a negative acknowledgement to the first delete negotiation message.

11. A non-transitory computer-readable medium storing one or more programs configured for execution by a plurality of devices in a distributed storage system that stores a plurality of objects, wherein at least some of the plurality of devices are at distinct geographic locations, wherein the distributed storage system stores one or more replicas of each object at distinct devices, and wherein each device of the plurality of devices has a respective set of one or more processors and respective memory, the one or more programs comprising instructions for:

identifying a first object of the plurality of objects, wherein the first object is stored in a data store associated with a first device of the plurality of devices and the first object does not have any object references

in response to identifying that the first object does not have any object references, constructing a first delete negotiation message for the first object and storing the first delete negotiation message as metadata associated with the first object;

replicating the metadata associated with the first object, including the first delete negotiation message, to one or more other devices of the plurality of devices;

receiving updated metadata for the first object, wherein the updated metadata includes responses from the one or more other devices regarding the first delete negotiation message; and

when all of the responses from the one or more other devices confirm deletion of the first object, deleting the first object stored in the data store associated with the first device.

12. The computer-readable medium of claim 11 , wherein the one or more programs further comprise instructions for:

determining that a second delete negotiation message, relating to the first object, indicates a failed negotiation; and

deleting the first delete negotiation message based on the second delete negotiation message indicating the failed negotiation.

13. The computer-readable medium of claim 11 , wherein the one or more programs further comprise instructions for:

receiving a request to add a new reference to the first object; and

determining not to add the new reference to the first object based on the first delete negotiation message.

14. The computer-readable medium of claim 11 , wherein each response from the one or more other devices is either:

a first indicator associated with providing a positive confirmation to the first delete negotiation message; or

a second indicator associated with providing a negative acknowledgement to the first delete negotiation message.

Assignments (1)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →