"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.
YT – новая платформа
распределенных
вычислений
Максим Бабенко
История вопроса
Хронология событий
2004 – Статья Google про модель MapReduce и ее реализацию
– Mapreduce: Simplified data processing on large clusters (Jeffrey Dean, Sanjay
Ghemawat)
2006 – Прототип модели MapReduce в Яндексе (YAMR)
2007 – Публичный релиз Apache Hadoop
– 4 September, 2007: release 0.14.1 available
2011 – Начало работ над YT
4
Ограничения YAMR
Мастер-сервер (хранящий метаданные) является единственной точкой
отказа
Шедулер совмещен с мастером, ограниченные возможности по
масштабированию
Нет разделения между слоями хранения данных и их обработки
Слабая поддержка метаданных и возможностей интроспекции состояния
системы
5
Ограничения YAMR
Негибкая система распределения ресурсов в шедулере (слоты с
фиксированным объемом памяти)
Неясные перспективы масштабирования на большие кластера и
множество ДЦ
Большой объем унаследованного кода, масса неудачных архитектурных
решений
– однако и большое количество клиентов
...и многое другое
6
Дизайн и архитектура
Взгляд сверху
Что такое YT?
Распределенное хранилище
– Метаданные (Кипарис)
– “Большие данные” (хранилище чанков)
Среда вычислений
– Базовые примитивы MapReduce
– Дополнительные табличные операции (sort, join и др.)
Примитивы для построения светлого будущего
– Гидра
8
Структура кластера YT
9
Структура кластера YT
Мастеры
– Поддерживают в памяти метаинформацию о системе (чанки,
транзакции, Кипарис и пр.)
– Синхронно реплицированы, способны работать пока есть кворум
– Автоматический горячий failover (~10 сек)
– Координируют процессы репликации, балансировки и восстановления
данных на нодах
10
Структура кластера YT
Прокси
– Точка входа для внешних пользователей
– Предоставляют HTTP API
– Легкие (для управляющих команд)
– Тяжелые (для потоков данных)
– Выполняют аутентификацию
– Stateless
– Автоматическая балансировка нагрузки и failover
11
Структура кластера YT
Шедулеры
– Планируют и запускают операции на данных (map, reduce, sort, join etc)
– Реплицированы, периодически сохраняют снепшоты состояния
– Автоматический failover (~1 минуты)
Ноды
– Хранят чанки с данными
– Выполняют элементарные шаги вычисления
12
Дизайн и архитектура
Метаданные
Репликация состояния
Paxos
– Придуман Лесли Лэмпортом в 90-х годах прошлого века
– MultiPaxos для задачи репликации лога
– Используется в Chubby
– Длинный путь от теории до работающего продакшен-решения
14
“There are significant gaps between the description
of the Paxos algorithm and the needs of a real-world
system. In order to build a real-world system, an
expert needs to use numerous ideas scattered in the
literature and make several relatively small protocol
extensions. The cumulative effort will be substantial
and the final system will be based on an unproven
protocol.”
15
Paxos Made Live, An Engineering Perspective (Chandra, Griesemer, Redstone)
Репликация состояния
Альтернатива: atomic broadcast
– “Гидра”
– Существенно более простая
интуиция
– Используется в Zookeeper
– Формальное обоснование: Raft
16
Гидра
Набор мастеров нечетного размера 2k+1
Кворум: строгое большинство, как минимум k+1 мастеров
– Любые два кворума имеют непустое пересечение
В стационарном положении ровно один из мастеров является лидером,
остальные фолловерами
– Определение лидера и фолловеров производится с помощью протокола
голосования
17
Гидра
Все мутации проходят через лидера
– Вначале мутация записывается в логи на кворуме мастеров
– Затем мутация применяется к состоянию в памяти
Чтение возможно с фолловеров
Восстановление производится путем воспроизведения логов
Периодические снепшоты
– Ускоряют восстановление
– Экономят место на диске, занимаемое логами
18
Гидра
Эффективное решение
– ~100 000 мутаций в секунду
– Объем состояния ограничен RAM (~100 GB)
Автоматическое восстановление при сбоях (диски, сеть, машины
целиком)
– Горячий failover (~10 сек)
Периодическая кросс-валидация состояний мастеров
– Логи и снепшоты снабжены контрольными суммами
Минорные апдейты серверов без даунтайма
19
Гидра
Универсальный и переиспользуемый компонент
Подходит для репликации любого конечного автомата
Простой интерфейс состояния:
– ApplyMutation
– SaveSnapshot
– LoadSnapshot
Мутации должны быть детерминированными!
– Общий источник случайности на всех репликах
Полностью автоматические репликация и восстановление
20
Кипарис
Единое дерево объектов
– пространство имен
Узлы имеют атрибуты
– как системные, так и
пользовательские
21
Кипарис
Может использоваться как распределенная файловая система
– вместо файлов данные обычно хранятся в таблицах
$ yt create directory //home/vasya
1-2-3-4
$ yt upload //home/vasya/some_file < file
5-6-7-8
$ yt list //home/vasya
some_file
$ yt get //home/vasya/some_file/@size
1024
22
Кипарис
Интроспекция состояния кластера
– Большинство параметров системы представлены виртуальными узлами
– Аналог procfs
$ yt get //home/vasya/file/@chunk_ids
1-2-3-4
$ yt get //sys/chunks/1-2-3-4/@size
1024
$ yt get //sys/chunks/1-2-3-4/@stored_replicas
node0400.somecluster.net
node0401.somecluster.net
node0402.somecluster.net
23
Кипарис
Поддерживает транзакции (в том числе вложенные)
Поддерживает блокировки на узлах
Используется как сервис координации (Chubby, Zookeeper)
$ yt start_tx
1-2-3-4
$ yt upload --tx 1-2-3-4 //work/f1 < file1
5-6-7-8
$ yt set --tx 1-2-3-4 //work/@latest_file “f1”
$ yt commit_tx 1-2-3-4
24
Дизайн и архитектура
“Большие данные”
Чанки
Иммутабельные блобы
– Желаемый размер 100Mb-1Gb
Хранятся на нодах
– Сотни тысяч чанков на одной ноде
Базовый строительный блок для
файлов и таблиц
26
Репликация и erasure coding
Ноды кластера выпадают
– ~10 замен дисков на кластере размера ~1000 в неделю
Репликация: k реплик, оверхед k-1, выдерживает выпадение k-1 нод
Коды Коши-Рида-Соломона RS(n, k): оверхед k/n, выдерживает
выпадение k нод
Сравнительный пример
– 3-кратная репликация: оверхед 200%
– RS(6, 3): оверхед 50%
– Доступность RS(6,3) не хуже тройной репликации
27
Репликация и erasure coding
Почему бы всегда не использовать RS вместо репликации?
Восстановление может быть дорогим
– Репликация требует одного чтения при восстановлении
– RS(n, k) требует n чтений
Пример
– 3-кратная репликация: оверхед 200%, 1 чтение
– RS(6,3): оверхед 50%, 6 чтений
28
Репликация и erasure coding
29
Нужен компромисс
– Коды с локальным
восстановлением (LRC)
LRC(12,2,2)
– оверхед 33%
– выдерживает выпадение 3 нод
– <7 чтений в среднем
Планы на будущее
Масштабнее
Шардирование метаинформации (Кипариса)
Шардирование шедулера
Междатацентровые инсталляции
– Дополнительный координирующий слой (поверх Гидры)
– Синхронная и асинхронная репликация данных между ДЦ
Слой совместимости с Hadoop
31
Интерактивнее
Таблицы с быстрым доступом по ключу
– Статические данные в виде табличных чанков
– In-memory дельты с репликацией состояния
Табличные транзакции на основе timestamps
– MVCC
SQL-подобный язык запросов
Потоковые модели вычислений (Storm, MillWheel)
32
Спасибо за внимание!
34
Максим Бабенко
руководитель группы разработки YT
к.ф.-м.н.
+7(916)7807914
babenko@yandex-team.ru
© ООО «Яндекс», 2013

