Expand description
Concurrent S3Blob reads, plus a steady stream of PUTs through the same client, against an S3-compatible store.
Written to measure GCS read throughput (PER-136). Over HTTP/2, the SDKβs
HTTP client sends every request to a host over one connection, and one
connection to GCS carried only 300 to 400 MiB/s.
mz_aws_util::pooled_http_client spreads requests over more connections.
Compare --client sdk with --client pooled to recheck that, or to tune
the poolβs size.
StructsΒ§
- Blob
Read Args - Concurrent persist blob reads against an S3-compatible store.
- Header
Waits π - Per HTTP method, the time from each request reaching the HTTP client until its response head arrives or it fails. Includes waiting for a connection, or for a free stream on a shared HTTP/2 connection. Each SDK retry is a separate request.
- PutStats π
- Read
Args π - Reader
Stats π - Store
Args π - Timed
Connector π - Timed
Http πClient - Wraps an HttpClient to record HeaderWaits.
- Upload
Args π
EnumsΒ§
- Client
Kind π - Command π
ConstantsΒ§
- PUT_
KEYS π - PUTs cycle through this many keys under PUT_KEY_PREFIX, overwriting old ones, so they donβt pile up in the bucket.
- PUT_
KEY_ πPREFIX - Keeps PUT objects out of the keys that readers fetch.
FunctionsΒ§
- open π
- Opens an S3Blob with persistβs production timeouts and no hedging.
- read π
- read_
timeouts π - The SDKβs read timeout firings so far: the
mz_persist_s3_read_timeoutscounter, which canβt be read from S3BlobMetrics outside its crate. - run π
- Runs the given blob-read bench command.
- summary π
- Count, p50, p99 and max of
samples. - upload π