Skip to content

Commit bf6488d

Browse files
sgup432Peter Alfonsi
authored and
Peter Alfonsi
committed
[Tiered Caching] Fix test testComputeIfAbsentWithFactoryBasedCacheCreation (opensearch-project#12700)
--------- Signed-off-by: Sagar Upadhyaya <sagar.upadhyaya.121@gmail.com>
1 parent 0fc1f40 commit bf6488d

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

modules/cache-common/src/main/java/org/opensearch/cache/common/tier/TieredSpilloverCache.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ public void onRemoval(RemovalNotification<K, V> notification) {
7979
.setValueType(builder.cacheConfig.getValueType())
8080
.setSettings(builder.cacheConfig.getSettings())
8181
.setWeigher(builder.cacheConfig.getWeigher())
82-
.setMaxSizeInBytes(builder.cacheConfig.getMaxSizeInBytes()) // TODO: Part of a workaround for an issue in TSC. Overall fix
83-
// coming soon
82+
.setMaxSizeInBytes(builder.cacheConfig.getMaxSizeInBytes())
83+
.setExpireAfterAccess(builder.cacheConfig.getExpireAfterAccess())
8484
.build(),
8585
builder.cacheType,
8686
builder.cacheFactories

modules/cache-common/src/test/java/org/opensearch/cache/common/tier/TieredSpilloverCacheTests.java

+16-14
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ public void testComputeIfAbsentWithFactoryBasedCacheCreation() throws Exception
119119
.getKey(),
120120
onHeapCacheSize * keyValueSize + "b"
121121
)
122+
.put(
123+
CacheSettings.getConcreteStoreNameSettingForCacheType(CacheType.INDICES_REQUEST_CACHE).getKey(),
124+
TieredSpilloverCache.TieredSpilloverCacheFactory.TIERED_SPILLOVER_CACHE_NAME
125+
)
126+
.put(FeatureFlags.PLUGGABLE_CACHE, "true")
122127
.build();
123128

124129
ICache<String, String> tieredSpilloverICache = new TieredSpilloverCache.TieredSpilloverCacheFactory().create(
@@ -127,12 +132,8 @@ public void testComputeIfAbsentWithFactoryBasedCacheCreation() throws Exception
127132
.setWeigher((k, v) -> keyValueSize)
128133
.setRemovalListener(removalListener)
129134
.setSettings(settings)
130-
.setCachedResultParser(new Function<String, CachedQueryResult.PolicyValues>() {
131-
@Override
132-
public CachedQueryResult.PolicyValues apply(String s) {
133-
return new CachedQueryResult.PolicyValues(20_000_000L);
134-
}
135-
}) // Values will always appear to have taken 20_000_000 ns = 20 ms to compute
135+
.setCachedResultParser(s -> new CachedQueryResult.PolicyValues(20_000_000L)) // Values will always appear to have taken
136+
// 20_000_000 ns = 20 ms to compute
136137
.build(),
137138
CacheType.INDICES_REQUEST_CACHE,
138139
Map.of(
@@ -145,20 +146,16 @@ public CachedQueryResult.PolicyValues apply(String s) {
145146

146147
TieredSpilloverCache<String, String> tieredSpilloverCache = (TieredSpilloverCache<String, String>) tieredSpilloverICache;
147148

148-
// Put values in cache more than it's size and cause evictions from onHeap.
149149
int numOfItems1 = randomIntBetween(onHeapCacheSize + 1, totalSize);
150-
List<String> onHeapKeys = new ArrayList<>();
151-
List<String> diskTierKeys = new ArrayList<>();
152150
for (int iter = 0; iter < numOfItems1; iter++) {
153151
String key = UUID.randomUUID().toString();
154152
LoadAwareCacheLoader<String, String> tieredCacheLoader = getLoadAwareCacheLoader();
155153
tieredSpilloverCache.computeIfAbsent(key, tieredCacheLoader);
156154
}
157-
tieredSpilloverCache.getOnHeapCache().keys().forEach(onHeapKeys::add);
158-
tieredSpilloverCache.getDiskCache().keys().forEach(diskTierKeys::add);
159-
160-
assertEquals(tieredSpilloverCache.getOnHeapCache().count(), onHeapKeys.size());
161-
assertEquals(tieredSpilloverCache.getDiskCache().count(), diskTierKeys.size());
155+
// Verify on heap cache size.
156+
assertEquals(onHeapCacheSize, tieredSpilloverCache.getOnHeapCache().count());
157+
// Verify disk cache size.
158+
assertEquals(numOfItems1 - onHeapCacheSize, tieredSpilloverCache.getDiskCache().count());
162159
}
163160

164161
public void testWithFactoryCreationWithOnHeapCacheNotPresent() {
@@ -180,6 +177,11 @@ public void testWithFactoryCreationWithOnHeapCacheNotPresent() {
180177
.getKey(),
181178
onHeapCacheSize * keyValueSize + "b"
182179
)
180+
.put(
181+
CacheSettings.getConcreteStoreNameSettingForCacheType(CacheType.INDICES_REQUEST_CACHE).getKey(),
182+
TieredSpilloverCache.TieredSpilloverCacheFactory.TIERED_SPILLOVER_CACHE_NAME
183+
)
184+
.put(FeatureFlags.PLUGGABLE_CACHE, "true")
183185
.build();
184186

185187
IllegalArgumentException ex = assertThrows(

0 commit comments

Comments
 (0)