More Related Content

PDF
Класс!ная Cassandra
PDF
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
PPTX
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
PDF
За гранью NoSQL: NewSQL на Cassandra
PDF
Лекция 10. Apache Mahout
PPTX
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
PDF
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
PPT
Алексей Чумаков. Apache Cassandra на реальном проекте
Класс!ная Cassandra
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
За гранью NoSQL: NewSQL на Cassandra
Лекция 10. Apache Mahout
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Алексей Чумаков. Apache Cassandra на реальном проекте

What's hot (20)

PPTX
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
PDF
Хранение данных на виниле / Константин Осипов (tarantool.org)
PPTX
Mysql vs postgresql
PDF
Обзор файловой системы GlusterFS
PDF
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PDF
AVITO. Решардинг Redis без даунтайма. DevConf 2012
PPTX
MongoDB в продакшен - миф или реальность?
PPTX
Введение в Apache Cassandra
PDF
Лекция 2. Основы Hadoop
PDF
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
PPT
MongoDB basics in Russian
PDF
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
PPTX
Cassandra: быстрая запись данных в высоконагруженных системах
PDF
Отладка и устранение проблем в PostgreSQL Streaming Replication.
PDF
Обзор архитектуры [файловой] системы Ceph
PDF
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
PDF
SphinxSearch Meetup - Tips&tricks
PPTX
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
PDF
Опыт использования Spark, Основано на реальных событиях
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Хранение данных на виниле / Константин Осипов (tarantool.org)
Mysql vs postgresql
Обзор файловой системы GlusterFS
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
AVITO. Решардинг Redis без даунтайма. DevConf 2012
MongoDB в продакшен - миф или реальность?
Введение в Apache Cassandra
Лекция 2. Основы Hadoop
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...
MongoDB basics in Russian
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Cassandra: быстрая запись данных в высоконагруженных системах
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Обзор архитектуры [файловой] системы Ceph
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
SphinxSearch Meetup - Tips&tricks
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
Опыт использования Spark, Основано на реальных событиях
Ad

