Class Dispatcher

java.lang.Object
org.apache.drill.yarn.appMaster.Dispatcher

public class Dispatcher extends Object
Dispatches YARN, timer and ZooKeeper events to the cluster controller. Allows the controller to be independent of the plumbing needed to receive events. Divides work among various components to separate concerns. Three streams of events feed into an app master "strategy". The three streams are
  1. Resource manager
  2. Node manager
  3. Timer

This class is "lightly" multi-threaded: it responds to events from the RM, NM and timer threads. Within each of these, events are sequential. So, synchronization is needed across the three event types, but not within event types. (That is, we won't see two RM events, say, occurring at the same time from separate threads.)