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;