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