Download - CAP теорема
CAP теорема и ее применение в
распределенных системах
PCCM + DRA как распределенная система
Сушков АлексейНачальник группы "PCCM, RBSM"
billing.ru
Содержание
2
billing.ru
Важность понимания распределенных систем
ИнтернетПоисковики (Google)Интернет магазины (Amazon)Облачные сервисы / вычисленияRAIDСуперкомпьютерыРаспределенные DB
3
billing.ru
Распределенные системы
Независимость узловСнаружи – как целоеМасштабируемость -
следствие первого
4
billing.ru
Как думали устроен мир
5
billing.ru
Как на самом деле устроен мир
6
Узел 1Узел 1 Узел 2Узел 2 Узел NУзел N
Промежуточное звеноПромежуточное звено
Клиент 1Клиент 1 Клиент 2Клиент 2 Клиент MКлиент M
…
…
billing.ru
Проблемы масштабируемостиПроблема Решения
Значительное время ожидания ответа от удаленного узла
1. Применение децентрализованных алгоритмов:
• Работа в условиях отсутствия полной информации о системе
• Принятие решения на основе локальной информации
2. Сокрытие времени ожидания:• Асинхронное выполнение• Выполнение на клиенте
Распределение нагрузки
1. Применение алгоритмов:• Хеш функция (mod)• Случайное распределение• Round robin• Распределение в зависимости от нагрузки, %
CPU и т.п. 2. Shared Nothing Architecture
Падение узлов / штатный рестарт узлов
1. Репликация 2. Кеширование
7
billing.ru
Репликация данных
8
УзелУзел УзелУзел
КлиентКлиент
УзелУзел УзелУзел
КлиентКлиент
УзелУзел УзелУзел
КлиентКлиент
Между узламиМежду узлами
Данные на клиентеДанные на клиенте
Дублирование с клиентаДублирование с клиента
billing.ru
Распределенная архитектура PCCM
9
DRADRA
PCCM(M)
PCCM(M)
PCCM(S)
PCCM(S)
PCCM(M)
PCCM(M)
PCCM(S)
PCCM(S)…… PCCM
(S)PCCM
(S) …
Группа IMSI NГруппа IMSI NГруппа IMSI 1Группа IMSI 1
billing.ru
Надежная архитектура PCCM + DRA
10
DRA 1DRA 1
PCCM(M)
PCCM(M)
PCCM(S)
PCCM(S)
PCCM(M)
PCCM(M)
PCCM(S)
PCCM(S)…
Группа IMSI NГруппа IMSI NГруппа IMSI 1Группа IMSI 1
DRA 2DRA 2
billing.ru
Внутренняя архитектура PCCM
11
Event Processor ManagerEvent Processor Manager
КЕШIMSI 1
КЕШIMSI 1
КЕШIMSI 2
КЕШIMSI 2
КЕШIMSI N
КЕШIMSI N
…
billing.ru
Модели целостности системы
ACID BASE• Atomicity — Атомарность• Consistency —
Согласованность• Isolation —
Изолированность• Durability — Надежность
• Basic Availability – базовая доступность
• Soft-state – неустойчивое состояние
• Eventual consistency – согласованность в конечном итоге
RDBMS • NoSQL (не всегда)• Распределенные DB
MySQL, Oracle Cassandra, Dynamo, MongoDB
• Согласованность данных за счет доступности
• Доступность данных за счет согласованности
• Большая надежность • Лучшая производительность
• Пессимистичная стратегия • Оптимистичная стратегия
billing.ru
CAP Теорема
13
ConsistencyConsistency
AvailabilityAvailability
CP AP
CA
Профессор Эрик Брюер (Eric A. Brewer) ~ 2000 годПрофессор Эрик Брюер (Eric A. Brewer) ~ 2000 год
billing.ru
CAP Теорема
В любой реализации распределённых вычислений возможно обеспечить не более двух из трёх следующих свойств Consistency (согласованность данных), Availability (доступность) и Partition tolerance (устойчивость к разделению).
В любой реализации распределённых вычислений возможно обеспечить не более двух из трёх следующих свойств Consistency (согласованность данных), Availability (доступность) и Partition tolerance (устойчивость к разделению).
Дополнение к теореме: любая распределенная система должна быть P (устойчивой к разделению)!
Дополнение к теореме: любая распределенная система должна быть P (устойчивой к разделению)!
Уточнение теоремы: при отсутствии P система может (должна) быть CAУточнение теоремы: при отсутствии P система может (должна) быть CA
billing.ru
CAP Теорема доказательство
AA V0V0
Node 1Node 1
V1V1
BB V0V0
Node 2Node 2
AA V1V1
BB V0V0
AA V1V1
V1V1BB V1V1
V1V1
1 2 3
billing.ru
CAP Теорема доказательство
AA V0V0
Node 1Node 1
V1V1
BB V0V0
Node 2Node 2
AA V1V1
BB V0V0
AA V1V1
V0V0BB V0V0
1 2 3
billing.ru
CAP Теорема – применение
17
Думать о своих данных: разные данные – разные нужды (книжный магазин vs торговля акциями);
Может лучше согласованность в конечном итоге, но 100% доступность?
В высоконагруженных системах массового обслуживания лучше доступность, чем согласованность.
Объяснять заказчикам, что при падении (рестарте) узлов системы возможно обеспечить только “согласованность в конечном итоге”.
billing.ru
Чего в презентации не было Event-Driven Architecture
AMQP (Advanced Message Queuing Protocol) RabbitMQ Паттерны масштабирования (Scalability Patterns)
Google – поставщик инноваций: MapReduce GFS (Google File System) LevelDB
Применение NoSQL DB Facebook: Cassandra LinkedIn: Voldemort Amazon: DynamoDB Yahoo: Hbase
Распределенные файловые системы Распределенные хранилища данных RAID
18
© 2010 ПЕТЕР-СЕРВИС Все права защищены
Алексей СушковНачальник группы "PCCM, RBSM"
Спасибо за внимание!