Viewers also liked (8)

PPTX
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
PDF
О.В.Сухорослов "MapReduce"
PDF
Лекция 5. MapReduce в Hadoop (алгоритмы)
PDF
Лекция 3. Распределённая файловая система HDFS
PDF
Лекция 12. Spark
PPTX
A Brief History of Big Data
PPTX
Big Data - The 5 Vs Everyone Must Know
PPTX
Testing Big Data: Automated Testing of Hadoop with QuerySurge
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
О.В.Сухорослов "MapReduce"
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 3. Распределённая файловая система HDFS
Лекция 12. Spark
A Brief History of Big Data
Big Data - The 5 Vs Everyone Must Know
Testing Big Data: Automated Testing of Hadoop with QuerySurge
Ad

Similar to "YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс. (20)

PPTX
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
PPTX
Анатомия Интернета вещей
PPTX
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
PDF
Микросервисная архитектура на базе CoreOS и Kubernetes
PDF
Максим Лапшин. Erlang production
PPTX
Software craftsmanship 17: Microservices interaction
PPTX
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
PDF
Максим Лапшин — введение в Erlang
PDF
Панаскин Денис: Архитектура для Internet of Things проектов с учетом расходов...
PDF
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
PPTX
Software craftsmanship 14 online Splitting the Monolith
PDF
Erlang railsclub - 1
PDF
"Cocaine — облачная платформа Яндекса". Андрей Сибирёв, Яндекс
PPTX
Выживут ли SCADA? О будущем распределенных систем управления
ODP
GetDev.NET: Снова Эрланг
PDF
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
PDF
Rapid Deployment of Hadoop Development Environments
PDF
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
PPTX
Software craftsmanship meetup #4
PDF
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Анатомия Интернета вещей
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Микросервисная архитектура на базе CoreOS и Kubernetes
Максим Лапшин. Erlang production
Software craftsmanship 17: Microservices interaction
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Максим Лапшин — введение в Erlang
Панаскин Денис: Архитектура для Internet of Things проектов с учетом расходов...
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
Software craftsmanship 14 online Splitting the Monolith
Erlang railsclub - 1
"Cocaine — облачная платформа Яндекса". Андрей Сибирёв, Яндекс
Выживут ли SCADA? О будущем распределенных систем управления
GetDev.NET: Снова Эрланг
CodeFest 2014. Сибирев А. — Управление инфраструктурой под Cocaine
Rapid Deployment of Hadoop Development Environments
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Software craftsmanship meetup #4

