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

Языки программирования и технические стеки

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

Программный комитет ещё не принял решения по этому докладу

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

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/

Видео

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

Языки программирования и технические стеки