Sailesh Mukil has posted comments on this change. ( http://gerrit.cloudera.org:8080/10855 )
Change subject: IMPALA-7213: Port ReportExecStatus() RPC to use KRPC ...................................................................... Patch Set 4: (2 comments) http://gerrit.cloudera.org:8080/#/c/10855/4//COMMIT_MSG Commit Message: http://gerrit.cloudera.org:8080/#/c/10855/4//COMMIT_MSG@16 PS4, Line 16: This patch also introduces a new service pool for all query execution : control related RPCs in the future so that control commands from : coordinators aren't blocked by long-running DataStream services' RPCs. > do we want to consider the ability to put these on separate TCP connections +1 for this. I guess another way to do this would be to slightly modify how ConnectionId::Equals() works, which today matches the remote_ Sockaddr and the hostname_, and user credentials only: https://github.com/apache/kudu/blob/master/src/kudu/rpc/connection_id.cc#L70-L74 We can change it to include another field to match based on the type of RPC (call it 'proxy_hash_' or something). This can be done by making sure that different Proxy objects get different conn_id_ fields by initializing their ConnectionIds with these unique 'proxy_hash_' fields. https://github.com/apache/kudu/blob/master/src/kudu/rpc/proxy.cc#L68 This way FindConnection() would only find TCP connections meant to be used by that Proxy(): https://github.com/apache/kudu/blob/master/src/kudu/rpc/reactor.cc#L489 http://gerrit.cloudera.org:8080/#/c/10855/4/be/src/service/control-service.cc File be/src/service/control-service.cc: http://gerrit.cloudera.org:8080/#/c/10855/4/be/src/service/control-service.cc@72 PS4, Line 72: // TODO: implement something more efficient here, we're currently : // acquiring/releasing the map lock and doing a map lookup for : // every report (assign each query a local int32_t id and use that to index into a : // vector of ClientRequestStates, w/o lookup or locking?) > seems like an easy fix here is to use a RWLock since we expect that queries I'd done an analysis on using a R/W lock for the ClientRequestState map earlier and found that it could starve writers pretty badly, which means that new queries could be starved on admittance, badly affecting user experience: IMPALA-4456 In any case, I've sharded the map as part of the above JIRA and this comment predates my patch. So I don't think this is as big an issue anymore, and even less so after IMPALA-4063. I'd say we could get rid of this TODO. -- To view, visit http://gerrit.cloudera.org:8080/10855 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7638583b433dcac066b87198e448743d90415ebe Gerrit-Change-Number: 10855 Gerrit-PatchSet: 4 Gerrit-Owner: Michael Ho <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Michael Ho <[email protected]> Gerrit-Reviewer: Sailesh Mukil <[email protected]> Gerrit-Reviewer: Todd Lipcon <[email protected]> Gerrit-Comment-Date: Wed, 25 Jul 2018 22:08:32 +0000 Gerrit-HasComments: Yes
