Repository navigation
Retention backs off after a failed protection census and shows it in health - #1101
Merged
Merged
Conversation
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Preserve full durable-directory alias protection, including finished bundles: the 30k task Linux fixture completes #1094's census within the 60s budget. Add 20/40/60 minute failure backoff, expose retry time alongside the typed failure in health, and clear backoff on a successful pass. Strengthen the existing live-alias test to cover a real task layout's nested io directory, and add a completed-task counterpart; the protection contract is unchanged. Exercise a default-size cutoff with zero deletion and a fresh successful retry; measure full fleet scale under AFT_STRESS=1, including macOS thread CPU time. Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Follow-up to #1094. A full fleet-scale fixture (30,000 shell tasks, 1,372 sessions, 350,000 files, 50 trash entries) shows one retention pass with the streaming census finishing well inside the 60 s budget: 0.6-0.9 s on Linux, 6.8 s wall / 3.7 s CPU on macOS, reclaiming all 50 entries. (The live daemon's endless "repair traversal limit exceeded" retention predates #1060 and #1094.) Finished task bundles still need alias protection, so the census stays complete rather than narrowed to running tasks.
What changes: when a protection census can't finish, retention backs off 20, then 40, then at most 60 minutes instead of re-running the full census every pass; health shows the typed failure and
protection_retry_at_ms; a successful census clears the backoff at once. Tests: the scale fixture (full size behind AFT_STRESS=1; the default size exercises a census cut-off that deletes nothing) and backoff clearing after a successful retry.Summary by cubic
La retención espera 20, luego 40 y como máximo 60 minutos después de un censo de protección fallido, en lugar de repetir el censo completo en cada pasada. La salud muestra el fallo tipado y
protection_retry_at_ms, y un censo exitoso limpia el respaldo de inmediato.Un fixture a escala de flota (30 000 tareas, 350 000 archivos) completa el censo en 0,6–0,9 s en Linux y ~7 s en macOS, manteniendo la protección completa de alias, incluidos los paquetes de tareas terminadas; solo los casos de estrés reducido ejercitan el corte que elimina cero entradas.
Written for commit 1ae5b0b. Summary will update on new commits.