ݺߣ

ݺߣShare a Scribd company logo
CAP теорема и ее
применение в
распределенных системах
PCCM + DRA как распределенная система
Сушков Алексей
Начальник группы "PCCM, RBSM"
billing.ru
Содержание
DRA + PCCM
CAP теорема
Распределенные системы
2
billing.ru
Важность понимания распределенных систем
Интернет
Поисковики (Google)
Интернет магазины (Amazon)
Облачные сервисы / вычисления
RAID
Суперкомпьютеры
Распределенные DB
3
billing.ru
Распределенные системы
Независимость узлов
Снаружи – как целое
Масштабируемость - следствие
первого
4
billing.ru
Как думали устроен мир
5
billing.ru
Как на самом деле устроен мир
6
Узел 1 Узел 2 Узел N
Промежуточное звено
Клиент 1 Клиент 2 Клиент M
…
…
billing.ru
Проблемы масштабируемости
Проблема Решения
Значительное
время ожидания
ответа от
удаленного узла
1. Применение децентрализованных алгоритмов:
• Работа в условиях отсутствия полной
информации о системе
• Принятие решения на основе локальной
информации
2. Сокрытие времени ожидания:
• Асинхронное выполнение
• Выполнение на клиенте
Распределение
нагрузки
1. Применение алгоритмов:
• Хеш функция (mod)
• Случайное распределение
• Round robin
• Распределение в зависимости от нагрузки, % CPU
и т.п.
2. Shared Nothing Architecture
Падение узлов
/ штатный
рестарт узлов
1. Репликация
2. Кеширование
7
billing.ru
Репликация данных
8
Узел Узел
Клиент
Узел Узел
Клиент
Узел Узел
Клиент
Между узлами Данные на
клиенте
Дублирование
с клиента
billing.ru
Распределенная архитектура PCCM
9
DRA
PCCM
(M)
PCCM
(S)
PCCM
(M)
PCCM
(S)……
PCCM
(S) …
Группа IMSI NГруппа IMSI 1
billing.ru
Надежная архитектура PCCM + DRA
10
DRA 1
PCCM
(M)
PCCM
(S)
PCCM
(M)
PCCM
(S)
…
Группа IMSI NГруппа IMSI 1
DRA 2
billing.ru
Внутренняя архитектура PCCM
11
Event Processor Manager
КЕШ
IMSI 1
КЕШ
IMSI 2
КЕШ
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
Consistency Availability
CP AP
CA
Профессор Эрик Брюер (Eric A. Brewer) ~ 2000 год
billing.ru
CAP Теорема
В любой реализации распределѐнных
вычислений возможно обеспечить не более двух
из трѐх следующих свойств Consistency
(согласованность данных), Availability
(доступность) и Partition tolerance (устойчивость
к разделению).
Дополнение к теореме: любая распределенная
система должна быть P (устойчивой к
разделению)!
Уточнение теоремы: при отсутствии P система
может (должна) быть CA
billing.ru
CAP Теорема доказательство
A V0
Node 1
V1
B V0
Node 2
A V1
B V0
A V1
V1B V1
V1
1 2 3
billing.ru
CAP Теорема доказательство
A V0
Node 1
V1
B V0
Node 2
A V1
B V0
A V1
V0B V0
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"
Alexey.Sushkov@billing.ru
www.billing.ru
Спасибо за внимание!

More Related Content

Similar to CAP теорема (20)

архитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекомеархитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекоме
Ontico
Чеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдераЧеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдера
Aleksey Lukatskiy
ERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLineERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLine
DataLine
Coherence in billing (Oracle day Moscow 2009)
Coherence in billing (Oracle day Moscow 2009)Coherence in billing (Oracle day Moscow 2009)
Coherence in billing (Oracle day Moscow 2009)
aragozin
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасностьЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
Cisco Russia
Надежная инфраструктура цод
Надежная инфраструктура цодНадежная инфраструктура цод
Надежная инфраструктура цод
Дмитрий Мацкевич
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider ElectricАдаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Zaur Abutalimov
Заоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департаментаЗаоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департамента
КРОК
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Uptime Community
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Uptime community
hl++ Rubtsov
hl++ Rubtsovhl++ Rubtsov
hl++ Rubtsov
Ontico
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Yandex
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Yandex
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Pavel Treshnikov
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Alexander Pozdneev
Резервное копирование виртуальных ЦОД
Резервное копирование виртуальных ЦОДРезервное копирование виртуальных ЦОД
Резервное копирование виртуальных ЦОД
КРОК
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JSFestUA
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Cisco Russia
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Ontico
архитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекомеархитектурные особенности высоконагруженных систем в телекоме
архитектурные особенности высоконагруженных систем в телекоме
Ontico
Чеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдераЧеклист по безопасности облачного провайдера
Чеклист по безопасности облачного провайдера
Aleksey Lukatskiy
ERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLineERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLine
DataLine
Coherence in billing (Oracle day Moscow 2009)
Coherence in billing (Oracle day Moscow 2009)Coherence in billing (Oracle day Moscow 2009)
Coherence in billing (Oracle day Moscow 2009)
aragozin
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасностьЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
ЦОД нового поколения: автоматизация, упрощение, аналитика и безопасность
Cisco Russia
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider ElectricАдаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Адаптация инженерной инфраструктуры для облачных ЦОД - APC by Schneider Electric
Zaur Abutalimov
Заоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департаментаЗаоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департамента
КРОК
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Uptime Community
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Uptime community
hl++ Rubtsov
hl++ Rubtsovhl++ Rubtsov
hl++ Rubtsov
Ontico
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Yandex
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Yandex
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Pavel Treshnikov
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...
Alexander Pozdneev
Резервное копирование виртуальных ЦОД
Резервное копирование виртуальных ЦОДРезервное копирование виртуальных ЦОД
Резервное копирование виртуальных ЦОД
КРОК
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JS Fest 2019. Игорь Березин и Николай Крещенко. Эволюция архитектуры многогра...
JSFestUA
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Маршрутизаторы Cisco - от чего зависит производительность или как получить ма...
Cisco Russia
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Ontico

More from Alexey Sushkov (7)

HL++ 2017: And then, surely, suddenly the clouds will dance!
HL++ 2017: And then, surely, suddenly the clouds will dance!HL++ 2017: And then, surely, suddenly the clouds will dance!
HL++ 2017: And then, surely, suddenly the clouds will dance!
Alexey Sushkov
Secr 2017: And then, surely, suddenly the clouds will dance!
Secr 2017: And then, surely, suddenly the clouds will dance! Secr 2017: And then, surely, suddenly the clouds will dance!
Secr 2017: And then, surely, suddenly the clouds will dance!
Alexey Sushkov
3GPP 5G
3GPP 5G3GPP 5G
3GPP 5G
Alexey Sushkov
Clouds, NFV, SDN
Clouds, NFV, SDNClouds, NFV, SDN
Clouds, NFV, SDN
Alexey Sushkov
VMWare World 2016
VMWare World 2016VMWare World 2016
VMWare World 2016
Alexey Sushkov
TM Forum and Big Data
TM Forum and Big DataTM Forum and Big Data
TM Forum and Big Data
Alexey Sushkov
Big Data and Agile
Big Data and AgileBig Data and Agile
Big Data and Agile
Alexey Sushkov
HL++ 2017: And then, surely, suddenly the clouds will dance!
HL++ 2017: And then, surely, suddenly the clouds will dance!HL++ 2017: And then, surely, suddenly the clouds will dance!
HL++ 2017: And then, surely, suddenly the clouds will dance!
Alexey Sushkov
Secr 2017: And then, surely, suddenly the clouds will dance!
Secr 2017: And then, surely, suddenly the clouds will dance! Secr 2017: And then, surely, suddenly the clouds will dance!
Secr 2017: And then, surely, suddenly the clouds will dance!
Alexey Sushkov

