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());
           }

Reply via email to