3-degraded mode with retry to avoid 404 not found #648

Open
opened 2023-10-11 13:17:36 +00:00 by lx · 1 comment
Owner

When running in 3-degraded, a single node is queried on GetObject calls, to look for the requested object. If the object is written to only two of three nodes and the bad node is queried, a 404 Not Found will be returned.

Instead, Garage could query a second node if the first one returns nothing, so that if a new object is created, subsequent GetObject calls will still retrieve it.

This does not ensure that the latest version will be fetched, but at least that a version of the object will be returned.

When running in `3-degraded`, a single node is queried on GetObject calls, to look for the requested object. If the object is written to only two of three nodes and the bad node is queried, a 404 Not Found will be returned. Instead, Garage could query a second node if the first one returns nothing, so that if a new object is created, subsequent GetObject calls will still retrieve it. This does not ensure that the latest version will be fetched, but at least that *a* version of the object will be returned.
lx added the
kind
improvement
label 2023-10-11 13:17:41 +00:00
lx added this to the v1.0 milestone 2023-10-11 13:29:13 +00:00
Author
Owner

This is actually quite dangerous, because we could then read an inconsistent value from the versions table, e.g. a version with only a subset of the actual data blocks. And in that case we don't necessarily have a good way of disambiguating between a partial and a complete list of blocks.

This is actually quite dangerous, because we could then read an inconsistent value from the versions table, e.g. a version with only a subset of the actual data blocks. And in that case we don't necessarily have a good way of disambiguating between a partial and a complete list of blocks.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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#648
No description provided.