Verifying Equivalence of Spark Programs Technical Report 1-Nov-2016
نویسندگان
چکیده
Spark is a popular framework for writing large scale data processing applications. Our goal is to develop tools for reasoning about Spark programs. This is challenging because Spark programs combine database-like relational algebraic operations and aggregate operations with User Defined Functions (UDF s). We present the first technique for verifying the equivalence of Spark programs. We model Spark as a programming language whose semantics imitates Relational Algebra queries (with aggregations) over bags (multisets) and allows for UDFs expressible in Presburger Arithmetics. While the problem of checking equivalence is undecidable in general, we present a sound technique for verifying the equivalence of an interesting class of Spark programs, and show that it is complete under certain restrictions. We implemented our technique in a prototype tool, and used it to verify the equivalence of a few small, but intricate, open-source Spark programs.
منابع مشابه
Verifying Equivalence of Spark Programs
Apache Spark is a popular framework for writing large scale data processing applications. Our long term goal is to develop automatic tools for reasoning about Spark programs. This is challenging because Spark programs combine database-like relational algebraic operations and aggregate operations, corresponding to (nested) loops, with User Defined Functions (UDFs). In this paper, we present a no...
متن کاملExperimental Study of Performance of Spark Ignition Engine with Gasoline and Natural Gas
The tests were carried out with the spark timing adjusted to the maximum brake torquetiming in various equivalence ratios and engine speeds for gasoline and natural gas operations. In thiswork, the lower heating value of gasoline is about 13.6% higher than that of natural gas. Based on theexperimental results, the natural gas operation causes an increase of about 6.2% brake special fuelconsumpt...
متن کاملVerifying the Equivalence of Logic Programs in the Disjunctive Case
• We consider (weak) equivalence of disjunctive logic programs. • We have previously developed an automated translation-based method for verifying the equivalence of programs supported by the smodels system. • P ≡s Q =⇒ P ≡ Q (by setting R = ∅), but P ≡ Q 6=⇒ P ≡s Q. • Whether P ≡ Q holds, remains open whenever P 6≡s Q holds =⇒ Verifying P ≡ Q remains as a problem of its own. • Complexity resul...
متن کاملO / 0 61 21 06 v 1 21 D ec 2 00 6 On completeness of logical relations for monadic types ⋆
Software security can be ensured by specifying and verifying security properties of software using formal methods with strong theoretical bases. In particular, programs can be modeled in the framework of lambda-calculi, and interesting properties can be expressed formally by contextual equivalence (a.k.a. observational equivalence). Furthermore, imperative features, which exist in most real-lif...
متن کاملProving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations
Distributed programs are often formulated in popular functional frameworks like MapReduce, Spark and Thrill, but writing efficient algorithms for such frameworks is usually a non-trivial task. As the costs of running faulty algorithms at scale can be severe, it is highly desirable to verify their correctness. We propose to employ existing imperative reference implementations as specifications f...
متن کامل