Для вашего комфорта и улучшения работы сайта мы используем cookie
Принимаю
Таска на запрос, акторы или FuturesUnordered: какую модель конкурентности Tokio выбрать для сервера
Тезисы
Любой сервер на Tokio всегда сталкивается с вопросом: как исполнять входящие запросы — создавать tokio::task на каждый запрос, иметь пул tokio::task-акторов или смотреть в сторону FuturesUnordered. От этого решения зависят пропускная способность и расход памяти под нагрузкой. При этом выбор модели часто основывается на опыте предыдущих проектов или интуиции.
Сравним три вышеперечисленные модели на примере нашего user-space NFSv3-сервера на Rust и Tokio — nfs-mamont, который за время разработки успел пожить в каждой из них. Разберем, где каждая модель выигрывает и как ограничивать конкурентность так, чтобы получать backpressure, а не очередь в памяти.
Доклад будет полезен для тех, кто пишет сетевые сервисы на Tokio. Знание NFS не нужно.
Любой сервер на Tokio всегда сталкивается с вопросом: как исполнять входящие запросы — создавать tokio::task на каждый запрос, иметь пул tokio::task-акторов или смотреть в сторону FuturesUnordered. От этого решения зависят пропускная способность и расход памяти под нагрузкой. При этом выбор модели часто основывается на опыте предыдущих проектов или интуиции.
Сравним три вышеперечисленные модели на примере нашего user-space NFSv3-сервера на Rust и Tokio — nfs-mamont, который за время разработки успел пожить в каждой из них. Разберем, где каждая модель выигрывает и как ограничивать конкурентность так, чтобы получать backpressure, а не очередь в памяти.
Доклад будет полезен для тех, кто пишет сетевые сервисы на Tokio. Знание NFS не нужно.
Информация о спикере
Вадим Яровой
Инженер по разработке ПО, YADRO
О себе
  • Вадим Яровой
    Инженер по разработке ПО, YADRO
    О себе
Все доклады