SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Про HA-кластеры и нашу реализацию в Tarantool/SilverBox

               Юрий Востриков, Mail.Ru Group



                    РИТ++, 03/04/2012
Что такое Tarantool/SilverBox




      Framework
      InMemory DB
      WAL
      Tuple based
      (𝑎1 , 𝑎2 , 𝑎3 , ..., 𝑎 𝑛 )
Варианты обычной репликации




     Синхронная — Асинхронная
     Row based — Command based
     Master-Master – Master-Slave
Варианты обычной репликации




     Синхронная — Асинхронная
      replica

      master


     Row based — Command based
     Master-Master – Master-Slave
Варианты обычной репликации




     Синхронная — Асинхронная
      replica       replica

      master        master


     Row based — Command based
     Master-Master – Master-Slave
Варианты обычной репликации



     Синхронная — Асинхронная
      replica       replica

      master        master


     Row based — Command based
      update users set passwd = ’secret’;

     Master-Master – Master-Slave
Как репликация сделана в Tarantool/SilverBox




      Асинхронная
      Command based, но: одна команда = одна строка
      Master-Slave
Кластеры высокой доступности



             𝑐𝑙𝑖𝑒𝑛𝑡1
                         𝑟𝑒𝑞 𝑢
                                𝑒 𝑠 𝑡/ 𝑟
             𝑐𝑙𝑖𝑒𝑛𝑡2                     𝑒𝑠𝑝𝑜
                        𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/           𝑛𝑠
                                       𝑟 𝑒 𝑠 𝑝 𝑜 𝑛 𝑠 𝑒𝑒
                                                          хитрая магия
                                       𝑟𝑒𝑠𝑝𝑜𝑛𝑠𝑒
                        𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/
             𝑐𝑙𝑖𝑒𝑛𝑡 𝑛
Кластеры высокой доступности



             𝑐𝑙𝑖𝑒𝑛𝑡1
                         𝑟𝑒𝑞 𝑢
                                𝑒 𝑠 𝑡/ 𝑟
             𝑐𝑙𝑖𝑒𝑛𝑡2                     𝑒𝑠𝑝𝑜
                        𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/           𝑛𝑠
                                       𝑟 𝑒 𝑠 𝑝 𝑜 𝑛 𝑠 𝑒𝑒
                                                           хитрая магия
                                                          2PC/3PC/Paxos
                                       𝑟𝑒𝑠   𝑝𝑜𝑛𝑠𝑒
                        𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/
             𝑐𝑙𝑖𝑒𝑛𝑡 𝑛
Теорема Брюера



     Consistency (согласованность данных)
     Availability (доступность)
     Partition tolerance (устойчивость к разделению)

                                  𝑃 𝑇 ⇒ ¬(𝐴 ∧ 𝐶)
Теорема Брюера



     Consistency (согласованность данных)
     Availability (доступность)
     Partition tolerance (устойчивость к разделению)

                                  𝑃 𝑇 ⇒ ¬(𝐴 ∧ 𝐶)


  Выбираем только между PA или PC
Типы ошибок




     Fail stop (отказ без восстановления)
     Fail recover (отказ с восстановлением)
     Byzantine fail (византийский отказ)
Консенсус




  Распределeнная система = консенсус
Консенсус




  Распределeнная система = консенсус

  FLP result: в асинхронных сетях при наличие сбоев консенсус может
  достигаться бесконечно долго.
2-х фазный коммит

                    𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟                  𝑛𝑜𝑑𝑒

                                  𝑝𝑟𝑜𝑝𝑜𝑠𝑒

                                   𝑣 𝑜𝑡𝑒




                             𝑐 𝑜 𝑚 𝑚 𝑖𝑡/
                                         𝑎𝑏𝑜𝑟𝑡
                                    𝑎𝑐𝑘
2-х фазный коммит

       𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟             𝑛𝑜𝑑𝑒   𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟                𝑛𝑜𝑑𝑒

                     𝑝𝑟𝑜𝑝𝑜𝑠𝑒                        𝑝𝑟𝑜𝑝𝑜𝑠𝑒

                      𝑣 𝑜𝑡𝑒                           𝑣 𝑜𝑡𝑒
                                                    𝑐 𝑜 𝑚 𝑚 𝑖𝑡




       Нельзя 𝑐𝑜𝑚𝑚𝑖𝑡: 𝑛𝑜𝑑𝑒 мог         Нельзя 𝑎𝑏𝑜𝑟𝑡: 𝑛𝑜𝑑𝑒 уже
        проголосовать за 𝑎𝑏𝑜𝑟𝑡           завершил 𝑐𝑜𝑚𝑚𝑖𝑡
