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


УДК 004.413.5

Оценка применимости методов асинхронного программирования при решении проблемы согласованности данных в микросервисной среде

Малюга К.В., Перл И.А., Слапогузов А.П.


Читать статью полностью 
Ссылка для цитирования:
Малюга К.В., Перл И.А., Слапогузов А.П. Оценка применимости методов асинхронного программирования при решении проблемы согласованности данных в микросервисной среде // Научно-технический вестник информационных технологий, механики и оптики. 2021. Т. 21, № 4. С. 473–481. doi: 10.17586/2226-1494-2021-21-4-473-481


Аннотация
Предмет исследования. Рассмотрена проблема организации эффективного взаимодействия микросервисов в отказоустойчивых системах с высокой нагрузкой для обеспечения согласованности данных. В качестве способа организации управления микросервисами выбран шаблон управления Сага (Saga) в оркестрационной форме. Проанализирована целесообразность использования принципов асинхронного программирования при проектировании координатора Саг. Метод. Выполнена симуляция процессов работы координатора Саг, которая учитывает специфику синхронных и асинхронных конфигураций управления распределенными транзакциями (Сагами). Представленные синхронные конфигурации включают в себя координатор, управляющий фиксированным набором потоков и координатор, формирующий новый поток для каждой Саги. В группу асинхронных конфигураций входят координатор, управляющий корутинами и координатор, использующий планировщик ядра Linux. Основные результаты. Рассмотрены симуляции при различных значениях количества обрабатываемых Саг и доступных координатору процессоров. Показано, что при использовании асинхронных подходов имеет место значительное увеличение скорости выполнения набора Саг (до 9,74 раз) и скорости утилизации процессорного времени (до 88 %). Это подтверждает целесообразность их использования при проектировании координатора Саг. Показано, что различие в эффективности рассмотренных асинхронных подходов незначительно. Практическая значимость. Построение оркестратора Саг с применением асинхронных подходов позволит обрабатывать большую нагрузку и эффективнее распределять доступное процессорное время. Результаты исследования могут быть применены при проектировании высоконагруженных распределенных отказоустойчивых вычислительных систем. Оценка, выполненная в работе, будет полезна IT-специалистам и исследователям для решения проблем распределенных вычислений.

Ключевые слова: микросервисы, координатор Саг, оркестрация, асинхронное программирование, программная симуляция, корутины, пул потоков

Список литературы
  1. Brown K., Woolf B. Implementation patterns for microservices architecture // Proc. 23rd Conference on Pattern Languages of Programs (PLoP '16). 2016. P 1–35.
  2. Dürr K., Lichtenthäler R., Wirtz G. An evaluation of saga pattern implementation technologies // CEUR Workshop Proceedings. 2021. V. 2839. P. 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. P. 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. V. 9. N 8. P. 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. V. 39. N 4. P. 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. P. 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. V. 18. N 3. P. 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. P. 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. P. 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. V. 28. N 4. P. 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. V. 84. N 4. P. 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. P. 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. P. 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. V. 34. N 2. P. 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. P. 1–8.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2021 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

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