The execution of an application written in a reactive language involves transfer of data and control flow between imperative and reactive abstractions at well-defined points. In a multi-threaded environment, multiple such interactions may execute concurrently, potentially causing data races and event ordering ambiguities. Existing RP languages either disable multi-threading or handle it at the cost of reducing expressiveness or weakening consistency. This paper proposes a model for thread-safe reactive programming (RP) that ensures abort-free strict serializability under concurrency while sacrificing neither expressiveness nor consistency. We also propose an architecture for integrating a corresponding scheduler into the RP language runtime, such that thread-safety is provided “out-of-the-box” to the applications.
We show the feasibility of our proposal by providing and evaluating a ready-to-use implementation integrated into the REScala programming language. The scheduling algorithm is formally proven correct. A thorough empirical evaluation shows that reactive applications build on top of it scale with multiple threads, while the scheduler incurs acceptable performance overhead in a single-threaded configuration. The scalability enabled by our scheduler is roughly on-par with that of hand-crafted application-specific locking and better than the scalability enabled by a scheduler using an off-the-shelf software transactional memory library.
|Thread-Safe Reactive Programming Artifact (Thread-Safe Reactive Programming Artifact.zip)||306KiB|
Thu 8 Nov
|13:30 - 13:52|
Joscha DrechslerTechnische Universität Darmstadt, Ragnar MogkTechnische Universität Darmstadt, Guido SalvaneschiTU Darmstadt, Mira MeziniTU DarmstadtDOI Pre-print File Attached
|13:52 - 14:15|
Sam BlackshearFacebook, Nikos Gorogiannis, Peter W. O'HearnFacebook and University College London, Ilya SergeyYale-NUS CollegePre-print
|14:15 - 14:37|
What Happens-After the First Race? Enhancing the Predictive Power of Happens-Before Based Dynamic Race Detection
Umang MathurUniversity of Illinois at Urbana-Champaign, Dileep KiniUniversity of Illinois at Urbana-Champaign, Mahesh ViswanathanUniversity of Illinois at Urbana-ChampaignDOI Authorizer link Pre-print
|14:37 - 15:00|