Skip to content

Reuse target metadata plan to speed up live delta comparison - #70

Open
gspark-etri wants to merge 8 commits into
mainfrom
perf/onggi-diff-plan
Open

gspark-etri wants to merge 8 commits into
mainfrom
perf/onggi-diff-plan

Conversation

@gspark-etri

@gspark-etri gspark-etri commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Every live resident update invokes onggi diff, which currently rebuilds the target's metadata plan twice. Reuse one validated target plan for both sorted extents and distinct new stored-byte accounting, preserving hash checks, stale-locator/index fallback and JSON/API behavior.

Measured on the same immutable8B POSIX-store fixtures with Go1.27.3/GOMAXPROCS4: four ref directions, six alternating pairs each. All48 CLI outputs are byte-identical within their ref pair. Median CLI time fell8.30–13.76% (about24–40ms). This isolates CPU comparison; NPU/cold-load/end-to-end latency and S3 performance improvements are unclaimed.

Regression RED observed two target-locator reads; GREEN expects one. Legacy/identical/empty artifacts, damaged target locator and GC-repack Diff fallback are covered. Linux full go test -race ./..., go vet ./... and gofmt pass. Fresh read-only review found one test import-order issue, fixed and gates rerun; no production/harness correctness issue found.

Protocol and scope, all samples/source and binary hashes/ref digests. Public bench/diff.py reproduces the interleaved comparison. No NPU allocated or shared SDK/driver changed. Base is main; independent of the SDK migration/doc PRs.

Final head358c75529808beecf854d7b65856e519accd3cad CI passed:gofmt,vet,fullrace suite,LinuxCLI build, and real S3 conformance/byte-identical round trips against SeaweedFS and VersityGW. Source/harness bytes are unchanged from the locally validated93fa367. The remote source worktree is clean; owned test/build/benchmark processes are absent. No NPU allocation was created. AI-assisted implementation and verification with Codex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant