Tehničko veleučilište u Zagrebu · Zagreb

Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine

izvorni znanstveni rad

izvorni znanstveni rad

Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine

Vrsta prilog sa skupa (u zborniku)
Tip izvorni znanstveni rad
Godina 2020
Nadređena publikacija Proceedings of the 43rd International Convention for Information and Communication Technology, Electronics and Microelectronics (MIPRO 2020)
Stranice str. 2082-2087
ISSN 1847-3938
EISSN 1847-3946
Status objavljeno

Sažetak

Contemporary concurrent server applications, commonly built of smaller and independent services, are using concurrent threads to serve many incoming requests and often have to perform under excessive load. Those applications are relatively easy to develop in general-purpose, imperative programming languages such as Java, and have great tooling support. However, such applications are not easily scalable, mostly due to relying on oversized OS kernel threads, which can be created only in a limited number on finite hardware resources. Furthermore, heavyweight OS threads are implemented so robustly and generically to support various usage scenarios, and are, therefore, wasteful in resources and often inefficient in addressing specific application demands. Those challenges in software development resulted in various asynchronous programming techniques. This paper presents an exploration of a novel structured concurrency model in the Java Virtual Machine (JVM), introduced within OpenJDK's Project Loom. It is focused on the exploitation of fibers, new lightweight implementation of virtual threads within the JVM depending on delimited continuations. Furthermore, on several applications' benchmark cases, we analyzed performance with traditional threads and new fibers in different configurations. Finally, we discussed the current challenges of implementing fibers as a feasible approach for the more efficient future of Java.

Ključne riječi

Structured Concurrency, Fibers, Java, Java Virtual Machine, Threads, Delimited Continuations