J-ReCoVer: Java Reducer Commutativity Verifier

The MapReduce framework for data-parallel computation was first proposed by Google [10] and later implemented in the Apache Hadoop project. Under the MapReduce framework, a reducer computes output values from a sequence of input values transmitted over the network. Due to non-determinism in data transmission, the order in which input values arrive at the reducer is not fixed. In relation to this, the commutativity problem of reducers asks if the output of a reducer is independent of the order of its inputs. Indeed, there are several advantages for a reducer to be commutative, e.g., the verification problem of a MapReduce program can be reduced to the problem of verifying a sequential program. We present the tool J-ReCoVer (Java Reducer Commutativity Verifier) that implements effective heuristics for reducer commutativity analysis. J-ReCoVer is the first tool that is specialized in checking reducer commutativity. Our experimental results over 118 benchmark examples collected from open repositories are very positive; J-ReCoVer correctly handles over 97% of them.

[1]  Lei Song,et al.  The Commutativity Problem of the MapReduce Framework: A Transducer-Based Approach , 2016, CAV.

[2]  Yu-Fang Chen,et al.  Commutativity of Reducers , 2015, TACAS.

[3]  Vladimir Klebanov,et al.  Automating regression verification of pointer programs by predicate abstraction , 2018, Formal Methods Syst. Des..

[4]  Parosh Aziz Abdulla,et al.  Memorax, a Precise and Sound Tool for Automatic Fence Insertion under TSO , 2013, TACAS.

[5]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[6]  Thomas W. Reps,et al.  Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis , 2008, CAV.

[7]  Gilles Barthe,et al.  Relational Verification Using Product Programs , 2011, FM.

[8]  Arie Gurfinkel,et al.  Automated Discovery of Simulation Between Programs , 2015, LPAR.

[9]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[10]  Aws Albarghouthi,et al.  MapReduce program synthesis , 2016, PLDI.

[11]  Serdar Tasiran,et al.  Verifying Robustness of Event-Driven Asynchronous Programs Against Concurrency , 2017, ESOP.

[12]  Chengkai Li,et al.  New ideas track: testing mapreduce-style programs , 2011, ESEC/FSE '11.

[13]  Roland Meyer,et al.  Checking and Enforcing Robustness against TSO , 2013, ESOP.

[14]  Salvatore La Torre,et al.  Bounded Model Checking of Multi-threaded C Programs via Lazy Sequentialization , 2014, CAV.

[15]  Parosh Aziz Abdulla,et al.  Counter-Example Guided Fence Insertion under TSO , 2012, TACAS.

[16]  Yu-Fang Chen,et al.  Register automata with linear arithmetic , 2017, 2017 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS).