• Фотоотчет
  • Программа
  • Доклады
  • Спикеры
  • Контакты
  • Памятка
  • En Ru

    Henrik Ingo


    6 июля

    Доклад

    How MongoDB replication follows and improves upon the Raft algorithm

    MongoDB 3.2 introduced a new replication protocol: version 1, or pv1 for short. While still similar to the original replication protocol (pv0), it adds some robustness improvements found in the Raft algorithm. Raft is an algorithm introduced in a series of academic publications by Diego Ongaro. It's a short and simple leader-based replication algorithm, popular in particular due to its design goal of being remarkably simpler than Paxos and other predecessors.

    MongoDB 3.2 introduced a new replication protocol: version 1, or pv1 for short. While still similar to the original replication protocol (pv0), it adds some robustness improvements found in the Raft algorithm. Raft is an algorithm introduced in a series of academic publications by Diego Ongaro. It's a short and simple leader-based replication algorithm, popular in particular due to its design goal of being remarkably simpler than Paxos and other predecessors.

    The original MongoDB replication protocol version 0 is presented on a high level, with a particular focus on its shortcomings. We then present the Raft algorithm, as well as some typical robustness fixes an implementation might want to add to Raft. We can observe that on a high level, Raft is very similar to MongoDB's replication, which precedes Raft. There are also differences, in particular MongoDB is a pull based replication system, while Raft is push based. (Note that the client-server protocol of Raft is not covered in this talk.)
    Some key ideas from Raft were implemented in MongoDB 3.2, to fix major robustness shortcomings in protocol version 0 and allow to shorten the failover time for applications where uptime is critical.

    Вернуться к списку докладов

    Купить мастер-класс:

    Цена:
    Оставьте ваш e-mail, и в ближайшее время мы отправим вам подробности по оплате участия.