Include old_versions when merging layouts, don't remove old layout versions #854

Closed
dominik wants to merge 3 commits from dominik/garage:historical_layout_fix into main
First-time contributor

I have run into the same problem as described in #841 After investigating, I've realized only active layout versions are used to update the node's layout. If we are joining a new/fresh node, it wouldn't be able to successfully sync its layout with existing nodes.

This is also why I have removed code for removing old layout versions, as potentially they might be needed in the future when adding new nodes.

Would appreciate is there would be a v1.0.1 release fixing this problem.

Disclaimer: I don't know what I'm doing. I've never written or read any Rust code before. I don't know if this change would have some unintended consequences. I have tested it and seems to work fine.

I have run into the same problem as described in https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/841 After investigating, I've realized only active layout versions are used to update the node's layout. If we are joining a new/fresh node, it wouldn't be able to successfully sync its layout with existing nodes. This is also why I have removed code for removing old layout versions, as potentially they might be needed in the future when adding new nodes. Would appreciate is there would be a v1.0.1 release fixing this problem. Disclaimer: I don't know what I'm doing. I've never written or read any Rust code before. I don't know if this change would have some unintended consequences. I have tested it and seems to work fine.
dominik added 1 commit 2024-08-15 15:49:28 +00:00
Include old_versions when merging layouts, don't remove old layout versions
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
f8d0affd82
dominik added 1 commit 2024-08-19 16:37:15 +00:00
Consider both old and current versions when verifying layout history
Some checks failed
ci/woodpecker/pr/debug Pipeline failed
824e473809
dominik added 1 commit 2024-08-19 18:32:39 +00:00
Fix fmt
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
b5cefc0a99
Owner

Hey, thank you very much for your involvement and for making this PR. Unfortunately, I think this is not the correct way to fix this issue, because we do want the old version list to be bounded. If it were not bounded, this would cause unlimited growth of network traffic when Garage clusters become older and start accumulating historical layouts. I am preparing a patch with hopefully a good solution to this issue.

Hey, thank you very much for your involvement and for making this PR. Unfortunately, I think this is not the correct way to fix this issue, because we do want the old version list to be bounded. If it were not bounded, this would cause unlimited growth of network traffic when Garage clusters become older and start accumulating historical layouts. I am preparing a patch with hopefully a good solution to this issue.
lx closed this pull request 2024-08-24 10:17:05 +00:00
All checks were successful
ci/woodpecker/pr/debug Pipeline was successful
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/garage#854
No description provided.