Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
1a0d40b
perf(scan): order every hunk scan parent-first and cut the commit-loa…
ahrav Oct 9, 2026
e946d5d
perf(dedup): skip repeated blob pairs by key and probe fingerprints i…
ahrav Oct 9, 2026
b4b6075
test: pin the ported scan-path changes
ahrav Oct 9, 2026
3b4b11e
feat(scan): add WithHunkDedupRetainedBudget
ahrav Oct 9, 2026
74efedf
perf(store): keep packed objects out of the ARC when the offset cache…
ahrav Oct 9, 2026
3811d26
fix(diff): align added lines with a shortest edit script
ahrav Oct 9, 2026
2fcf290
perf(diff): compare line fingerprints ahead of strings in the snake w…
ahrav Oct 9, 2026
dbb2c94
perf(scan): scale the tree-diff worker cap with the CPU count
ahrav Oct 10, 2026
f027607
perf(diff): compare the common suffix a chunk at a time
ahrav Oct 10, 2026
e785633
perf(dedup): prefetch whale blobs during the dedup scan
ahrav Oct 10, 2026
c93430b
perf(scan): read packed commits from the index instead of walking the…
ahrav Oct 10, 2026
b0f36e0
perf(idx): narrow object lookups with a prefix fanout
ahrav Oct 10, 2026
aea2dc9
perf(scan): index the loaded commits without a second OID lookup
ahrav Oct 10, 2026
ec6617d
perf(diff): trim the Myers kernel and a dead cache probe
ahrav Oct 10, 2026
1e96eec
perf(scan): walk the reachable commits over index arrays only
ahrav Oct 10, 2026
0fa90e1
perf(scan): prefetch whales stored as deltas
ahrav Oct 10, 2026
ebffc13
fix(scan): stop after visit errors, rescan after empty loads, bound d…
ahrav Oct 10, 2026
13c6848
Address review: bound whale admission by delta limit, dedup LCS helper
ahrav Oct 11, 2026
7ef9ed0
Promote packed objects the offset cache rejects to the ARC
ahrav Oct 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions cache_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,17 @@ func WithHunkDedupBudget(bytes int) ScannerOption {
hs.hunkDedupBudget = bytes
}
}

// WithHunkDedupRetainedBudget bounds the hunk bytes a deduplicating scan
// holds between a worker computing them and the consumer callback seeing
// them. The sequencer stops handing out new pairs while the charge is above
// this budget, so the bound trades scan throughput for peak memory. The
// default of 512 MiB keeps every worker busy through a multi-megabyte blob
// on large hosts. Values below 1 MiB are raised to 1 MiB so a single large
// hunk can always be admitted.
func WithHunkDedupRetainedBudget(bytes int) ScannerOption {
bytes = max(bytes, 1<<20)
return func(hs *HistoryScanner) {
hs.dedupLimits.retainedBytesCap = int64(bytes)
}
}
Loading
Loading