Managing data storage consolidation

US12147692B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12147692-B2
Application numberUS-202318299354-A
CountryUS
Kind codeB2
Filing dateApr 12, 2023
Priority dateApr 12, 2023
Publication dateNov 19, 2024
Grant dateNov 19, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A technique consolidates data at multiple levels of granularity, the levels including a first level based on whole PLBs (physical large blocks) and a second level based on portions of donor PLBs. The technique further includes tracking PLBs in multiple PLB queues arranged based on storage utilization of the PLBs, and tracking PLB portions in multiple portion queues arranged based on storage utilization of the portions. When consolidating data to create a new PLB, a set of whole PLBs is selected, based on utilization, from the PLB queues, and a set of portions of donor PLBs is selected, based on utilization, from the portion queues. The selections are performed such that the total data size of the selected whole PLB(s) and the selected portion(s) fit within the new PLB.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of consolidating data storage space, comprising: selecting a set of source PLBs (physical large blocks) from a plurality of PLB queues that track PLBs based on utilization; selecting a set of source-PLB portions from a plurality of PLB-portion queues that track PLB portions based on utilization, none of the selected set of PLB portions belonging to any PLB of the selected set of source PLBs; and copying data from the selected set of source PLBs and data from the selected set of source-PLB portions to a target PLB, wherein the method further comprises providing queue elements for representing respective PLBs, wherein a queue element represents a particular PLB and identifies its own location within the plurality of PLB queues. 2. The method of claim 1 , further comprising freeing the set of source PLBs. 3. The method of claim 2 , wherein each of the set of source-PLB portions belongs to a respective donor PLB, and wherein the method further comprises freeing the set of source-PLB portions in each respective donor PLB, such that each respective donor PLB become less utilized. 4. The method of claim 1 , wherein each PLB includes one or more PLB portions. 5. The method of claim 4 , wherein each PLB portion contains data referenced by one and only one respective VLB (virtual large block), and wherein each VLB provides block virtualization for the data in the respective PLB portion. 6. The method of claim 5 , wherein the plurality of PLB queues is provided for multiple ranges of PLB utilization, and wherein each of the plurality of PLB queues is provided for a single, respective range of PLB utilization. 7. The method of claim 6 , wherein the plurality of PLB-portion queues is provided for multiple ranges of VLB utilization, and wherein each of the plurality of PLB-portion queues is provided for a single, respective range of VLB utilization. 8. The method of claim 7 , wherein the ranges of VLB utilization are smaller than the ranges of PLB utilization. 9. The method of claim 7 , wherein each of the ranges of PLB utilization has a respective upper range limit, and wherein selecting the set of source PLBs includes choosing from a particular set of PLB queues such that a sum of the upper range limits of the particular set of PLB queues corresponds to a completely utilized PLB. 10. The method of claim 9 , wherein each of the ranges of VLB utilization has a respective upper range limit, and wherein the method further comprises: determining a measure of utilization of the set of source PLBs that is more accurate than the sum of the upper range limits; and determining a residual space based on a difference between a size of the target PLB and the more accurate measure of utilization, wherein selecting the set of source-PLB portions includes choosing a PLB portion from a PLB-portion queue having an upper range limit that does not exceed the residual space. 11. The method of claim 1 , wherein the queue element further identifies, for each VLB that references the particular PLB, its own location within the plurality of PLB-portion queues. 12. The method of claim 11 , further comprising providing a tracking structure that identifies a list of queue elements that represent PLBs contained within a particular storage extent, and wherein the queue element further identifies its own location in the list of queue elements. 13. The method of claim 12 , further comprising purging the particular storage extent from the tracking structure, wherein said purging includes, for each queue element in the list of queue elements, (i) removing the queue element from the plurality of PLB queues at the indicated location within the plurality of PLB queues and (ii) removing the queue element from the plurality of PLB-portion queues at the indicated location within the plurality of PLB-portion queues. 14. The method of claim 1 , wherein the PLB queues of the plurality of PLB queues cover respective ranges of PLB utilization, each of the ranges having an upper range limit, and wherein selecting the set of source PLBs from the plurality of PLB queues includes choosing PLBs only from PLB queues whose upper range limits do not exceed a threshold level, the threshold level calculated as a system average level of PLB utilization plus a margin that does not exceed 20%. 15. The method of claim 14 , further comprising populating the plurality of PLB queues with queue elements, including populating only those PLB queues that have upper range limits that do not exceed the threshold level. 16. A computerized apparatus, comprising control circuitry that includes a set of processors coupled to memory, the control circuitry constructed and arranged to: select a set of source PLBs (physical large blocks) from a plurality of PLB queues that track PLBs based on utilization; select a set of source-PLB portions from a plurality of PLB-portion queues that track PLB portions based on utilization, none of the selected set of PLB portions belonging to any PLB of the selected set of source PLBs; and copy data from the selected set of source PLBs and data from the selected set of source-PLB portions to a target PLB, wherein the control circuitry is further constructed and arranged to provide queue elements for representing respective PLBs, wherein a queue element represents a particular PLB and identifies its own location within the plurality of PLB queues. 17. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the computerized apparatus to perform a method of consolidating data storage space, the method comprising: selecting a set of source PLBs (physical large blocks) from a plurality of PLB queues that track PLBs based on utilization; selecting a set of source-PLB portions from a plurality of PLB-portion queues that track PLB portions based on utilization, none of the selected set of PLB portions belonging to any PLB of the selected set of source PLBs; and copying data from the selected set of source PLBs and data from the selected set of source-PLB portions to a target PLB, wherein the method further comprises providing queue elements for representing respective PLBs, wherein a queue element represents a particular PLB and identifies its own location within the plurality of PLB queues. 18. The computer program product of claim 17 , wherein each PLB includes one or more PLB portions, wherein each PLB portion contains data referenced by one and only one respective VLB (virtual large block), and wherein each VLB provides block virtualization for the data in the respective PLB portion. 19. The computer program product of claim 18 , wherein the plurality of PLB queues is provided for multiple ranges of PLB utilization, wherein each of the plurality of PLB queues is provided for a single, respective range of PLB utilization, wherein the plurality of PLB-portion queues is provided for multiple ranges of VLB utilization, and wherein each of the plurality of PLB-portion queues is provided for a single, respective range of VLB utilization.

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • G06F3/0665Primary

    at area level, e.g. provisioning of virtual or logical volumes · CPC title

  • Saving storage space on storage systems · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Improving I/O performance · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12147692B2 cover?
A technique consolidates data at multiple levels of granularity, the levels including a first level based on whole PLBs (physical large blocks) and a second level based on portions of donor PLBs. The technique further includes tracking PLBs in multiple PLB queues arranged based on storage utilization of the PLBs, and tracking PLB portions in multiple portion queues arranged based on storage uti…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0665. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 19 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).