Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine
Uloženo v:
| Název: | Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine |
|---|---|
| Autoři: | Mihaljević, Branko, Radovan, Aleksander |
| Informace o vydavateli: | 2020. |
| Rok vydání: | 2020 |
| Témata: | Structured Concurrency, Fibers, Delimited Continuations, Java Virtual Machine, Threads, Java |
| Popis: | 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. |
| Druh dokumentu: | Conference object |
| Přístupové číslo: | edsair.dris...01492..debdc8ac2eb5a87b21e78d98ab64034a |
| Databáze: | OpenAIRE |
| Abstrakt: | 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. |
|---|
Nájsť tento článok vo Web of Science