Extend `w1r3` benchmark to use bidi streaming reads
The w1r3 benchmark should be able to use bidi streaming reads.
- The benchmark should be able to pick the read function (
read_object()vs.open_object()+read_range()) at random. - The list of available functions should configurable in the command-line.
- If possible, capture the
open_object()latency.
Hi @coryan , I started working on this issue but ran into some questions about the implementation approach.
Looking at how storage-random (#3950) implements open_object support, I see it uses a separate bidi.rs module with #[cfg(google_cloud_unstable_storage_bidi)] conditional compilation.
For w1r3, should I follow the same pattern (separate module), or is integrating directly into main.rs acceptable? Also, the Instrumented wrapper expects Future<Output = Result<O, E>>, which conflicts with returning both transfer size and result, how is this handled in the existing codebase?
Happy to proceed once I understand the preferred approach.
Thanks for the offer. I do not think this is a good issue for an external contributor, we are not even sure if we want to change the w1r3 benchmark this way (probably, but we may change our minds).
In general, we struggle to find good projects for external contributors, I made another pass through the open bugs and could not find a good starter. I will keep you in mind if something comes up.
Thanks for your answer, feel free to dm/tag if anything comes up!
And I did change my mind. The random access benchmark is good enough for our purposes.