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
Artikel, Zweitveröffentlichung, Verlagsversion
Es ist eine neuere Version dieses Eintrags verfügbar. |
Kurzbeschreibung (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.
Typ des Eintrags: | Artikel |
---|---|
Erschienen: | 2020 |
Autor(en): | Drechsler, Joscha ; Mogk, Ragnar ; Salvaneschi, Guido ; Mezini, Mira |
Art des Eintrags: | Zweitveröffentlichung |
Titel: | Thread-Safe Reactive Programming |
Sprache: | Englisch |
Publikationsjahr: | 2020 |
Publikationsdatum der Erstveröffentlichung: | 2018 |
Verlag: | ACM |
Titel der Zeitschrift, Zeitung oder Schriftenreihe: | Proceedings of the ACM on Programming Languages |
Jahrgang/Volume einer Zeitschrift: | 2 |
(Heft-)Nummer: | OOPSLA |
DOI: | 10.25534/tuprints-00014555 |
URL / URN: | https://tuprints.ulb.tu-darmstadt.de/14555 |
Zugehörige Links: | |
Herkunft: | Zweitveröffentlichung aus Golden Open Access |
Kurzbeschreibung (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: | Verlagsversion |
URN: | urn:nbn:de:tuda-tuprints-145553 |
Sachgruppe der Dewey Dezimalklassifikatin (DDC): | 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik |
Fachbereich(e)/-gebiet(e): | 20 Fachbereich Informatik 20 Fachbereich Informatik > Softwaretechnik DFG-Sonderforschungsbereiche (inkl. Transregio) DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche > SFB 1053: MAKI – Multi-Mechanismen-Adaption für das künftige Internet DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche > SFB 1053: MAKI – Multi-Mechanismen-Adaption für das künftige Internet > A: Konstruktionsmethodik DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche > SFB 1053: MAKI – Multi-Mechanismen-Adaption für das künftige Internet > A: Konstruktionsmethodik > Teilprojekt A2: Entwurf DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche > SFB 1053: MAKI – Multi-Mechanismen-Adaption für das künftige Internet > C: Kommunikationsmechanismen DFG-Sonderforschungsbereiche (inkl. Transregio) > Sonderforschungsbereiche > SFB 1053: MAKI – Multi-Mechanismen-Adaption für das künftige Internet > C: Kommunikationsmechanismen > Teilprojekt C2: Informationszentrische Sicht |
Hinterlegungsdatum: | 04 Dez 2020 08:51 |
Letzte Änderung: | 20 Okt 2023 07:56 |
PPN: | |
Export: | |
Suche nach Titel in: | TUfind oder in Google |
Verfügbare Versionen dieses Eintrags
- Thread-Safe Reactive Programming. (deposited 04 Dez 2020 08:51) [Gegenwärtig angezeigt]
Frage zum Eintrag |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |