This is an automated email from the ASF dual-hosted git repository.

cshannon pushed a commit to branch elasticity
in repository https://gitbox.apache.org/repos/asf/accumulo.git

commit fc878c19d7cb9db7ca00f84b18131ee6712f3752
Merge: 8f68c3bade 8fe933a671
Author: Christopher L. Shannon <cshan...@apache.org>
AuthorDate: Fri May 17 16:50:27 2024 -0400

    Merge branch 'main' into elasticity

 .../server/compaction/PausedCompactionMetrics.java | 20 +++---
 .../server/constraints/MetadataConstraints.java    | 70 ++++++++++--------
 .../constraints/MetadataConstraintsTest.java       | 33 +++++++++
 .../java/org/apache/accumulo/manager/Manager.java  | 51 ++++++++++++-
 .../apache/accumulo/tserver/ScanServerMetrics.java | 10 +--
 .../accumulo/tserver/ThriftScanClientHandler.java  | 16 ++---
 .../tserver/metrics/TabletServerScanMetrics.java   | 84 +++++++++-------------
 .../tserver/metrics/TabletServerUpdateMetrics.java | 27 ++++---
 .../apache/accumulo/tserver/tablet/TabletBase.java |  2 +-
 9 files changed, 198 insertions(+), 115 deletions(-)

diff --cc 
server/base/src/main/java/org/apache/accumulo/server/constraints/MetadataConstraints.java
index c6a30040a1,1b99a5b307..7f1f5c21bc
--- 
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
@@@ -255,38 -235,6 +256,38 @@@ public class MetadataConstraints implem
        } else if (columnFamily.equals(ScanFileColumnFamily.NAME)) {
          violations = validateDataFileMetadata(violations,
              new String(columnUpdate.getColumnQualifier(), UTF_8));
 +      } else if (TabletColumnFamily.AVAILABILITY_COLUMN.equals(columnFamily, 
columnQualifier)) {
 +        try {
 +          TabletAvailabilityUtil.fromValue(new 
Value(columnUpdate.getValue()));
 +        } catch (IllegalArgumentException e) {
-           violations = addViolation(violations, 10);
++          violations = addViolation(violations, 16);
 +        }
 +      } else if (ServerColumnFamily.OPID_COLUMN.equals(columnFamily, 
columnQualifier)) {
 +        try {
 +          TabletOperationId.validate(new String(columnUpdate.getValue(), 
UTF_8));
 +        } catch (IllegalArgumentException e) {
 +          violations = addViolation(violations, 9);
 +        }
 +      } else if (ServerColumnFamily.SELECTED_COLUMN.equals(columnFamily, 
columnQualifier)) {
 +        try {
 +          SelectedFiles.from(new String(columnUpdate.getValue(), UTF_8));
 +        } catch (RuntimeException e) {
 +          violations = addViolation(violations, 11);
 +        }
 +      } else if (CompactedColumnFamily.NAME.equals(columnFamily)) {
 +        if (!FateId.isFateId(columnQualifier.toString())) {
 +          violations = addViolation(violations, 13);
 +        }
 +      } else if 
