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 <[email protected]>
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());
}