Please take a look at the following code. This code determines which sort operator is chosen according to the input volume. Here are two problems. One is threshold is constant value, and it must be configurable. The second problem is that estimateSizeRecursive does not obtain an input volume if a task is leaf. We should fix them. In addition, I think that estimateSizeRecursive should be renamed to more proper name. It's vague and does not follow our naming convention.