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

krathbun 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 07b0c2e650 Migrations access related improvements (#5637)
07b0c2e650 is described below

commit 07b0c2e650d50efba66525a92b8507f58de95a04
Author: Kevin Rathbun <krath...@apache.org>
AuthorDate: Fri Jun 13 09:48:18 2025 -0400

    Migrations access related improvements (#5637)
    
    * Migrations access related improvements
    
    Related to #5520 and #5604
    
    Applies the HasMigrationFilter in more places (now applied everywhere we
    are getting migrations in Manager), remove the checks for a null
    migration (handled by the filter), fix for one location fetching
    the PREV_ROW column when it didn't need to.
---
 .../java/org/apache/accumulo/manager/Manager.java    | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java 
b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index 452ae0ecea..bdf6507ed0 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@ -558,15 +558,14 @@ public class Manager extends AbstractServer implements 
LiveTServerSet.Listener {
           var ample = getContext().getAmple();
           for (DataLevel dl : DataLevel.values()) {
             // prev row needed for the extent
-            try (
-                var tabletsMetadata = ample.readTablets().forLevel(dl)
-                    .fetch(TabletMetadata.ColumnType.PREV_ROW, 
TabletMetadata.ColumnType.MIGRATION,
-                        TabletMetadata.ColumnType.LOCATION)
-                    .build();
+            try (var tabletsMetadata = ample.readTablets().forLevel(dl)
+                .fetch(TabletMetadata.ColumnType.PREV_ROW, 
TabletMetadata.ColumnType.MIGRATION,
+                    TabletMetadata.ColumnType.LOCATION)
+                .filter(new HasMigrationFilter()).build();
                 var tabletsMutator = ample.conditionallyMutateTablets(result 
-> {})) {
               for (var tabletMetadata : tabletsMetadata) {
                 var migration = tabletMetadata.getMigration();
-                if (migration != null && 
shouldCleanupMigration(tabletMetadata)) {
+                if (shouldCleanupMigration(tabletMetadata)) {
                   
tabletsMutator.mutateTablet(tabletMetadata.getExtent()).requireAbsentOperation()
                       .requireMigration(migration).deleteMigration().submit(tm 
-> false);
                 }
@@ -647,8 +646,7 @@ public class Manager extends AbstractServer implements 
LiveTServerSet.Listener {
               TabletMetadata.ColumnType.MIGRATION, 
TabletMetadata.ColumnType.LOCATION)
           .filter(new HasMigrationFilter()).build()) {
         // filter out migrations that are awaiting cleanup
-        tabletsMetadata.stream()
-            .filter(tm -> tm.getMigration() != null && 
!shouldCleanupMigration(tm))
+        tabletsMetadata.stream().filter(tm -> !shouldCleanupMigration(tm))
             .forEach(tm -> extents.add(tm.getExtent()));
       }
       partitionedMigrations.put(dl, extents);
@@ -1908,11 +1906,9 @@ public class Manager extends AbstractServer implements 
LiveTServerSet.Listener {
   private long numMigrations() {
     long count = 0;
     for (DataLevel dl : DataLevel.values()) {
-      // prev row needed for the extent
       try (var tabletsMetadata = 
getContext().getAmple().readTablets().forLevel(dl)
-          .fetch(TabletMetadata.ColumnType.PREV_ROW, 
TabletMetadata.ColumnType.MIGRATION).build()) {
-        count += tabletsMetadata.stream()
-            .filter(tabletMetadata -> tabletMetadata.getMigration() != 
null).count();
+          .fetch(TabletMetadata.ColumnType.MIGRATION).filter(new 
HasMigrationFilter()).build()) {
+        count += tabletsMetadata.stream().count();
       }
     }
     return count;

Reply via email to