Hey Tez devs! Every time I think about technical debt in Tez codebase, the duplicated shuffle/fetcher is the first thing in my mind. I created https://issues.apache.org/jira/browse/TEZ-4498 about this, more specifically the gradual refactoring of these classes. Please, don't hesitate to add anything, I'm open to knowing the history (apart from what I can scroll through on GitHub) as well as possible drawbacks of this refactor. Also, feel free to add new subtasks.
Regards, Laszlo Bodor