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]