Memory optimizations for distributed executors in big data clouds