Обработка запросов с иерархическим характером разделяемых ресурсов

Обложка

Цитировать

Полный текст

Аннотация

Предметом данного исследования является разработка и анализ структуры данных и алгоритма для управления параллельным выполнением сообщений в микросервисной архитектуре без брокера сообщений. В условиях перехода к микросервисной архитектуре и асинхронному обмену сообщениями, особенно при отсутствии централизованного брокера, возникает необходимость в эффективных методах обеспечения порядка обработки сообщений, влияющих на общие ресурсы. Проблема заключается в том, что традиционные методы, такие как сегментирование, не гарантируют соблюдение порядка обработки сообщений при параллельном выполнении и усложняются при необходимости синхронизации доступа к ресурсам. В качестве альтернативы традиционным подходам рассматривается метод с использованием общей очереди и пула потоков. В работе исследуется и предлагается структура данных, которая обеспечивает возможность параллельной обработки сообщений при условии отсутствия конфликтов блокировки, тем самым гарантируя корректный порядок выполнения операций, связанных с общими ресурсами, и избегая взаимных блокировок. Основная цель состоит в создании механизмов управления доступом к ресурсам, адаптированных для микросервисной архитектуры, без усложнения логики обработки сообщений и позволяющих избежать проблем, связанных с многопоточностью. В работе используется аналитический подход к разработке структуры данных и алгоритма, основанный на формализации задачи синхронизации, а также теоретический анализ алгоритмической сложности и корректности предложенного решения. Научная новизна работы заключается в предложении новой структуры данных, использующей упорядоченные множества и списки ожидания для эффективного управления параллельной обработкой асинхронных сообщений в микросервисных архитектурах, особенно там, где отсутствует брокер сообщений. Предлагаемый алгоритм позволяет динамически определять блокировки, связанные с сообщениями, а также разделять блокирующие и неблокирующие сообщения, что обеспечивает возможность их параллельного выполнения. Предложенная структура данных и алгоритм позволяют изменять детализацию блокируемых ресурсов, не усложняя при этом процедуры обработки сообщений, а также упрощают многопоточное программирование, позволяя рассматривать каждую процедуру обработки сообщения как однопоточную. Алгоритм не имеет проблемы взаимной блокировки ресурсов, что повышает общую отказоустойчивость системы. Выявленные недостатки, связанные с блокировкой ресурсов, предлагается устранить в дальнейших исследованиях.

Об авторах

Владимир Святославович Кирилов

Северо-Кавказский федеральный университет

Email: cnhfyysqrjl@gmail.com
доцент; кафедра Компьютерная безопасность;

Список литературы

  1. Asynchronous Request-Reply pattern. URL: https://learn.microsoft.com/en-us/azure/architecture/patterns/async-request-reply
  2. Microservices: Asynchronous Request Response Pattern. URL: https://medium.com/@pulkitswarup/microservices-asynchronous-request-response-pattern-6d00ab78abb6
  3. Request/Response Pattern with Spring AMQP. URL: https://reflectoring.io/amqp-request-response/
  4. Richardson C. Microcervices Patterns. – 2019.
  5. Hohpe G., Woolf B. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. – 20.
  6. Fowler M., Rice D., Foemmel M., Hieatt E., Mee R., Stafford R. Patterns of Enterprise Application Architecture. – 2004.
  7. Sadalage P., Fowler M. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. – 2012.
  8. Wang G., Shi Zhijie J., Nixon M., Han S. SoK: Sharding on Blockchain. // AFT '19: Proceedings of the 1st ACM Conference on Advances in Financial Technologies. – 2019. – С. 41-61. URL: https://dl.acm.org/doi/abs/10.1145/3318041.3355457
  9. Introducing Elastic Scale preview for Azure SQL Database. URL: https://azure.microsoft.com/en-us/blog/introducing-elastic-scale-preview-for-azure-sql-database
  10. Tasks and Parallelism: The New Wave of Multithreading. // [Электронный ресурс] URL: https://www.codemag.com/article/1211071/Tasks-and-Parallelism-TheNew-Wave-of-Multithreadin
  11. Coroutine Is a New Thread. URL: https://medium.com/globant/coroutine-is-a-new-thread-934d9956ce2e
  12. Threads vs Coroutines in Kotlin. URL: https://www.baeldung.com/kotlin/threads-coroutines
  13. Christudas B. Query by Slice, Parallel Execute, and Join: A Thread Pool Pattern in Java. URL: https://web.archive.org/web/20080207124322/http://today.java.net/pub/a/today/2008/01/31/query-by-slice-parallel-execute-join-thread-pool-pattern.html
  14. Programming the Thread Pool in the .NET Framework. URL: https://learn.microsoft.com/en-us/previous-versions/dotnet/articles/ms973903(v=msdn.10)?redirectedfrom=MSDN
  15. Introduction to Thread Pools in Java. URL: https://www.baeldung.com/thread-pool-java-and-guava
  16. O'Neil P. et al. ORDPATHs: Insert-friendly XML node labels // Proceedings of the 2004 ACM SIGMOD international conference on Management of data. – 2004. – С. 903-908. URL: http://www.cse.iitb.ac.in/infolab/Data/Courses/CS632/2014/2007/Papers/ordpath.pdf
  17. PostgreSQL index-ltree. URL: http://www.sai.msu.su/~megera/postgres/gist
  18. Кириллов В.С. Бинарное кодирование иерархических структур // Вестник КРАУНЦ. Физико-математические науки. – 2023. – Т. 43, № 2. – С. 44-54. https://doi.org/10.26117/20796641-2023-43-2-44-54 ISSN 2079-664 EDN: XUMKPG

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

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