cshannon commented on code in PR #4254:
URL: https://github.com/apache/accumulo/pull/4254#discussion_r1492434915
##########
server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java:
##########
@@ -267,8 +267,13 @@ public int updateAndCheckTablets(Manager manager, FateId
fateId)
otherSelected++;
}
} else {
- // ELASTICITY_TODO if there are compactions preventing selection of
files, then add
+ // If there are compactions preventing selection of files, then add
// selecting marker that prevents new compactions from starting
+ var mutator =
tabletsMutator.mutateTablet(tablet.getExtent()).requireAbsentOperation()
+ .requireSame(tablet, ECOMP).setCompactionRequested();
Review Comment:
I initially was going to do this but did not because when I was looking at
how the compaction fate operations work I noticed that CompactRange first
[reserves](https://github.com/apache/accumulo/blob/da7b3b005e13276c202b4f337496f9ecf2c039e5/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactRange.java#L77)
the table with a table lock before continuing to CompactionDriver so I was
thinking that would prevent to concurrent fate ops from trying to set it at the
same time. How would two different fate ops on the same tablet be able to set
this if the table lock is needed to continue and run the CompactionDriver fate
op?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]