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

    https://github.com/apache/mesos/pull/279#discussion_r179539166
  
    --- Diff: src/master/master.hpp ---
    @@ -1913,6 +1913,10 @@ class Master : public ProtobufProcess<Master>
         // `registry_max_agent_age`, and `registry_max_agent_count` flags.
         LinkedHashMap<SlaveID, TimeInfo> unreachable;
     
    +
    +    // Holds the `FrameworkID` and set of `TaskID` for the agents marked 
unreachable.
    +    hashmap<SlaveID, hashmap<FrameworkID, hashset<TaskID>>> 
unreachableAgentsToTasks;
    --- End diff --
    
    I would suggest s/unreachableAgentsToTasks/unreachableTasks/. It's under 
the `slaves` struct already so the longer name would be a bit redundant. 
However we probably need a long comment explaining why we need to do this, in 
particular:
    
    - This helps us look up all unreachable tasks on an agent so we can remove 
them from their primary storage`framework.unreacahbleTasks` when an agent 
reregisters.
    - This map is bounded by the same GC behavior as `unreachable`. i.e., the 
agent is GC'd from `unreachable` it's also erased from `unreachableTasks`.
    
    Can we use an multihashmap (in stout)?


---

Reply via email to