aiborodin commented on code in PR #13340: URL: https://github.com/apache/iceberg/pull/13340#discussion_r2165747315
########## flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/TableMetadataCache.java: ########## @@ -220,37 +238,59 @@ SchemaInfo getSchemaInfo() { */ static class SchemaInfo { private final Map<Integer, Schema> schemas; - private final Map<Schema, Tuple2<Schema, CompareSchemasVisitor.Result>> lastResults; + private final Cache<Schema, SchemaCompareInfo> lastResults; Review Comment: I reverted the cache to use a `LinkedHashMap`. I also added [this benchmark](https://github.com/aiborodin/iceberg/blob/optimise-row-data-conversion/flink/v2.0/flink/src/jmh/java/org/apache/iceberg/flink/sink/dynamic/CacheBenchmark.java#L44) to compare it with the caffeine implementation. Here, `LRUCache` is the `LinkedHashMap` based cache. As you suggested @pvary, the `LinkedHashMap` cache is almost twice as fast: ``` * Benchmark Mode Cnt Score Error Units * CacheBenchmark.testCaffeineCacheMaxSize_Get thrpt 5 929.031 ± 84.510 ops/s * CacheBenchmark.testCaffeineCacheMaxSize_Put thrpt 5 548.677 ± 12.191 ops/s * CacheBenchmark.testLRUCache_Get thrpt 5 1657.313 ± 71.981 ops/s * CacheBenchmark.testLRUCache_Put thrpt 5 1206.151 ± 112.609 ops/s ``` We should probably replace the caffeine cache [here](https://github.com/apache/iceberg/blob/main/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/TableMetadataCache.java#L55) as well. Thank you for your review and valuable feedback! I hope we can get this in soon :) -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org