You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Henry Robinson (JIRA)" <ji...@apache.org> on 2017/03/27 21:10:42 UTC

[jira] [Created] (IMPALA-5119) Don't call CancelFragmentInstances() from Coordinator::UpdateFragmentExecStatus()

Henry Robinson created IMPALA-5119:
--------------------------------------

             Summary: Don't call CancelFragmentInstances() from Coordinator::UpdateFragmentExecStatus()
                 Key: IMPALA-5119
                 URL: https://issues.apache.org/jira/browse/IMPALA-5119
             Project: IMPALA
          Issue Type: Sub-task
          Components: Distributed Exec
    Affects Versions: Impala 2.9.0
            Reporter: Henry Robinson
            Assignee: Henry Robinson


If it reports a bad status, {{UpdateFragmentExecStatus()}} will call {{UpdateStatus()}}, which takes {{Coordinator::lock_}} and then calls {{CancelFragmentInstances()}}. That method issues one RPC per fragment instance.

In KRPC, doing so much work from {{UpdateFragmentExecStatus()}} - which is an RPC handler - is a bad idea, even if the RPCs are issued asynchronously. There's still some serialization cost.

It's also a bad idea to do all this work while holding {{lock_}}. We should address both of these to ensure scalability of the cancellation path.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)