Metadata compaction in a distributed storage system
US-2020401557-A1 · Dec 24, 2020 · US
US11520695B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11520695-B2 |
| Application number | US-202117215898-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 29, 2021 |
| Priority date | Mar 2, 2021 |
| Publication date | Dec 6, 2022 |
| Grant date | Dec 6, 2022 |
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.
A storage system determines whether its memory is fragmented (e.g., based on a host read pattern that indicates that a sequential file is being read, but the number of data sense operations required to perform this read indicates that file is stored non-sequentially in the memory). If the storage system determines that its memory is fragmented, the storage system can perform a defragmentation operation on the memory. This defragmentation operation can be done invisibly to the host (i.e., without receiving any hint or instruction from the host to perform the defragmentation operation).
Opening claim text (preview).
What is claimed is: 1. A storage system comprising: a memory; an interface configured to communicate with a host; and a controller configured to communicate with the memory and the interface and further configured to: determine whether an area of the memory is fragmented based on a number of data sense operations required to perform a host read of the area of the memory; and in response to determining that the area of the memory is fragmented, determine whether a defragmentation operation is permitted during the host read based on a ratio of host reads and defragmentation operations; and in response to determining that the defragmentation operation is permitted during the host read, perform the defragmentation operation on the area of the memory during the host read, wherein the defragmentation operation is performed without receiving an instruction from the host to perform the defragmentation operation. 2. The storage system of claim 1 , wherein the controller is configured to perform the defragmentation operation autonomously without receiving a hint or instruction from the host to perform the defragmentation operation. 3. The storage system of claim 2 , wherein the controller is further configured to: determine whether the number of data sense operations required to read a page exceeds a threshold; and in response to determining that the number of data sense operations required to read the page operation exceeds the threshold, mark the page for defragmentation. 4. The storage system of claim 1 , wherein the controller is further configured to update the host with a new logical-to-physical address map that reflects a result of the defragmentation operation. 5. The storage system of claim 1 , wherein the controller is further configured to determining a frequency for performing defragmentation operations during host reads. 6. The storage system of claim 1 , wherein the controller is further configured to aggregate pages for defragmentation and perform the defragmentation operations for the aggregated pages during a garbage collection operation. 7. The storage system of claim 6 , wherein the controller is further configured to limit a number of the aggregated pages on which the defragmentation operations are performed. 8. The storage system of claim 6 , wherein the controller is further configured to generate a list of the aggregated pages and optimize the list using run length compression. 9. The storage system of claim 1 , wherein the controller is further configured to consider at least one of the following in determining whether to perform the defragmentation operation: a hot/cold classification of data stored in the memory, a number of bits stored per memory cell, an endurance impact caused by performing the defragmentation operation, and write amplification impact caused by performing the defragmentation operation. 10. The storage system of claim 1 , wherein the controller is further configured to disable automatic defragmentation in response to a program/erase count exceeding a threshold. 11. The storage system of claim 1 , wherein the controller is further configured to determine that the memory is fragmented in response to a host read pattern indicating that a group of logical block addresses belonging to a same file and residing sequentially on a host logical address range is being read but that data of this group of logical block addresses is stored non-sequentially in the memory. 12. The storage system of claim 1 , wherein the controller is further configured to determine whether the memory is fragmented on-the-fly without using an offline analysis. 13. The storage system of claim 1 , wherein the storage system is configured to be integrated in the host. 14. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory. 15. In a storage system comprising a memory, a method comprising: determining whether an area of the memory is fragmented based on a host read pattern; and in response to determining that the area of the memory is fragmented, determining whether a defragmentation operation is permitted during a host read based on a ratio of host reads and defragmentation operations; and in response to determining that the defragmentation operation is permitted during the host read, performing the defragmentation operation on the area of the memory during the host read, wherein the defragmentation operation is performed without receiving an instruction from the host to perform the defragmentation operation. 16. The method of claim 15 , wherein the memory is determined to be fragmented when the host read pattern indicates a sequential or sequential portion of a file is being read but data of the file in stored non-sequentially in the memory. 17. The method of claim 15 , wherein the defragmentation operation is performed autonomously without receiving a hint or instruction from the host to perform the defragmentation operation. 18. The method of claim 15 , further comprising updating the host with a new logical-to-physical address map that reflects a result of the defragmentation operation. 19. The method of claim 15 , further comprising disabling automatic defragmentation in response to a program/erase count exceeding a threshold. 20. A storage system comprising: a memory; means for determining whether an area of the memory is fragmented based on a number of data sense operations required to perform a host read of the area of the memory; means for determining whether a defragmentation operation is permitted during the host read based on a ratio of host reads and defragmentation operations in response to determining that the area of the memory is fragmented; and means for performing the defragmentation operation on the area of the memory during the host read, wherein the defragmentation operation is performed without receiving an instruction from the host to perform the defragmentation operation in response to determining that the defragmentation operation is permitted during the host read.
Details of free space management performed by the file system (saving storage space on storage systems G06F3/0608; management of blocks in storage devices G06F3/064) · CPC title
Space efficiency improvement · CPC title
Multiple device management, e.g. distributing data over multiple flash devices · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Performance improvement · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.