Fetching Query Results Through Cloud Object Stores
US-2024394271-A1 · Nov 28, 2024 · US
US9703527B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9703527-B2 |
| Application number | US-201313735767-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 7, 2013 |
| Priority date | Dec 31, 2012 |
| Publication date | Jul 11, 2017 |
| Grant date | Jul 11, 2017 |
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 device and method for reallocating storage device resources based on an estimated fill level of a host buffer are disclosed. In one embodiment, a storage device receives, from a host device, a rate at which the host device stores data in its buffer and tracks an amount of data that was received from the host device. The storage device estimates a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time. If the estimated fill level of the buffer is above a threshold, the storage device increases a rate of receiving data from the host device.
Opening claim text (preview).
What is claimed is: 1. A storage device comprising: a memory; an interface through which to communicate with a host device, wherein the host device has a buffer configured to store data before the data is sent to the storage device for storage in the memory; and a controller in communication with the memory and the interface, wherein the controller is configured to: receive, from the host device, a rate at which the host device stores data in the buffer; track an amount of data that was received from the buffer in the host device over time; estimate a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time; and if the estimated fill level of the buffer is above a threshold, increase a rate of receiving data from the host device in order to avoid the buffer in the host device from overflowing. 2. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data to a rate higher than the rate at which the host device stores data in the buffer. 3. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by reducing storage device resources allocated to a garbage collection operation. 4. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by reducing a rate of receiving data from other sources. 5. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by giving higher priority to commands in a packed command that are associated with data stored in the buffer. 6. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources as a linear function of an estimated available capacity of the buffer. 7. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources as a non-linear function of an estimated available capacity of the buffer in order to decrease the fill level below the threshold. 8. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources according to a hysteresis function. 9. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources according to a rationing strategy. 10. The storage device of claim 1 , wherein the controller is further configured to reset the estimate of the fill level of the buffer. 11. The storage device of claim 10 , wherein the estimate is reset periodically. 12. The storage device of claim 10 , wherein the estimate is reset responsive to the controller concluding the buffer is empty. 13. The storage device of claim 12 , wherein the controller concludes the buffer is empty responsive to the host device denying the storage device's request for additional data from the buffer. 14. The storage device of claim 12 , wherein the controller concludes the buffer is empty response to the estimate being a negative value. 15. The storage device of claim 10 , wherein the estimate of the fill level of the buffer is reset by setting the estimate, the elapsed time, and the tracked amount of data to zero. 16. The storage device of claim 10 , wherein the estimate of the fill level of the buffer is reset by setting the elapsed time and the tracked amount of data to zero but retaining the estimate as an additional parameter for future estimates. 17. The storage device of claim 1 , wherein: the host device is configured to send additional data to the storage device that was not stored in the buffer; and the controller is configured to exclude this additional data in the controller's estimation of the fill level of the buffer. 18. The storage device of claim 1 , wherein: the host device is configured to send a plurality of streams of data to the storage device; each stream of data has its own respective buffer; and the controller is further configured to track an amount of data received from each stream. 19. The storage device of claim 1 , wherein the controller is further configured to track an amount of data received from different sources in the host device. 20. A method for reallocating storage device resources based on an estimated fill level of a host buffer, the method comprising: performing the following in a controller in a storage device in communication with a host device having a buffer for storing data before the data is sent to the storage device for storage in a memory of the storage device: receiving, from the host device, a rate at which the host device stores data in the buffer; tracking an amount of data that was received from the buffer in the host device over time; estimating a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time; and if the estimated fill level of the buffer is above a threshold, increasing a rate of receiving data from the host device in order to avoid the buffer in the host device from overflowing. 21. The method of claim 20 , wherein the controller increases the rate of receiving data to a rate higher than the rate at which the host device stores data in the buffer. 22. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by reducing storage device resources allocated to a garbage collection operation. 23. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by reducing a rate of receiving data from other sources. 24. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by giving higher priority to commands in a packed command that are associated with data stored in the buffer. 25. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources as a linear function of an estimated available capacity of the buffer. 26. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources as a non-linear function of an estimated available capacity of the buffer in order to decrease the fill level below the threshold. 27. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources according to a hysteresis function. 28. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources according to a rationing strategy. 29. The method of claim 20 further comprising resetting the estimate of the fill level of the buffer. 30. The method of claim 29 , wherein the estimate is reset periodically. 31. The method of claim 29 , wherein the estimate is reset responsive to the controller concluding the buffer is empty. 32. The method of claim 31 , wherein the controller concludes the buffer is empty responsive to the host device denying the storage device's request for additional data from the buffer. 33. The method of claim 31 , wherei
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
in relation to response time · CPC title
for overflow or underflow handling, e.g. full or empty flags · CPC title
Data buffering arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.