SlideShare a Scribd company logo
Жидков Игорь - Elliptics
Elliptics 
Игорь Жидков, системный администратор
〉Нужно хранить много данных, делать это распределенно в нескольких 
датацентрах 
〉Количество данных постоянно растет 
〉Данные читают, и читают много 
〉Не должно быть единой точки отказа 
〉Нужно уметь масштабировать систему 
3 
Задача хранения данных
〉RAID 1 - производительно и надежно 
〉RAID 5/6 - надежно и экономично 
4 
Как насчет RAID?
Помимо ожидаемого износа оборудования и отказа дисков 
〉Машинки перезагружаются и ломаются 
〉Случаются перебои в работе сети 
〉Целиком отключаются датацентры 
5 
Мир не идеален :(
6 
Что такое elliptics 
Elliptics 
Отказоустойчивое распределенное key-value хранилище данных с 
открытым исходным кодом (распространяется под GPL-лицензией), не 
имеющее единой точки отказа
7 
CAP теорема 
CAP теорема - выбери любые два: 
〉согласованность данных (consistency) 
〉доступность (availability) 
〉устойчивость к разделению (partition tolerance)
8 
CAP теорема
Elliptics - AP система 
Согласованность в конечном счете (eventual consistency) - в любой 
момент времени данные могут быть неконсистентны, но будут 
консистентны в практически обозримое время 
9 
CAP теорема
10 
Как работает elliptics
11 
Как работает elliptics
12 
Как работает elliptics
13 
Как работает elliptics
14 
Как работает elliptics
15 
Как работает elliptics
N - суммарное количество групп 
W - количество групп, в которое мы должны записать, чтобы транзакция 
считалась завершенной 
R - количество групп, из которых читаются данные 
В Elliptics в зависимости от задач можно использовать несколько типов 
согласованности: 
〉strong consistency - W+R > N медленно, но более надежно 
〉weak consistency - W+R<=N - быстро, но менее надежно 
16 
Отказоустойчивость
17 
Как работает elliptics
18 
Как работает elliptics
19 
Как работает elliptics
20 
Как работает elliptics
21 
Как работает elliptics
22 
Как работает elliptics
23 
Как работает elliptics
24 
Как работает elliptics
25 
Как работает elliptics
Каждый документ хранится по 512-битному ключу (sha512 от названия) 
Все ключи - кольцо с диапазоном значений от 0 до 2512 
26 
DHT в Elliptics
27 
DHT в elliptics
echo -n "hypnotoad.jpg" | sha512sum 
〉c9b70e9b62923feba1afd890891937c0486d48db99de3cc0e649319e49dfc 
ba70132e7cf073d3f1e66d61255df668e1950edddcb310b4597e37402750a2f0 
71a 
echo -n "hypnotoad1.jpg" | sha512sum 
〉02c1f6c1413fc3fc522638db83fbd76ddb54413a83e909aeeb7566acbcb19f 
1008316ff892bf33ab6f8ef4feb19112ae31e14b9d1108270234eeb29cc8cac9f 
8 
28 
DHT в elliptics
29 
DHT в elliptics
30 
DHT в elliptics
31 
DHT в elliptics
32 
DHT в elliptics
33 
DHT в elliptics
34 
DHT в elliptics
35 
DHT в elliptics
36 
DHT в elliptics
37 
DHT в elliptics
38 
DHT в elliptics
39 
DHT в elliptics
40 
DHT в elliptics
41 
DHT в elliptics
42 
DHT в elliptics
43 
DHT в elliptics
44 
DHT в elliptics
45 
DHT в elliptics
46 
DHT в elliptics
47 
DHT в elliptics
48 
DHT в elliptics
49 
DHT в elliptics
50 
DHT в elliptics
51 
DHT в elliptics
52 
DHT в elliptics
53 
DHT в датацентрах
54 
Серверная нода
55 
Eblob
56 
Eblob
57 
Итерирование eblob
58 
Итерирование eblob
59 
Итерирование eblob
60 
Итерирование eblob
Восстановление - обязательный регулярно запускаемый процесс для 
поддержания консистентности данных в Elliptics 
〉Read-recovery - восстановление при чтении 
〉Merge - восстановление в рамках одной группы 
〉DC - восстановление между группами 
61 
Восстановление
62 
Read-recovery
63 
Read-recovery
64 
Merge
65 
Dc
Легко добавлять ноды, но есть ограничения 
〉Итерирование по ноде - длительный ресурсоемкий процесс 
(упираемся в диск) 
〉Перенос и копирование ключей - упирается в сеть 
66 
Масштабируемость
67 
Mediastorage
68 
Mediastorage
69 
Mediastorage
70 
Mediastorage
71 
Mediastorage
72 
Mediastorage
73 
Mediastorage
74 
Mediastorage
75 
Mediastorage
76 
Mediastorage
77 
Mediastorage
78 
Mediastorage
79 
Mediastorage
Обе схемы имеют право на жизнь, у каждой свои преимущества и 
недостатки 
DHT: 
+ не надо хранить ключ 
+ высокая производительность 
+ хорошая отказоустойчивость 
- долгое восстановление 
- ограниченные возможности масштабирования 
80 
Итоги
Mediastorage: 
+ Легко масштабируется 
+ Хорошая отказоустойчивость 
+ Гибкость, удобство восстановления 
- Нет чистого key-value, необходимо хранить couple 
81 
Итоги
Спасибо за внимание!
https://tech.yandex.ru/elliptics/ 
https://github.com/reverbrain/elliptics 
https://github.com/yandex/mastermind 
http://reverbrain.com/elliptics/ 
83 
Ссылки

More Related Content

ODP
Data storage systems
PDF
Дмитрий Васильев - Задачи ассиметричной криптографии
PDF
вера сивакова
PDF
Антон Качалов - Популярно об IPMI и UEFI
PDF
Андрей Соболевский - Вокруг Базельской задачи: Бернулли, Эйлер, Риман
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Константин Горский - Дизайн
PDF
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
Data storage systems
Дмитрий Васильев - Задачи ассиметричной криптографии
вера сивакова
Антон Качалов - Популярно об IPMI и UEFI
Андрей Соболевский - Вокруг Базельской задачи: Бернулли, Эйлер, Риман
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Константин Горский - Дизайн
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...

Viewers also liked (20)

PDF
Тропинка через минное поле — Леонычев Юрий
PDF
Симаков Алексей - Системы управления кластерами
PDF
Руководство по стилю документации: зачем и как, Татьяна Грачёва
PDF
Большие данные в физике элементарных частиц на примере LHCb - Guy Wilkinson, ...
PDF
Где прячутся мобильные вирусы — Григорий Земсков
PDF
Михаил Трошев — Инструменты веб-разработки
PDF
Коллективная разработка документации: от индивидуального авторства к командн...
PDF
Как делается Яндекс.Браузер — Михаил Лопаткин
PDF
алексей тихонов
PDF
Мобильная Яндекс.Почта — Дмитрий Александров
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PPTX
Иван Титов — Inducing Semantic Representations from Text with Little or No Su...
PDF
Эталонное описание фильма на основе десятков дубликатов
PDF
Алексей Заблоцкий - Нейросети на основе мемристоров для реализации искусствен...
PPTX
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
PDF
Сергей Еланцев - Troubleshooting
PDF
The Phase Transition
PDF
Работа с Git в команде Яндекс.Браузера — Алёна Царёва
PDF
Анализ изображений и видео. Обнаружение текста на изображенияхслайды последней
PDF
Построение компилятора на базе LLVM — Павел Сычев
Тропинка через минное поле — Леонычев Юрий
Симаков Алексей - Системы управления кластерами
Руководство по стилю документации: зачем и как, Татьяна Грачёва
Большие данные в физике элементарных частиц на примере LHCb - Guy Wilkinson, ...
Где прячутся мобильные вирусы — Григорий Земсков
Михаил Трошев — Инструменты веб-разработки
Коллективная разработка документации: от индивидуального авторства к командн...
Как делается Яндекс.Браузер — Михаил Лопаткин
алексей тихонов
Мобильная Яндекс.Почта — Дмитрий Александров
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Иван Титов — Inducing Semantic Representations from Text with Little or No Su...
Эталонное описание фильма на основе десятков дубликатов
Алексей Заблоцкий - Нейросети на основе мемристоров для реализации искусствен...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Сергей Еланцев - Troubleshooting
The Phase Transition
Работа с Git в команде Яндекс.Браузера — Алёна Царёва
Анализ изображений и видео. Обнаружение текста на изображенияхслайды последней
Построение компилятора на базе LLVM — Павел Сычев
Ad

Similar to Жидков Игорь - Elliptics (20)

PDF
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
PDF
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
PDF
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
PDF
Arista интеллектуальная сеть и облако
PDF
Aлександр Зайцев, LifeStreet
PPTX
Доклад на Highload-2012
PDF
Алексей Федоров
PPTX
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
PDF
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
PDF
OpenSource SQL Databases Enter Millions Queries per Second Era
PPTX
Java Ahead-Of-Time compilation
PDF
MySQL NDB Cluster
PDF
микроСЕРВИСЫ: огонь, вода и медные трубы
PDF
How to cook a blockchain and not get burned
PPTX
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
PDF
Денис Иванов
PPTX
Кирилл Алешин - Big Data и Lambda архитектура на практике
PPTX
Hosting for forbes.ru_
PPTX
Практический опыт использования некоторых современных решений репликации MySQL
PDF
Другая виртуализация
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Arista интеллектуальная сеть и облако
Aлександр Зайцев, LifeStreet
Доклад на Highload-2012
Алексей Федоров
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
OpenSource SQL Databases Enter Millions Queries per Second Era
Java Ahead-Of-Time compilation
MySQL NDB Cluster
микроСЕРВИСЫ: огонь, вода и медные трубы
How to cook a blockchain and not get burned
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
Денис Иванов
Кирилл Алешин - Big Data и Lambda архитектура на практике
Hosting for forbes.ru_
Практический опыт использования некоторых современных решений репликации MySQL
Другая виртуализация
Ad

More from Yandex (20)

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

Жидков Игорь - Elliptics