Static Local Coordination Avoidance for Distributed Objects Artifacts
Creators: name: Soethout, Tim
Publisher: name: Zenodo
Year: 2019

description: Static Local Coordination Avoidance for Distributed Objects Artifacts http://dx.doi.org/10.5281/zenodo.3405232 Artifacts accompanying: Tim Soethout, Tijs van der Storm, and Jurgen J. Vinju. 2019. Static Local Coordination Avoidance for Distributed Objects. In Proceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE ’19), October 22, 2019, Athens, Greece. ACM, New York, NY, USA, 10 pages. https://doi.org/10.1145/3358499.3361222 This folder contains the experiment data, scripts to reproduce and source code for the Rebel runtime in Scala, and the SIE analysis in Rascal. (Zipped) folder <code>benchmark-results</code> contains all data used for performance evaluation in the paper. <code>Microbenchmarks.Rmd</code> -- R script to analyze the data + accompanying output in HTML and PDF Each folder contains the raw CSV data results and the Java Flight Recorder profile (<code>.jfr</code>) files (openable by JDK Mission Control application) See <code>Reproduce.md</code> for information on how to run the microbenchmarks. <code>rebel-runtime-lib_bench_latest.tar.gz</code> contains a docker image for reproducing results <code>docker-compose-bench.yml</code> contains scripts to run the microbenchmarks (Zipped) folder <code>rebel-runtime-lib</code> contains the Rebel runtime source code, implementing all the LoCA variants. <code>rebel-runtime-lib/bench/src/test/scala/com/ing/rebel/benchmark/vs/loca</code> for the microbenchmark source <code>rebel-runtime-lib/src/main/scala/com/ing/rebel/sync/pathsensitive/AllowCommandDecider.scala</code> for LoCA. <code>StaticCommandDecider</code> is LoCA^S. <code>DynamicPsacCommandDecider</code> is LoCA^D. (Zipped) folder <code>SIE-analysis</code> the Rascal source code used for doing the SIE analyses. SIE-analysis The Rascal source code can be run using Eclipse with the Rascal plugin (unstable version: https://update.rascal-mpl.org/unstable/). This folder contains an Eclipse workspace containing all the modules required to run the Analysis. rebel-core: Rebel DSL core rebel-eclipse: Rebel DSL tooling to use in Eclipse rebel-psac-static: The analysis tool smtlib2: Grammar and tools to output SMTLIB constraints Run the SIE analysis In order to run this, you require Eclipse (https://www.eclipse.org/) and Z3 (https://github.com/Z3Prover/z3/wiki). Z3 can be installed on Mac OSX via homebrew (<code>brew cask install z3</code>). Open the Rascal REPL in Eclipse by right clicking on source file: |project://rebel-psac-static/src/psac/IngSpecsRunner.rsc| and selecting <code>Run as &gt; Rascal Application</code>. After loading type/copy: <code>allTpcc()</code>. The tool will run the analysis on all the TPC-C benchmarks Rebel specification. Run and view the Account and Transaction example SIE analysis by entering: <code>import psac::Analysis;</code> <code>getResults(accountLoc)</code> Unfortunately we can not share the ING Prototype Rebel specifications. The TPC-C examples are found in |project://rebel-psac-static/examples/tpc_c|.
description: {"references": ["Tim Soethout, Tijs van der Storm, and Jurgen J. Vinju. 2019. Static Local Coordination Avoidance for Distributed Objects. In Proceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE '19), October 22, 2019, Athens, Greece. ACM, New York, NY, USA, 10 pages. https://doi.org/10.1145/3358499.3361222"]}