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!
| the responsibility of the class itself. This keeps the factory generic: adding workload support | ||
| to a new benchmark only requires implementing `workload_configs` on that class — no changes to | ||
| `benchmarkfactory.py` are needed. | ||
|
|
There was a problem hiding this comment.
Can we please add an small example of execution, point to point? A small test plan yaml (to be part of the examples/) and a snapshot of how is executed, what is expected?
There was a problem hiding this comment.
Sure! Is it cool if I leave this for the next story PR which is currently up (but not quite ready for review)? That's the story which involves getting Elbencho to start working, and I'm almost done actually getting some real test results from the sample YAML -- I feel like these doc requests you've raised fit better in that PR since it's the one that starts building the CLI call in py
f0c2812 to
7831e76
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.