3. 〉Нужно хранить много данных, делать это распределенно в нескольких
датацентрах
〉Количество данных постоянно растет
〉Данные читают, и читают много
〉Не должно быть единой точки отказа
〉Нужно уметь масштабировать систему
3
Задача хранения данных
4. 〉RAID 1 - производительно и надежно
〉RAID 5/6 - надежно и экономично
4
Как насчет RAID?
5. Помимо ожидаемого износа оборудования и отказа дисков
〉Машинки перезагружаются и ломаются
〉Случаются перебои в работе сети
〉Целиком отключаются датацентры
5
Мир не идеален :(
6. 6
Что такое elliptics
Elliptics
Отказоустойчивое распределенное key-value хранилище данных с
открытым исходным кодом (распространяется под GPL-лицензией), не
имеющее единой точки отказа
7. 7
CAP теорема
CAP теорема - выбери любые два:
〉согласованность данных (consistency)
〉доступность (availability)
〉устойчивость к разделению (partition tolerance)
9. Elliptics - AP система
Согласованность в конечном счете (eventual consistency) - в любой
момент времени данные могут быть неконсистентны, но будут
консистентны в практически обозримое время
9
CAP теорема
16. N - суммарное количество групп
W - количество групп, в которое мы должны записать, чтобы транзакция
считалась завершенной
R - количество групп, из которых читаются данные
В Elliptics в зависимости от задач можно использовать несколько типов
согласованности:
〉strong consistency - W+R > N медленно, но более надежно
〉weak consistency - W+R<=N - быстро, но менее надежно
16
Отказоустойчивость
61. Восстановление - обязательный регулярно запускаемый процесс для
поддержания консистентности данных в Elliptics
〉Read-recovery - восстановление при чтении
〉Merge - восстановление в рамках одной группы
〉DC - восстановление между группами
61
Восстановление
66. Легко добавлять ноды, но есть ограничения
〉Итерирование по ноде - длительный ресурсоемкий процесс
(упираемся в диск)
〉Перенос и копирование ключей - упирается в сеть
66
Масштабируемость
80. Обе схемы имеют право на жизнь, у каждой свои преимущества и
недостатки
DHT:
+ не надо хранить ключ
+ высокая производительность
+ хорошая отказоустойчивость
- долгое восстановление
- ограниченные возможности масштабирования
80
Итоги
81. Mediastorage:
+ Легко масштабируется
+ Хорошая отказоустойчивость
+ Гибкость, удобство восстановления
- Нет чистого key-value, необходимо хранить couple
81
Итоги