Distributed Scalable Deduplicated Data Backup System
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving at a server, a request from a client device to store data, the request comprising a request checksum computed from the data;
creating an inode entry comprising metadata associated with the data;
accessing a dedupe database, the dedupe database having a plurality of dedupe entries and each dedupe entry comprising a stored checksum;
searching the dedupe database for a matching dedupe entry with a stored checksum equal to the request checksum;
responsive to finding the matching dedupe entry, storing in the matching dedupe entry a back reference to the inode entry, and storing in the inode entry a reference to the matching dedupe entry; and
storing the inode entry in an inode database.
3 Assignments
0 Petitions
Accused Products
Abstract
A distributed, cloud-based storage system provides a reliable, deduplicated, scalable and high performance backup service to heterogeneous clients that connect to it via a communications network. The distributed cloud-based storage system guarantees consistent and reliable data storage while using structured storage that lacks ACID compliance. Consistency and reliability are guaranteed using a system that includes: 1) back references from shared objects to referring objects, 2) safe orders of operation for object deletion and creation, 3) and simultaneous access to shared resources through sub-resources.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving at a server, a request from a client device to store data, the request comprising a request checksum computed from the data; creating an inode entry comprising metadata associated with the data; accessing a dedupe database, the dedupe database having a plurality of dedupe entries and each dedupe entry comprising a stored checksum; searching the dedupe database for a matching dedupe entry with a stored checksum equal to the request checksum; responsive to finding the matching dedupe entry, storing in the matching dedupe entry a back reference to the inode entry, and storing in the inode entry a reference to the matching dedupe entry; and storing the inode entry in an inode database. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method comprising:
-
accessing a data object, the data object comprising a back reference list, the back reference list comprising a list of references to back referenced objects, each back referenced object comprising a reference list, comprising a list of references to objects; determining if the back reference list is empty; and responsive to the back reference list being empty, deleting the data object. - View Dependent Claims (7, 8, 9)
-
-
10. A computer-implemented method comprising:
-
accessing a data object, the data object comprising a reference list, the reference list comprising a list of references to referenced objects, each referenced object comprising a back reference list, the back reference list comprising a list of references to back referenced objects; accessing a referenced object; searching the back reference list of the referenced object for a reference to the data object; and responsive to no reference to the data object being found in the referenced object'"'"'s back reference list, adding a reference to the data object to the referenced object'"'"'s back reference list.
-
-
11. A computer for data storage, the computer comprising:
-
a non-transitory computer-readable storage medium storing executable computer program instructions for; receiving a request from a client device to store data, the request comprising a request checksum computed from the data; creating an inode entry comprising metadata associated with the data; accessing a dedupe database, the dedupe database having a plurality of dedupe entries and each dedupe entry comprising a stored checksum; searching the dedupe database for a matching dedupe entry with a stored checksum equal to the request checksum; responsive to finding the matching dedupe entry, storing in the matching dedupe entry a back reference to the inode entry, and storing in the inode entry a reference to the matching dedupe entry; and storing the inode entry in an inode database; and a processor for executing the computer program instructions. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer for data storage, the computer comprising:
-
a non-transitory computer-readable storage medium storing executable computer program instructions for; accessing a data object, the data object comprising a back reference list, the back reference list comprising a list of references to back referenced objects, each back referenced object comprising a reference list, comprising a list of references to objects; determining if the back reference list is empty; and responsive to the back reference list being empty, deleting the data object; and a processor for executing the computer program instructions. - View Dependent Claims (17, 18, 19)
-
-
20. A computer for data storage, the computer comprising:
-
A non-transitory computer-readable storage medium storing executable computer program instructions for; accessing a data object, the data object comprising a reference list, the reference list comprising a list of references to referenced objects, each referenced object comprising a back reference list, the back reference list comprising a list of references to back referenced objects; accessing a referenced object; searching the back reference list of the referenced object for a reference to the data object; and responsive to no reference to the data object being found in the referenced object'"'"'s back reference list, adding a reference to the data object to the referenced object'"'"'s back reference list; and a processor for executing the computer program instructions.
-
Specification