Distributed Scalable Deduplicated Data Backup System
AssigneeDruva Inc.
InventorsAnand Apte, Faisal Puthuparackat, Jaspreet Singh, Milind Borate, Shekhar S. Deshkar
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
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.
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.
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.
Dependencies are inferred from the claim text.