google-cloud-rust icon indicating copy to clipboard operation
google-cloud-rust copied to clipboard

Extend `w1r3` benchmark to use bidi streaming reads

Open coryan opened this issue 4 weeks ago • 3 comments

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.

coryan avatar Dec 02 '25 14:12 coryan

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.

AndreaBozzo avatar Dec 04 '25 16:12 AndreaBozzo

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.

coryan avatar Dec 08 '25 17:12 coryan

Thanks for your answer, feel free to dm/tag if anything comes up!

AndreaBozzo avatar Dec 08 '25 17:12 AndreaBozzo

And I did change my mind. The random access benchmark is good enough for our purposes.

coryan avatar Dec 12 '25 19:12 coryan