The impact of asynchronous and multithreaded query processing models on the performance of server-side web applications

Abstract

The object of the study is server-side web applications and their performance when processing a large number of simultaneous requests. Asynchronous technologies (Node.js, Python Asyncio, Go, Kotlin Coroutines) and multithreaded models (Java Threading, Python Threading). The authors analyze asynchronous event loops, goroutines, coroutines, and classical multithreaded approaches in detail, evaluating their effectiveness in tasks with intensive use of I/O and computing resources. An experiment is underway with API development in three languages (Java, Node.js, Go) and testing using the hey utility. It also explores the features of scalability, performance optimization, caching, error handling, load tests, and implementation features of parallel computing. The purpose of the study is to determine which approaches provide the highest performance in server applications.  Research methods include load testing, collection of metrics (response time, bandwidth, and server resource consumption), and analysis of the results. The scientific novelty lies in comparing asynchronous and multithreaded methods in real-world web development scenarios. The main conclusions of the study are recommendations on the use of asynchronous technologies in high-load I/O tasks and multithreading in computationally complex scenarios. The results obtained will help developers optimize the performance of server applications depending on their tasks and workload. Additionally, the study examines aspects of the complexity of debugging asynchronous applications, the impact of thread pools on the performance of multithreaded solutions, as well as scenarios in which asynchronous and multithreaded approaches can complement each other. Special attention is paid to server resource management under scalable loads, which will allow IT specialists to more accurately select tools and technologies for solving specific tasks. In conclusion, possible ways to optimize the operation of server applications are discussed, including the use of new approaches and algorithms, as well as the prospects for the development of asynchronous and multithreaded technologies in the context of highly loaded systems, their impact on the overall application architecture, as well as on increasing fault tolerance and security.

References

  1. Опивалов С. А. Методы работы с потоками в языке Java // Международный журнал гуманитарных и естественных наук. 2023. № 4 (79) Т. 3. С. 93-99.
  2. Руководство по Node.js, часть 1: общие сведения и начало работы [Электронный ресурс]. URL: https://habr.com/ru/companies/ruvds/articles/422893/ (Дата обращения: 03.03.2025).
  3. Опивалов С. А. Перспективы использования языка Котлина в программировании // Международный журнал гуманитарных и естественных наук. 2023. № 9 (84) Т. 1. С. 260-262.
  4. Параллельное программирование в Go [Электронный ресурс]. URL: https://proglib.io/p/parallelnoe-programmirovanie-v-go-2021-05-23?ysclid=m7wag43tb6712881695 (Дата обращения: 03.03.2025).
  5. Asynchronous Functions and the Node.js Event Loop [Электронный ресурс]. URL: https://translated.turbopages.org/proxy_u/en-ru.ru.137d7d27-67c89218-0c37f6b9-74722d776562/https/www.geeksforgeeks.org/asynchronous-functions-and-the-node-js-event-loop/ (Дата обращения: 04.03.2025).
  6. Load Testing using Hey [Электронный ресурс]. URL: https://dev.to/saantoryuu/load-testing-using-hey-c84 (Дата обращения: 04.03.2025).
  7. Process Explorer v17.06 [Электронный ресурс]. URL: https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer (Дата обращения: 02.03.2025).

Supplementary files

Supplementary Files
Action
1. JATS XML

Согласие на обработку персональных данных

 

Используя сайт https://journals.rcsi.science, я (далее – «Пользователь» или «Субъект персональных данных») даю согласие на обработку персональных данных на этом сайте (текст Согласия) и на обработку персональных данных с помощью сервиса «Яндекс.Метрика» (текст Согласия).