Github user tdas commented on a diff in the pull request:

    https://github.com/apache/spark/pull/7276#discussion_r34752882
  
    --- Diff: 
streaming/src/main/scala/org/apache/spark/streaming/scheduler/ReceiverTracker.scala
 ---
    @@ -71,13 +82,57 @@ class ReceiverTracker(ssc: StreamingContext, 
skipReceiverLaunch: Boolean = false
       )
       private val listenerBus = ssc.scheduler.listenerBus
     
    +  /** Enumeration to identify current state of the ReceiverTracker */
    +  object TrackerState extends Enumeration {
    +    type CheckpointState = Value
    +    val Initialized, Started, Stopping, Stopped = Value
    +  }
    +  import TrackerState._
    +
    +  /** State of the tracker. Protected by "trackerStateLock" */
    +  private var trackerState = Initialized
    +
    +  /** "trackerStateLock" is used to protect reading/writing "trackerState" 
*/
    +  private val trackerStateLock = new AnyRef
    +
       // endpoint is created when generator starts.
       // This not being null means the tracker has been started and not stopped
       private var endpoint: RpcEndpointRef = null
     
    +  private val schedulingPolicy: ReceiverSchedulingPolicy =
    +    new LoadBalanceReceiverSchedulingPolicyImpl()
    +
    +  /**
    +   * Track receivers' status for scheduling
    +   */
    +  private val receiverTrackingInfos = new HashMap[Int, 
ReceiverTrackingInfo]
    +
    +  /**
    +   * Store all preferred locations for all receivers. We need this 
information to schedule receivers
    +   */
    +  private val receiverPreferredLocations = new HashMap[Int, Option[String]]
    +
    +  /** Use a separate lock to avoid dead-lock */
    +  private val receiverTrackingInfosLock = new AnyRef
    +
    +  /** Check if tracker has been marked for starting */
    +  private def isTrackerStarted(): Boolean = trackerStateLock.synchronized {
    --- End diff --
    
    nit: Please move these helper methods lower in the class after ` 
hasUnallocatedBlocks`


---
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