[ https://issues.apache.org/jira/browse/ARTEMIS-4349?focusedWorklogId=869681&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-869681 ]
ASF GitHub Bot logged work on ARTEMIS-4349: ------------------------------------------- Author: ASF GitHub Bot Created on: 07/Jul/23 01:54 Start Date: 07/Jul/23 01:54 Worklog Time Spent: 10m Work Description: ben-manes commented on PR #4540: URL: https://github.com/apache/activemq-artemis/pull/4540#issuecomment-1624526398 Hi, If you do not have a performance reason to switch then staying with Guava's is perfectly fine. I would not use their `asMap().compute` as a wonky implementation given it was added so late (and you don't use it, so that's fine). Guava's is robust but not actively maintained (CacheBuilder's JavaDoc recommends Caffeine). The most common cause for tests to fail during a migration is that Caffeine switches eviction and listeners to be executed async by default, whereas Guava piggybacks on the calling thread. You can emulate that using `Caffeine.executor(Runnable::run)` if desired. The problem is that often tests assumed no concurrency (immediate eviction or callbacks invoked) and that is no longer a valid assumption. In both cache's their internal logic is very inexpensive (e.g. LRU reordering), but we do not know the cost of the user's callback. Since the JVM now offers shared threads and Caffeine offers an AsyncCache, defaulting to async to minimize user-facing latencies seemed like a reasonable choice. There are other subtle differences, such as if assuming lru eviction order, so you might want to review this [migration page](https://github.com/ben-manes/caffeine/wiki/Guava). Whatever you decide to do is fine with me. Feel welcome to reach out if you have any questions or concerns. Issue Time Tracking ------------------- Worklog Id: (was: 869681) Time Spent: 1h 40m (was: 1.5h) > Replace Guava cache with Caffeine > --------------------------------- > > Key: ARTEMIS-4349 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4349 > Project: ActiveMQ Artemis > Issue Type: Improvement > Affects Versions: 2.29.0 > Reporter: Alexey Markevich > Priority: Major > Time Spent: 1h 40m > Remaining Estimate: 0h > > based on benchmark https://github.com/ben-manes/caffeine/wiki/Benchmarks -- This message was sent by Atlassian Jira (v8.20.10#820010)