Available storage space in a system with varying data redundancy schemes
US-2020117372-A1 · Apr 16, 2020 · US
US11934674B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11934674-B2 |
| Application number | US-202017072363-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 16, 2020 |
| Priority date | Sep 27, 2020 |
| Publication date | Mar 19, 2024 |
| Grant date | Mar 19, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments of the present disclosure relate to a method, an electronic device, and a computer program product for storing and accessing data. A method for storing data includes: dividing, in response to receiving a request for storing data from a client, the data into a plurality of data blocks; storing the plurality of data blocks in a plurality of servers respectively; generating metadata of the data to record corresponding addresses for storing the plurality of data blocks in the plurality of servers; and storing the generated metadata in a metadata repository. The embodiments of the present disclosure can effectively improve data transmission efficiency, data availability, and data security in a cloud storage system.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: dividing, in response to receiving a request for storing data from a client, the data into a plurality of data blocks; storing the plurality of data blocks in a plurality of servers, respectively, wherein the plurality of servers are from respective ones of a plurality of cloud providers; generating metadata of the data to record corresponding addresses for storing the plurality of data blocks in the plurality of servers; and storing the generated metadata in a metadata repository; wherein the metadata repository is implemented at least in part using a distributed hash table for storing the metadata of the plurality of data blocks and check block metadata of at least one check block, the distributed hash table comprising a first entry corresponding to a hash value of a first data block and an address of a first server from a first one of the plurality of cloud providers for storing the first data block, a second entry corresponding to a hash value of a second data block and an address of a second server from a second one of the plurality of cloud providers, different than the first one of the plurality of cloud providers, for storing the second data block, and a third entry corresponding to a hash value of the at least one check block and an address of a third server from a third one of the plurality of cloud providers, different than the first one of the plurality of cloud providers and the second one of the plurality of cloud providers, for storing the at least one check block. 2. The method according to claim 1 , further comprising: generating the at least one check block for checking the plurality of data blocks; storing the at least one check block in at least one server of the plurality of servers; generating the check block metadata of the at least one check block to record at least one address for storing the at least one check block in the at least one server; and storing the generated check block metadata in the metadata repository. 3. A computer program product tangibly stored in a non-transitory computer-readable storage medium and comprising machine-executable instructions that, when executed by a device, cause the device to perform the method of claim 1 . 4. The computer program product according to claim 3 , wherein the machine-executable instructions, when executed by a device, further cause the device to: generate the at least one check block for checking the plurality of data blocks; store the at least one check block in at least one server of the plurality of servers; generate the check block metadata of the at least one check block to record at least one address for storing the at least one check block in the at least one server; and store the generated check block metadata in the metadata repository. 5. The method according to claim 1 , wherein the at least one check block is associated with configuration information that indicates a number of data blocks utilized in generating the at least one check block, the configuration information being part of the check block metadata stored in the metadata repository and being separate from the at least one check block. 6. A method, comprising: acquiring, in response to receiving a request for accessing data from a client, metadata of the data from a metadata repository, the data being divided into a plurality of data blocks, and the metadata recording corresponding addresses for storing the plurality of data blocks in a plurality of servers, wherein the plurality of servers are from respective ones of a plurality of cloud providers; determining, based on the metadata, the corresponding addresses for storing the plurality of data blocks in the plurality of servers; acquiring the plurality of data blocks from the corresponding addresses in the plurality of servers; and combining, in response to the plurality of data blocks being acquired, the plurality of data blocks into the data for the client to access; wherein the metadata repository is implemented at least in part using a distributed hash table for storing the metadata of the plurality of data blocks and check block metadata of at least one check block, the distributed hash table comprising a first entry corresponding to a hash value of a first data block and an address of a first server from a first one of the plurality of cloud providers for storing the first data block, a second entry corresponding to a hash value of a second data block and an address of a second server from a second one of the plurality of cloud providers, different than the first one of the plurality of cloud providers, for storing the second data block, and a third entry corresponding to a hash value of the at least one check block and an address of a third server from a third one of the plurality of cloud providers, different than the first one of the plurality of cloud providers and the second one of the plurality of cloud providers, for storing the at least one check block. 7. The method according to claim 6 , further comprising: determining, in response to a failure to acquire at least one data block of the plurality of data blocks, content of the at least one data block based on the at least one check block for checking the plurality of data blocks and other data blocks that have been acquired in the plurality of data blocks; and combining the plurality of data blocks into the data for the client to access. 8. The method according to claim 7 , further comprising: acquiring the check block metadata of the at least one check block from the metadata repository, the check block metadata recording at least one address for storing the at least one check block in the plurality of servers; determining, based on the check block metadata, the at least one address for storing the at least one check block in the plurality of servers; and acquiring the at least one check block from the at least one address. 9. An electronic device, comprising: at least one processing unit; and at least one memory which is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit, wherein the instructions, when executed by the at least one processing unit, cause the electronic device to perform actions comprising the method of claim 6 . 10. The electronic device according to claim 9 , wherein the actions further comprise: determining, in response to a failure to acquire at least one data block of the plurality of data blocks, content of the at least one data block using the at least one check block for checking the plurality of data blocks and other data blocks that have been acquired in the plurality of data blocks; and combining the plurality of data blocks into the data for the client to access. 11. The electronic device according to claim 10 , wherein the actions further comprise: acquiring the check block metadata of the at least one check block from the metadata repository, the check block metadata recording at least one address for storing the at least one check block in the plurality of servers; determining, based on the check block metadata, the at least one address for storing the at least one check block in the plurality of servers; and acquiring the at least one check block from the at least one address. 12. A computer program product tangibly stored in a non-transitory computer-readable storage medium and comprising machine-executable instructions that, when executed by a device, cause the device to perform the method of claim 5 . 13. The computer program product according to claim 6 , wherein the machine-executable instructions, when execute
Management of blocks · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Hash tables · CPC title
Hash-based (content-based indexing of textual data G06F16/31) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.