Архитектура Яндекс.Маркета вчера и сегодня — Юрий...

Post on 11-Nov-2014

702 views 0 download

Tags:

description

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

Transcript of Архитектура Яндекс.Маркета вчера и сегодня — Юрий...

1

м а р к е т

Архитектура Яндекс.Маркета вчера и сегодня

Роман ГершковичЮрий Манушкин

Я.Субботник, Екатеринбург, 20.09.14

2

Кто мы

• группа администрирования• разработки выдачи и

индексации• frontend• MBI, MBO, IR, PERS

3

Про что

• подготовить данные (индексация)

• разложить данные на бекенды (раскладка)

• выдача

4

Индексация: задачи

• качать предложения магазинов

• строить поисковый индекс• считать различные статистики

(#средняя цена)• проксировать другие данные

5

Индексация: устройство

6

Масштабирование и отказоустойчивость

• мастер + 8 воркеров (b&c)• 2 индексатора в разных ДЦ (zk)• что делать, если сломался

мастер/воркер?• расчет статистик в hadoop• MySQL => hbase (in progress)

7

Раскладка: задачи• разложить данные (#поисковый

индекс)• плавный restart/reload компонент на

бекендах• устойчивость к отказу части машин

(отваливается ethernet, разваливается raid, ломается switch)

8

Раскладка: устройство

9

Раскладка: числа• индексация 2 часа• 200GB данных• раскладка 1 час• 500 машин• асинхронность• эффективно использовать канал

10

Выдача• CORBA

– много приложений– малая и средняя нагрузка– десятки машин

• search– только поиск– большая нагрузка– сотни машин

11

Поиск: числа• кластер = 8 машин• 2 процесса поиска на машине

(утилизация CPU, экономия памяти)

• RPS– mrate: 20K– serp: 8K– market: 1.5K

12

Поиск: устройство

13

Что дальше

• 200M предложений• обновление в реальном

времени• улучшать MIR

14

Спасибо!

Рома: rgersh@yandex-team.ruЮра: manushkin@yandex-team.ru