Description
A few improvements to the VolumeChooser are desired for a use case that seems general enough to warrant an update to Accumulo.
Use Case:
A new volume is added, with limited capacity, to be dedicated for a specific table. All other tables or files should be excluded from this new volume.
Suggested Improvements:
- Update the signature for VolumeManager.choose to take a VolumeChooserEnvironment instead of Optional<String>. This will allow future parameters for volume selection without repeatedly changing the VolumeManager interface.
- It's not currently possible to specify preferred volumes for the write-ahead logs
- In several places including PreferredVolumeChooser, PerTableVolumeChooser and VolumeManagerImpl, the failsafe chooser is the RandomVolumeChooser which will include the instance volume that needs to be excluded. It would be useful to have a configurable failsafe in this situation.
- The volume chooser is called in FileUtils for temp directory creation but it could instead use the sticky dir to create the temp directory, not needing the volume chooser at all.
The above suggestions could become sub-tickets. Note that the improvements listed have been implemented for my particular instance and I hope to submit them as a patch.
Attachments
1.
|
Create VolumeChooserEnvironment abstraction | Resolved | Christopher Tubbs |
|
||||||||
2.
|
Allow configurable volume selection for write-ahead logs | Resolved | Matt Peterson |
|
||||||||
3.
|
Allow configurable failsafe volume choosing | Resolved | Christopher Tubbs |
|
||||||||
4.
|
Reuse tablet's currently chosen volume for temp files | Resolved | Christopher Tubbs |
|