US 12,147,348 B2
Method and apparatus for cache slot allocation based on data origination location or final data destination location
John Creed, Innishannon (IE)
Assigned to Dell Products, L.P., Hopkinton, MA (US)
Filed by Dell Products, L.P., Hopkinton, MA (US)
Filed on Jul. 5, 2022, as Appl. No. 17/857,679.
Application 17/857,679 is a division of application No. 16/881,100, filed on May 22, 2020, granted, now 11,416,407.
Prior Publication US 2022/0334976 A1, Oct. 20, 2022
Int. Cl. G06F 12/0871 (2016.01); G06F 9/50 (2006.01); G06F 11/30 (2006.01); G06F 11/34 (2006.01); G06F 12/0868 (2016.01); G06F 12/0879 (2016.01)
CPC G06F 12/0871 (2013.01) [G06F 9/505 (2013.01); G06F 11/3034 (2013.01); G06F 11/3409 (2013.01); G06F 12/0868 (2013.01); G06F 12/0879 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for performing cache slot allocation based on data origination location, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:
receiving a read IO (Input/Output) operation by a storage system from a host computer, the host computer being external to the storage system, the read IO operation requesting the storage system to transmit data that is stored in permanent storage on the storage system to the external host computer, the storage system having a faster cache, a slower cache, and the permanent storage, the faster cache being faster than the slower cache, the slower cache being faster than the permanent storage;
determining a storage location of the data associated with the read IO operation in the permanent storage;
after determining the storage location of the data associated with the read IO operation in permanent storage, selecting a cache slot for the read IO operation from either the faster cache or the slower cache based on a predicted amount of time that the data associated with the read IO operation will use the selected cache slot in connection with processing the read IO operation; and
after selecting the cache slot for the read IO operation from either the faster cache or the slower cache, copying the data associated with the read IO operation from the storage location in permanent storage to the selected cache slot, and then transmitting the data associated with the read IO operation from the selected cache slot to the external host computer;
wherein the predicted amount of time that the data associated with the data associated with the read IO operation will use of the selected cache slot comprises a sum of:
a first predicted amount of time associated with copying the data associated with the read IO operation from the storage location in permanent storage to the selected cache slot; and
a second predicted amount of time associated with transmitting the data associated with the read IO operation from the selected cache slot to the external host computer.