Mitigating Spark straggler tasks for iterative applications by data re-partitioning