IP Library Granted Patent US 9,569,515
Granted Patent B2
US 9,569,515 · App. 14/540,628 · Granted Feb 14, 2017

Facilitating distributed deletes in a replicated storage system

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,569,515
App. No.
14/540,628
Granted
Feb 14, 2017
Kind
B2
Abstract

A data storage system includes multiple zones that comprise separate geographic storage locations and store replicated copies of data items. Upon receiving a delete operation at a local zone at a time t d , if a copy of the first data item exists in the local zone, the system computes a maximum last update time t mlu =t d −t min , wherein t min is a minimum lifetime for a data item. Next, the system determines, from a local index, a time t lu that the first data item was last updated. If t lu <t mlu , the system deletes the copy of the first data item in the local zone. The system also asynchronously propagates the delete operation to other zones in the data storage system along with t mlu , wherein the delete operation is performed in another zone if the other zone determines that the first data item was last updated before t mlu .

Claims (86)

1. A computer-implemented method, comprising:

operating a data storage system including multiple zones, wherein each zone comprises a separate geographic storage location, and wherein data items are replicated across multiple zones for fault tolerance purposes; and

wherein operating the data storage system involves performing a delete operation to delete a first data item by:

receiving the delete operation at a time t d at a local zone in the data storage system; and

if a copy of the first data item exists in the local zone,

computing a maximum last update time for the delete operation t mlu =t d −t min , wherein t min is a minimum lifetime for a data item,

determining, from a local index in the local zone, a time t lu that the first data item was last updated,

deleting the copy of the first data item in the local zone if t lu <t min , and

asynchronously propagating the delete operation to other zones in the data storage system along with t mlu , wherein the delete operation is performed in another zone if the other zone determines that the first data item was last updated before t mlu .

2. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving an asynchronous delete operation at the local zone from a remote zone, wherein the asynchronous delete operation is directed to a second data item and includes a time t mlu ; and

if a copy of the second data item exists in the local zone,

determining, from a local index maintained in the local zone, a time t lu that the second data item was last updated, and

deleting the copy of the second data item in the local zone if t lu <t mlu .

3. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving a put operation at the local zone, wherein the put operation is directed to a third data item;

applying the put operation to either update or instantiate a copy of the third data item in the local zone;

updating a last update time t lu for the third data item in a local index maintained at the local zone to specify a time that the put operation was applied to the third data item; and

asynchronously propagating the put operation to other zones in the data storage system along with t lu .

4. The computer-implemented method of claim 1 , wherein the method further comprises:

receiving an asynchronous put operation at the local zone from a remote zone, wherein the asynchronous put operation is directed to a fourth data item and includes a time t lu indicating when the fourth data item was last updated;

applying the asynchronous put operation to update or instantiate a copy of the fourth data item in the local zone; and

updating an entry for the fourth data item in a local index maintained at the local zone to indicate that the fourth data item was last updated at the later of: the time t lu , and the time the fourth data item was actually updated or instantiated in the local zone.

5. The computer-implemented method of claim 1 , wherein the local index maintained at the local zone maps identifiers for data items to corresponding locations for the data items in the local zone.

6. The computer-implemented method of claim 1 ,

wherein asynchronously propagating the delete operation to other zones involves enqueuing the delete operation in a first-in, first-out (FIFO) buffer maintained in the local zone;

wherein the FIFO buffer contains entries for asynchronous delete operations and asynchronous put operations; and

wherein the method further comprises propagating operations specified by the entries in the FIFO buffer to other zones in the data storage system.

7. The computer-implemented method of claim 1 , wherein the data items that are replicated across multiple zones comprise extents, wherein each extent stores multiple data blocks.

8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

operating a data storage system including multiple zones, wherein each zone comprises a separate geographic storage location, and wherein data items are replicated across multiple zones for fault tolerance purposes; and

wherein operating the data storage system involves performing a delete operation to delete a first data item by:

receiving the delete operation at a time t d at a local zone in the data storage system; and

if a copy of the first data item exists in the local zone,

computing a maximum last update time for the delete operation t mlu =t d −t min , wherein t min is a minimum lifetime for a data item,

determining, from a local index in the local zone, a time t lu that the first data item was last updated,

deleting the copy of the first data item in the local zone if t lu <t mlu , and

asynchronously propagating the delete operation to other zones in the data storage system along with t mlu , wherein the delete operation is performed in another zone if the other zone determines that the first data item was last updated before t mlu .

9. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

receiving an asynchronous delete operation at the local zone from a remote zone, wherein the asynchronous delete operation is directed to a second data item and includes a time t mlu ; and

