s3wal: real-S3 e2e push p50 ~1.07 s (~2.8x the PG+S3 baseline on the same bucket region) — census and trim per-push S3 round trips

Open
#182 3 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@ThomasK33 is already working on this.

Since Sep 11, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

From the 2026-08-27 real-S3 session (eu-central-1, ~7 ms HTTP RTT to the S3 endpoint): sequential empty-commit git push against a live serve node measured

  • s3wal (bucket = ref+meta authority + blobs): p50 1070 ms (n=20, p90 1171 ms)
  • PG+S3 (containerized Postgres + same-region S3 blobs): p50 386 ms (n=20)
  • loopback-SeaweedFS s3wal e2e (Phase 4 bench): p50 138 ms

The §3 simulated-push cell (manifest GET + 8 MiB pack PUT + 2 CAS advances) costs only ~204 ms p50 on the same bucket, so the e2e path is paying roughly 25–30 additional sequential S3 round trips' worth of latency per push somewhere between receive-pack, the update hook, hydrate, LFS/quota/meta accounting, and generation bumps. Known suspect: hook processes reconstruct stores from env URLs per invocation (fresh S3 client, config load, TLS) rather than reusing the serve process's connections.

Not a Gate 1a-B kill criterion (that gate measures the simulated-push cell, which passes with wide margin), but ~1.1 s per uncontended push is the number a real adopter feels. Worth: (1) a per-push S3 round-trip census (count + purpose), (2) trimming the obvious redundancies, (3) re-measuring.


Generated with mux • Model: anthropic:claude-fable-5 • Thinking: xhigh

Dominant language
Go
Stars
0
Forks
0
Avg merge
6h 16m
Merged PRs (30d)
243

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from coder/openstorage

All issues in coder/openstorage

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.