This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new d08af2f  ARROW-9168: [C++][Flight] Don't share TCP connection among 
clients
d08af2f is described below

commit d08af2f8b7dbed191e9eba3f1f6ca82e282fcd31
Author: Yibo Cai <[email protected]>
AuthorDate: Thu Jun 18 17:23:31 2020 +0200

    ARROW-9168: [C++][Flight] Don't share TCP connection among clients
    
    Flight benchmark performs worse when working threads increases. It can
    be improved by setting gRPC option GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL
    to make each client creating its own TCP connection to server, without
    sharing one connection.
    
    Closes #7476 from cyb70289/flight
    
    Authored-by: Yibo Cai <[email protected]>
    Signed-off-by: Antoine Pitrou <[email protected]>
---
 cpp/src/arrow/flight/client.cc | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/cpp/src/arrow/flight/client.cc b/cpp/src/arrow/flight/client.cc
index c228f71..8f1925a 100644
--- a/cpp/src/arrow/flight/client.cc
+++ b/cpp/src/arrow/flight/client.cc
@@ -858,6 +858,9 @@ class FlightClient::FlightClientImpl {
     args.SetInt(GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS, 100);
     // Receive messages of any size
     args.SetMaxReceiveMessageSize(-1);
+    // Setting this arg enables each client to open it's own TCP connection to 
server,
+    // not sharing one single connection, which becomes bottleneck under high 
load.
+    args.SetInt(GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL, 1);
 
     if (options.override_hostname != "") {
       args.SetSslTargetNameOverride(options.override_hostname);

Reply via email to