Can not split tablets with write ahead logs
Tablets with write ahead logs can not be split. The write ahead logs must be processed before splitting. Data in write ahead logs is stored by tablet. If tablet were to split and copy write ahead logs to its children, then those children would find no data in the writeahead log because the data is stored under the parents extent.
This problem is unique to the elasticity branch because it does splits in the manager. Before elasticity splits were done in the tablet server and tablets should not have write ahead logs when splitting there.
#3663 is related
If a tablet has a hosting goal of NEVER and it has wals, then merge/split would not be able to complete. It would need to host the tablet to have it recovered. It should be able to throw an error in this case as it can be detected before merge/split starts.
@dlmarion you had mentioned making log recovery separate from hosting of a tablet in a conversation we had a while ago. I can not remember the context as to why you suggested that. Having that capability that would clean up this situation.
Would it be an issue in general if a tablets with a hosting goal of NEVER having a wal at all? If the wal can never be processed, then we'd need to keep it around "forever" impacting space and recovery? For recovery, could we end up with lots of files that need to be processed - only to find that there is nothing that can be done?
@dlmarion you had mentioned making log recovery separate from hosting of a tablet in a conversation we had a while ago. I can not remember the context as to why you suggested that. Having that capability that would clean up this situation.
The only conversation I remember regarding this is related to making log recovery a task that is executed within the changes of #3801 .
Would it be an issue in general if a tablets with a hosting goal of NEVER having a wal at all?
Yeah, its not good, need to do something about that situation