fangorn/ex_git_objectstore
public
ref:main
perf: bitmap indexes (.bitmap) for reachability and pack generation #46
open
Opened by cole.christensen@gmail.com
Links
No links yet.
Largest single clone-performance win available. .bitmap files store reachability bitmaps per commit, letting the packfile writer skip the reachability walk on clone.
Scope
- Reader: load
.bitmapalongside a pack, exposereachable_from(commit_sha). - Writer: produce
.bitmapwhen writing a pack with--bitmapflag. - Integration:
UploadPack.Writeruses bitmaps when present to pick objects for the output pack without walking the DAG.
Acceptance
- A 100k-commit fixture clone goes from tens of seconds to under 1s with bitmaps vs without.
- Interop: git client accepts the bitmap-generated pack;
git verify-packis happy. - Correctness: same object set as the naive walker for arbitrary want/have pairs.