used in this work. To have a representative cost model for the various MapReduce phases and the entire process, we studied the most common design pattern algorithms of MapReduce presented in [@Miner:2012:MDP:2632825]. The motivation of using MapReduce design pattern approach in the experimental setup is to avoid bias towards specific applications only. As shown in Table \[table:algorithms\], we have only included large datasets in the experiment to narrow our focus on big data and data-intensive applications. We have identified four common design patterns, and for each of these patterns, we tested at least three algorithms to show how algorithms using the same pattern relates to one another. We assume that algorithms with the same pattern would have similar performance characteristics.

-   Summarisation Pattern: This pattern provides a summary of an input dataset. The popular MapReduce program is a good example.

-   Filtering Pattern: This pattern filters and returns a subset of a given original dataset. In most cases, there is a reduction in the amount of output dataset compared to the input dataset. Example of algorithms in this pattern are Distributed $Grep$, $Distinct$, and $Top$ $K$.

-   Data Organisation Pattern: This pattern deals with the reorganisation from one structure to 