Method and apparatus for managing a dynamic journal using the punch command
US-9767111-B1 · Sep 19, 2017 · US
US10901620B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10901620-B2 |
| Application number | US-201916365562-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 26, 2019 |
| Priority date | Jan 5, 2017 |
| Publication date | Jan 26, 2021 |
| Grant date | Jan 26, 2021 |
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 and method for thin provisioning are provided. In one embodiment, a storage system is provided comprising a memory and a controller. The controller is configured to provide a logical exported capacity of the memory to a host, wherein the logical exported capacity is greater than an actual storage capacity of the memory; receive a command from the host to write data to a logical address; determine whether there is available actual storage capacity in the memory to write the data; and write the data to a physical address in memory that corresponds to the logical address only if it is determined that there is available actual storage capacity in the memory to write the data. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.
Opening claim text (preview).
What is claimed is: 1. A storage system comprising: a memory; and a controller coupled to the memory, wherein the controller is configured to: receive a command from a host to write data; determine, based on a logical block address (LBA) associated with the command and a size of the data, whether a range of logical block addresses for the command exceeds a logical exported capacity of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, determine whether a storage valid count associated with the storage system is impacted by the command; when the storage valid count is not impacted, map the LBA associated with the command to a physical block address of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, cause the data to be written to the physical block address of the storage system; and when the range of logical block addresses for the command exceeds the logical exported capacity, prevent the data from being written to the physical block address of the storage system. 2. The storage system of claim 1 , wherein the controller is configured to: when the storage valid count is impacted, update, based on the size of the data, the storage valid count; determine, based on the updated storage valid count, whether an actual storage capacity is sufficient to write the data; and when the actual storage capacity is sufficient to write the data, map the LBA associated with the command to the physical block address. 3. The storage system of claim 2 , wherein the controller is configured to: when the actual storage capacity is insufficient to write the data, reject the command. 4. The storage system of claim 1 , wherein the controller is configured to: determine whether the LBA associated with the command is unavailable; and when the LBA associated with the command is unavailable, determine that the storage valid count is not impacted. 5. The storage system of claim 4 , wherein the controller is configured to: determine that the storage valid count is impacted, when the LBA associated with the command is available. 6. The storage system of claim 1 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system. 7. The storage system of claim 1 , wherein the controller is configured to: receive a second command from the host to discard data; determine whether an LBA associated with the received second command is unavailable; after receiving the second command, decrease the storage valid count by a size of the data to discard, when the LBA associated with the received second command is unavailable; and after receiving the second command, refrain from changing the storage valid count by the size of the data to discard, when the LBA associated with the received second command is available. 8. The storage system of claim 7 , wherein the controller is configured to: determine whether the LBA associated with the second command exceeds the logical exported capacity of the storage system; when the LBA associated with the second command does not exceed the logical exported capacity: decrease the storage valid count by the size of the data to discard, when the LBA associated with the second command is unavailable; refrain from changing the storage valid count by the size of the data to discard, when the LBA associated with the second command is available; and execute the second command; and when the LBA associated with the second command exceeds the logical exported capacity: refrain from decreasing the storage valid count; and refrain from executing the second command. 9. The storage system of claim 1 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system, and wherein the logical exported capacity comprises the actual storage capacity of the storage system and a capacity for overprovisioning. 10. A computer-implemented method, comprising: receiving a command from a host to write data to a storage system; determining, based on a logical block address (LBA) associated with the command and a size of the data, whether a range of logical block addresses for the command exceeds a logical exported capacity of the storage system; in response to determining that the range of logical block addresses for the command does not exceed the logical exported capacity, determining whether a storage valid count associated with the storage system is impacted by the command; in response to determining that the storage valid count is not impacted, mapping the LBA associated with the command to a physical block address of the storage system; when the range of logical block addresses for the command does not exceed the logical exported capacity, causing the data to be written to the physical block address of the storage system; and when the range of logical block addresses for the command exceeds the logical exported capacity, preventing the data from being written to the physical block address of the storage system. 11. The computer-implemented method of claim 10 , comprising: in response to determining that the storage valid count is impacted, updating, based on the size of the data, the storage valid count; and determining, based on the updated storage valid count, whether an actual storage capacity is sufficient to write the data, wherein the mapping comprises, in response to determining that the actual storage capacity is sufficient to write the data, mapping the LBA associated with the command to the physical block address. 12. The computer-implemented method of claim 11 , comprising: in response to determining that the actual storage capacity is insufficient to write the data, rejecting the command. 13. The computer-implemented method of claim 10 , comprising: determining whether the LBA associated with the command is unavailable; and in response to determining that the LBA associated with the command is unavailable, determining that the storage valid count is not impacted. 14. The computer-implemented method of claim 13 , comprising: in response to determining that the LBA associated with the command is available, determining that the storage valid count is impacted. 15. The computer-implemented method of claim 10 , wherein the logical exported capacity is greater than an actual storage capacity of the storage system. 16. The computer-implemented method of claim 10 , comprising: receiving a second command from the host to discard data; determining whether an LBA associated with the received second command is unavailable; after receiving the second command, decreasing the storage valid count by a size of the data to discard, when the LBA associated with the received second command is unavailable; and after receiving the second command, refraining from updating the storage valid count by the size of the data to discard, when the LBA associated with the received second command is available. 17. The computer-implemented method of claim 16 , comprising: determining whether the LBA associated with the second command exceeds the logical exported capacity of the storage system; when the LBA associated with the second command does not exceed the logical exported capacity: executing the second command; and when the LBA associated with the second command exceeds the logical exported capacity: refraining from decreasing the storage valid count; and refraining from executing the second command, where
by allocating resources to storage systems · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
by facilitating the interaction with a user or administrator · CPC title
in hierarchically structured memory systems, e.g. virtual memory systems · CPC title
in block erasable memory, e.g. flash memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.