Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve rpc_soak and channel_soak test to cover streaming #11687

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

zbilun
Copy link
Contributor

@zbilun zbilun commented Nov 13, 2024

  • PTAL @apolcyn
  • The clientCompressedStreaming and serverCompressedStreaming cases are not included in this version of the PR but will be added if necessary.
  • In this design, the large_unary soak test case will continue to use the blocking API, while the streaming test cases will use the non-blocking API.
  • A new test type parameter has been introduced to the performSoakTest function.
  • Please review the POC code, and we can discuss the design further, thanks!

return new SoakIterationResult(TimeUnit.NANOSECONDS.toMillis(elapsedNs), status);
}

private SoakIterationResult performOneSoakIterationPingPong(
Copy link
Contributor

@apolcyn apolcyn Nov 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how much benefit there will really be to running the different RPC types (client streaming, server streaming, etc.) in a loop.

The code paths and behaviors exercised are going to be very similar to the unary based soak tests we already have.

Here is a straw man idea for what I think might be useful here:

  • using a long-lived stream
  • start the stream once (per thread). On each soak iteration, send one message and receive one message.
  • If/when the stream fails, indicate it in the log, but otherwise restart the stream and continue on the new one.

This would provide us a new dimension of test coverage that we don't currently have much of (long lived RPCs).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants