diff options
author | Vijay Pai <vpai@google.com> | 2016-03-31 14:42:35 -0700 |
---|---|---|
committer | Vijay Pai <vpai@google.com> | 2016-03-31 14:42:35 -0700 |
commit | 5562807aad013dc0f54bbf490a52684b08b251ec (patch) | |
tree | 760af22e1df102ee1b4300fd0edd1e42ec0b3f43 /src/ruby | |
parent | 828558ac4a8c18134a76dc94126f96627789770a (diff) |
Support many oustanding RPCs per channel - forgot to do this last time
Diffstat (limited to 'src/ruby')
-rw-r--r-- | src/ruby/qps/client.rb | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/src/ruby/qps/client.rb b/src/ruby/qps/client.rb index aef2c3a91e..d04f707479 100644 --- a/src/ruby/qps/client.rb +++ b/src/ruby/qps/client.rb @@ -77,33 +77,38 @@ class BenchmarkClient @start_time = Time.now @histogram = Histogram.new(@histres, @histmax) @done = false - (0..config.client_channels-1).each do |i| - Thread.new { - gtsr = Grpc::Testing::SimpleRequest - gtpt = Grpc::Testing::PayloadType - gtp = Grpc::Testing::Payload - simple_params = config.payload_config.simple_params - req = gtsr.new(response_type: gtpt::COMPRESSABLE, - response_size: simple_params.resp_size, - payload: gtp.new(type: gtpt::COMPRESSABLE, - body: nulls(simple_params.req_size))) - case config.load_params.load.to_s - when 'closed_loop' - waiter = nil - when 'poisson' - waiter = Poisson.new(config.load_params.poisson.offered_load / - config.client_channels) - end - gtbss = Grpc::Testing::BenchmarkService::Stub - st = config.server_targets - stub = gtbss.new(st[i % st.length], cred, **opts) - case config.rpc_type - when :UNARY - unary_ping_ponger(req,stub,config,waiter) - when :STREAMING - streaming_ping_ponger(req,stub,config,waiter) - end - } + + gtsr = Grpc::Testing::SimpleRequest + gtpt = Grpc::Testing::PayloadType + gtp = Grpc::Testing::Payload + simple_params = config.payload_config.simple_params + req = gtsr.new(response_type: gtpt::COMPRESSABLE, + response_size: simple_params.resp_size, + payload: gtp.new(type: gtpt::COMPRESSABLE, + body: nulls(simple_params.req_size))) + + (0..config.client_channels-1).each do |chan| + gtbss = Grpc::Testing::BenchmarkService::Stub + st = config.server_targets + stub = gtbss.new(st[chan % st.length], cred, **opts) + (0..config.outstanding_rpcs_per_channel-1).each do |r| + Thread.new { + case config.load_params.load.to_s + when 'closed_loop' + waiter = nil + when 'poisson' + waiter = Poisson.new(config.load_params.poisson.offered_load / + (config.client_channels * + config.outstanding_rpcs_per_channel)) + end + case config.rpc_type + when :UNARY + unary_ping_ponger(req,stub,config,waiter) + when :STREAMING + streaming_ping_ponger(req,stub,config,waiter) + end + } + end end end def wait_to_issue(waiter) |