Dynamic prefetching for database queries
US-11816103-B1 · Nov 14, 2023 · US
US12333183B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12333183-B2 |
| Application number | US-202217709699-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 31, 2022 |
| Priority date | Mar 31, 2022 |
| Publication date | Jun 17, 2025 |
| Grant date | Jun 17, 2025 |
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 data storage device receives a speculative read command from a host identifying logical block addresses. The speculative read command is not required be to executed within a certain amount of time or even at all. The data storage device at least partially executes the speculative read command in response to determining that such execution will not reduce performance of the data storage device. At least partially executing the speculative read command causes data associated with at least some of the logical block addresses to be read from the non-volatile memory and stored in at least one buffer. 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 data storage device comprising: a non-volatile memory; and a processor configured to: receive a speculative read command from a host identifying a plurality of logical block addresses, wherein the speculative read command is not required to be executed within a certain amount of time or even at all; and partially execute the speculative read command in response to determining that such execution will not reduce performance of the data storage device and not in response to availability of at least one buffer; wherein: partially executing the speculative read command causes data associated with some of the plurality of logical block addresses to be read from the non-volatile memory and stored in the at least one buffer; and partially executing the speculative read command does not guarantee that the speculative read command will be completely executed. 2. The data storage device of claim 1 , wherein the processor is further configured to allow the host to access the data stored in the at least one buffer. 3. The data storage device of claim 1 , wherein the speculative read command is partially executed during idle time of the data storage device. 4. The data storage device of claim 1 , wherein the speculative read command is partially executed in response to the data storage device having surplus bandwidth. 5. The data storage device of claim 1 , wherein the speculative read command is partially executed in response to the at least one buffer being available. 6. The data storage device of claim 1 , wherein the speculative read command is partially executed prior to the data storage device entering a low-power or sleep mode. 7. The data storage device of claim 1 , wherein the processor is further configured to partially execute the speculative read command intermediately between executing non-speculative read commands. 8. The data storage device of claim 1 , wherein the at least one buffer is in the data storage device. 9. The data storage device of claim 1 , wherein the at least one buffer is in the host. 10. The data storage device of claim 1 , wherein the at least one buffer comprises a plurality of buffers, one of which is in the data storage device and another one of which is in the host. 11. The data storage device of claim 1 , wherein the processor is further configured to replace at least some portions of the data in the at least one buffer that are lost responsive to an area of the at least one buffer storing the at least some portions of the data being reclaimed. 12. The data storage device of claim 1 , wherein the processor is further configured to place the speculative read command in a low-priority queue. 13. The data storage device of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory. 14. A method comprising: performing the following in a data storage device comprising a non-volatile memory: receiving a low-priority pre-fetch command from a host, wherein the low-priority pre-fetch command is not required to be executed within a certain amount of time or even at all; each time it is determined that the low-priority pre-fetch command can be executed in part without affecting performance of the higher-priority command, and not in response to availability of a volatile memory, partially executing a part of the low-priority pre-fetch command by: reading data from the non-volatile memory associated with the executed part; and caching the data in the volatile memory; and dynamically rebuilding lost data removed from the volatile memory after the data storage device or the host reclaims at least a portion of the volatile memory, wherein the data storage device or the host is allowed to reclaim the at least a portion of the volatile memory because full accumulation in the volatile memory of all of the data associated with the low-priority pre-fetch command is not guaranteed. 15. The method of claim 14 , further comprising: in response to later receiving a read command from the host for data identified in the pre-fetch command, reading only data from the non-volatile memory that was not cached in the volatile memory. 16. The method of claim 14 , wherein the volatile memory is located at least partially in the data storage device. 17. The method of claim 14 , wherein the volatile memory is located at least partially in the host. 18. The method of claim 14 , further comprising: converting the low-priority pre-fetch command into a higher priority read command in response to a request from the host. 19. The method of claim 14 , further comprising: invalidating the low-priority pre-fetch command and replacing it with a higher priority read command in response to a request from the host. 20. A data storage device comprising: a non-volatile memory; and means for: receiving a speculative read command from a host identifying a plurality of logical block addresses, wherein the speculative read command is not required be to executed within a certain amount of time or even at all; and partially executing the speculative read command in response to determining that such execution will not reduce performance of the data storage device and not in response to availability of at least one buffer; wherein: partially executing the speculative read command causes data associated with some of the plurality of logical block addresses to be read from the non-volatile memory and stored in at least one buffer; and partially executing the speculative read command does not guarantee that the speculative read command will be completely executed.
Improving I/O performance · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Data buffering arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.