Commit 3f87ea1
committed
perf(observation): hoist retention store and reap artifact-root scratch
Terminal-run retention resolved the observation store and the artifact
root inside every per-run artifact plan, so a default --limit 1000 sweep
opened up to 2000 SQLite connections and re-ran the migration ladder for
each. Both are now resolved once per sweep and threaded through a new
`cleanup_persisted_artifacts_with_store`. The apply pass still re-plans
each run immediately before deleting its bytes: the planning loop walks
every candidate before any deletion happens, so those plans are already
stale by then.
`removed_run_count` subtracted `skipped_run_ids` from `removable_run_ids`,
under-reporting by every run the planning loop had already blocked, since
those runs were never in `removable_run_ids`. It now counts what was
deleted.
Adds an `orphaned-artifact-bytes` cleanup category for the two
artifact-root path families that are created outside any durable journal
and are only reclaimed by an in-process branch, so SIGKILL leaks them:
`<run_id>/.artifact-<uuid>.staging` and `_scratch/patch-<label>-<uuid>/`.
It is deliberately not a "path with no artifacts row" reaper. The artifact
root is a shared namespace with at least nine subsystem-owned top-level
subtrees carrying no row at those paths, and artifact bytes are written
before their row is inserted by design, so row absence is the normal state
of a publication that is succeeding. Ownership is proven by name shape
plus a fixed 24h age floor instead, and the database is not consulted.
Size is measured best-effort and never gates removal, inverting the
coupling in `workspace/sync/mod.rs:2602` where a failed `du -sk`
downgraded liveness to "unknown" and silently disabled prune.
Refs #10284, #102851 parent dfda7d3 commit 3f87ea1
8 files changed
Lines changed: 1068 additions & 47 deletions
File tree
- crates
- homeboy-cli/src/commands
- homeboy-core/src/observation/runs_service
- orphaned_artifact_bytes
- docs
- commands
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| 73 | + | |
72 | 74 | | |
73 | 75 | | |
74 | 76 | | |
| |||
639 | 641 | | |
640 | 642 | | |
641 | 643 | | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
642 | 657 | | |
643 | 658 | | |
644 | 659 | | |
| |||
795 | 810 | | |
796 | 811 | | |
797 | 812 | | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
798 | 831 | | |
799 | 832 | | |
800 | 833 | | |
| |||
2041 | 2074 | | |
2042 | 2075 | | |
2043 | 2076 | | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
2044 | 2084 | | |
2045 | 2085 | | |
2046 | 2086 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| 176 | + | |
176 | 177 | | |
177 | 178 | | |
178 | 179 | | |
179 | 180 | | |
180 | 181 | | |
181 | 182 | | |
182 | 183 | | |
| 184 | + | |
183 | 185 | | |
184 | 186 | | |
185 | 187 | | |
| |||
204 | 206 | | |
205 | 207 | | |
206 | 208 | | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
207 | 212 | | |
| 213 | + | |
208 | 214 | | |
209 | 215 | | |
210 | 216 | | |
211 | 217 | | |
212 | 218 | | |
213 | 219 | | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| 240 | + | |
240 | 241 | | |
241 | 242 | | |
242 | 243 | | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
243 | 253 | | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
255 | 259 | | |
256 | 260 | | |
257 | 261 | | |
| |||
262 | 266 | | |
263 | 267 | | |
264 | 268 | | |
265 | | - | |
266 | 269 | | |
267 | 270 | | |
268 | 271 | | |
| |||
310 | 313 | | |
311 | 314 | | |
312 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
313 | 321 | | |
314 | 322 | | |
315 | 323 | | |
316 | 324 | | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
| 325 | + | |
324 | 326 | | |
325 | 327 | | |
326 | 328 | | |
327 | 329 | | |
328 | 330 | | |
329 | 331 | | |
330 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
331 | 349 | | |
332 | 350 | | |
333 | 351 | | |
| |||
0 commit comments