dolthub / dolthub/doltlite

Concurrent GC (eliminate stop-the-world)

Open
#222 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.