Конференция завершена. Ждем вас на Highload++ в следующий раз!
Москва, СКОЛКОВО
8 и 9 ноября 2018

Под капотом in-memory db: как обработать миллионы запросов в секунду. Или, почему Reindexer такой быстрыйБазы данных и системы хранения

Доклад отклонён
Олег Герасимов
Ростелеком Информационные Технологии

Директор по разработке в АО «Рестрим».

Тезисы

Мы уже 2 года разрабатываем in-memory базу данных Reindexer, которая была создана для решения задачи фильтрации и отдачи контента со сложной бизнес логикой в системе, обслуживающий 10м+ пользователей.
На одном физическом сервере Reindexer может выполнять более миллиона простых запросов в секунду и десятки тысяч запросов с JOIN и нетривиальной фильтрацией.

В этом докладе я расскажу, как нам удалось достичь такой производительности и о "под-капотном" пространстве Reindexer - какие структуры используются для хранения данных в RAM, как реализованы индексы и как это помогает выполнять выборки данных за минимальное количество итераций.

Кроме оптимизированных структур данных, на производительность БД очень влияет количество выделений/освобождений динамической памяти. Нам удалось свести количество аллокаций памяти при выполнении запросов к минимуму - многие запросы выполняются вообще без единого аллока.

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

Другие доклады секции Базы данных и системы хранения

Rambler's Top100