This is an automated email from the ASF dual-hosted git repository. ddanielr pushed a commit to branch 2.1 in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push: new fdb49e5a92 Reuse the zooCache from serverContext (#5144) fdb49e5a92 is described below commit fdb49e5a92841607670c76884ef7a80d4627a931 Author: Daniel Roberts <ddani...@gmail.com> AuthorDate: Fri Dec 6 19:25:23 2024 +0000 Reuse the zooCache from serverContext (#5144) * Reuse the zooCache from serverContext Reuses the zooCache from the serverContext instead of creating a new one for each instaniation of MetadataConstraints This should result in less zookeeper connections as there is a higher chance of the serverContext's zooCache being populated. --- .../apache/accumulo/core/util/cleaner/CleanerUtil.java | 9 --------- .../server/constraints/MetadataConstraints.java | 17 ++--------------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/util/cleaner/CleanerUtil.java b/core/src/main/java/org/apache/accumulo/core/util/cleaner/CleanerUtil.java index bb6eed1c9d..228a01f7cd 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/cleaner/CleanerUtil.java +++ b/core/src/main/java/org/apache/accumulo/core/util/cleaner/CleanerUtil.java @@ -28,7 +28,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.accumulo.core.client.AccumuloClient; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.MutationsRejectedException; -import org.apache.accumulo.core.fate.zookeeper.ZooCache; import org.slf4j.Logger; /** @@ -132,12 +131,4 @@ public class CleanerUtil { } }); } - - // this is dubious; MetadataConstraints should probably use the ZooCache provided by context - // can be done in a follow-on action; for now, this merely replaces the previous finalizer - public static Cleanable zooCacheClearer(Object o, ZooCache zc) { - requireNonNull(zc); - return CLEANER.register(o, zc::clear); - } - } diff --git a/server/base/src/main/java/org/apache/accumulo/server/constraints/MetadataConstraints.java b/server/base/src/main/java/org/apache/accumulo/server/constraints/MetadataConstraints.java index ced97d0a68..29af11b8a2 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/constraints/MetadataConstraints.java +++ b/server/base/src/main/java/org/apache/accumulo/server/constraints/MetadataConstraints.java @@ -32,7 +32,6 @@ import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.data.constraints.Constraint; import org.apache.accumulo.core.dataImpl.KeyExtent; import org.apache.accumulo.core.fate.zookeeper.ServiceLock; -import org.apache.accumulo.core.fate.zookeeper.ZooCache; import org.apache.accumulo.core.fate.zookeeper.ZooUtil; import org.apache.accumulo.core.metadata.MetadataTable; import org.apache.accumulo.core.metadata.schema.DataFileValue; @@ -50,7 +49,6 @@ import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.Se import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.SuspendLocationColumn; import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.TabletColumnFamily; import org.apache.accumulo.core.util.ColumnFQ; -import org.apache.accumulo.core.util.cleaner.CleanerUtil; import org.apache.accumulo.server.ServerContext; import org.apache.hadoop.io.Text; import org.slf4j.Logger; @@ -60,9 +58,6 @@ public class MetadataConstraints implements Constraint { private static final Logger log = LoggerFactory.getLogger(MetadataConstraints.class); - private ZooCache zooCache = null; - private String zooRoot = null; - private static final boolean[] validTableNameChars = new boolean[256]; static { for (int i = 0; i < 256; i++) { @@ -272,20 +267,12 @@ public class MetadataConstraints implements Constraint { violations = addViolation(violations, 3); } } else if (new ColumnFQ(columnUpdate).equals(ServerColumnFamily.LOCK_COLUMN)) { - if (zooCache == null) { - zooCache = new ZooCache(context.getZooReader(), null); - CleanerUtil.zooCacheClearer(this, zooCache); - } - - if (zooRoot == null) { - zooRoot = context.getZooKeeperRoot(); - } - boolean lockHeld = false; String lockId = new String(columnUpdate.getValue(), UTF_8); try { - lockHeld = ServiceLock.isLockHeld(zooCache, new ZooUtil.LockID(zooRoot, lockId)); + lockHeld = ServiceLock.isLockHeld(context.getZooCache(), + new ZooUtil.LockID(context.getZooKeeperRoot(), lockId)); } catch (Exception e) { log.debug("Failed to verify lock was held {} {}", lockId, e.getMessage()); }