“…However, there exist many possible optimizations and programming model improvements to improve the performance and usability of the iterative MapReduce programs. Such optimization opportunities are highlighted by the development of many iterative MapReduce frameworks such as Twister [6], HaLoop [7], Twister4Azure [3], Daytona [18] and spark [19]. Optimizations exploited by these frameworks include caching of loopinvariant data, cache aware scheduling of tasks, iterative aware programming models, direct memory streaming of intermediate data, iteration-aware fault tolerance, caching of intermediate data (HaLoop reducer input cache), dynamic modifications to cached data (e.g.…”