SlideShare a Scribd company logo
Highload++2016highlight
Особенности архитектуры распределённого хранилища в Dropbox
+
ClickHouse: очень быстро и очень удобно <=> Переезжаем на Yandex ClickHouse
© Pavel Alexeev, 2016 1
Disclaimer
Информация и часть слайдов заимствованы из оригинальных презентаций:
● Особенности архитектуры распределённого хранилища в Dropbox - Слава
Бахмутов (SRE в группе разработки стораджа в Dropbox)
● ClickHouse: очень быстро и очень удобно - Виктор Тарнавский
(Руководитель разработки аналитических продуктов в Яндексе), Алексей
Миловидов (Главный разработчик ClickHouse)
● Переезжаем на Yandex ClickHouse - Александр Зайцев (LifeStreet)
2
3
Dropbox:
Isolation+Verification+Automatization
=Availability
4
Cross-zone replication
5
Availability
6
Надёжность оборудования - миф
7
Составные доступности
8
Физическая изоляция
9
Логическая изоляция
10
Эксплуатационная изоляция
11
Защита
● Валидация операций
○ Оператор не виноват. Если что-то может быть поломано - оно будет поломано
○ Команды проще
○ Однозначный синтаксис
● Восстановление
○ Многое можно восстановить автоматически
● Тестирование
○ Тестировать стоит ПО, процедуры и даже тестирование
● Всегда что-то может пойти не так
○ Необходимо определять что именно и где
12
Тестирование
13
Верификация
14
Автоматизация
Параноидальная автоматизация
15
Naoru
16
Naoru - пример
17
18
Другие решения
19
YandexClickHouse
Vendorview
20
Яндекс.Метрика
21
Хранение данных
Классический подход
● Агрегированные данные
● Нормализация
● Множество таблиц
● Key -> Metrics
Современный подход
● Сырые данные
● Небольшое количество широких таблиц
● Огромное количество фильтров и группировок
● Event -> Properties
22
Основные идеи создания
➔ SQL диалект
➔ Линейная масштабируемость
➔ Фокус на скорости выполнения
запросов
➔ Приблизительные вычисления
➔ Массивы, кортежи
➔ Распределённые запросы “из коробки”
➔ Внешние словари
➔ URI и другие функции
23
Скорость на грани фантастики
➔ Типичные запросы быстрее секунды
➔ >100 раз быстрей нам Hadoop
➔ >100 раз быстрей чем типичная RDBMS
➔ 100 млн - 1 миллиард строк в секунду на одной ноде
➔ До 2 терабайт в секунду для кластера на 400 нод
24
Померяемся?
25
Когда не надо использовать
➔ OLTP
➔ Key-value
➔ Document-oriented
➔ Модификация данных
26
Best practises
➔ Широкие таблицы, множество колонок
➔ QPS относительно небольшой, но много данных
используется в каждом запросе
➔ Большой поток входящих данных
➔ Аналитика по петабайтам данных
27
YandexClickHouse
Sideview
28
LifeStreet
29
30
Быстрые результаты пилота
Две крайности
31
Быстрые результаты пилота
32
А если надо обновлять таблицу?
33
А если надо удалять?
34
А теперь боль!
35
Залог успешного переезда
36
Спасибо!
Pavel.Alekseev@Taskdata.com

More Related Content

What's hot

Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
Илья Середа
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
Илья Середа
 
Как устроено API в AppMetrica
Как устроено API в AppMetricaКак устроено API в AppMetrica
Как устроено API в AppMetrica
AppTractor
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Mikhail Tabunov
 
Мобильная Яндекс.Почта — Дмитрий Александров
Мобильная Яндекс.Почта — Дмитрий АлександровМобильная Яндекс.Почта — Дмитрий Александров
Мобильная Яндекс.Почта — Дмитрий Александров
Yandex
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Ontico
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Ontico
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времени
CodeFest
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»DataArt
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИС
Ontico
 
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
2ГИС Технологии
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
HappyDev
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
Vyacheslav Nikulin
 
Оценка производительности hadoop кластера.
Оценка производительности hadoop кластера.Оценка производительности hadoop кластера.
Оценка производительности hadoop кластера.
Vyacheslav Murashkin
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
2ГИС Технологии
 
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Ontico
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Vyacheslav Nikulin
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратора
Nikolay Sivko
 

What's hot (18)

Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Как устроено API в AppMetrica
Как устроено API в AppMetricaКак устроено API в AppMetrica
Как устроено API в AppMetrica
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
Мобильная Яндекс.Почта — Дмитрий Александров
Мобильная Яндекс.Почта — Дмитрий АлександровМобильная Яндекс.Почта — Дмитрий Александров
Мобильная Яндекс.Почта — Дмитрий Александров
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
 
Аналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времениАналитика над петабайтами в реальном времени
Аналитика над петабайтами в реальном времени
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»
 
Cергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИСCергей Коржнев, 2ГИС
Cергей Коржнев, 2ГИС
 
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
«Система развёртывания многокомпонентного сервиса» — Алексей Салов, YaC 2013
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Оценка производительности hadoop кластера.
Оценка производительности hadoop кластера.Оценка производительности hadoop кластера.
Оценка производительности hadoop кластера.
 
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
 
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратора
 

Similar to High load++2016.highlights (dropbox+clickhouse)

Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ontico
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Yandex
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Yandex
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ontico
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.
Serguei Gitinsky
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
CodeFest
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012Roman Pavlushko
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
EYevseyeva
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
Ilya Alekseyev
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Пётр Зайцев, Percona
Пётр Зайцев, PerconaПётр Зайцев, Percona
Пётр Зайцев, Percona
Ontico
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
Tech Talks @NSU
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
Vladd Ev
 

Similar to High load++2016.highlights (dropbox+clickhouse) (20)

Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Пётр Зайцев, Percona
Пётр Зайцев, PerconaПётр Зайцев, Percona
Пётр Зайцев, Percona
 
Errors Tracker
Errors TrackerErrors Tracker
Errors Tracker
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 

More from Pavel Alexeev

Apache airflow
Apache airflowApache airflow
Apache airflow
Pavel Alexeev
 
Elasticsearch features and ecosystem
Elasticsearch features and ecosystemElasticsearch features and ecosystem
Elasticsearch features and ecosystem
Pavel Alexeev
 
Matching theory
Matching theoryMatching theory
Matching theory
Pavel Alexeev
 
ToroDB (highload++2015)
ToroDB (highload++2015)ToroDB (highload++2015)
ToroDB (highload++2015)
Pavel Alexeev
 
Ansible+docker (highload++2015)
Ansible+docker (highload++2015)Ansible+docker (highload++2015)
Ansible+docker (highload++2015)
Pavel Alexeev
 
Git for you
Git for youGit for you
Git for you
Pavel Alexeev
 

More from Pavel Alexeev (6)

Apache airflow
Apache airflowApache airflow
Apache airflow
 
Elasticsearch features and ecosystem
Elasticsearch features and ecosystemElasticsearch features and ecosystem
Elasticsearch features and ecosystem
 
Matching theory
Matching theoryMatching theory
Matching theory
 
ToroDB (highload++2015)
ToroDB (highload++2015)ToroDB (highload++2015)
ToroDB (highload++2015)
 
Ansible+docker (highload++2015)
Ansible+docker (highload++2015)Ansible+docker (highload++2015)
Ansible+docker (highload++2015)
 
Git for you
Git for youGit for you
Git for you
 

High load++2016.highlights (dropbox+clickhouse)