Look into replacing the ConcurrentHashMap(s) used in the Catalog service to cache metadata with LoadingCache.
Caching metadata using a LoadingCache will allow:
- Better coherency by adding expireAfter and refreshAfter clause to the cache
- Weak reference eviction to respond to garbage collection
- Putting a cap on maximum number of caches entires to avoid OOMs and excessive GC
- Assigning different weights for each entry (For more efficient eviction)