The external sort was heavily refactored in 1.10 to allow adding memory management. (See
DRILL-5080.) That effort focused on breaking up the large functions into smaller chunks to allow us to more easily modify the bits relevant to adding memory management.
This ticket discusses refining those changes to create modular bits that can be unit tested individually. For the most part, code will remain unchanged functionally, but functions will shift from class to class to break dependencies. Also, interfaces will be narrowed to remove global dependencies on things like FragmentContext or OperatorContext.
The code reviewer(s), when using GitHub, will simply see large changes. Notes below identify what was actually changed vs. what was merely moved.