What mode has the highest throughput?

70 views
Skip to first unread message

jun....@gmail.com

unread,
Dec 2, 2017, 4:49:19 PM12/2/17
to grpc.io
Hi all, 

I am trying to implement a service that has the highest possible throughput. I don't care if it is any of async/sync x unary/streaming. 

I looked at the benchmark results at https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5632763172487168&widget=713624174&container=1012810333 It seems that "cpp_generic_async_streaming_qpx_unconstrained_insecure" has the highest throughput. 

I guess this test is 'async streaming' according to the test name. But, what streaming? Is it server-side, client-side or bidirectional? 

A more general question is, which combination of async/sync x unary/server_streaming/client_streaming/bidirectional_streaming has the highest performance?

Thanks,
Jun

Carl Mastrangelo

unread,
Dec 5, 2017, 6:57:04 PM12/5/17
to grpc.io
For highest throughput, bidi streaming will probably be the fastest.   This is not to say that the other modes won't be fast, just that it's faster.   Be aware that bidi streaming calls are not as general as unary calls (no headers per message, no retries, etc.) 

Eric Anderson

unread,
Dec 6, 2017, 9:14:57 AM12/6/17
to jun....@gmail.com, grpc.io
On Sat, Dec 2, 2017 at 3:49 PM, <jun....@gmail.com> wrote:
I guess this test is 'async streaming' according to the test name. But, what streaming? Is it server-side, client-side or bidirectional?

It's streaming in "the one direction that matters." Since it is testing throughput in only one direction, it just needs to stream in that one direction. Client-streaming and server-streaming should see the same performance, although you'll have to flip which side is doing the mass-sending. I think Carl answered the rest of your question.

jun....@gmail.com

unread,
Dec 6, 2017, 3:16:52 PM12/6/17
to grpc.io
Thanks for the replies!

Jun
Reply all
Reply to author
Forward
0 new messages