(UserCompactionRequestedColumnFamily.NAME.equals(columnFamily)) {
 +        if (!FateId.isFateId(columnQualifier.toString())) {
 +          violations = addViolation(violations, 14);
 +        }
 +      } else if (SplitColumnFamily.UNSPLITTABLE_COLUMN.equals(columnFamily, 
columnQualifier)) {
 +        try {
 +          UnSplittableMetadata.toUnSplittable(new 
String(columnUpdate.getValue(), UTF_8));
 +        } catch (RuntimeException e) {
 +          violations = addViolation(violations, 15);
 +        }
        } else if (columnFamily.equals(BulkFileColumnFamily.NAME)) {
          if (!columnUpdate.isDeleted() && !checkedBulk) {
            /*
@@@ -438,19 -388,9 +448,21 @@@
        case 8:
          return "Bulk load mutation contains either inconsistent files or 
multiple fateTX ids";
        case 9:
 -        return "Invalid data file metadata format";
 +        return "Malformed operation id";
        case 10:
-         return "Malformed availability value";
+         return "Suspended timestamp is not valid";
 +      case 11:
 +        return "Malformed file selection value";
 +      case 12:
 +        return "Invalid data file metadata format";
 +      case 13:
 +        return "Invalid compacted column";
 +      case 14:
 +        return "Invalid user compaction requested column";
 +      case 15:
 +        return "Invalid unsplittable column";
++      case 16:
++        return "Malformed availability value";
      }
      return null;
    }
diff --cc 
server/base/src/test/java/org/apache/accumulo/server/constraints/MetadataConstraintsTest.java
index b36fb31583,b7e2bd2a11..71e1ada06e
--- 
a/server/base/src/test/java/org/apache/accumulo/server/constraints/MetadataConstraintsTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/constraints/MetadataConstraintsTest.java
@@@ -27,31 -25,25 +27,36 @@@ import static org.junit.jupiter.api.Ass
  import java.lang.reflect.Method;
  import java.util.Base64;
  import java.util.List;
 +import java.util.Set;
 +import java.util.UUID;
+ import java.util.concurrent.TimeUnit;
  
  import org.apache.accumulo.core.data.Key;
  import org.apache.accumulo.core.data.Mutation;
  import org.apache.accumulo.core.data.Range;
  import org.apache.accumulo.core.data.Value;
 +import org.apache.accumulo.core.dataImpl.KeyExtent;
 +import org.apache.accumulo.core.fate.FateId;
 +import org.apache.accumulo.core.fate.FateInstanceType;
  import org.apache.accumulo.core.metadata.AccumuloTable;
 +import org.apache.accumulo.core.metadata.ReferencedTabletFile;
  import org.apache.accumulo.core.metadata.StoredTabletFile;
+ import org.apache.accumulo.core.metadata.SuspendingTServer;
+ import org.apache.accumulo.core.metadata.TServerInstance;
  import org.apache.accumulo.core.metadata.schema.DataFileValue;
  import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.BulkFileColumnFamily;
 +import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.CompactedColumnFamily;
  import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.CurrentLocationColumnFamily;
  import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
  import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ScanFileColumnFamily;
  import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily;
 +import 
org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.SplitColumnFamily;
+ 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.metadata.schema.MetadataSchema.TabletsSection.UserCompactionRequestedColumnFamily;
 +import org.apache.accumulo.core.metadata.schema.SelectedFiles;
 +import org.apache.accumulo.core.metadata.schema.UnSplittableMetadata;
+ import org.apache.accumulo.core.util.time.SteadyTime;
  import org.apache.accumulo.server.ServerContext;
  import org.apache.hadoop.fs.Path;
  import org.apache.hadoop.io.Text;
diff --cc server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index 631daaddb1,a778744c0f..ac9b682cb9
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@@ -72,15 -70,13 +73,16 @@@ import org.apache.accumulo.core.data.Ke
  import org.apache.accumulo.core.data.TableId;
  import org.apache.accumulo.core.data.Value;
  import org.apache.accumulo.core.dataImpl.KeyExtent;
 -import org.apache.accumulo.core.fate.AgeOffStore;
  import org.apache.accumulo.core.fate.Fate;
 +import org.apache.accumulo.core.fate.FateCleaner;
 +import org.apache.accumulo.core.fate.FateId;
 +import org.apache.accumulo.core.fate.FateInstanceType;
 +import org.apache.accumulo.core.fate.FateStore;
 +import org.apache.accumulo.core.fate.MetaFateStore;
 +import org.apache.accumulo.core.fate.user.UserFateStore;
+ import org.apache.accumulo.core.fate.zookeeper.ZooCache.ZcStat;
  import org.apache.accumulo.core.fate.zookeeper.ZooReaderWriter;
 -import org.apache.accumulo.core.fate.zookeeper.ZooUtil;
  import org.apache.accumulo.core.fate.zookeeper.ZooUtil.NodeExistsPolicy;
 -import org.apache.accumulo.core.fate.zookeeper.ZooUtil.NodeMissingPolicy;
  import org.apache.accumulo.core.lock.ServiceLock;
  import org.apache.accumulo.core.lock.ServiceLock.LockLossReason;
  import org.apache.accumulo.core.lock.ServiceLock.ServiceLockPath;

Reply via email to