| CPC G06F 12/084 (2013.01) [G06F 9/5016 (2013.01); G06F 12/0871 (2013.01)] | 20 Claims |

|
1. A method comprising:
in a data storage system comprising a plurality of compute nodes that allocate portions of local cache to a shared cache that is organized into a plurality of partitions, each of the partitions containing data slots of only one size in terms of storage capacity, different ones of the partitions being characterized by different data slot sizes, each external input-output (IO) received by one of the compute nodes being serviced by selecting an unallocated data slot that is equal to or larger in size than the IO and allocating that data slot for servicing the IO and deallocating that data slot after servicing the IO, and wherein at least some of the IOs are smaller in size than the data slots allocated to service those IOs, resulting in a cache efficiency loss for that IO equal to the difference between the data slot size and the IO size, steps comprising:
calculating cache efficiency loss of each of the partitions due to allocated data slots being greater in size than the IOs serviced with those allocated data slots, the cache efficiency loss calculated as a difference between amount of shared cache allocated to service the IOs and amount of shared cache used to cache the IOs, where amount of shared cache allocated to service the IOs equals the product of the number of IOs serviced and the size of the data slots of the partition and the amount of shared cache used to cache the IOs equals a sum of sizes of IOs serviced with the data slots of the partition; and
reducing cache efficiency loss of all the partitions in aggregate based on the calculated cache efficiency loss of each of the partitions by increasing how many data slots of a first size are maintained by the data storage system and decreasing how many data slots of a second size are maintained by the data storage system, where the data slots of the first size contribute less to cache efficiency loss than the data slots of the second size.
|