DAG-Based Formal Modeling of Spark Applications with MSVL

Apache Spark is a high-speed computing engine for processing massive data. With its widespread adoption, there is a growing need to analyze its correctness and temporal properties. However, there is scarce research focused on the verification of temporal properties in Spark programs. To address this...

Full description

Bibliographic Details
Main Authors: Kaixuan Fan, Meng Wang
Format: Article
Language:English
Published: MDPI AG 2023-12-01
Series:Information
Subjects:
Online Access:https://www.mdpi.com/2078-2489/14/12/658
_version_ 1797380647068631040
author Kaixuan Fan
Meng Wang
author_facet Kaixuan Fan
Meng Wang
author_sort Kaixuan Fan
collection DOAJ
description Apache Spark is a high-speed computing engine for processing massive data. With its widespread adoption, there is a growing need to analyze its correctness and temporal properties. However, there is scarce research focused on the verification of temporal properties in Spark programs. To address this gap, we employ the code-level runtime verification tool UMC4M based on the Modeling, Simulation, and Verification Language (MSVL). To this end, a Spark program S has to be translated into an MSVL program M, and the negation of the property P specified by a Propositional Projection Temporal Logic (PPTL) formula that needs to be verified is also translated to an MSVL program M1; then, a new MSVL program “M and M1” can be compiled and executed. Whether program S violates the property P is determined by the existence of an acceptable execution of “M and M1”. Thus, the key issue lies in how to formalize model Spark programs using MSVL programs. We previously proposed a solution to this problem—using the MSVL functions to perform Resilient Distributed Datasets (RDD) operations and converting the Spark program into an MSVL program based on the Directed Acyclic Graph (DAG) of the Spark program. However, we only proposed this idea. Building upon this foundation, we implement the conversion from RDD operations to MSVL functions and propose, as well as implement, the rules for translating Spark programs to MSVL programs based on DAG. We confirm the feasibility of this approach and provide a viable method for verifying the temporal properties of Spark programs. Additionally, an automatic translation tool, S2M, is developed. Finally, a case study is presented to demonstrate this conversion process.
first_indexed 2024-03-08T20:40:15Z
format Article
id doaj.art-d5dcc1e6a68b4c9f9f63c65cd9379db9
institution Directory Open Access Journal
issn 2078-2489
language English
last_indexed 2024-03-08T20:40:15Z
publishDate 2023-12-01
publisher MDPI AG
record_format Article
series Information
spelling doaj.art-d5dcc1e6a68b4c9f9f63c65cd9379db92023-12-22T14:15:56ZengMDPI AGInformation2078-24892023-12-01141265810.3390/info14120658DAG-Based Formal Modeling of Spark Applications with MSVLKaixuan Fan0Meng Wang1Cyberspace Security and Computer College, Hebei University, Baoding 071000, ChinaCyberspace Security and Computer College, Hebei University, Baoding 071000, ChinaApache Spark is a high-speed computing engine for processing massive data. With its widespread adoption, there is a growing need to analyze its correctness and temporal properties. However, there is scarce research focused on the verification of temporal properties in Spark programs. To address this gap, we employ the code-level runtime verification tool UMC4M based on the Modeling, Simulation, and Verification Language (MSVL). To this end, a Spark program S has to be translated into an MSVL program M, and the negation of the property P specified by a Propositional Projection Temporal Logic (PPTL) formula that needs to be verified is also translated to an MSVL program M1; then, a new MSVL program “M and M1” can be compiled and executed. Whether program S violates the property P is determined by the existence of an acceptable execution of “M and M1”. Thus, the key issue lies in how to formalize model Spark programs using MSVL programs. We previously proposed a solution to this problem—using the MSVL functions to perform Resilient Distributed Datasets (RDD) operations and converting the Spark program into an MSVL program based on the Directed Acyclic Graph (DAG) of the Spark program. However, we only proposed this idea. Building upon this foundation, we implement the conversion from RDD operations to MSVL functions and propose, as well as implement, the rules for translating Spark programs to MSVL programs based on DAG. We confirm the feasibility of this approach and provide a viable method for verifying the temporal properties of Spark programs. Additionally, an automatic translation tool, S2M, is developed. Finally, a case study is presented to demonstrate this conversion process.https://www.mdpi.com/2078-2489/14/12/658SparkMSVLtranslationverificationformalization
spellingShingle Kaixuan Fan
Meng Wang
DAG-Based Formal Modeling of Spark Applications with MSVL
Information
Spark
MSVL
translation
verification
formalization
title DAG-Based Formal Modeling of Spark Applications with MSVL
title_full DAG-Based Formal Modeling of Spark Applications with MSVL
title_fullStr DAG-Based Formal Modeling of Spark Applications with MSVL
title_full_unstemmed DAG-Based Formal Modeling of Spark Applications with MSVL
title_short DAG-Based Formal Modeling of Spark Applications with MSVL
title_sort dag based formal modeling of spark applications with msvl
topic Spark
MSVL
translation
verification
formalization
url https://www.mdpi.com/2078-2489/14/12/658
work_keys_str_mv AT kaixuanfan dagbasedformalmodelingofsparkapplicationswithmsvl
AT mengwang dagbasedformalmodelingofsparkapplicationswithmsvl