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 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:00 | |||
13:30 22mTalk | Thread-Safe Reactive Programming OOPSLA Joscha Drechsler Technische Universität Darmstadt, Ragnar Mogk Technische Universität Darmstadt, Guido Salvaneschi TU Darmstadt, Mira Mezini TU Darmstadt DOI Pre-print File Attached | ||
13:52 22mTalk | RacerD: Compositional Static Race Detection OOPSLA Sam Blackshear Facebook, Nikos Gorogiannis , Peter W. O'Hearn Facebook and University College London, Ilya Sergey Yale-NUS College Pre-print | ||
14:15 22mTalk | What Happens-After the First Race? Enhancing the Predictive Power of Happens-Before Based Dynamic Race Detection OOPSLA Umang Mathur University of Illinois at Urbana-Champaign, Dileep Kini University of Illinois at Urbana-Champaign, Mahesh Viswanathan University of Illinois at Urbana-Champaign DOI Authorizer link Pre-print | ||
14:37 22mTalk | Sound Deadlock Prediction OOPSLA Christian Gram Kalhauge University of California, Los Angeles, Jens Palsberg University of California, Los Angeles |