code: void addNewTracker(TaskTracker taskTracker) {
      TaskTrackerStatus status = taskTracker.getStatus();
      trackerExpiryQueue.add(status);
  
      //  Register the tracker if its not registered
      String hostname = status.getHost();
      if (getNode(status.getTrackerName()) == null) {
        // Making the network location resolution inline ..
        resolveAndAddToTopology(hostname);
      }
  
      // add it to the set of tracker per host
      Set<TaskTracker> trackers = hostnameToTaskTracker.get(hostname);
      if (trackers == null) {
        trackers = Collections.synchronizedSet(new HashSet<TaskTracker>());
        hostnameToTaskTracker.put(hostname, trackers);
      }
      statistics.taskTrackerAdded(status.getTrackerName());
      getInstrumentation().addTrackers(1);
      LOG.info("Adding tracker " + status.getTrackerName() + " to host "
               + hostname);
      trackers.add(taskTracker);
    }
docs: Adds a new node to the jobtracker. It involves adding it to the expiry
  thread and adding it for resolution
  
  Assumes JobTracker, taskTrackers and trackerExpiryQueue is locked on entry
  
  @param taskTracker Task Tracker