Github user vrozov commented on the issue:
https://github.com/apache/drill/pull/1237
IMO, it will be good to understand what other operators do as well. For
example what Project or Filter operators do. Do they take ownership of incoming
batches? And if they do, when is the ownership taken?
I do not suggest that we change how Sender and Receiver control **all**
aspects of communication, at least not as part of this JIRA/PR. The difference
in my and your approach is whether or not UnorderedReceiver and other receivers
are pass-through operators. My view is that receivers are not pass-through
operators and they are buffering operators as they receive batches from the
network and buffer them before downstream operators are ready to consume those
batches. In your view, receivers are pass-through operators that get batches
from fragment queue or some other queue and pass them to downstream. As there
is no wait and no processing between getting a batch from fragment queue and
passing it to the next operator, I don't see why a receiver needs to take the
ownership.
---