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