keith-turner commented on PR #3893:
URL: https://github.com/apache/accumulo/pull/3893#issuecomment-1780107506

   Thought of the following while looking at this.
   
    * If a tablet needs volume replacement, then its probably not functional 
(at least for scans, maybe write would work).
    * Volume replacement is an instance prop, so it cant change while manager 
process is running.  
    * Only need to have TabletMgmtIter look for volume replacements for a bit 
after the manager starts. Do not need to always do it. Inspecting tablets for 
volume replacement may be expensive and doing it all the time is probably not 
nessecary.
    * Trying to refresh the tablets is tricky in the face of process death, 
like the manager dies after making metadata update but before refreshing 
tablet.  To deal with this could either use fate or generalize the mechanism 
that compaction use to do the refresh.  However the compaction mechanism has an 
issue open to use FATE and jettison its custom mechanism.  Bulk import also 
refreshes tablets, but its running in FATE so it makes things simple.
    
   With the above in mind, thinking could take the following approach for this 
change.
    
    * After the first full scan by the TabletGroupWatcher where it sees no 
tablets need volume replacements, then it no longer will ask the 
TabletMgmtIterator to look for volume replacements for all of its subsequent 
full scans.  Seems like after this point it could alway pass an empty list of 
volume replacements to the tabletmgmtiterator.
   
    * For tablets that need volume replacement, we unassign them or avoid 
assigning them if they are not assigned. This avoids having to worry about 
refreshing the tablet. The tablet group watcher only replaces volumes on 
tablets with no location and no operation id, checked using conditional 
mutations.


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