Конференция
C++ SIBERIA 2020
28/02-29/02 Новосибирск

Александр Боргардт

Конкурентность в современных web-service

Последние 10 лет занимаюсь исследованием новых подходов и созданием решений в областях: рекламы, финтеха и ml.

Являюсь автором асинхронной библиотеки компонентов goblin-engineer (github.com/jinncrafters/goblin-engineer), основанной на использование акторного подхода ( actor-zeta github.com/jinncrafters/actor-zeta).

В область интересов входят вопросы разработки распределенных систем, параллельной и конкурентной обработки информации.

Мой хобби-проект - RocketJoe (github.com/jinncrafters/RocketJoe).
Разрабатывать web-service интересно и увлекательно, а если он особенно однопоточный, так еще и просто.

К сожалению, в современном мире уже недостаточно разрабатывать однопоточные сервисы.

Для того, чтобы удовлетворять требованиям времени, приходится совмещать в сервисах многопоточность, конкурентность и асинхронность подходов.

В прежние времена приходилось внедрять сложные модели конкурентности на future/promise, совмещая с подходами продления времени жизни объектов через std::enable_shared_from_this.

На долгом пути к релизу ожидают и другие сложности:
  • трудность построения архитектуры на future/promise;
  • высокая степень связности компонентов сервиса;
  • неопределенный жизненный цикл компонентов системы;
  • сложность системы склеивания операций в pipeline;
  • плохая управляемость памятью.
Так что же делать в таком случае?

Отказываться от вышеперечисленных подходов и руководствоваться следующими принципами построения системы:
  • data locality;
  • иерархия ответственности за ресурсы;
  • мелкогранулярная система распределения мест выполнения задач.
Данные принципы лежат в основе подхода, называемым virtual actor model. О том как используется virtual actor model для построения сервисов будет рассказано в докладе.

Спонсоры

Контакты

Адрес проведения:

Новосибирск, Депутатская, 46, Лекторий-бар ПОТОК.

Предложения докладов:

talks@cpp-russia.ru

Партнерство:

conf@cpp-russia.ru

Студенческая программа:

students@cpp-russia.ru