dlmarion commented on a change in pull request #1818:
URL: https://github.com/apache/accumulo/pull/1818#discussion_r556655282
##########
File path:
core/src/main/java/org/apache/accumulo/core/classloader/DefaultContextClassLoaderFactory.java
##########
@@ -59,18 +60,23 @@ public DefaultContextClassLoaderFactory(final
AccumuloConfiguration accConf) {
}
private static void startCleanupThread(final Supplier<Map<String,String>>
contextConfigSupplier) {
- new Timer(className + "-cleanup", true).scheduleAtFixedRate(new
TimerTask() {
- @Override
- public void run() {
- Map<String,String> contextConfigs = contextConfigSupplier.get();
- LOG.trace("{}-cleanup thread, properties: {}", className,
contextConfigs);
- int prefixlen =
Property.VFS_CONTEXT_CLASSPATH_PROPERTY.getKey().length();
- Set<String> contextsInUse = contextConfigs.keySet().stream()
- .map(k -> k.substring(prefixlen)).collect(Collectors.toSet());
- LOG.trace("{}-cleanup thread, contexts in use: {}", className,
contextsInUse);
- AccumuloVFSClassLoader.removeUnusedContexts(contextsInUse);
- }
- }, 60_000, 60_000);
+ final ConfigurationCopy threadPoolProperties =
+ new ConfigurationCopy(contextConfigSupplier.get());
+ String size =
threadPoolProperties.get(Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE);
+ if (null == size || size.isEmpty()) {
+ threadPoolProperties.set(Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE,
+ Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE.getDefaultValue());
+ }
Review comment:
Changed in latest commit
##########
File path:
core/src/main/java/org/apache/accumulo/core/classloader/DefaultContextClassLoaderFactory.java
##########
@@ -59,18 +60,23 @@ public DefaultContextClassLoaderFactory(final
AccumuloConfiguration accConf) {
}
private static void startCleanupThread(final Supplier<Map<String,String>>
contextConfigSupplier) {
- new Timer(className + "-cleanup", true).scheduleAtFixedRate(new
TimerTask() {
- @Override
- public void run() {
- Map<String,String> contextConfigs = contextConfigSupplier.get();
- LOG.trace("{}-cleanup thread, properties: {}", className,
contextConfigs);
- int prefixlen =
Property.VFS_CONTEXT_CLASSPATH_PROPERTY.getKey().length();
- Set<String> contextsInUse = contextConfigs.keySet().stream()
- .map(k -> k.substring(prefixlen)).collect(Collectors.toSet());
- LOG.trace("{}-cleanup thread, contexts in use: {}", className,
contextsInUse);
- AccumuloVFSClassLoader.removeUnusedContexts(contextsInUse);
- }
- }, 60_000, 60_000);
+ final ConfigurationCopy threadPoolProperties =
+ new ConfigurationCopy(contextConfigSupplier.get());
+ String size =
threadPoolProperties.get(Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE);
+ if (null == size || size.isEmpty()) {
+ threadPoolProperties.set(Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE,
+ Property.GENERAL_SIMPLETIMER_THREADPOOL_SIZE.getDefaultValue());
+ }
+ ThreadPools.createGeneralScheduledExecutorService(threadPoolProperties)
+ .scheduleWithFixedDelay(Threads.createNamedRunnable(className +
"-cleanup", () -> {
+ ConfigurationCopy contextCleanerProperties =
+ new ConfigurationCopy(contextConfigSupplier.get());
+ LOG.trace("{}-cleanup thread, properties: {}", className,
threadPoolProperties);
+ Set<String> contextsInUse = contextCleanerProperties
+
.getAllPropertiesWithPrefixStripped(Property.VFS_CONTEXT_CLASSPATH_PROPERTY).keySet();
Review comment:
Changed in latest commit
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]