Latest Results
Decode stale cache entries in one blocking task (#20486)
Warm offline resolutions currently load and validate each cached
response in one blocking task, then decode its payload in a second task,
while the allowed-stale path also computes freshness and revalidation
state it will never use.
Read, validate, check the request identity, and decode allowed-stale
entries in a single blocking task. This preserves the existing miss,
corrupt-entry, mismatched-request, `Vary`, and `no-cache` behavior while
avoiding the extra request clone. In benchmarks, the largest workload
(Airflow, 559 packages) improved wall time by 4.7% and CPU time by 4.2%;
smaller workloads showed modest CPU gains with wall time within noise.
---------
Co-authored-by: Charlie Marsh <charliemarsh@openai.com> Further compact cached distribution metadata (#20483)
## Summary
Follow-up to #20463 that further compacts the cached Simple API
representation:
- We now store registry files in a cache-local `CachedFile`, eliding
filenames recoverable from their URLs, normalizing false-yanked entries,
packing optional size/upload-time fields, and retaining fallbacks for
renamed files and uncommon hashes;
- We now store a single canonical MD5, SHA-256, BLAKE2b-256, SHA-384, or
SHA-512 digest in binary form; the two larger digests are boxed so the
common SHA-256/BLAKE2b layout stays compact;
- We now niche-box optional resolution metadata and reorder
`VersionSmall` to reduce the archived version/metadatum layouts;
- we now sort by reconstructed filenames to preserve deterministic
wheel/sdist ordering, bump the Simple cache bucket to `simple-v24`, and
update cutoff/publish consumers.
## Performance
For the exact 1,750 common entries, the Simple cache falls from
222,371,536 B to 146,852,744 B (-33.96%).
| workload | wall before | wall after | change | CPU before | CPU after
| change |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| jupyter (97 packages) | 99.8 ms | 97.6 ms | -2.28% | 53.8 ms | 51.2 ms
| -4.99% |
| boto3 (7 packages, backtracking) | 162.0 ms | 162.1 ms | +0.05% |
222.8 ms | 247.1 ms | +10.90% |
| airflow (559 packages) | 239.8 ms | 234.8 ms | -2.07% | 368.4 ms |
348.0 ms | -5.55% |
| large-index (26 large Simple pages, no deps) | 100.6 ms | 97.3 ms |
-3.36% | 57.8 ms | 50.9 ms | -11.90% |
---------
Co-authored-by: Charlie Marsh <charliemarsh@openai.com> Latest Branches
+7%
charlie/codex-perf-resolution-round4 +11%
charlie/codex-compact-cache-followups 0%
charlie/toml-writer-lockfile © 2026 CodSpeed Technology