An Executable Sequential Specification for Spark Aggregation
Abstract
Spark is a new promising platform for scalable data-parallel computation. It provides several high-level application programming interfaces (APIs) to perform parallel data aggregation. Since execution of parallel aggregation in Spark is inherently non-deterministic, a natural requirement for Spark programs is to give the same result for any execution on the same data set. We present PureSpark, an executable formal Haskell specification for Spark aggregate combinators. Our specification allows us to deduce the precise condition for deterministic outcomes from Spark aggregation. We report case studies analyzing deterministic outcomes and correctness of Spark programs.
- Publication:
-
arXiv e-prints
- Pub Date:
- February 2017
- DOI:
- 10.48550/arXiv.1702.02439
- arXiv:
- arXiv:1702.02439
- Bibcode:
- 2017arXiv170202439C
- Keywords:
-
- Computer Science - Distributed;
- Parallel;
- and Cluster Computing;
- Computer Science - Logic in Computer Science
- E-Print:
- an extended version of a paper accepted at NETYS'17