To read/write data from HDFS on data node, applications establise TCP/IP connections with the datanode. The HDFS read can be controled by setting Linux Traffic Control (TC) subsystem on the data node to make filters on appropriate connections.
The current cgroups net_cls concept can not be applied on the node where the container is launched, netheir on data node since:
- TC hanldes outgoing bandwidth only, so it can be set on container node (HDFS read = incoming data for the container)
- Since HDFS data node is handled by only one process, it is not possible to use net_cls to separate connections from different containers to the datanode.
1) Extend Resource model to define bandwidth enforcement rate
2) Monitor TCP/IP connection estabilised by container handling process and its child processes
3) Set Linux Traffic Control rules on data node base on address:port pairs in order to enforce bandwidth of outgoing data