Github user GraceH commented on the pull request:

    https://github.com/apache/spark/pull/7888#issuecomment-154322010
  
    Thanks @andrewor14. 
    
    Hi @vanzin,  Let me give a quick brief to you about the patch and its goal. 
    
    There is a bug in dynamic allocation. Since some of the busy executors 
might be killed by "mistake", when we met such kind of situation in real-world 
deployment frequently. 
    1. The executor is being idled for 60 seconds, and just marked as to be 
killed by dynamic allocation criteria.
    2. The scheduler is assigning one/several tasks to that executor. The 
listener event not reached that time. (since the listener event only happens 
after new tasks assigned synchronously)
    3.  The executor is killed as planned. But actually, that executor is just 
assigned with some tasks. That causes one busy executor is killed by 
”mistake".
    
    To solve this problem, one thing is to make that task assignment and 
notification synchronized. But this approach is not suitable for current 
implementation (listener mechanism). 
    
    Here I proposed another way. To add the force control in killExecutor(). 
For dynamic allocation, we need to check if the executor is busy or not before 
really taking the kill action. By doing so, even the listen event not arrives 
in time, we can actively rescue certain busy executors (to be killed but with 
new tasks assigned).  Thru dynamic allocation we should not kill those busy 
executors (disable force control).
    
    And meanwhile, we open that force control to the end user (sparkcontext 
public API). The end user can decide whether to force kill certain executors .
    
    Please let me understand your thoughts. Thanks a lot.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

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

Reply via email to