3-х фазный коммит
                     𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟                        𝑛𝑜𝑑𝑒
                                       𝑝𝑟𝑜𝑝𝑜𝑠𝑒


                                         𝑣 𝑜 𝑡𝑒

                                       𝑝𝑟𝑒𝑝𝑎𝑟𝑒

                                        𝑎 𝑐𝑐 𝑒 𝑝 𝑡

                                   𝑐𝑜 𝑚 𝑚 𝑖𝑡/ 𝑎 𝑏𝑜
                                                   𝑟𝑡


     Хоть один получил 𝑐𝑜𝑚𝑚𝑖𝑡 ⇒ все ответили 𝑎𝑐𝑐𝑒𝑝𝑡
     Хотя бы один не получил 𝑝𝑟𝑒𝑝𝑎𝑟𝑒 ⇒ никто не получил 𝑐𝑜𝑚𝑚𝑖𝑡
Paxos

        𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟                              𝑎𝑐𝑐𝑒𝑝𝑡𝑜𝑟                           𝑙𝑒𝑎𝑟𝑛𝑒𝑟
                      𝑝 𝑟 𝑜 𝑝 𝑜 𝑠 𝑒(𝑛)

                                   ∅|𝑣    )
                   𝑝 𝑟 𝑜 𝑚 𝑖𝑠 𝑒(𝑛,
                     𝑎 𝑐𝑐 𝑒 𝑝 𝑡( 𝑛, 𝑣 )

                                                         𝑎 𝑐𝑐 𝑒 𝑝 𝑡𝑒 𝑑(𝑛,
                                                                            𝑣)
Paxos


                                                                             𝑣 1)
                                                                      ( 𝑛,             𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟
                                                                  𝑒 𝑝𝑡
                                                            𝑎𝑐𝑐
                                            𝑚)
                           𝑝 𝑟 𝑜 𝑝 𝑜 𝑠 𝑒(
                                                 𝑎𝑐𝑐𝑒𝑝𝑡𝑜𝑟
        𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟

                   𝑝𝑟𝑜 𝑚𝑖𝑠 𝑒(𝑚, 𝑣1 )
                                                                                𝑚> 𝑛
MultiPaxos


             1   𝑝𝑟𝑜𝑝𝑜𝑠𝑒(1, 𝑛)   𝑝𝑟𝑜𝑚𝑖𝑠𝑒(1, 𝑛, 𝑣)   𝑎𝑐𝑐𝑒𝑝𝑡(1, 𝑛, 𝑣)


             2   𝑝𝑟𝑜𝑝𝑜𝑠𝑒(2, 𝑛)   𝑝𝑟𝑜𝑚𝑖𝑠𝑒(2, 𝑛, 𝑣)   𝑎𝑐𝑐𝑒𝑝𝑡(2, 𝑛, 𝑣)




             𝑛
Paxos




  Почему именно Paxos
        доказана корректность в асинхронных сетях
        имеет минимально возможную задержку
        нет выделенной фазы восстановаления
Выбор лидера


     Часы сильно не уходят.
     Лидер выбирается на 𝑛 секунд.
     Перевыборы начинаются через 𝑛 − 𝛿 секунд.
     Лидер заблаговременно открывает несколько копий протокола.


                           𝑐𝑙𝑜𝑠𝑒𝑑      𝑎𝑐𝑡𝑖𝑣𝑒    𝑜𝑝𝑒𝑛
                      𝑐𝑙𝑜𝑠𝑒𝑑
                       𝑙𝑖𝑣𝑒
                       𝑜𝑝𝑒𝑛
Быстрый старт



  Используем обычную асинхронную репликацию.
  Финальный раунд с использованием Paxos


                            𝑙𝑜𝑔 𝑟𝑒𝑝𝑙𝑎𝑦     𝑝𝑎𝑥𝑜𝑠

                          𝑐𝑙𝑜𝑠𝑒𝑑
                           𝑙𝑖𝑣𝑒
«Грязные» чтения

                                     𝑠𝑡𝑎𝑙𝑒

                              𝑙𝑒𝑎𝑟𝑛𝑒𝑟2

             𝑙𝑒𝑎𝑟𝑛𝑒𝑟 𝑙𝑒𝑎𝑑𝑒𝑟




          𝑙𝑒𝑎𝑟𝑛𝑒𝑟1

                𝑠𝑒𝑚𝑖𝑠𝑡𝑎𝑙𝑒
Результаты и планы на будущее




     WAL или PaxosWAL

     Единая конфигурация
     Шардинг
Open Source




              http://opensource.mail.ru/
               http://github.com/mailru/
                opensource@corp.mail.ru
Спасибо!
Вопросы?

Mais conteúdo relacionado

Mais de Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mais de Ontico (20)

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Про Ha-кластеры и нашу реализацию в Tarantool (Юрий Востриков)

  • 1. Про HA-кластеры и нашу реализацию в Tarantool/SilverBox Юрий Востриков, Mail.Ru Group РИТ++, 03/04/2012
  • 2. Что такое Tarantool/SilverBox Framework InMemory DB WAL Tuple based (𝑎1 , 𝑎2 , 𝑎3 , ..., 𝑎 𝑛 )
  • 3. Варианты обычной репликации Синхронная — Асинхронная Row based — Command based Master-Master – Master-Slave
  • 4. Варианты обычной репликации Синхронная — Асинхронная replica master Row based — Command based Master-Master – Master-Slave
  • 5. Варианты обычной репликации Синхронная — Асинхронная replica replica master master Row based — Command based Master-Master – Master-Slave
  • 6. Варианты обычной репликации Синхронная — Асинхронная replica replica master master Row based — Command based update users set passwd = ’secret’; Master-Master – Master-Slave
  • 7. Как репликация сделана в Tarantool/SilverBox Асинхронная Command based, но: одна команда = одна строка Master-Slave
  • 8. Кластеры высокой доступности 𝑐𝑙𝑖𝑒𝑛𝑡1 𝑟𝑒𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑟 𝑐𝑙𝑖𝑒𝑛𝑡2 𝑒𝑠𝑝𝑜 𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑛𝑠 𝑟 𝑒 𝑠 𝑝 𝑜 𝑛 𝑠 𝑒𝑒 хитрая магия 𝑟𝑒𝑠𝑝𝑜𝑛𝑠𝑒 𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑐𝑙𝑖𝑒𝑛𝑡 𝑛
  • 9. Кластеры высокой доступности 𝑐𝑙𝑖𝑒𝑛𝑡1 𝑟𝑒𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑟 𝑐𝑙𝑖𝑒𝑛𝑡2 𝑒𝑠𝑝𝑜 𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑛𝑠 𝑟 𝑒 𝑠 𝑝 𝑜 𝑛 𝑠 𝑒𝑒 хитрая магия 2PC/3PC/Paxos 𝑟𝑒𝑠 𝑝𝑜𝑛𝑠𝑒 𝑟 𝑒 𝑞 𝑢 𝑒 𝑠 𝑡/ 𝑐𝑙𝑖𝑒𝑛𝑡 𝑛
  • 10. Теорема Брюера Consistency (согласованность данных) Availability (доступность) Partition tolerance (устойчивость к разделению) 𝑃 𝑇 ⇒ ¬(𝐴 ∧ 𝐶)
  • 11. Теорема Брюера Consistency (согласованность данных) Availability (доступность) Partition tolerance (устойчивость к разделению) 𝑃 𝑇 ⇒ ¬(𝐴 ∧ 𝐶) Выбираем только между PA или PC
  • 12. Типы ошибок Fail stop (отказ без восстановления) Fail recover (отказ с восстановлением) Byzantine fail (византийский отказ)
  • 13. Консенсус Распределeнная система = консенсус
  • 14. Консенсус Распределeнная система = консенсус FLP result: в асинхронных сетях при наличие сбоев консенсус может достигаться бесконечно долго.
  • 15. 2-х фазный коммит 𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒 𝑝𝑟𝑜𝑝𝑜𝑠𝑒 𝑣 𝑜𝑡𝑒 𝑐 𝑜 𝑚 𝑚 𝑖𝑡/ 𝑎𝑏𝑜𝑟𝑡 𝑎𝑐𝑘
  • 16. 2-х фазный коммит 𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒 𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒 𝑝𝑟𝑜𝑝𝑜𝑠𝑒 𝑝𝑟𝑜𝑝𝑜𝑠𝑒 𝑣 𝑜𝑡𝑒 𝑣 𝑜𝑡𝑒 𝑐 𝑜 𝑚 𝑚 𝑖𝑡 Нельзя 𝑐𝑜𝑚𝑚𝑖𝑡: 𝑛𝑜𝑑𝑒 мог Нельзя 𝑎𝑏𝑜𝑟𝑡: 𝑛𝑜𝑑𝑒 уже проголосовать за 𝑎𝑏𝑜𝑟𝑡 завершил 𝑐𝑜𝑚𝑚𝑖𝑡
  • 17. 3-х фазный коммит 𝑐𝑜𝑜𝑟𝑑𝑖𝑛𝑎𝑡𝑜𝑟 𝑛𝑜𝑑𝑒 𝑝𝑟𝑜𝑝𝑜𝑠𝑒 𝑣 𝑜 𝑡𝑒 𝑝𝑟𝑒𝑝𝑎𝑟𝑒 𝑎 𝑐𝑐 𝑒 𝑝 𝑡 𝑐𝑜 𝑚 𝑚 𝑖𝑡/ 𝑎 𝑏𝑜 𝑟𝑡 Хоть один получил 𝑐𝑜𝑚𝑚𝑖𝑡 ⇒ все ответили 𝑎𝑐𝑐𝑒𝑝𝑡 Хотя бы один не получил 𝑝𝑟𝑒𝑝𝑎𝑟𝑒 ⇒ никто не получил 𝑐𝑜𝑚𝑚𝑖𝑡
  • 18. Paxos 𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟 𝑎𝑐𝑐𝑒𝑝𝑡𝑜𝑟 𝑙𝑒𝑎𝑟𝑛𝑒𝑟 𝑝 𝑟 𝑜 𝑝 𝑜 𝑠 𝑒(𝑛) ∅|𝑣 ) 𝑝 𝑟 𝑜 𝑚 𝑖𝑠 𝑒(𝑛, 𝑎 𝑐𝑐 𝑒 𝑝 𝑡( 𝑛, 𝑣 ) 𝑎 𝑐𝑐 𝑒 𝑝 𝑡𝑒 𝑑(𝑛, 𝑣)
  • 19. Paxos 𝑣 1) ( 𝑛, 𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟 𝑒 𝑝𝑡 𝑎𝑐𝑐 𝑚) 𝑝 𝑟 𝑜 𝑝 𝑜 𝑠 𝑒( 𝑎𝑐𝑐𝑒𝑝𝑡𝑜𝑟 𝑝𝑟𝑜𝑝𝑜𝑠𝑒𝑟 𝑝𝑟𝑜 𝑚𝑖𝑠 𝑒(𝑚, 𝑣1 ) 𝑚> 𝑛
  • 20. MultiPaxos 1 𝑝𝑟𝑜𝑝𝑜𝑠𝑒(1, 𝑛) 𝑝𝑟𝑜𝑚𝑖𝑠𝑒(1, 𝑛, 𝑣) 𝑎𝑐𝑐𝑒𝑝𝑡(1, 𝑛, 𝑣) 2 𝑝𝑟𝑜𝑝𝑜𝑠𝑒(2, 𝑛) 𝑝𝑟𝑜𝑚𝑖𝑠𝑒(2, 𝑛, 𝑣) 𝑎𝑐𝑐𝑒𝑝𝑡(2, 𝑛, 𝑣) 𝑛
  • 21. Paxos Почему именно Paxos доказана корректность в асинхронных сетях имеет минимально возможную задержку нет выделенной фазы восстановаления
  • 22. Выбор лидера Часы сильно не уходят. Лидер выбирается на 𝑛 секунд. Перевыборы начинаются через 𝑛 − 𝛿 секунд. Лидер заблаговременно открывает несколько копий протокола. 𝑐𝑙𝑜𝑠𝑒𝑑 𝑎𝑐𝑡𝑖𝑣𝑒 𝑜𝑝𝑒𝑛 𝑐𝑙𝑜𝑠𝑒𝑑 𝑙𝑖𝑣𝑒 𝑜𝑝𝑒𝑛
  • 23. Быстрый старт Используем обычную асинхронную репликацию. Финальный раунд с использованием Paxos 𝑙𝑜𝑔 𝑟𝑒𝑝𝑙𝑎𝑦 𝑝𝑎𝑥𝑜𝑠 𝑐𝑙𝑜𝑠𝑒𝑑 𝑙𝑖𝑣𝑒
  • 24. «Грязные» чтения 𝑠𝑡𝑎𝑙𝑒 𝑙𝑒𝑎𝑟𝑛𝑒𝑟2 𝑙𝑒𝑎𝑟𝑛𝑒𝑟 𝑙𝑒𝑎𝑑𝑒𝑟 𝑙𝑒𝑎𝑟𝑛𝑒𝑟1 𝑠𝑒𝑚𝑖𝑠𝑡𝑎𝑙𝑒
  • 25. Результаты и планы на будущее WAL или PaxosWAL Единая конфигурация Шардинг
  • 26. Open Source http://opensource.mail.ru/ http://github.com/mailru/ opensource@corp.mail.ru