IP Library Granted Patent US 8,775,373
Granted Patent B1
US 8,775,373 · App. 12/454,851 · Granted Jul 8, 2014

Deleting content in a distributed computing environment

Inventors: Robert F. Ross (San Jose, CA); Harrison B. Caudill (Mountain View, CA)
Assignee: Translattice, Inc.
H04L67/1095
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 8,775,373
App. No.
12/454,851
Granted
Jul 8, 2014
Kind
B1
Abstract

Deleting content is disclosed. A delete request is received for a file that is distributed with a plurality of nodes. The file is replaced with a first delete token. A determination is made as to whether all nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens. The file is deleted.

Claims (68)

1. A method for deleting content comprising:

receiving at a first node a delete request for a file, a primary copy of which is stored on each of at least a subset of a plurality of nodes, wherein at least one other node of the plurality of nodes has received the delete request for the file;

replacing the file at the first node with a first delete token, the first delete token comprising data identifying one or more nodes comprising the plurality of nodes on which a primary copy of the file is stored;

determining at a second node of the plurality of nodes that the second node does not have a record of the file;

in response at least in part to a determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens, adding a first delete token for the file in records associated with the second node;

determining, based at least in part on the first node receiving successful responses from all other nodes in the plurality of nodes in response to the request, that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens;

in response at least in part to the determination that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens:

causing an entry associated with the file to be removed from a distributed index by the first node; and

replacing the first delete token at the first node with a second delete token;

determining by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens;

in response to the determination by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, removing the second delete token from the first node;

determining by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens; and

in response to the determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, not adding a second delete token for the file in the records associated with the second node.

2. The method of claim 1 , wherein the first delete token includes a list of the other nodes in the plurality of nodes, wherein the list of other nodes is usable to find all other nodes in the plurality of nodes that should also have first delete tokens.

3. The method of claim 1 , wherein the delete request is generated by a user.

4. The method of claim 1 , wherein the delete request is generated by an application.

5. The method of claim 1 , in response to the delete request for the file, further comprising disabling a cached copy of the file at the first node.

6. The method of claim 5 , wherein the primary copy of the file is different from the cached copy of the file.

7. The method of claim 1 , wherein portions of the distributed index are stored by at least a subset of the plurality of nodes and wherein causing the entry associated with the file to be removed from the distributed index by the first node includes:

determining at the first node whether the first node stores a portion of the distributed index that includes the entry associated with the file;

in the event that the first node does store the portion of the distributed index that includes the entry associated with the file, removing the entry associated with the file from the portion of the distributed index at the first node; and

in the event that the first node does not store the portion of the distributed index that includes the entry associated with the file, sending a request from the first node to another node that does store the portion of the distributed index to remove the entry associated with the file from the portion of the distributed index.

8. A system for deleting content, comprising:

a processor configured to:

receive at a first node a delete request for a file, a primary copy of which is stored on each of at least a subset of a plurality of nodes, wherein at least one other node of the plurality of nodes has received the delete request for the file;

replace the file at the first node with a first delete token, the first delete token comprising data identifying one or more nodes comprising the plurality of nodes on which a primary copy of the file is stored;

determine at a second node of the plurality of nodes that the second node does not have a record of the file;

in response at least in part to a determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens, add a first delete token for the file in records associated with the second node;

determine, based at least in part on the first node receiving successful responses from all other nodes in the plurality of nodes in response to the request, that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens;

in response at least in part to the determination that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens:

cause an entry associated with the file to be removed from a distributed index by the first node; and

replace the first delete token at the first node with a second delete token;

determine by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens;

in response to the determination by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, remove the second delete token from the first node;

determine by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens; and

in response to the determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, do not add a second delete token for the file in the records associated with the second node; and

a memory coupled to the processor and configured to provide the processor with instructions.

9. The system of claim 8 , wherein the first delete token includes a list of the other nodes in the plurality of nodes, wherein the list of other nodes is usable to find all other nodes in the plurality of nodes that should also have first delete tokens.

