Repository navigation
Experiment: compare Redis, Next remote cache, and uncached reads - #1196
Draft
jasonhedman wants to merge 7 commits into
Draft
jasonhedman wants to merge 7 commits into
jasonhedman wants to merge 7 commits into
Conversation
jasonhedman
added this pull request to stack #1128
September 14, 2026 13:51
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
jasonhedman
force-pushed
the
json/cache-benchmark
branch
from
September 14, 2026 14:46
149ac70 to
ec58a8d
Compare
jasonhedman
force-pushed
the
json/cache-benchmark
branch
from
September 25, 2026 00:09
3f8d921 to
bc3671b
Compare
jasonhedman
force-pushed
the
json/cache-benchmark
branch
from
September 25, 2026 15:55
bc3671b to
f2871a8
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Disposable benchmark above #1186 comparing Redis, Next remote caching, and uncached reads against identical application queries on one preview deployment. Keep this PR unmerged.
The preview-only endpoint requires a dedicated token. Both caches store complete payloads under isolated benchmark keys; responses expose measurement metadata only. Scoped instrumentation counts query attempts without logging SQL, parameters, or returned data. The runner is bounded to 300 requests with concurrency 20; the log exporter paginates and deduplicates platform records.
The Redis mode now calls the application's minimal helper directly, replacing the old copied wrapper. It uses only expiring
cache-benchmark:v2:*keys and fails if Redis is unavailable. The existing branch-only Redis override remains; production/other preview settings and Neon configuration were not changed.The new run on commit ec58a8d / deployment dpl_CZDmy7UvuH6URcC9FDZuBFCTHdFv passed all 300 requests with matching payload digests. Logs verified 5 database attempts for Redis, 89 for Next, and 125 uncached across 100 requests per mode. Redis collapsed each twenty-request cold burst into one origin execution; Next performed 17–18. Both caches reused warm results. All 175 returned origin execution IDs matched logs, with no additional unreturned work or missing completions. A separate local Redis test also coalesced twenty 40-second reads into one execution, exercising lease renewal with real Lua scripts.
Results and historical comparisons are in docs/experiments/cache-benchmark.md and the adjacent aggregate JSON files. The deployed run does not establish billing, production capacity, refresh/expiry behavior, or cross-deployment persistence. Raw logs and credentials are not committed.
Validation: full
pnpm checkpasses on every updated stack layer and this experiment. The application production build and benchmark preview build pass. Cleanup: drop this PR, remove its branch-scoped CACHE_BENCHMARK_TOKEN/REDIS_DISABLE overrides and preview deployments; benchmark keys expire after thirty minutes.