hudeqi commented on code in PR #14511: URL: https://github.com/apache/kafka/pull/14511#discussion_r1349931016
########## core/src/test/scala/unit/kafka/log/remote/RemoteIndexCacheTest.scala: ########## @@ -554,6 +554,115 @@ class RemoteIndexCacheTest { assertTrue(cache.internalCache().estimatedSize() == 0) } + @Test + def testCorrectnessForCacheAndIndexFilesWhenResizeCache(): Unit = { + + def getIndexFileFromRemoteCacheDir(suffix: String) = { + Files.walk(cache.cacheDir()) + .filter(Files.isRegularFile(_)) + .filter(path => path.getFileName.toString.endsWith(suffix)) + .findAny() + } + + // The test process for resizing is: put 1 entry -> evict to empty -> put 3 entrys with limited capacity of 2 entrys -> evict to 1 entry + val estimateEntryBytesSize = estimateOneEntryBytesSize() + val tpId = new TopicIdPartition(Uuid.randomUuid(), new TopicPartition("foo", 0)) + val metadataList = generateRemoteLogSegmentMetadata(size = 3, tpId) + + assertCacheSize(0) + // getIndex for first time will call rsm#fetchIndex + val cacheEntry = cache.getIndexEntry(metadataList.head) + assertCacheSize(1) + assertTrue(getIndexFileFromRemoteCacheDir(LogFileUtils.INDEX_FILE_SUFFIX).isPresent) + assertTrue(getIndexFileFromRemoteCacheDir(LogFileUtils.TXN_INDEX_FILE_SUFFIX).isPresent) + assertTrue(getIndexFileFromRemoteCacheDir(LogFileUtils.TIME_INDEX_FILE_SUFFIX).isPresent) + + // Reduce the cache limit to 1 to ensure that all are evicted. Review Comment: updated. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org