cshannon commented on issue #3845:
URL: https://github.com/apache/accumulo/issues/3845#issuecomment-1773821219

   @keith-turner - I started looking at this and comparing 2.1 and main for 
what needs to happen for a fix. While looking at 2.1 I realized that the 2.1 
branch (with the old chop compactions) does in fact already do the first 3 
items on your list but **only on tablets that need to be chopped**, not all 
tablets as part of the merge. These checks do not exist in main because they 
were removed with no-chop merge being implemented.
   
   #### Here is where merge stats is tracking that wals exist with a flag in 
2.1 (not a count just that they exist) and then preventing the transition in 
the verification check for tablets needing to be chopped:
   
   
https://github.com/apache/accumulo/blob/324f52b711db908f144c943bcf1bc077af73e39b/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java#L101-L108
   
   
https://github.com/apache/accumulo/blob/324f52b711db908f144c943bcf1bc077af73e39b/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java#L233-L236
   
   #### And here is the getGoalState() method verifying wals in 2.1 are empty 
before setting the goal to UNASSIGNED when waiting for chopped:
   
   
https://github.com/apache/accumulo/blob/324f52b711db908f144c943bcf1bc077af73e39b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java#L650-L659
   
   I know in #3844 you mentioned that for elasticity things are unique and need 
to prevent merge/split as you wouldn't be able to find the WALs due to the 
manager doing the splits. So does that mean that for 2.1 the checks on just for 
the tablets that need chopping is good enough? This is still new enough to me 
that I'm not quite sure.
   
   If 2.1 is ok than that means the main fix here is to restore the checks for 
3.1 (i guess on all tablets still?) and also to add the verification before the 
actual merge in both 2.1 and 3.1. Otherwise if you think we should still verify 
no WALs for all tablets, even in 2.1, I can do that as well pretty easily.
   
   Thoughts? 
   
   


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