Вы находитесь на странице: 1из 13

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

Производительность мощность машин не беспредельна, их стоимость растет быстрее производительности

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

Решение в лоб - 1.1

Приложение

Решение в лоб - 1.1 Приложение WR — оба RD — один HA-JDBC, или самописное
Решение в лоб - 1.1 Приложение WR — оба RD — один HA-JDBC, или самописное

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

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

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

БД 1

БД 2

Решение в лоб - 1.2

Приложение

Приложение

в лоб - 1.2 Приложение Приложение WR — оба RD — один HA-JDBC ● Простота
в лоб - 1.2 Приложение Приложение WR — оба RD — один HA-JDBC ● Простота

WR — оба RD — один HA-JDBC

Простота идеи Отказоустойчивость Масштабирование приложения

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

БД 1

БД 2

Решение в лоб - 2.1

Приложение

Контроллер
Контроллер

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

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

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

Приложение

БД 1

БД 2

Решение в лоб - 2.2

Приложение

Контроллер Контроллер
Контроллер
Контроллер

WR — оба RD — один Sequoia

Отказоустойчивость

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

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

Приложение

БД 1

БД 2

Решение в лоб - 3

Приложение RDWR RDONL:Y Master БД Репликация Slave БД 2 Slave БД 1
Приложение
RDWR
RDONL:Y
Master БД
Репликация
Slave БД 2
Slave БД 1
БД Репликация Slave БД 2 Slave БД 1 Slony, PgCluster ● Простота идеи ●
БД Репликация Slave БД 2 Slave БД 1 Slony, PgCluster ● Простота идеи ●

Slony, PgCluster

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

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

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

Оперативная память Кеш перестал работать Производительность
Оперативная память
Кеш
перестал
работать
Производительность
Начало кластеризации
Кластеризация не помогает

Объем данных

Sharding или horizontal partitioning

Приложение Sequoia, GridSQL, plProxy или самописное Shard БД 1 Shard БД 2
Приложение
Sequoia, GridSQL, plProxy
или самописное
Shard БД 1
Shard БД 2

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

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

Реальная система управление школами

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

MetaData login, id, school_id и cluster

MetaData login, id, school_id и cluster School DC 1 Данные о школах (~50) School DC N

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

School DC N

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

Application server 1

о школах (~50) School DC N Application server 1 Application server N User DC 1 Персональные

Application server N

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

User DC N

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

Схема

Производи-

Масштаби-

Надежность

Hot

Простота

Обновление

Администри-

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

тельность

руемость

scheme

использо-

версии

рование

update

вания

1 машины

2-х машин

S1

1

1

2

5

5

2

1)

5

100%

-

S2.1

2

1

1

5

4

2

1)

4

100%

100%

S2.2

2

4

3

4

3

4

3 2)

0%

100% 3)

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 машин