keith-turner commented on code in PR #4254:
URL: https://github.com/apache/accumulo/pull/4254#discussion_r1492557837


##########
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:
   > 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?
   
   That line mentioned is reserving a "read lock", there is a boolean argument 
that determines this.  That boolean would be more clear if it were switched to 
an enum.   The "read lock" allows multiple concurrent compactions to grab the 
lock as long nothnig holds the write lock (things like create table, delete 
table, merge grab the write lock).



-- 
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]

Reply via email to