Processing flush requests by utilizing storage system write notifications
First Claim
1. A computer-implemented method to manage consistency of data in a data cache of a storage device, the computer-implemented method comprising:
- receiving a request from a software program to flush the data cache;
generating a notification command that, when executed by the storage device, generates a notification indicating writing of at least one data item within the data cache to a non-volatile memory, wherein the notification command identifies the at least one data item based at least in part on an identifier of the at least one data item;
transmitting the notification command to the storage device via a communication link;
receiving the notification from the storage device; and
transmitting to the software program an indication of completion of the request to flush the data cache.
8 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for utilization of notification or ordering commands are disclosed that can enable more efficient processing of flush requests from software programs and increase data consistency in storage devices. For example, when an application requests that a data cache be flushed, a computing device may—instead of completely emptying the data cache—notify the application of a successful flush once relevant data of the application has been committed to non-volatile memory. Targeted notifications, which may identify the relevant data in the data cache, can limit the scope of a flush request, such that the speed and efficiency of the command is increased relative to a non-specific full-cache flush. Such increases in efficiency of flush requests may greatly increase the speed and efficiency of storage devices, and consequently the performance of programs utilizing such storage devices.
491 Citations
24 Claims
-
1. A computer-implemented method to manage consistency of data in a data cache of a storage device, the computer-implemented method comprising:
-
receiving a request from a software program to flush the data cache; generating a notification command that, when executed by the storage device, generates a notification indicating writing of at least one data item within the data cache to a non-volatile memory, wherein the notification command identifies the at least one data item based at least in part on an identifier of the at least one data item; transmitting the notification command to the storage device via a communication link; receiving the notification from the storage device; and transmitting to the software program an indication of completion of the request to flush the data cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a communication interface associated with a host system and configured to transmit communications between the host system and a storage system; and a processor associated with the host system and configured with specific computer-executable instructions that, when executed by the processor, cause the processor to; receive a request from a software program to flush a data cache of the storage system; generate a notification command that, when executed by the storage system, generates a notification indicating writing of at least one data item within the data cache to a non-volatile memory of the storage system, wherein the notification command identifies the at least one data item based at least in part on an identifier of the at least one data item; transmit the notification command to the storage system via the communication interface; receive the notification from the storage system; and transmit to the software program an indication of completion of the request to flush the data cache. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable medium including computer-executable instructions that, when executed by a computing device, cause the computing device to:
-
receive a request from a software program to flush a data cache of a storage system; generate a notification command that, when executed by the storage system, generates a notification indicating writing of at least one data item within the data cache to a non-volatile memory, wherein the notification command identifies the at least one data item based at least in part on an identifier of the at least one data item; transmit the notification command to the storage system via a communication interface; receive the notification from the storage system; and transmit to the software program an indication of completion of the request to flush the data cache. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification