Allocation enforcement in a multi-tenant cache mechanism
First Claim
1. A computer-implemented cache optimization method comprising:
- monitoring cache access rate for a plurality of cache tenants sharing the same cache mechanism having an amount of data storage space,wherein each cache tenant is allocated a cache space having a cache size within the data storage space;
determining cache profiles for the plurality of cache tenants according to data collected during the monitoring;
analyzing the cache profiles for the plurality of cache tenants to determine an expected cache usage model for the cache mechanism;
analyzing the cache usage model and factors related to cache efficiency or performance for the plurality of cache tenants to dictate one or more occupancy constraints that define data storage space allocations to the plurality of cache tenants;
examining the data storage allocations to the plurality of cache tenants, in response to receiving a request to increase a first cache size by an amount so that additional cache space is allocated to a first cache tenant;
in response to determining that there is a second cache tenant from among the plurality of cache tenants for which reducing a second cache size allocated to the second cache tenant by the amount will not violate the occupancy constraints for a cache size allocated to the second cache tenant,decreasing the second cache size by deallocating data storage space allocated to the second cache tenant by the amount and increasing the first cache size by allocating the same amount of data storage space to the first cache tenant to satisfy the request; and
in response to determining that there is not a second cache tenant from among the plurality of cache tenants for which reducing a second cache size allocated to the second cache tenant by the amount will not violate the occupancy constraints for a cache size allocated to the second cache tenant, increasing the first cache size by allocating the amount of data storage space to the first cache tenant without deallocating the same amount of data storage space allocated to another cache tenant from among the plurality of cache tenants.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for cache optimization are provided. The method comprises monitoring cache access rate for a plurality of cache tenants sharing same cache mechanism having an amount of data storage space, wherein a first cache tenant having a first cache size is allocated a first cache space within the data storage space, and wherein a second cache tenant having a second cache size is allocated a second cache space within the data storage space. The method further comprises determining cache profiles for at least the first cache tenant and the second cache tenant according to data collected during the monitoring; analyzing the cache profiles for the plurality of cache tenants to determine an expected cache usage model for the cache mechanism; and analyzing the cache usage model and factors related to cache efficiency or performance for the one or more cache tenants to dictate one or more occupancy constraints.
19 Citations
13 Claims
-
1. A computer-implemented cache optimization method comprising:
-
monitoring cache access rate for a plurality of cache tenants sharing the same cache mechanism having an amount of data storage space, wherein each cache tenant is allocated a cache space having a cache size within the data storage space; determining cache profiles for the plurality of cache tenants according to data collected during the monitoring; analyzing the cache profiles for the plurality of cache tenants to determine an expected cache usage model for the cache mechanism; analyzing the cache usage model and factors related to cache efficiency or performance for the plurality of cache tenants to dictate one or more occupancy constraints that define data storage space allocations to the plurality of cache tenants; examining the data storage allocations to the plurality of cache tenants, in response to receiving a request to increase a first cache size by an amount so that additional cache space is allocated to a first cache tenant; in response to determining that there is a second cache tenant from among the plurality of cache tenants for which reducing a second cache size allocated to the second cache tenant by the amount will not violate the occupancy constraints for a cache size allocated to the second cache tenant, decreasing the second cache size by deallocating data storage space allocated to the second cache tenant by the amount and increasing the first cache size by allocating the same amount of data storage space to the first cache tenant to satisfy the request; and in response to determining that there is not a second cache tenant from among the plurality of cache tenants for which reducing a second cache size allocated to the second cache tenant by the amount will not violate the occupancy constraints for a cache size allocated to the second cache tenant, increasing the first cache size by allocating the amount of data storage space to the first cache tenant without deallocating the same amount of data storage space allocated to another cache tenant from among the plurality of cache tenants. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented cache optimization system comprising:
-
a profiler for monitoring cache access rate for a plurality of cache tenants sharing same cache mechanism having an amount of data storage space, wherein each cache tenant is allocated a cache space having a cache size within the data storage space; the profiler determining cache profiles for the plurality of cache tenants according to data collected during the monitoring; an assembler for analyzing the cache profiles for the plurality of cache tenants to determine an expected cache usage model for the cache mechanism; a partitioner for analyzing the cache usage model and factors related to cache efficiency or performance for the plurality of cache tenants to dictate one or more occupancy constraints that define data storage space allocations to the plurality of cache tenants; a partition enforcer for examining the data storage allocations to the plurality of cache tenants, in response to receiving a request to increase a first cache size by an amount so that additional cache space is allocated to a first cache tenant; a logic unit for selecting a second cache tenant from among the plurality of cache tenants for which reducing a second cache size allocated to the second cache tenant by the amount will not violate the occupancy constraints for a cache size allocated to the second cache tenant, and decreasing the second cache size by deallocating data storage space allocated to the second cache tenant by the amount and increasing the first cache size by allocating the same amount of data storage space to the first cache tenant to satisfy the request; and a logic unit for increasing the first cache size by allocating the amount of data storage space to the first cache tenant without deallocating the same amount of data storage space allocated to another cache tenant from among the plurality of cache tenants, in response to determining that a second cache tenant cannot be selected.
-
Specification