Towards Memory-Optimized Data Shuffling Patterns for Big Data Analytics