doi: 10.17586/2226-1494-2021-21-4-473-481


Evaluation of the applicability of asynchronous programming methods to the data consistency problem in a microservices environment

K. V. Malyuga, I. A. Perl, A. P. Slapoguzov


Read the full article  ';
Article in Russian

For citation:

 Malyuga K.V., Perl I.A., Slapoguzov A.P. Evaluation of the applicability of asynchronous programming methods to the data consistency problem in a microservices environment. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2021, vol. 21, no. 4, pp. 473–481 (in Russian). doi: 10.17586/2226-1494-2021-21-4-473-481



Abstract
The paper considers the problem of an effective microservices interaction and its organization to support data consistency in fault tolerant and high load systems. The “Saga” microservices orchestration template was used for microservices management. The authors assessed the expediency of asynchronous programming principles usage for designing the Saga coordinator. The simulation of processes in the Saga coordinator was conducted; it considers different specifics of asynchronous and synchronous configurations of distributed transactions (Sagas) management. Synchronous configuration group includes a coordinator with a fixed pool of threads and a coordinator that generates a new thread for each new Saga. Asynchronous configuration group consists of a coroutines based coordinator and a coordinator that uses Linux core scheduler. The set of simulations with different numbers of Sagas and available coordinator processors was executed. It was shown that the use of asynchronous approaches significantly reduces the Saga’s execution duration up to 9.74 times and improves the processor time utilisation value up to 88 %. The obtained data proves the efficiency of asynchronous programming principles applied to the design of the Saga coordinator. The difference in efficiency between the asynchronous algorithms that were implemented in this paper was insignificant. Asynchronous programming principles used to build the Saga coordinator allow it to handle bigger load and to use processor resources in a more efficient way. The outcome of this research can be applied during the design of fault tolerant and high load systems. The paper might be interesting to IT-specialists and researchers focusing on distributed computing.

Keywords: microservices, Saga coordinator, orchestration, asynchronous programming, programme simulation, coroutines, thread pool

References
  1. Brown K., Woolf B. Implementation patterns for microservices architecture. Proc. 23rd Conference on Pattern Languages of Programs (PLoP '16), 2016, pp. 1–35.
  2. Dürr K., Lichtenthäler R., Wirtz G. An evaluation of saga pattern implementation technologies. CEUR Workshop Proceedings, 2021, vol. 2839, pp. 74–82.
  3. Štefanko M., Chaloupka O., Rossi B. The saga pattern in a reactive microservices environment. Proc. 14th International Conference on Software Technologies (ICSOFT), 2019, pp. 483–490. https://doi.org/10.5220/0007918704830490
  4. Rudrabhatla C. Comparison of event choreography and orchestration techniques in microservice architecture. International Journal of Advanced Computer Science and Applications, 2018, vol. 9, no. 8, pp. 18–22. https://doi.org/10.14569/IJACSA.2018.090804
  5. Richardson C. Microservices Patterns: With examples in Java. NY, Manning Publications, 2018, 520 p.
  6. Knoche H. Improving batch performance when migrating to microservices with chunking and coroutines. Softwaretechnik-Trends, 2019, vol. 39, no. 4, pp. 20–22.
  7. Stadler L., Würthinger T., Wimmer C. Efficient coroutines for the Java platform. Proc. 8th International Conference on the Principles and Practice of Programming in Java, (PPPJ 2010), Vienna, Austria, 2010, pp. 20–28. https://doi.org/10.1145/1852761.1852765
  8. Belson B., Holdsworth J., Xiang W., Philippa B. A Survey of asynchronous programming using coroutines in the Internet of Things and embedded systems. ACM Transactions on Embedded Computing Systems, 2019, vol. 18, no. 3, pp. 21. https://doi.org/10.1145/3319618
  9. Lee G., Shin S., Song W., Ham T., Lee J., Jeong J. Asynchronous I/O stack: a low-latency kernel I/O stack for ultra-low latency SSDs. Proc. of the 2019 USENIX Annual Technical Conference, 2019, pp. 603–616.
  10. Malyuga K., Perl O., Slapoguzov A., Perl I. Fault tolerant central saga orchestrator in RESTful architecture. Proc. 26th Conference of Open Innovations Association (FRUCT), Yaroslavl, Russia, 2020, pp. 278–283. https://doi.org/10.23919/FRUCT48808.2020.9087389
  11. Psaropoulos G., Legler T., May N., Ailamaki A. Interleaving with coroutines: a systematic and practical approach to hide memory latency in index joins. VLDB Journal, 2019, vol. 28, no. 4, pp. 451–471. https://doi.org/10.1007/s00778-018-0533-6
  12. Sung M., Kim S., Park S., Chang N., Shin H. Comparative performance evaluation of Java threads for embedded applications: Linux Thread vs. Green Thread. Information Processing Letters, 2002, vol. 84, no. 4, pp. 221–225. https://doi.org/10.1016/S0020-0190(02)00286-7
  13. Lozi J.-P., Lepers B., Funston J., Gaud F., Quéma V., Fedorova A. The Linux scheduler: a decade of wasted cores. Proc. 11th European Conference on Computer Systems (EuroSys'16), 2016, pp. 2901326. https://doi.org/10.1145/2901318.2901326
  14. David F., Carlyle J., Campbell R. Context switch overheads for Linux on ARM platforms. Proc. of the 2007 Workshop on Experimental Computer Science, 2007, pp. 3. https://doi.org/10.1145/1281700.1281703
  15. Ling Y., Mullen T., Lin X. Analysis of optimal thread pool size. ACM SIGOPS Operating Systems Review, 2000, vol. 34, no. 2, pp. 42–55. https://doi.org/10.1145/346152.346320
  16. Nadgowda S., Suneja S., Isci C. Paracloud: Bringing Application Insight into Cloud Operations. Proc. 9th USENIX Workshop on Hot Topics in Cloud Computing, HotCloud 2017, co-located with USENIX ATC 2017, 2017, pp. 1–8.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Copyright 2001-2024 ©
Scientific and Technical Journal
of Information Technologies, Mechanics and Optics.
All rights reserved.

Яндекс.Метрика