You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by cloud-fan <gi...@git.apache.org> on 2017/11/04 00:43:10 UTC

[GitHub] spark pull request #19583: [WIP][SPARK-22339] [CORE] [NETWORK-SHUFFLE] Push ...

Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19583#discussion_r148917664
  
    --- Diff: core/src/main/scala/org/apache/spark/HeartbeatReceiver.scala ---
    @@ -51,7 +51,26 @@ private case class ExecutorRegistered(executorId: String)
     
     private case class ExecutorRemoved(executorId: String)
     
    -private[spark] case class HeartbeatResponse(reregisterBlockManager: Boolean)
    +private[spark] case class UpdatedEpoch(epoch: Long)
    +
    +private[spark] object HeartbeatResponse {
    +  def apply(reregisterBlockManager: Boolean,
    +            updatedEpoch: Option[Long] = None): HeartbeatResponse =
    +    updatedEpoch.fold[HeartbeatResponse](BasicHeartbeatResponse(reregisterBlockManager)) {
    +      epoch => HeartbeatResponseWithEpoch(reregisterBlockManager, Some(epoch))
    +    }
    +}
    +
    +private[spark] sealed trait HeartbeatResponse {
    +  def reregisterBlockManager: Boolean
    +  def updatedEpoch: Option[Long] = None
    +}
    +
    +private[spark] case class BasicHeartbeatResponse(reregisterBlockManager: Boolean)
    +  extends HeartbeatResponse
    +private[spark] case class HeartbeatResponseWithEpoch(reregisterBlockManager: Boolean,
    +                                                     override val updatedEpoch: Option[Long])
    +  extends HeartbeatResponse
    --- End diff --
    
    seems not a big saving, I think we can even always include the epoch in the heartbeat response.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org