This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch elasticity
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push:
new 7ea10de6c8 Refactor classes to use the Caches object (#4359)
7ea10de6c8 is described below
commit 7ea10de6c8af6a8c79e0ae6aadcc491566e75cee
Author: Dave Marion <[email protected]>
AuthorDate: Tue Mar 12 08:10:10 2024 -0400
Refactor classes to use the Caches object (#4359)
---
.../java/org/apache/accumulo/core/util/cache/Caches.java | 7 ++++++-
.../accumulo/server/compaction/CompactionJobGenerator.java | 4 ++--
.../accumulo/server/conf/ServerConfigurationFactory.java | 14 ++++++++------
.../org/apache/accumulo/server/fs/VolumeManagerImpl.java | 6 ++++--
4 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/util/cache/Caches.java
b/core/src/main/java/org/apache/accumulo/core/util/cache/Caches.java
index a96af36bc5..f5ef8e4c8f 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/cache/Caches.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/cache/Caches.java
@@ -42,12 +42,14 @@ public class Caches implements MetricsProducer {
COMPACTION_CONFIGS,
COMPACTION_DIR_CACHE,
COMPACTION_DISPATCHERS,
+ COMPACTION_SERVICE_UNKNOWN,
COMPACTOR_GROUP_ID,
COMPRESSION_ALGORITHM,
CRYPT_PASSWORDS,
HOST_REGEX_BALANCER_TABLE_REGEX,
INSTANCE_ID,
NAMESPACE_ID,
+ NAMESPACE_CONFIGS,
PROP_CACHE,
RECOVERY_MANAGER_PATH_CACHE,
SCAN_SERVER_TABLET_METADATA,
@@ -56,10 +58,13 @@ public class Caches implements MetricsProducer {
SPLITTER_FILES,
SPLITTER_STARTING,
SPLITTER_UNSPLITTABLE,
+ TABLE_CONFIGS,
TABLE_ID,
+ TABLE_PARENT_CONFIGS,
TABLE_ZOO_HELPER_CACHE,
TSRM_FILE_LENGTHS,
- TINYLFU_BLOCK_CACHE;
+ TINYLFU_BLOCK_CACHE,
+ VOLUME_HDFS_CONFIGS;
}
private static final Logger LOG = LoggerFactory.getLogger(Caches.class);
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java
b/server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java
index 02e3dc2fca..1d88de2eaa 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java
@@ -55,7 +55,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.benmanes.caffeine.cache.Cache;
-import com.github.benmanes.caffeine.cache.Caffeine;
public class CompactionJobGenerator {
private static final Logger log =
LoggerFactory.getLogger(CompactionJobGenerator.class);
@@ -86,7 +85,8 @@ public class CompactionJobGenerator {
v.isEmpty() ? Map.of() : Collections.unmodifiableMap(v)));
}
unknownCompactionServiceErrorCache =
- Caffeine.newBuilder().expireAfterWrite(5, TimeUnit.MINUTES).build();
+
Caches.getInstance().createNewBuilder(CacheName.COMPACTION_SERVICE_UNKNOWN,
false)
+ .expireAfterWrite(5, TimeUnit.MINUTES).build();
}
public Collection<CompactionJob> generateJobs(TabletMetadata tablet,
Set<CompactionKind> kinds) {
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
b/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
index 78b1e4f18b..c6f32946c3 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
@@ -36,6 +36,8 @@ import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.SiteConfiguration;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
+import org.apache.accumulo.core.util.cache.Caches;
+import org.apache.accumulo.core.util.cache.Caches.CacheName;
import org.apache.accumulo.core.util.threads.ThreadPools;
import org.apache.accumulo.core.util.threads.Threads;
import org.apache.accumulo.server.ServerContext;
@@ -49,7 +51,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.benmanes.caffeine.cache.Cache;
-import com.github.benmanes.caffeine.cache.Caffeine;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -80,11 +81,12 @@ public class ServerConfigurationFactory extends
ServerConfiguration {
this.systemConfig = memoize(() -> new SystemConfiguration(context,
SystemPropKey.of(context.getInstanceID()), siteConfig));
tableParentConfigs =
- Caffeine.newBuilder().expireAfterAccess(CACHE_EXPIRATION_HRS,
TimeUnit.HOURS).build();
- tableConfigs =
- Caffeine.newBuilder().expireAfterAccess(CACHE_EXPIRATION_HRS,
TimeUnit.HOURS).build();
- namespaceConfigs =
- Caffeine.newBuilder().expireAfterAccess(CACHE_EXPIRATION_HRS,
TimeUnit.HOURS).build();
+ Caches.getInstance().createNewBuilder(CacheName.TABLE_PARENT_CONFIGS,
false)
+ .expireAfterAccess(CACHE_EXPIRATION_HRS, TimeUnit.HOURS).build();
+ tableConfigs =
Caches.getInstance().createNewBuilder(CacheName.TABLE_CONFIGS, false)
+ .expireAfterAccess(CACHE_EXPIRATION_HRS, TimeUnit.HOURS).build();
+ namespaceConfigs =
Caches.getInstance().createNewBuilder(CacheName.NAMESPACE_CONFIGS, false)
+ .expireAfterAccess(CACHE_EXPIRATION_HRS, TimeUnit.HOURS).build();
refresher = new ConfigRefreshRunner();
Runtime.getRuntime()
diff --git
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
index 1c1e7a4fd5..7607d5ceb9 100644
---
a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
+++
b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java
@@ -47,6 +47,8 @@ import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.fate.FateId;
import org.apache.accumulo.core.spi.fs.VolumeChooser;
import org.apache.accumulo.core.util.Pair;
+import org.apache.accumulo.core.util.cache.Caches;
+import org.apache.accumulo.core.util.cache.Caches.CacheName;
import org.apache.accumulo.core.util.threads.ThreadPools;
import org.apache.accumulo.core.volume.Volume;
import org.apache.accumulo.core.volume.VolumeConfiguration;
@@ -70,7 +72,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.benmanes.caffeine.cache.Cache;
-import com.github.benmanes.caffeine.cache.Caffeine;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@@ -81,7 +82,8 @@ public class VolumeManagerImpl implements VolumeManager {
private static final HashSet<String> WARNED_ABOUT_SYNCONCLOSE = new
HashSet<>();
private static final Cache<Pair<Configuration,String>,Configuration>
HDFS_CONFIGS_FOR_VOLUME =
- Caffeine.newBuilder().expireAfterWrite(24, TimeUnit.HOURS).build();
+ Caches.getInstance().createNewBuilder(CacheName.VOLUME_HDFS_CONFIGS,
false)
+ .expireAfterWrite(24, TimeUnit.HOURS).build();
private final Map<String,Volume> volumesByName;
private final Multimap<URI,Volume> volumesByFileSystemUri;