Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

HighLoad — масштабирование реляционных СУБД by Mind Map: HighLoad — масштабирование
реляционных СУБД
5.0 stars - 1 reviews range from 0 to 5

HighLoad — масштабирование реляционных СУБД

scale up (более мощное железо)

Больше CPU

Ограниченная масштабируемость большинства СУБД, Особенно mysql

Больше памяти

Больше кэшей

Нелинейный эффект от вложения денег

избыточность мощности — нельзя плавно повышать мощность

downtime, миграции

Репликация

Виды

Синхронная / асинхронная

master-slave / multi-master (master-master)

Проблемы

Выигрыш нелинейный

Большой overhead на синхронизацию, иерархия серверов, maatkit

Неконсистентные данные, Репликация в один тред

Запись не масштабируется!, master / master, сложно, ненадёжно

Как роутить чтение между серверами

proxy, mysqlproxy, pgproxy, "sql proxy" от slonik_v_domene

внутри приложения, при перебалансировке нужно патчить приложение

DNS-LB, латентность

Вертикальное масштабирование

Выделение ролей для серверов

Разные таблицы на разных серверах

Разные колонки на разных серверах, Можно уменьшить локи, разнеся insert и update

Проблемы, Всё равно упираемся в пределы физической машины, Ограниченный профит, До свиданья джойны..., Решения, mysql federated engine

Встроенный в СУБД partitioning (разные куски таблицы / разные таблицы на разных дисках)

Можно физически хранить на разных storage...

Минусы, Узким местом всё равно становится масштабируемость СУБД

Горизонтальное масштабирование

Плюсы

Неограниченное масштабирование

Как разделять данные

Статически, По списку значений, девочки налево, мальчики направо, Хэш-функции, Остаток от деления, По "первой букве", MD5 и т.п., По дате, По диапазону ID PK, Проблемы -- слишком жёсткие правила, неудобно добавлять серверы, "Математические трюки": 12, 24...

Динамически, добавление новых машин, замена, перенос, балансировка – без изменения кода, Минус: SPOF, высокая нагрузка, Роутинг, proxy, координирующий сервер

Решения

Вручную, внутри приложения, Нужно писать прослойку для работы с данными

proxy, PL/Proxy, mysqlproxy, LUA

Минусы

Нельзя JOINs

Усложняется доступ к данным