Skip to content

perf(storage): bound concurrent sync and reuse retained ZIP archives - #136

Merged
suguanYang merged 8 commits into
mainfrom
perf/wangbinqi/parsed-sync-performance
Oct 26, 2026
Merged

suguanYang merged 8 commits into
mainfrom
perf/wangbinqi/parsed-sync-performance

Conversation

@suguanYang

@suguanYang suguanYang commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Parsed snapshot synchronization uploads entries serially and writes a full checkpoint for every file. Add configurable bounded Range concurrency, count/time checkpoint batching, and reuse a streamed retained result.zip through an immutable, versioned archive marker. Default concurrency/checkpoint interval remain one; byte-only adapters, historical checkpoints, result.zip paths and commit version 1 remain compatible.

Only the contiguous successful prefix is durable. Count/time thresholds drain active writes before saving progress; cancellation and errors wait for extraction and storage cleanup. Four files with a ten-file checkpoint interval bound abrupt-process replay to thirteen files. Cached transport validates strong ETag, length, Content-Range and received bytes without relying on Blob CDN Last-Modified. A pinned canonical origin proof permits cache-to-sequential fallback while checking saved prefix hashes.

Validation: 435 SDK and 18 MCP tests pass, including 55 focused cache/concurrency cases; formatting, lint, types, build and coverage gates pass. Independent review is clear. Generated 281/562 MiB archives and two documents at file concurrency four peak at 264.44 MiB in independent Node processes. A real SIGKILL replays exactly thirteen files and completes.

Published beta2 hosted SICP comparison (same Node24/iad1/2048MiB functions, isolated prefixes, three cold runs each): optimized median 58.052s versus 2.5.0 510.391s and 2.2.0 88.770s. Each optimized run performs one full upstream ZIP transfer, 3,178 requests and 78 progress flushes; all 963 entries complete and page-resource samples are readable. Vercel process RSS ranges 419.83–516.86MiB across three consecutive runs, distinct from the independent SDK memory gate. The latest beta also contains the reviewed cache-to-sequential compatibility correction.

Stable publication remains held in the Changesets release PR until final-beta staging, large hosted fixtures and Hipo acceptance finish. No new Parse jobs, billing changes, production Source mutations, plugin or Gateway deployment are part of this change.

@suguanYang
suguanYang merged commit f8c489e into main Oct 26, 2026
6 checks passed
@github-actions github-actions Bot mentioned this pull request Oct 26, 2026
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