Description
Conversation under issue showed, that Ansible restore script lacks some steps in order to ensure restore success.
In terms of restoring schema, there are two options:
If there was no schema disagreement at the time of taking the backup then we're fine, no need for repair or gc grace seconds tricks on schema tables. Unlike user tables, schema tables automatically repair themselves across nodes.
This one is connected to #3323
If backup was taken during schema change and there is disagreement between nodes, we may run into the problems mentioned earlier. You could avoid this by giving each node sstables from all the nodes when restoring schema, simulating repair.
This one would require some changes in SSTables upload procedure.
In terms of restoring table contents, SM should:
- disable
gc_grace_seconds
or settombstone_gc = {'mode':'disabled'}
via alter query - load SSTables
- repair
- enable
gc_grace_seconds
or settombstone_gc = {'mode':'timeout'}
Without those changes, it seems that data resurrection might occur.