HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2853.html
История развития инфраструктуры баз данных в Dropbox.
Путь от одной глобальной базы к 6 тысячам шардов.
- Как конфигурировать для разных типов, железа, версий mysql.
- Интеграционные тесты для всех операций над кластером.
- Multi instance (несколько серверов баз данных на одном сервере). Причины.
- Бэкапы и восстановление за десятки минут.
...
2. Автор доклада
Site reliability engineer в Dropbox
Techlead в команде баз данных
Евангелист Go, соведущий golangshow.com
twitter: m0sth8
email: m0sth8@gmail.com
14. Dropbox - файловое хранилище
Exabytes of raw data
Metaserver Blockserver
Clients (Web, api, desktop)
MySQL
Block
Storage
15. Dropbox - файловое хранилище
Exabytes of raw data
Petabytes of data
~6000 servers
Metaserver Blockserver
Clients (Web, api, desktop)
MySQL
Block
Storage
55. Фейловер (замена поломанного мастера)
• Мастер умер <- идеальный случай
• Мастер иногда жив
• Мастер медленно умирает и все системы сбоят по своему (slow
death)
56. Фейловер (замена поломанного мастера)
• Мастер умер <- идеальный случай
• Мастер иногда жив
• Мастер медленно умирает и все системы сбоят по своему (slow
death)
• Мастер перегружен. <- промоушен сделает только хуже
87. Availability (доступность)
MTBF - mean time between failure
MTTR - mean time to repair
MTTR = "time to detect" + "time to remediate"
https://www.vividcortex.com/blog/the-factors-that-impact-availability-visualized
121. DRT (Disaster recovery testing)
• Тестируем наши гарантии
• Клиенты готовы к ошибкам (замена и смерть мастера)
• Бизнес часы дежурства, меньше стресса.
129. Сплит шардов (two way)
1. Добавляем 3 слейва в основном дц, 2 в дополнительном
2. Выбираем таргет слейв(будущий новый мастер)
3. Реперентим часть слейвов на таргет слейв
4. Промоутим только часть шардов на таргет слейв
5. Переименовываем базы данных
1. на 1-ом SHARD_5-8_REMOVED
2. на 2-ом SHARD_1-4_REMOVED
6. У нас теперь два кластера с разделёнными шардами.