Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,680 views

Published on

  • Be the first to comment

  • Be the first to like this

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

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

×