After #3251 is merged into the elasticity branch changes can be made to set the tablet location using conditional mutations. These changes could also be made in the elasticity branch. Switching accumulo metadata operations to use conditional mutations will have to be done piecemeal and setting the locations is a good place to start.
The following work is what would likely need to be done.
- In the mananger set the future location with a condition that no location is set for the tablet AND no operation is active on the tablet.
- In the tablet server set the current location with a condition that the future location is the tserver AND no operation is active on the tablet.
- In the manager for the case of a dead tserver delelete the current location with a condition that the dead tserver is the current location AND no operation is active on the tablet.
After #3251 is merged into the elasticity branch changes can be made to set the tablet location using conditional mutations. These changes could also be made in the elasticity branch. Switching accumulo metadata operations to use conditional mutations will have to be done piecemeal and setting the locations is a good place to start.
The following work is what would likely need to be done.