You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by James Peach <jo...@gmail.com> on 2015/05/20 19:47:34 UTC

Re: [1/3] mesos git commit: Index slaves by UPID in the master.

> On May 19, 2015, at 12:22 PM, bmahler@apache.org wrote:
> 
> Repository: mesos
> Updated Branches:
>  refs/heads/master 26091f461 -> c24268f13
> 
> 
> Index slaves by UPID in the master.
> 
> Review: https://reviews.apache.org/r/34388
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
> Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/42cf03af
> Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/42cf03af
> Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/42cf03af
> 
> Branch: refs/heads/master
> Commit: 42cf03af66f2691d04e5c88ac7e098625d38e0bf
> Parents: b19ffd2
> Author: Benjamin Mahler <be...@gmail.com>
> Authored: Mon May 18 18:37:11 2015 -0700
> Committer: Benjamin Mahler <be...@gmail.com>
> Committed: Tue May 19 11:55:30 2015 -0700
> 
> ----------------------------------------------------------------------
> src/master/master.cpp | 127 +++++++++++++++++++++++----------------------
> src/master/master.hpp |  65 ++++++++++++++++++++++-
> 2 files changed, 129 insertions(+), 63 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/mesos/blob/42cf03af/src/master/master.cpp
> ----------------------------------------------------------------------
> diff --git a/src/master/master.cpp b/src/master/master.cpp
> index eaea79d..d2df99c 100644
> --- a/src/master/master.cpp
> +++ b/src/master/master.cpp
> @@ -973,7 +973,9 @@ void Master::exited(const UPID& pid)
>     }
>   }
> 
> -  // The semantics when a slave gets disconnected are as follows:
> +  // The semantics when a registered slave gets disconnected are as
> +  // follows:
> +  //
>   // 1) If the slave is not checkpointing, the slave is immediately
>   //    removed and all tasks running on it are transitioned to LOST.
>   //    No resources are recovered, because the slave is removed.
> @@ -985,42 +987,42 @@ void Master::exited(const UPID& pid)
>   //    2.2) Framework is not-checkpointing: The slave is not removed
>   //         but the framework is removed from the slave's structs,
>   //         its tasks transitioned to LOST and resources recovered.
> -  foreachvalue (Slave* slave, slaves.registered) {
> -    if (slave->pid == pid) {
> -      LOG(INFO) << "Slave " << *slave << " disconnected";
> -
> -      if (!slave->info.checkpoint()) {
> -        // Remove the slave, if it is not checkpointing.
> -        LOG(INFO) << "Removing disconnected slave " << *slave
> -                  << " because it is not checkpointing!";
> -        removeSlave(slave,
> -                    "slave is non-checkpointing and disconnected");
> -        return;
> -      } else if (slave->connected) {
> -        // Checkpointing slaves can just be disconnected.
> -        disconnect(slave);
> +  if (slaves.registered.contains(pid)) {
> +    Slave* slave = slaves.registered.get(pid);
> +    CHECK_NOTNULL(slave);

Would it be better to do this:
	if (Slave* slave = slaves.registered.get(pid)) {

J