为什么Spark worker actor使用masterLock?

时间:2014-08-07 02:22:28

标签: akka apache-spark

据我所知,演员一次只处理一条消息。我不明白为什么Apache Spark Worker actor在masterLock上同步?

case SendHeartbeat =>
  masterLock.synchronized {
    if (connected) { master ! Heartbeat(workerId) }
  }

我希望它看起来像这样:

case SendHeartbeat =>
    if (connected) { master ! Heartbeat(workerId)

1 个答案:

答案 0 :(得分:1)

user list thread上回答。简短的回答是不再需要锁;它只是一个遗留物,当主人可以从一个不同于演员的线程改变时,一个糟糕的设计后来被修改。