keith-turner commented on code in PR #4551: URL: https://github.com/apache/accumulo/pull/4551#discussion_r1597500210
########## server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java: ########## @@ -246,9 +246,30 @@ public ScanServer(ScanServerOpts opts, String[] args) { LOG.warn( "Tablet metadata caching less than one minute, may cause excessive scans on metadata table."); } - tabletMetadataCache = - Caffeine.newBuilder().expireAfterWrite(cacheExpiration, TimeUnit.MILLISECONDS) - .scheduler(Scheduler.systemScheduler()).recordStats().build(tabletMetadataLoader); + + // Get the cache refresh percentage property + // Value must be less than 100% as 100 or over would effectively disable it + double cacheRefreshPercentage = + getConfiguration().getFraction(Property.SSERV_CACHED_TABLET_METADATA_REFRESH_PERCENT); + Preconditions.checkArgument(cacheRefreshPercentage < cacheExpiration, + "Tablet metadata cache refresh percentage is '%s' but must be less than 1", + cacheRefreshPercentage); + + var builder = Caffeine.newBuilder().expireAfterWrite(cacheExpiration, TimeUnit.MILLISECONDS) Review Comment: > would create a thread pool - not sure what the numbers should be. One factor that I do not fully understand ATM is bulk updates w.r.t. to refresh operation in Caffeine. A comment was made on #4544 stating that caffeine refresh may be able to batch refreshes. If so, then that could work nicely with using an Accumulo batch scanner to refresh lots of tablets metadata in one go and would also generally mean we probably only need few threads for refresh. -- 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: notifications-unsubscr...@accumulo.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org