Data transfer optimizations
US-11620068-B2 · Apr 4, 2023 · US
US12175107B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12175107-B2 |
| Application number | US-202217993263-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 23, 2022 |
| Priority date | Apr 22, 2022 |
| Publication date | Dec 24, 2024 |
| Grant date | Dec 24, 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.
Techniques for processing data involve receiving an access request for a logical block used for storing data, the access request including a logical block address for the logical block. Such techniques further involve determining, if it is determined that the logical block address is in a used address space, an index entry corresponding to the logical block address from index entries, the index entry indicating arrangements of logical blocks on a corresponding pool stripe, wherein the pool stripe includes disk blocks from disks in a disk pool, and data blocks form at least one data stripe for a disk array. Such techniques further involve determining a target block corresponding to the logical block based on the index entry. Such techniques further involve processing the access request by using the target block. Accordingly, the processing speed of sequential I/O operations is improved, time is saved, and user experience is improved.
Opening claim text (preview).
The invention claimed is: 1. A method for processing data, comprising: receiving an access request for a logical block used for storing data, the access request comprising a logical block address for the logical block; determining, if determining that the logical block address is in a used address space, a first index entry corresponding to the logical block address from a plurality of index entries, the index entry of the plurality of index entries indicating arrangements of a plurality of logical blocks on a corresponding pool stripe, wherein the pool stripe comprises a plurality of disk blocks from a plurality of disks in a disk pool, and data blocks in the plurality of logical blocks form at least one data stripe for a disk array; determining a target disk block corresponding to the logical block from the plurality of disk blocks based on the first index entry; and processing the access request by using the target disk block; wherein the index entry comprises an address of a starting logical block located in the pool stripe and a quantity of logical blocks; and wherein determining the first index entry comprises: determining an address range associated with the index entry based on the address of the starting logical block and the quantity; and determining the index entry as the first index entry if determining that the logical block address is within the address range. 2. The method according to claim 1 , wherein the index entry further comprises a position of the starting logical block in the plurality of disk blocks in the pool stripe; and wherein determining the target disk block comprises: determining a target disk block corresponding to the logical block from the plurality of disk blocks based on the address of the starting logical block and the position. 3. The method according to claim 1 , wherein the access request is a write request, wherein processing the access request by using the target disk block comprises: writing the data to the target disk block to form a data block; generating a parity data block based on the data block and a related data block on a related disk block in the pool stripe; and storing the parity data block to update the data stripe. 4. The method according to claim 3 , further comprising: determining a new pool stripe available for the logical block based on the plurality of disks if determining that the logical block address is in an unused address space; determining a disk block available for the logical block from the new pool stripe; writing data to the disk block to form a data block; forming a data stripe for a disk array in the new pool stripe based on the data block; and updating a new index entry for the new pool stripe based on the arrangement of the logical block in the new pool stripe. 5. The method according to claim 1 , wherein the plurality of disks are a first set of disks, and the method further comprises: responding to receiving a write request after a second set of disks is added to the disk pool, the write request comprising a plurality of ordered logical block addresses for a plurality of logical blocks used for storing data; determining, if determining that the plurality of ordered logical block addresses are in the used address space, a second index entry corresponding to a first ordered logical block address of the plurality of ordered logical block addresses from the plurality of index entries; determining, based on the first set of disks and the second set of disks, a total quantity of disk blocks in a target pool stripe corresponding to the second index entry; determining, based on the second index entry and the total quantity, a reference quantity of logical blocks in the target pool stripe available for use in the plurality of logical blocks; storing data in the reference quantity of disk blocks in the target pool stripe in sequence; and updating the second index entry and an index entry of a next pool stripe of the target pool stripe based on the storage. 6. The method according to claim 5 , further comprising: transferring, after the second set of disks is added to the disk pool, data in the disk pool to evenly store the data in the first set of disks and the second set of disks in the disk pool if determining that there is no access operation. 7. The method according to claim 6 , wherein transferring data in the disk pool comprises: moving data stored in a pool stripe in the disk pool upward or downward to transfer the data in the disk pool. 8. The method according to claim 1 , further comprising: storing index entries corresponding to the pool stripe in disk blocks of the pool stripe. 9. The method according to claim 1 , wherein the plurality of disks in the disk pool each reserve a predetermined size of idle space; and the method further comprises: restoring, in response to a disk failure in the disk pool, data blocks stored in the failed disk to the idle space in a disk in use in the disk pool. 10. An electronic device, comprising: at least one processor; and a memory coupled to the at least one processor and having instructions stored therein, wherein the instructions, when executed by the at least one processor, cause the device to perform actions comprising: receiving an access request for a logical block used for storing data, the access request comprising a logical block address for the logical block; determining, if determining that the logical block address is in a used address space, a first index entry corresponding to the logical block address from a plurality of index entries, the index entry of the plurality of index entries indicating arrangements of a plurality of logical blocks on a corresponding pool stripe, wherein the pool stripe comprises a plurality of disk blocks from a plurality of disks in a disk pool, and data blocks in the plurality of logical blocks form at least one data stripe for a disk array; determining a target disk block corresponding to the logical block from the plurality of disk blocks based on the first index entry; and processing the access request by using the target disk block; wherein the index entry comprises an address of a starting logical block located in the pool stripe and a quantity of logical blocks; and wherein determining the first index entry comprises: determining an address range associated with the index entry based on the address of the starting logical block and the quantity; and determining the index entry as the first index entry if determining that the logical block address is within the address range. 11. The electronic device according to claim 10 , wherein the index entry further comprises a position of the starting logical block in the plurality of disk blocks in the pool stripe; and wherein determining the target disk block comprises: determining a target disk block corresponding to the logical block from the plurality of disk blocks based on the address of the starting logical block and the position. 12. The electronic device according to claim 10 , wherein the access request is a write request, wherein processing the access request by using the target disk block comprises: writing the data to the target disk block to form a data block; generating a parity data block based on the data block and a related data block on a related disk block in the pool stripe; and storing the parity data block to update the data stripe. 13. The electronic device according to claim 12 , wherein the actions further comprise: determining a new pool stripe available for the logical block based on the plurality of disks if determining that the logical block address is in an
in relation to response time · CPC title
in relation to access · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
at area level, e.g. provisioning of virtual or logical volumes · CPC title
Management of blocks · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.