Class AbstractDeMuxExchange

All Implemented Interfaces:
Iterable<PhysicalOperator>, GraphValue<PhysicalOperator>, Exchange, PhysicalOperator
Direct Known Subclasses:
UnorderedDeMuxExchange

public abstract class AbstractDeMuxExchange extends AbstractExchange
DeMuxExchange is opposite of MuxExchange. It is used when the sender has overhead that is proportional to the number of receivers. DeMuxExchange is run one instance per Drillbit endpoint which collects and distributes data belonging to local receiving fragments running on the same Drillbit. Example: On a 3 node cluster, if the sender has 10 receivers on each node each sender requires 30 buffers. By inserting DeMuxExchange, we create one receiver per node which means total of 3 receivers for each sender. If the number of senders is 10, we use 10*3 buffers instead of 10*30. DeMuxExchange has a overhead of buffer space that is equal to number of local receivers. In this case each DeMuxExchange needs 10 buffers, so total of 3*10 buffers.