In order to avoid memory overuse ahead of time, which may lead to executor failure, we have to safely separate the portions of memory that the JVM heap, off-heap and 'slack' share. The current implementation ([PR:
NEMO-388|https://github.com/apache/incubator-nemo/pull/223]) does not guarantee this, allocating the off-heap memory on-demand. Off-heap region size will be given as a ratio of executor memory just like the slack size. Since off-heap memory is used in various types of Blocks, off-heap memory should be retained.