Skip to main content

Module blob_read

Module blob_read 

Source
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Β§

BlobReadArgs
Concurrent persist blob reads against an S3-compatible store.
HeaderWaits πŸ”’
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 πŸ”’
ReadArgs πŸ”’
ReaderStats πŸ”’
StoreArgs πŸ”’
TimedConnector πŸ”’
TimedHttpClient πŸ”’
Wraps an HttpClient to record HeaderWaits.
UploadArgs πŸ”’

EnumsΒ§

ClientKind πŸ”’
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_timeouts counter, 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 πŸ”’