CAP теорема

  • 1. CAP теорема и ее применение в распределенных системах PCCM + DRA как распределенная система Сушков Алексей Начальник группы "PCCM, RBSM"
  • 2. billing.ru Содержание DRA + PCCM CAP теорема Распределенные системы 2
  • 3. billing.ru Важность понимания распределенных систем Интернет Поисковики (Google) Интернет магазины (Amazon) Облачные сервисы / вычисления RAID Суперкомпьютеры Распределенные DB 3
  • 4. billing.ru Распределенные системы Независимость узлов Снаружи – как целое Масштабируемость - следствие первого 4
  • 6. billing.ru Как на самом деле устроен мир 6 Узел 1 Узел 2 Узел N Промежуточное звено Клиент 1 Клиент 2 Клиент M … …
  • 7. billing.ru Проблемы масштабируемости Проблема Решения Значительное время ожидания ответа от удаленного узла 1. Применение децентрализованных алгоритмов: • Работа в условиях отсутствия полной информации о системе • Принятие решения на основе локальной информации 2. Сокрытие времени ожидания: • Асинхронное выполнение • Выполнение на клиенте Распределение нагрузки 1. Применение алгоритмов: • Хеш функция (mod) • Случайное распределение • Round robin • Распределение в зависимости от нагрузки, % CPU и т.п. 2. Shared Nothing Architecture Падение узлов / штатный рестарт узлов 1. Репликация 2. Кеширование 7
  • 8. billing.ru Репликация данных 8 Узел Узел Клиент Узел Узел Клиент Узел Узел Клиент Между узлами Данные на клиенте Дублирование с клиента
  • 10. billing.ru Надежная архитектура PCCM + DRA 10 DRA 1 PCCM (M) PCCM (S) PCCM (M) PCCM (S) … Группа IMSI NГруппа IMSI 1 DRA 2
  • 11. billing.ru Внутренняя архитектура PCCM 11 Event Processor Manager КЕШ IMSI 1 КЕШ IMSI 2 КЕШ IMSI N …
  • 12. billing.ru Модели целостности системы ACID BASE • Atomicity — Атомарность • Consistency — Согласованность • Isolation — Изолированность • Durability — Надежность • Basic Availability – базовая доступность • Soft-state – неустойчивое состояние • Eventual consistency – согласованность в конечном итоге RDBMS • NoSQL (не всегда) • Распределенные DB MySQL, Oracle Cassandra, Dynamo, MongoDB • Согласованность данных за счет доступности • Доступность данных за счет согласованности • Большая надежность • Лучшая производительность • Пессимистичная стратегия • Оптимистичная стратегия
  • 13. billing.ru CAP Теорема 13 Consistency Availability CP AP CA Профессор Эрик Брюер (Eric A. Brewer) ~ 2000 год
  • 14. billing.ru CAP Теорема В любой реализации распределѐнных вычислений возможно обеспечить не более двух из трѐх следующих свойств Consistency (согласованность данных), Availability (доступность) и Partition tolerance (устойчивость к разделению). Дополнение к теореме: любая распределенная система должна быть P (устойчивой к разделению)! Уточнение теоремы: при отсутствии P система может (должна) быть CA
  • 15. billing.ru CAP Теорема доказательство A V0 Node 1 V1 B V0 Node 2 A V1 B V0 A V1 V1B V1 V1 1 2 3
  • 16. billing.ru CAP Теорема доказательство A V0 Node 1 V1 B V0 Node 2 A V1 B V0 A V1 V0B V0 1 2 3
  • 17. billing.ru CAP Теорема – применение 17  Думать о своих данных: разные данные – разные нужды (книжный магазин vs торговля акциями);  Может лучше согласованность в конечном итоге, но 100% доступность?  В высоконагруженных системах массового обслуживания лучше доступность, чем согласованность.  Объяснять заказчикам, что при падении (рестарте) узлов системы возможно обеспечить только ―согласованность в конечном итоге‖.
  • 18. 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
  • 19. © 2010 ПЕТЕР-СЕРВИС Все права защищены Алексей Сушков Начальник группы "PCCM, RBSM" Alexey.Sushkov@billing.ru www.billing.ru Спасибо за внимание!