Concurrent GC (eliminate stop-the-world)
- Dominant language
- C
- Stars
- 268
- Forks
- 18
- Avg merge
- 2h 26m
- Merged PRs (30d)
- 454
Description
## Problem
`dolt_gc()` rewrites the entire chunk store file in a single atomic operation, blocking all access. Sweep phase buffers all surviving chunks in RAM.
## Current behavior
- Mark: BFS from all roots, builds in-memory hash set
- Sweep: loads ALL surviving chunks into buffer, writes temp file, atomic rename
- Blocks all readers and writers during entire process
## Expected behavior
- Generational GC: separate old vs new chunks
- Concurrent collection: readers continue on old snapshot while GC builds new one
- Incremental marking: don't buffer entire file in RAM
## Impact
Repos >10GB can't GC within typical maintenance windows.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.