io_uring изнутри: что классический I/O в Linux не умеет и почему это важно под нагрузкой

1 декабря, 12:20, «Кейптаун»

Средняя сложность
Доклад принят в программу конференции
Практики программирования
Обработка данных
Расширение кругозора
Облака
Инфраструктура
Сеть
Практики программирования
Обработка данных
Расширение кругозора
Облака
Инфраструктура
Сеть
C/C++

Мнение Программного комитета о докладе

io_uring - это тот механизм, который должен был появиться 50 лет назад, но ему не повезло. Без него привыкли обходиться, но сегодня уже есть ситуации, в которых без него не получится добиться максимума от железа. Василий покажет, как своими руками пощупать и убедиться в эффективности этой подсистемы

Целевая аудитория

Backend/infra-разработчики, пишущие высоконагруженные сервисы на C/C++/Rust/Go, знакомые с epoll/select и базовой моделью sockets. Опыт работы с io_uring не нужен, но полезно понимание event loop.

Тезисы

Классическая модель I/O в Linux (blocking read/write, poll/epoll, POSIX AIO) упирается в накладные расходы на syscalls и context-switch при высоком RPS. io_uring – это не “ещё один API”, а смена модели: приложение общается с ядром через shared-memory-кольца (SQ/CQ) вместо синхронных вызовов, что открывает целый класс возможностей, которых в старом I/O не существует в принципе (не “хуже реализовано”, а отсутствует как концепция). Доклад показывает это на конкретных примерах и цифрах.

Спикеры

Василий Степанов
20 лет в IT. Работал руководителем разработки IaaS в VK Cloud. Занимался развитием и эксплуатацией, отвечал за его надежность и высокую доступность. Сейчас выбрал быть счастливым и занимаюсь своим стартапом: сетевая дисковая подсистема с открытым исходным кодом https://github.com/rawstor/

Другие доклады секции