[ 
https://issues.apache.org/jira/browse/IMPALA-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Ho updated IMPALA-5859:
-------------------------------
    Parent Issue: IMPALA-7300  (was: IMPALA-5865)

> Better flow-control for TransmitData() with KRPC
> ------------------------------------------------
>
>                 Key: IMPALA-5859
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5859
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Distributed Exec
>            Reporter: Michael Ho
>            Priority: Major
>
> Each KRPC service by default has a fixed length queue which limits the number 
> of incoming call requests to be processed. If the queue fills up, any 
> incoming calls will be dropped and the RPC layer will return an error message:
> {noformat}
>   // Queue message on service queue
>   boost::optional<InboundCall*> evicted;
>   auto queue_status = service_queue_.Put(c, &evicted);
>   if (queue_status == QUEUE_FULL) {
>     RejectTooBusy(c);
>     return Status::OK();
>   }
> {noformat}
> The current implementation of TransmitData() with KRPC will sleep for a 
> predefined period of time before retrying the RPC. However, it may be 
> wasteful of network bandwidth to resend the entire row batch if the remote 
> server's service queue is still filled up.
> Instead, when the client hits the capacity limit above, it should fall back 
> to a periodic ping RPC to check if the remote server has any space available 
> and only when space is available in the remote service should the client send 
> the entire row batch again.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to