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

Michael Smith resolved IMPALA-13475.
------------------------------------
    Fix Version/s: Impala 5.0.0
       Resolution: Fixed

> Consider byte size when enqueuing deferred RPCs in KrpcDataStreamRecvr
> ----------------------------------------------------------------------
>
>                 Key: IMPALA-13475
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13475
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Backend
>            Reporter: Csaba Ringhofer
>            Priority: Critical
>             Fix For: Impala 5.0.0
>
>
> KrpcDataStreamRecvr::SenderQueue::ProcessDeferredRpc() can fail to process 
> the deferred RCP if batch_queue is not empty  and the batch queue + the 
> currently processed batch would consume too much memory (see 
> KrpcDataStreamRecvr::CanEnqueue for details). The deferred RPC is moved back 
> to the queue in this case.
> Meanwhile KrpcDataStreamRecvr::SenderQueue::GetBatch() doesn't consider the 
> mem requirement of the batches when initiating the deserialization of 
> deferred RCPs ( EnqueueDeserializeTask) and tries to deserialize as much 
> batches in parallel as possible 
> (FLAGS_datastream_service_num_deserialization_threads, 
> https://github.com/apache/impala/blob/c83e5d97693fd3035b33622512d1584a5e56ce8b/be/src/runtime/krpc-data-stream-recvr.cc#L281).
> This means that several threads may start ProcessDeferredRpc() even if 
> GetBatch() could have predicted that most will fail due to the memory limit. 
> While this ProcessDeferredRpc() will fail early in this case and won't do 
> much work, these extra failed attempts make 
> lock contention worse in KrpcDataStreamRecvr::SenderQueue. In the worst case 
> when only 1 batch fits to memory this can lead to 
> O(FLAGS_datastream_service_num_deserialization_threads * num_batches) wasted 
> ProcessDeferredRpc attempts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to