Как стать автором
Обновить

Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к тысячам серверов

Время на прочтение33 мин
Количество просмотров18K
Всего голосов 73: ↑71 и ↓2+69
Комментарии9

Комментарии 9

Крутой доклад. На мой взгляд, один из самых интересных на Highload++ 2017.
-Делаете ли вы бекапы?
-Я делаю бекапы и сохраняю копии в Dropbox.
Помню помогал сисадмином в одной небольшой конторе, которая все горячие файлы хранила в общей сетевой папке. Там были куча накладных, счетов, всякие договоры со всякими поставщиками итд, файлы очень нужные без них никак. Всего около 15 гбайт, и 20 000 файлов.
И вот, один из менеджеров (их всего 3) словил шифровальщика. Все файлы на шаре были зашифрованы…
Как же хорошо, что за 3 месяца до инцидента, я поставил на комп с которого осуществляется раздача — Dropbox (тогда еще было бесплатно 25гбайт по акции от htc). Все файлы удалось откатить на 1 день назад через суппорт. 4 часа загрузки(канал слабенький), и утром все файлы были на своих местах. Никто даже не понял что произошло (ну вирус, ну переустановить заново винду).
В 2012 году мы поняли, что создавать таблицы и обновлять их в БД на каждую добавляемую бизнес-логику очень сложно, муторно и проблематично.

Не очень понятно — теперь альтеров нет вообще? Вроде далее описывается, что есть шарды, куча нод, и всё такое.
Репликация в MySQL не параллельная, и все шарды работают в один поток. Если с одним шардом что-то происходит, то остальные тоже становятся жертвами.

− Самый большой минус — намного сложнее всем этим управлять. Нужен какой-то умный планировщик, который будет понимать, куда он может вынести этот инстанс, где будет оптимальная нагрузка.

Насколько я понимаю, на момент выхода доклада MySQL 5.7, поддерживающий многопоточную репликацию, уже применялся в ряде коммерческих проектов.
1) Изменения схемы всё ещё есть, но их теперь единицы
2) Переход между мажорными релизами(иногда даже и между минорными) не самый тривиальный процесс при большом количестве не гомогенного железа/софта. На момент доклада в dropbox использовался mysql 5.6
А что вы используете для автоматизации свопа master-slave?
Какое-то самописное решение? Или что-то open source?
Самописное.
Может быть можете посоветовать что-то open source на эту тему?
Нам не нужно это делать постоянно, но иногда надо и хочется чтобы это было автоматизировано, без ручных операций и максимально быстро.
Спасибо.
Я сам не пользовался, но можно посмотреть на github.com/github/orchestrator
Зарегистрируйтесь на Хабре, чтобы оставить комментарий