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