Drechsler, Joscha ; Mogk, Ragnar ; Salvaneschi, Guido ; Mezini, Mira (2020)
Thread-Safe Reactive Programming.
In: Proceedings of the ACM on Programming Languages, 2018, 2 (OOPSLA)
doi: 10.25534/tuprints-00014555
Article, Secondary publication, Publisher's Version
|
Text
3276477.pdf Copyright Information: CC BY 4.0 International - Creative Commons, Attribution. Download (1MB) | Preview |
Item Type: | Article |
---|---|
Type of entry: | Secondary publication |
Title: | Thread-Safe Reactive Programming |
Language: | English |
Date: | 4 December 2020 |
Place of Publication: | Darmstadt |
Year of primary publication: | 2018 |
Publisher: | ACM |
Journal or Publication Title: | Proceedings of the ACM on Programming Languages |
Volume of the journal: | 2 |
Issue Number: | OOPSLA |
DOI: | 10.25534/tuprints-00014555 |
Corresponding Links: | |
Origin: | Secondary publication via Golden Open Access |
Abstract: | 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. |
Status: | Publisher's Version |
URN: | urn:nbn:de:tuda-tuprints-145553 |
Classification DDC: | 000 Generalities, computers, information > 004 Computer science |
Divisions: | 20 Department of Computer Science > Software Technology DFG-Collaborative Research Centres (incl. Transregio) > Collaborative Research Centres > CRC 1053: MAKI – Multi-Mechanisms Adaptation for the Future Internet > A: Construction Methodology > Subproject A2: Design DFG-Collaborative Research Centres (incl. Transregio) > Collaborative Research Centres > CRC 1053: MAKI – Multi-Mechanisms Adaptation for the Future Internet > C: Communication Mechanisms > Subproject C2: Information-centred perspective |
Date Deposited: | 04 Dec 2020 08:51 |
Last Modified: | 20 Oct 2023 07:55 |
URI: | https://tuprints.ulb.tu-darmstadt.de/id/eprint/14555 |
PPN: | |
Export: |
View Item |