Multi-hop gRPC benchmark

54 views
Skip to first unread message

Nan Dun

unread,
Mar 20, 2018, 12:42:15 AM3/20/18
to grp...@googlegroups.com, Thomas Ramfjord

Hi,

 

Is there a simple way to run or extend gRPC performance benchmark (https://grpc.io/docs/guides/benchmarking.html) in a multi-hop way instead of current peer-to-peer ping pong? For example, we have three servers, A, B, C: A calls B, and then B calls C.

 

Probably just extend the interface https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/services.proto to implement a service to relay the calls?

 

Thanks!

- Nan

Noah Eisen

unread,
Mar 20, 2018, 10:40:43 AM3/20/18
to nd...@quantcast.com, grpc.io, tram...@quantcast.com
We do not have this functionality at the moment.

We welcome external contributions if you would like to take a stab at it. I think you could use the proto, as is, and then add a new type of Worker called Proxy (currently a Worker can be either a Client or a Server). In the simplest case you would have three workers, and the test driver would tell one to become client, one to become server, and one to become proxy.



--
You received this message because you are subscribed to the Google Groups "grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+u...@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/55A41C99-16B4-4073-B4BE-2343E747FDB9%40quantcast.com.
For more options, visit https://groups.google.com/d/optout.

Thomas Ramfjord

unread,
Mar 20, 2018, 6:15:28 PM3/20/18
to Noah Eisen, Nan Dun, grpc.io

Would this just apply to the cpp benchmarks?  Or do all of the benchmarks communicate with a cpp server already? Thanks for all of the assistance you've already given.

Noah Eisen

unread,
Mar 21, 2018, 12:55:28 AM3/21/18
to tram...@quantcast.com, nd...@quantcast.com, grpc.io
This only applies to the cpp benchmarks. I am not very familiar with the other language though, so they might have a similar architecture, but all benchmarks are one language. We don't benchmark scenarios like a go client talking to a cpp server yet.

Noah Eisen

unread,
Mar 21, 2018, 1:09:47 AM3/21/18
to tram...@quantcast.com, nd...@quantcast.com, grpc.io
I have a correction to my previous answer.

All languages do support the same benchmarking design, so they can interop with each other. Picking one example, here is Ruby's implementation of the qps service. So any combination of client and server can be benchmarked. 

This means, jumping back to your original question, that proxy support would have to be added to all of the languages qps benchmark services
Reply all
Reply to author
Forward
0 new messages