Кластеризация

:
● Производительность
мощность машин не беспредельна,
их стоимость растет быстрее
производительности
● Отказоустойчивость
Выход из строя одной машины не
должен приводить к отказу в
в обслуживании

Решение в лоб - 1.1
Приложение

WR — оба
RD — один
HA-JDBC,
или самописное
БД 1

Простота идеи
●Отказоустойчивость
●Сравнительно
хорошо масштабируется
при малом числе нод

Масштабирования
по записи
●Восстановление после
сбоя
●Масштабирование
приложения

БД 2

Решение в лоб - 1.2
Приложение

Приложение

WR — оба
RD — один
HA-JDBC
Простота идеи
●Отказоустойчивость
●Масштабирование
приложения

БД 1

Сложность воплощения
●Нет масштабирования
по записи
●Восстановление после
сбоя
●Проблема развала
кластера
●Плохо масштабируется

БД 2

Решение в лоб - 2.1
Приложение

Контроллер

Приложение

WR — оба
RD — один
Sequoia, PgPool
БД 1

Простота идеи
●Сравнительно
хорошо масштабируется
при малом числе нод

Сложность воплощения
●Отказоустойчивость
●Восстановление после
сбоя (PgPool)
●Нет масштабирования
по записи

БД 2

Решение в лоб - 2.2
Приложение

Контроллер

Контроллер

Приложение

WR — оба
RD — один
Sequoia
БД 1

Отказоустойчивость
●Сравнительно
хорошо масштабируется
при малом числе нод

Сложность воплощения
●Нет масштабирования
по записи

БД 2

Решение в лоб - 3
Приложение

Slony, PgCluster

RDWR

Репликация

Простота идеи
●Сравнительно
хорошо масштабируется
при малом числе нод
●Отказоустойчивость
на чтение

RDONL:Y

Master БД

Отказоустойчивость
на запись
●Нет масштабирования
по записи
●Для некоторых приложений
возрастает сложность

Slave БД 1

Slave БД 2

Общий недостаток — рост производительности имеет предел

Кеш
перестал
работать

Объем данных

Кластеризация не помогает

Начало кластеризации

Производительность

Оперативная память

Sharding или horizontal partitioning
Приложение

Sequoia, GridSQL, plProxy
или самописное

Shard БД 1

Shard БД 2

Простота идеи
●хорошо масштабируется и
по чтению и по записи
●Отказоустойчивость

Отказоустойчивость
●Сильно связанные данные
●Обеспечением
отказоустойчивости
занимается каждая нода в
отдельности
●Выбор решения —
ответственное дело
●Возможная неоюходимость
денормализации

Реальная система — управление
школами
1е5 школ
●1е8 пользователй
●1е6 записей в школе за год
●24х7
●Есть планируемые пиковые загрузки,
часовые пояса.

MetaData
login, id, school_id и cluster

Application server 1

School DC 1
Данные о школах (~50)

Application server N

School DC N

User DC 1
Персональные данные

User DC N

Оценки по пятибалльной системе, 5 - высшая
Схема

S1
S2.1

Производительность
1
2

Масштаби- Надежность
руемость
1
1

2
1

Hot
scheme
update
5
5

Простота Обновление
использоверсии
вания

Администрирование

Вероятность выхода из строя
при выходе из строя
1 машины

2-х машин

5

2 1)

5

100%

-

4

1)

4

100%

100%

0%

100% 3)

2

3

2)

S2.2

2

4

3

4

3

4

S2.3

3

1

1

4

4

2 1)

4

100%

100%

S3

4

3

4

4

4

2 1)

4

33%

100%

S4.1

5

3

3

4

4

2 1)

4

50%

100%

S4.2

4

5

5

4

4

4

4

0%

50% 4)

Примечания
1) требует полного останова кластера
2) возможны приостановки кластера
3) при многомашинной организации работоспособность кластера сохраняется до последней машины
4) при многомашинной организации вероятность выхода из строя равна нулю при выходе из строя до N/2-1 машин

Sign up to vote on this title
UsefulNot useful