Replies: 1 comment 1 reply
-
|
Sounds like a really good addition. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
A small new freon subcommand, OzoneClientKeyListReader (ocklr), that reads a caller-supplied list of existing keys with a warm, reused OzoneClient and reports per-read latency (DropWizard timer) plus aggregate read throughput. It's a read-path benchmark/load generator for real, already-present data.
Motivation
freon's existing client read tools can only read keys they generated:
SameKeyReader (ocokr)reads one fixed key from many threads.There's no freon command to point at an arbitrary, heterogeneous set of existing keys (e.g. a real dataset already in a bucket) and measure read throughput. We hit this doing read-path performance work: we wanted warm-client single-stream vs parallel-scaling numbers on production-like data, not on freshly-generated uniform keys (which are page-cache-hot and not representative). ocklr fills that gap.
It also cleanly separates two effects that matter for read benchmarking — client warmth (JIT + pooled datanode connections, amortized by the reused client) vs datanode page-cache — and lets you drive concurrency with -t to find where read throughput saturates.
What it does
--key-file <path>: local file, one key name per line; blank lines and # comments ignored.BaseFreonGenerator: warm sharedOzoneClient,-tthreads,-ntotal reads (task i reads keys[i % keys.size()], so -n loops the list), DropWizard timer.ozone sh key get/ the FileSystem open() (readKey → KeyInputStream → BlockInputStream → ChunkInputStream → datanode ReadChunk), so the numbers reflect the real client read stack.Example
ozone freon ocklr -v <volume> -b <bucket> --key-file /tmp/keys.txt -t 8 -n 160Questions for the community
If there's interest I'll file an HDDS JIRA and open a PR (code is ready).
Beta Was this translation helpful? Give feedback.
All reactions