register Elbencho as a CBT benchmark - #359
Conversation
ScopeThe diff matches the Jira ticket and PR description. Story 2 requires registering Elbencho as a benchmark class with factory integration, workload storage, and validation — all present. The Code Review[P1] [P2] [P2] [P2] [P3] [P3] SecurityCredential handling in tests: The test fixture SummaryThe registration is solid and the factory bypass logic is correct. The P1 issue around |
7e64adb to
89776a3
Compare
c6bd7e0 to
550e5d4
Compare
6463326 to
f0c2812
Compare
perezjosibm
left a comment
There was a problem hiding this comment.
Just a few changes needed, eg checking return values from pdsh, documentation. Looking very good, many thanks!
f0c2812 to
7831e76
Compare
…check helper Lifts the benchmark registry into a module-level dict, renames all_configs() to expand_configs(), and adds a workload_configs dispatch so benchmarks can own their own config expansion. Adds pdsh_check() to common.py as a fail-fast single-liner. Signed-off-by: Kenan Al-Shamie <kenan.al-shamie@ibm.com> Assisted-by: Bob 2.0
7831e76 to
9a34804
Compare
9a34804 to
1975a36
Compare
Registers Elbencho as a CBT benchmark with a workloads dict model — list-valued parameters are expanded internally rather than by the factory. Applies the same fail-fast pdsh_check binary validation to hsbench. Includes tests, a usage guide under docs/workloads/, and an example YAML. Signed-off-by: Kenan Al-Shamie <kenan.al-shamie@ibm.com> Assisted-by: Bob 2.0
1975a36 to
1f3a50a
Compare

Story 2 of 11
This is the foundation story for Elbencho S3 support in CBT. It does one thing: makes
elbencho:a valid benchmark in a YAML test plan, on par with fio, radosbench, etc. However, this is incomplete; I've intentionally opted for making this work incremental to allow for more focus during reviews and better handling of requirements, especially since I'm new to this codebase and tool.The only non-trivial decision here is how the factory handles Elbencho's config. Most benchmarks take scalar parameters and the factory Cartesian-expands any list values into separate runs through
benchmarkfactory.py. Elbencho works differently — its iteration axes live inside a workloads dict that the class owns. A new guard inbenchmarkfactory.pyprevents the factory from expanding those lists and breaking that structure by checking for a particular function in theelbencho.py(and all other tools') class. This sets the pattern for any future benchmark that uses the same workloads model.The run loop itself (the three-tier blocksize → threads → iodepth iteration and pdsh execution) is Story 3 and comes in the next PR. The
_run_workloads()method here is a stub.25 unit tests cover the construction, validation, and factory bypass behaviour.
Regarding the Pull Conquest review below
This is the result of an tool that I developed. It's a configurable & semi-automated AI code review tool using
bob -p,pythonand vanillahtml,js, andcss.