Профессиональная конференция разработчиков высоконагруженных систем

Обновления данных в поиске за секунды. Быстробновляемые атрибуты в поисковом движке Ozon

Архитектуры и масштабируемость

Java
Поисковые системы
Базы данных / другое
Отказоустойчивость
Распределенные системы
Архитектура данных, потоки данных, версионирование
Надёжность продакшена
Поддерживаемый код
Совместное планирование и разработка
Оптимизация
Хранилища
Обработка данных
Типовые ошибки

Доклад принят в программу конференции

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

Обычно от поисковых движков не требуется частое (и быстрое) обновление, но в современных e-Commerce системах это не так: остатки на складах и цена может меняться очень быстро. Ozon расскажет, как они доработали для этого своё решение на базе Apache Lucene.

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

Разработчики поисковых движков и систем Разработчики и архитекторы высоконагруженных систем Джависты Борцы за перф Любопытные разработчики

Тезисы

Поисковый движок в Ozon — сложная распределённая система, построенная на основе Apache Lucene. Наше решение позволяет эффективно обрабатывать более десятка тысяч разреженных полей в поисковом индексе, осуществляя поиск по миллионам документов при тысячах RPS.

Обычно атрибуты документов обновляются редко (название, описание, категории товара), в следствие чего моментальность доставки таких обновлений до поискового движка не является обязательной. Однако есть и такие свойства (количество на складах, цена), обновления в которых происходят довольно часто и для которых важно как можно быстрее отражать эти изменения при обработке новых запросов. Для реализации этой возможности мы разработали своё собственное «быстрое хранилище».

В этом докладе будет рассказано о том, что потребовалось от системы, поддерживающей быстро обновляемые поля; с какими сложностями мы столкнулись на пути разработки решения, одновременно эффективного, отказоустойчивого и совместимого с Lucene; к какой архитектуре пришли; а также какие планы у нас есть по развитию этой технологии.

Старший разработчик базового поиска в Ozon, занимается созданием новых технических фич в движке, а также тулингом для коллег по команде. Автор анализатора поискового индекса и продвинутого парсера запросов, разработчик быстрого хранилища полей в поисковом индексе.

Основные языки: Java, Rust.

Фанат опенсорса, контрибьютил в ряд проектов, включая Lucene и OpenJDK. Топит за строгую типизацию и максимальную статическую верифицируемость кода.

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

Ранее работал в геймдеве, занимался созданием игровых серверов и инфраструктуры вокруг них.

Ozon Tech

Ozon Tech — команда разработки лидирующего e-com в России. Нас 4 000 человек, и мы продолжаем расти. Десятки миллионов людей пользуются нашими сервисами, а наша IT-инфраструктура управляет миллионами процессов каждый час. Мы делаем крутые штуки и рассказываем об этом на конференциях, ведем блог на Хабре, контрибьютим в Open Source и много чего ещё. Enjoy! (c) https://ozon.tech/

Видео

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

Архитектуры и масштабируемость