keith-turner commented on issue #4454:
URL: https://github.com/apache/accumulo/issues/4454#issuecomment-2065607462

   Below are some code pointers for the code.
   
    1. This 
[code](https://github.com/apache/accumulo/blob/cb25f26ab3be77dbfce54e9d1e7234e5974510ec/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java#L190)
 selects files for user compactions, creating the selected column.
    2. This 
[code](https://github.com/apache/accumulo/blob/cb25f26ab3be77dbfce54e9d1e7234e5974510ec/server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java#L92)
 creates compaction jobs that are queued.  If we add a count to the selected 
files column, then this code could generate system jobs when that count is zero 
(and no user jobs are running) in addition to user jobs.
    3. This 
[code](https://github.com/apache/accumulo/blob/cb25f26ab3be77dbfce54e9d1e7234e5974510ec/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java#L531)
 creates a running compaction entry in the metadata table when a compaction 
starts.   This code could allow system compactions to start if selected files 
exists and its count is zero (and no user jobs are running), for this case 
would need to remove the selected files column.
    4. This 
[code](https://github.com/apache/accumulo/blob/cb25f26ab3be77dbfce54e9d1e7234e5974510ec/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java#L726)
 commits a compaction.  It will modify the selected files column, removing the 
compacted files for user compactions.  It will also update the tablets files 
and remove the running compaction entry.  This code could increment the count 
in the selected files column.
   
   We could probably drop the timeout in elasticity for now and replace it with 
a log messages indicating a system compaction removed the selected files of a 
user compaction.  This would allow detection of the case where a system 
compaction is starving a user compaction.  This logging would be done by the 
code at number 3 above.
   
   
   


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