Нетипичные подходы к перфу в поисковом движке Ozon |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-11-18 11:29 Поисковый движок O2 в Ozon — сложная распределенная система, построенная на основе Apache Lucene. Базовый поиск O2 обслуживает операции с десятками миллионов документов с почти 14 тысячами разреженных полей при тысячах RPS. С одной стороны, производительность и отказоустойчивость движка достигается сложной архитектурой системы — физической репликацией, шардированием, использованием CDN. С другой стороны — обработка тысяч запросов с необходимым временем ответа и пропускной способностью не была бы доступна без более низкоуровневых и точечно локализованных (микро)оптимизаций, специфических для сервиса базового поиска (а зачастую и для Java-рантайма), и которые не так часто встречаются в мейнстримной Java-разработке. Поговорили про несколько необычных подходов к оптимизации работы базового поиска и историях, связанных с этим. Ключевые темы: — Использование кодогенерации для уменьшения виртуальных вызовов на горячих путях исполнения поисковых запросов. — Борьба с аллокациями, ByteBuffer vs VarHandle и туплы без аллокаций. — Уменьшение индирекций и лишних прыжков по памяти. — Как уронили перф правильным использованием Objects#requireNonNull(..). Также спикер рассказал, как следят за производительностью и проводят перформанс-исследования. Источник: vk.com Комментарии: |
|