Phase 9: two-phase garbage collection engine
GC engine (internal/gc/): Collector.Run() implements the two-phase algorithm — Phase 1 finds unreferenced blobs and deletes DB rows in a single transaction, Phase 2 deletes blob files from storage. Registry-wide mutex blocks concurrent GC runs. Collector.Reconcile() scans filesystem for orphaned files with no DB row (crash recovery). Wired into admin_gc.go: POST /v1/gc now launches the real collector in a goroutine with gc_started/gc_completed audit events. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ design specification.
|
||||
| 6 | OCI API — push path | **Complete** |
|
||||
| 7 | OCI API — delete path | **Complete** |
|
||||
| 8 | Admin REST API | **Complete** |
|
||||
| 9 | Garbage collection | Not started |
|
||||
| 9 | Garbage collection | **Complete** |
|
||||
| 10 | gRPC admin API | Not started |
|
||||
| 11 | CLI tool (mcrctl) | Not started |
|
||||
| 12 | Web UI | Not started |
|
||||
|
||||
Reference in New Issue
Block a user