Today the MapOutputTracker and ShuffleMapStage both maintain their own copies of MapStatuses. This creates the potential for bugs in case these two pieces of state become out of sync.
I believe that we can improve our ability to reason about the code by storing this information only in the MapOutputTracker. This can also help to reduce driver memory consumption.
I will provide more details in my PR, where I'll walk through the detailed arguments as to why we can take these two different metadata tracking formats and consolidate without loss of performance or correctness.