More from Yandex (20)

PDF
Предсказание оттока игроков из World of Tanks
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Предсказание оттока игроков из World of Tanks
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...

"YT — новая платформа распределённых вычислений". Максим Бабенко, Яндекс.

  • 2. YT – новая платформа распределенных вычислений Максим Бабенко
  • 4. Хронология событий 2004 – Статья Google про модель MapReduce и ее реализацию – Mapreduce: Simplified data processing on large clusters (Jeffrey Dean, Sanjay Ghemawat) 2006 – Прототип модели MapReduce в Яндексе (YAMR) 2007 – Публичный релиз Apache Hadoop – 4 September, 2007: release 0.14.1 available 2011 – Начало работ над YT 4
  • 5. Ограничения YAMR Мастер-сервер (хранящий метаданные) является единственной точкой отказа Шедулер совмещен с мастером, ограниченные возможности по масштабированию Нет разделения между слоями хранения данных и их обработки Слабая поддержка метаданных и возможностей интроспекции состояния системы 5
  • 6. Ограничения YAMR Негибкая система распределения ресурсов в шедулере (слоты с фиксированным объемом памяти) Неясные перспективы масштабирования на большие кластера и множество ДЦ Большой объем унаследованного кода, масса неудачных архитектурных решений – однако и большое количество клиентов ...и многое другое 6
  • 8. Что такое YT? Распределенное хранилище – Метаданные (Кипарис) – “Большие данные” (хранилище чанков) Среда вычислений – Базовые примитивы MapReduce – Дополнительные табличные операции (sort, join и др.) Примитивы для построения светлого будущего – Гидра 8
  • 10. Структура кластера YT Мастеры – Поддерживают в памяти метаинформацию о системе (чанки, транзакции, Кипарис и пр.) – Синхронно реплицированы, способны работать пока есть кворум – Автоматический горячий failover (~10 сек) – Координируют процессы репликации, балансировки и восстановления данных на нодах 10
  • 11. Структура кластера YT Прокси – Точка входа для внешних пользователей – Предоставляют HTTP API – Легкие (для управляющих команд) – Тяжелые (для потоков данных) – Выполняют аутентификацию – Stateless – Автоматическая балансировка нагрузки и failover 11
  • 12. Структура кластера YT Шедулеры – Планируют и запускают операции на данных (map, reduce, sort, join etc) – Реплицированы, периодически сохраняют снепшоты состояния – Автоматический failover (~1 минуты) Ноды – Хранят чанки с данными – Выполняют элементарные шаги вычисления 12
  • 14. Репликация состояния Paxos – Придуман Лесли Лэмпортом в 90-х годах прошлого века – MultiPaxos для задачи репликации лога – Используется в Chubby – Длинный путь от теории до работающего продакшен-решения 14
  • 15. “There are significant gaps between the description of the Paxos algorithm and the needs of a real-world system. In order to build a real-world system, an expert needs to use numerous ideas scattered in the literature and make several relatively small protocol extensions. The cumulative effort will be substantial and the final system will be based on an unproven protocol.” 15 Paxos Made Live, An Engineering Perspective (Chandra, Griesemer, Redstone)
  • 16. Репликация состояния Альтернатива: atomic broadcast – “Гидра” – Существенно более простая интуиция – Используется в Zookeeper – Формальное обоснование: Raft 16
  • 17. Гидра Набор мастеров нечетного размера 2k+1 Кворум: строгое большинство, как минимум k+1 мастеров – Любые два кворума имеют непустое пересечение В стационарном положении ровно один из мастеров является лидером, остальные фолловерами – Определение лидера и фолловеров производится с помощью протокола голосования 17
  • 18. Гидра Все мутации проходят через лидера – Вначале мутация записывается в логи на кворуме мастеров – Затем мутация применяется к состоянию в памяти Чтение возможно с фолловеров Восстановление производится путем воспроизведения логов Периодические снепшоты – Ускоряют восстановление – Экономят место на диске, занимаемое логами 18
  • 19. Гидра Эффективное решение – ~100 000 мутаций в секунду – Объем состояния ограничен RAM (~100 GB) Автоматическое восстановление при сбоях (диски, сеть, машины целиком) – Горячий failover (~10 сек) Периодическая кросс-валидация состояний мастеров – Логи и снепшоты снабжены контрольными суммами Минорные апдейты серверов без даунтайма 19
  • 20. Гидра Универсальный и переиспользуемый компонент Подходит для репликации любого конечного автомата Простой интерфейс состояния: – ApplyMutation – SaveSnapshot – LoadSnapshot Мутации должны быть детерминированными! – Общий источник случайности на всех репликах Полностью автоматические репликация и восстановление 20
  • 21. Кипарис Единое дерево объектов – пространство имен Узлы имеют атрибуты – как системные, так и пользовательские 21
  • 22. Кипарис Может использоваться как распределенная файловая система – вместо файлов данные обычно хранятся в таблицах $ yt create directory //home/vasya 1-2-3-4 $ yt upload //home/vasya/some_file < file 5-6-7-8 $ yt list //home/vasya some_file $ yt get //home/vasya/some_file/@size 1024 22
  • 23. Кипарис Интроспекция состояния кластера – Большинство параметров системы представлены виртуальными узлами – Аналог procfs $ yt get //home/vasya/file/@chunk_ids 1-2-3-4 $ yt get //sys/chunks/1-2-3-4/@size 1024 $ yt get //sys/chunks/1-2-3-4/@stored_replicas node0400.somecluster.net node0401.somecluster.net node0402.somecluster.net 23
  • 24. Кипарис Поддерживает транзакции (в том числе вложенные) Поддерживает блокировки на узлах Используется как сервис координации (Chubby, Zookeeper) $ yt start_tx 1-2-3-4 $ yt upload --tx 1-2-3-4 //work/f1 < file1 5-6-7-8 $ yt set --tx 1-2-3-4 //work/@latest_file “f1” $ yt commit_tx 1-2-3-4 24
  • 26. Чанки Иммутабельные блобы – Желаемый размер 100Mb-1Gb Хранятся на нодах – Сотни тысяч чанков на одной ноде Базовый строительный блок для файлов и таблиц 26
  • 27. Репликация и erasure coding Ноды кластера выпадают – ~10 замен дисков на кластере размера ~1000 в неделю Репликация: k реплик, оверхед k-1, выдерживает выпадение k-1 нод Коды Коши-Рида-Соломона RS(n, k): оверхед k/n, выдерживает выпадение k нод Сравнительный пример – 3-кратная репликация: оверхед 200% – RS(6, 3): оверхед 50% – Доступность RS(6,3) не хуже тройной репликации 27
  • 28. Репликация и erasure coding Почему бы всегда не использовать RS вместо репликации? Восстановление может быть дорогим – Репликация требует одного чтения при восстановлении – RS(n, k) требует n чтений Пример – 3-кратная репликация: оверхед 200%, 1 чтение – RS(6,3): оверхед 50%, 6 чтений 28
  • 29. Репликация и erasure coding 29 Нужен компромисс – Коды с локальным восстановлением (LRC) LRC(12,2,2) – оверхед 33% – выдерживает выпадение 3 нод – <7 чтений в среднем
  • 31. Масштабнее Шардирование метаинформации (Кипариса) Шардирование шедулера Междатацентровые инсталляции – Дополнительный координирующий слой (поверх Гидры) – Синхронная и асинхронная репликация данных между ДЦ Слой совместимости с Hadoop 31
  • 32. Интерактивнее Таблицы с быстрым доступом по ключу – Статические данные в виде табличных чанков – In-memory дельты с репликацией состояния Табличные транзакции на основе timestamps – MVCC SQL-подобный язык запросов Потоковые модели вычислений (Storm, MillWheel) 32
  • 34. 34 Максим Бабенко руководитель группы разработки YT к.ф.-м.н. +7(916)7807914 [email protected] © ООО «Яндекс», 2013