@@ -33,6 +33,9 @@ void ObjectCacheSizeController<AllocatorT>::work() {
3333 objCache_.config_ .l1EntriesLimit / 100 ) {
3434 auto averageObjSize = totalObjSize / currentNumEntries;
3535 auto newEntriesLimit = objCache_.config_ .cacheSizeLimit / averageObjSize;
36+ // entriesLimit should never exceed the configured entries limit
37+ newEntriesLimit =
38+ std::min (newEntriesLimit, objCache_.config_ .l1EntriesLimit );
3639 if (newEntriesLimit < currentEntriesLimit_ &&
3740 currentNumEntries >= newEntriesLimit) {
3841 // shrink cache when getting a lower new limit and current entries num
@@ -46,7 +49,7 @@ void ObjectCacheSizeController<AllocatorT>::work() {
4649 }
4750
4851 XLOGF_EVERY_MS (INFO, 60'000 ,
49- " CacheLib object-cache : total object size = {}, current "
52+ " CacheLib size-controller : total object size = {}, current "
5053 " entries = {}, average object size = "
5154 " {}, new entries limit = {}, current entries limit = {}" ,
5255 totalObjSize, currentNumEntries, averageObjSize,
@@ -73,7 +76,7 @@ void ObjectCacheSizeController<AllocatorT>::shrinkCacheByEntriesNum(
7376
7477 XLOGF_EVERY_MS (
7578 INFO, 60'000 ,
76- " CacheLib object-cache : request to shrink cache by {} entries. "
79+ " CacheLib size-controller : request to shrink cache by {} entries. "
7780 " Placeholders num before: {}, after: {}. currentEntriesLimit: {}" ,
7881 entries, size, objCache_.placeholders_ .size (), currentEntriesLimit_);
7982}
@@ -92,7 +95,7 @@ void ObjectCacheSizeController<AllocatorT>::expandCacheByEntriesNum(
9295
9396 XLOGF_EVERY_MS (
9497 INFO, 60'000 ,
95- " CacheLib object-cache : request to expand cache by {} entries. "
98+ " CacheLib size-controller : request to expand cache by {} entries. "
9699 " Placeholders num before: {}, after: {}. currentEntriesLimit: {}" ,
97100 entries, size, objCache_.placeholders_ .size (), currentEntriesLimit_);
98101}
0 commit comments