if a copy of the second data item exists in the local zone,

determining, from a local index maintained in the local zone, a time t lu that the second data item was last updated, and

deleting the copy of the second data item in the local zone if t lu <t mlu .

10. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

receiving a put operation at the local zone, wherein the put operation is directed to a third data item;

applying the put operation to either update or instantiate a copy of the third data item in the local zone;

updating a last update time t lu for the third data item in a local index maintained at the local zone to specify a time that the put operation was applied to the third data item; and

asynchronously propagating the put operation to other zones in the data storage system along with t lu .

11. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

receiving an asynchronous put operation at the local zone from a remote zone, wherein the asynchronous put operation is directed to a fourth data item and includes a time t lu indicating when the fourth data item was last updated;

applying the asynchronous put operation to either update or instantiate a copy of the fourth data item in the local zone; and

updating an entry for the fourth data item in a local index maintained at the local zone to indicate that the fourth data item was last updated at the later of: the time t lu , and the time the fourth data item was actually updated or instantiated in the local zone.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the local index maintained at the local zone maps identifiers for data items to corresponding locations for the data items in the local zone.

13. The non-transitory computer-readable storage medium of claim 8 ,

wherein asynchronously propagating the delete operation to other zones involves enqueuing the delete operation in a first-in, first-out (FIFO) buffer maintained in the local zone;

wherein the FIFO buffer contains entries for asynchronous delete operations and asynchronous put operations; and

wherein the method further comprises propagating operations specified by the entries in the FIFO buffer to other zones in the data storage system.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the data items that are replicated across multiple zones comprise extents, wherein each extent stores multiple data blocks.

15. A data storage system, comprising:

multiple zones, wherein each zone comprises a separate geographic storage location, and wherein data items are replicated across multiple zones for fault tolerance purposes;

wherein upon receiving a request to perform a delete operation to delete a first data item, wherein the request is received at a local zone at a time t d , the data storage system is configured to perform the following operations:

if a copy of the first data item exists in the local zone,

compute a maximum last update time for the delete operation t mlu =t d −t min , wherein t min is a minimum lifetime for a data item,

determine, from a local index in the local zone, a time t lu that the first data item was last updated,

delete the copy of the first data item in the local zone if t lu <t mlu , and

asynchronously propagate the delete operation to other zones in the data storage system along with t mlu , wherein the delete operation is performed in another zone if the other zone determines that the first data item was last updated before t mlu .

16. The data storage system of claim 15 , wherein the data storage system is further configured to:

receive an asynchronous delete operation at the local zone from a remote zone, wherein the asynchronous delete operation is directed to a second data item and includes a time t mlu ; and

if a copy of the second data item exists in the local zone,

determine, from a local index maintained in the local zone, a time t lu that the second data item was last updated, and

delete the copy of the second data item in the local zone if t lu <t mlu .

17. The data storage system of claim 15 , wherein the data storage system is further configured to:

receive a put operation at the local zone, wherein the put operation is directed to a third data item;

apply the put operation to either update or instantiate a copy of the third data item in the local zone;

update a last update time t lu for the third data item in a local index maintained at the local zone to specify a time that the put operation was applied to the third data item; and

asynchronously propagate the put operation to other zones in the data storage system along with t lu .

18. The data storage system of claim 15 , wherein the data storage system is further configured to:

receive an asynchronous put operation at the local zone from a remote zone, wherein the asynchronous put operation is directed to a fourth data item and includes a time t lu indicating when the fourth data item was last updated;

apply the asynchronous put operation to either update or instantiate a copy of the fourth data item in the local zone; and

update an entry for the fourth data item in a local index maintained at the local zone to indicate that the fourth data item was last updated at the later of: the time t lu , and the time the fourth data item was actually updated or instantiated in the local zone.

19. The data storage system of claim 15 , wherein the local index maintained at the local zone maps identifiers for data items to corresponding locations for the data items in the local zone.

20. The data storage system of claim 15 ,

wherein while asynchronously propagating the delete operation to other zones, the data storage system is configured to enqueue the delete operation in a first-in, first-out (FIFO) buffer maintained in the local zone;

wherein the FIFO buffer contains entries for asynchronous delete operations and asynchronous put operations; and

wherein the data storage system is further configured to propagate operations specified by the entries in the FIFO buffer to other zones in the data storage system.

21. The data storage system of claim 15 , wherein the data items that are replicated across multiple zones comprise extents, wherein each extent stores multiple data blocks.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →