feat: lower disk usage during migration #18440
Merged
+6
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Dropping the old index outside of a transaction means it can be removed immediately without waiting for the transaction to commit. Since the migration already handles the case when the index is missing, it shouldn't impact the robustness of the migration. Vacuuming after the changes helps free disk space more quickly as well. This would happen eventually on its own, but over a longer period of time and with higher peak disk usage.
There's still a lot of writing in this section, specifically when changing the data types, but it's harder to optimize for disk usage beyond this without making the migration less robust.