10. The system of claim 8 , wherein the delete request is generated by a user.

11. The system of claim 8 , wherein the delete request is generated by an application.

12. The system of claim 8 , in response to the delete request for the file, wherein the processor is further configured to disable a cached copy of the file at the first node.

13. The system of claim 12 , wherein the primary copy of the file is different from the cached copy of the file.

14. The system of claim 8 , wherein portions of the distributed index are stored by at least a subset of the plurality of nodes and wherein causing the entry associated with the file to be removed from the distributed index by the first node includes the processor being configured to:

determine at the first node whether the first node stores a portion of the distributed index that includes the entry associated with the file;

in the event that the first node does store the portion of the distributed index that includes the entry associated with the file, remove the entry associated with the file from the portion of the distributed index at the first node; and

in the event that the first node does not store the portion of the distributed index that includes the entry associated with the file, send a request from the first node to another node that does store the portion of the distributed index to remove the entry associated with the file from the portion of the distributed index.

15. A computer program product for deleting content, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving at a first node a delete request for a file, a primary copy of which is stored on each of at least a subset of a plurality of nodes, wherein at least one other node of the plurality of nodes has received the delete request for the file;

replacing the file at the first node with a first delete token, the first delete token comprising data identifying one or more nodes comprising the plurality of nodes on which a primary copy of the file is stored;

determining at a second node of the plurality of nodes that the second node does not have a record of the file;

in response at least in part to a determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens, adding a first delete token for the file in records associated with the second node;

determining, based at least in part on the first node receiving successful responses from all other nodes in the plurality of nodes in response to the request, that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens;

in response at least in part to the determination that all other nodes in the plurality of nodes have replaced their respective copies of the file with first delete tokens:

causing an entry associated with the file to be removed from a distributed index by the first node; and

replacing the first delete token at the first node with a second delete token;

determining by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens;

in response to the determination by the first node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, removing the second delete token from the first node;

determining by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens; and

in response to the determination by the second node that at least some other nodes in the plurality of nodes have replaced their respective first delete tokens with second delete tokens, not adding a second delete token for the file in the records associated with the second node.

16. The computer program product of claim 15 , wherein the first delete token includes a list of the other nodes in the plurality of nodes, wherein the list of other nodes is usable to find all other nodes in the plurality of nodes that should also have first delete tokens.

17. The computer program product of claim 15 , wherein the delete request is generated by a user.

18. The computer program product of claim 15 , wherein the delete request is generated by an application.

19. The computer program product of claim 15 , in response to the delete request for the file, further comprising disabling a cached copy of the file at the first node.

20. The computer program product of claim 19 , wherein the primary copy of the file is different from the cached copy of the file.

21. The computer program product of claim 15 , wherein portions of the distributed index are stored by at least a subset of the plurality of nodes and wherein causing the entry associated with the file to be removed from the distributed index by the first node includes:

determining at the first node whether the first node stores a portion of the distributed index that includes the entry associated with the file;

in the event that the first node does store the portion of the distributed index that includes the entry associated with the file, removing the entry associated with the file from the portion of the distributed index at the first node; and

in the event that the first node does not store the portion of the distributed index that includes the entry associated with the file, sending a request from the first node to another node that does store the portion of the distributed index to remove the entry associated with the file from the portion of the distributed index.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: TRANSLATTICE, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 035190/0742 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TITLE INSIDE THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED AT REEL: 023081 FRAME: 0572. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 19, 2015
From: ROSS, ROBERT F.; CAUDILL, HARRISON B.
To: TRANSLATTICE, INC.
Reel/Frame 035047/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2009
From: ROSS, ROBERT F.; CAUDILL, HARRISON B.
To: TRANSLATTICE, INC.
Reel/Frame 023081/0572 →
Continuity (4)
Provisional Application 61128393 · May 21, 2008
Provisional Application 61128392 · May 21, 2008
Provisional Application 61128453 · May 21, 2008
Provisional Application 61128452 · May 21, 2008