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);