Optimizing Shuffle Performance in Spark
resilient distributed datasets : a fault - tolerant abstraction for in - memory cluster computing .