moomindani opened a new pull request, #16680: URL: https://github.com/apache/iceberg/pull/16680
Caffeine `2.9.3` dates to December 3, 2021; this bumps it to `3.2.0` (January 2025) — ~4.5 years and a major line newer. Dependabot ignores major updates for the gradle ecosystem (`version-update:semver-major`), so the catalog has stayed on 2.9.3. No source changes are required: the API Iceberg uses (`Caffeine.newBuilder`, `expireAfterAccess`/`expireAfterWrite`, `maximumSize`, `softValues`/`weakValues`, `removalListener`, `Ticker`, `LoadingCache`) is unchanged between 2.x and 3.x, and Iceberg already targets Java 17 (Caffeine 3.x requires Java 11+). Why it's worth doing, tied to how Iceberg uses Caffeine: - **Forward-compatibility:** 3.x drops the `sun.misc.Unsafe` dependency in favor of `VarHandle` (since 3.0). `Unsafe` memory access is deprecated for removal and warns on recent JDKs, so this matters for Iceberg/Spark running on newer Java. - **`expireAfterWrite` path:** 3.2 extended the expiration-write optimization to more operations. Iceberg already uses `expireAfterWrite` (`StandardEncryptionManager`, `RESTTableCache`, the S3 REST signer cache), and #14440 is proposing to add it to the catalog cache as well. Verified `iceberg-core`, `iceberg-aws`, `iceberg-hive-metastore`, `iceberg-spark-4.1`, and `iceberg-flink-1.20` compile, and core cache tests pass (`TestCachingCatalog`, `TestManifestCaching`, `TestCacheMetricsReport`, `TestContentCache`). Updated the bundled version in `open-api/LICENSE`. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
