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

Reply via email to