Treffer: Considerations for integrating virtual threads in a Java framework: a Quarkus example in a resource-constrained environment

Title:
Considerations for integrating virtual threads in a Java framework: a Quarkus example in a resource-constrained environment
Contributors:
Red Hat Inc., Dynamic Software and Distributed Systems (DYNAMID), CITI Centre of Innovation in Telecommunications and Integration of services (CITI), Institut National des Sciences Appliquées de Lyon (INSA Lyon), Université de Lyon-Institut National des Sciences Appliquées (INSA)-Université de Lyon-Institut National des Sciences Appliquées (INSA)-Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National des Sciences Appliquées de Lyon (INSA Lyon), Université de Lyon-Institut National des Sciences Appliquées (INSA)-Université de Lyon-Institut National des Sciences Appliquées (INSA)-Institut National de Recherche en Informatique et en Automatique (Inria), Red Hat Research, University of Neuchâtel, ACM
Source:
DEBS'2023 - 17TH ACM International Conference on Distributed and Event-Based Systems, University of Neuchâtel, Jun 2023, Neuchatel, Switzerland. ⟨10.1145/3583678.3596895⟩
Publisher Information:
CCSD, 2023.
Publication Year:
2023
Collection:
collection:INSA-LYON
collection:CITI
collection:INSA-GROUPE
collection:UDL
Subject Geographic:
Original Identifier:
HAL: hal-04112339
Document Type:
Konferenz conferenceObject<br />Conference papers
Language:
English
Relation:
info:eu-repo/semantics/altIdentifier/doi/10.1145/3583678.3596895
DOI:
10.1145/3583678.3596895
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edshal.hal.04112339v1
Database:
HAL

Weitere Informationen

Virtual threads are a highly anticipated feature in the Java world, aiming at improving resource efficiency in the JVM for I/O intensive operations while simplifying developer experience. This feature keeps the traditional thread abstraction and makes it compatible with most of the existing Java applications, allowing developers preferring synchronous imperative abstractions to benefit from better performance without switching to asynchronous and reactive programming models. However, limitations currently hinder the usability of virtual threads. These limitations must be considered when building a piece of software around virtual threads for they might have non-trivial effects. This paper (i) discusses the different strategies envisioned to leverage virtual threads in the Quarkus framework, (ii) gives an overview of the final implementation, (iii) presents the benchmark used to characterize the benefits of using virtual threads in a typical container environment where resources are scarce compared to using Quarkus with traditional thread pools and Quarkus with reactive libraries ; (iv) results are interpreted and discussed. Our study reveals that the integration of virtual threads in Quarkus doesn't perform as well as Quarkus-reactive. This seems to be due to a mismatch between the core hypothesis of Netty and virtual threads regarding the amount of threads available.