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

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


The following commit(s) were added to refs/heads/main by this push:
     new ec779446cf Filter columns in CompactionReservationCheck (#5317)
ec779446cf is described below

commit ec779446cfd926ae10bb0a4362f1ed65ab76925d
Author: Christopher L. Shannon <cshan...@apache.org>
AuthorDate: Sat Feb 8 15:04:30 2025 -0500

    Filter columns in CompactionReservationCheck (#5317)
    
    Only load required columns for check to avoid reading unnecessary data
    into memory
    
    Re #5254
---
 .../metadata/iterators/TabletMetadataCheckIterator.java     |  2 +-
 .../compaction/coordinator/CompactionReservationCheck.java  | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/metadata/iterators/TabletMetadataCheckIterator.java
 
b/server/base/src/main/java/org/apache/accumulo/server/metadata/iterators/TabletMetadataCheckIterator.java
index 83c06cd8c9..ba08be04a7 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/metadata/iterators/TabletMetadataCheckIterator.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/metadata/iterators/TabletMetadataCheckIterator.java
@@ -102,7 +102,7 @@ public class TabletMetadataCheckIterator implements 
SortedKeyValueIterator<Key,V
 
     if (source.hasTop()) {
       var tabletMetadata = TabletMetadata.convertRow(new 
IteratorAdapter(source),
-          EnumSet.allOf(TabletMetadata.ColumnType.class), false, false);
+          EnumSet.copyOf(colsToRead), false, false);
 
       // TODO checking the prev end row here is redundant w/ other checks that 
ample currently
       // does.. however we could try to make all checks eventually use this 
class
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionReservationCheck.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionReservationCheck.java
index 214aa24f79..f9c2d5841c 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionReservationCheck.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionReservationCheck.java
@@ -18,6 +18,13 @@
  */
 package org.apache.accumulo.manager.compaction.coordinator;
 
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.ECOMP;
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.FILES;
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.OPID;
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.PREV_ROW;
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.SELECTED;
+import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.USER_COMPACTION_REQUESTED;
+
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -28,6 +35,7 @@ import java.util.stream.Collectors;
 import org.apache.accumulo.core.fate.FateId;
 import org.apache.accumulo.core.metadata.StoredTabletFile;
 import org.apache.accumulo.core.metadata.schema.TabletMetadata;
+import org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType;
 import org.apache.accumulo.core.metadata.schema.TabletMetadataCheck;
 import org.apache.accumulo.core.spi.compaction.CompactionKind;
 import org.apache.accumulo.core.util.time.SteadyTime;
@@ -153,4 +161,9 @@ public class CompactionReservationCheck implements 
TabletMetadataCheck {
 
     return true;
   }
+
+  @Override
+  public Set<ColumnType> columnsToRead() {
+    return Set.of(PREV_ROW, OPID, SELECTED, FILES, ECOMP, 
USER_COMPACTION_REQUESTED);
+  }
 }

Reply via email to