Sep. 7th, 2013

109: (animated-1)
вот статья, описывающая некий алгоритм под названием Raft. в начале статьи хорошо описаны проблемы с paxos. saves me some time, если я вдруг доберусь свою white paper написать. ну и я согласен с общим подходом ставить понятность во главу угла.

но, блядь, не получилось же опять. вот уже на странице №5 видно. не справились с поставленной задачей иметь только одного лидера в системе.

прокол №1: сразу после получения кандидатом большинства голосов возникает split brain, с новоизбранным лидером в меньшей половине. большая половина не получает извещения о новоизбранном лидере, и избирает своего. хоба-на, два лидера.

прокол №2, related to #1, но более generic. безо всяких выборов, не описано никакого механизма отдетектировать split brain. лидер, оказавшийся в меньшей половине, будет продолжать считать себя лидером.

и тут авторы делают хитрый трюк. да, говорят они, действительно, получается, что может быть больше одного лидера. но только один из них сможет закоммитить лог!

ну то есть, задача на самом деле не решается, а перекладывается на другое место. теперь, когда появилось новое действующее лицо - лог, который при нормальном решении проблемы на собственно выборы влиять никак не должен, авторам приходится заботиться о том, чтобы лидером мог стать только сервер, у которого самый длинный лог. к сожалению, коллективно решить, у кого самый длинный лог (который ещё и может расти прямо в процессе решения) - это задача, для решения которой нужен concensus algorithm, для которого нужен работающий leader election. круг замкнулся.

да, я вижу картинку 7, она не помогает на фига. представим себе следующее. три сервера S1..S3, S1 - лидер. update 1 закоммичен S1 и S2, update 2 закоммичен S1 и S3. теперь лидер падает. имеем S2 с первым апдейтом и S3 со вторым. никакого механизма merge алгоритмом не предусмотрено. или S3 не сможет закоммитить второй апдейт без первого? тогда, во-первых, liveness cтрадает, и во-вторых, где это написано?

holy dev

Sep. 7th, 2013 03:15 pm
109: (animated-1)
вспомнилось. пару лет назад занесло меня как-то на интервью. владелец конторы купил церковь, и посадил туда программистов. вот прямо там, где раньше сидели прихожане, теперь у него сидят программисты и молятся на свои компьютеры. а ведущий программист, значит, контролирует процесс разработки сверху с алтаря.

интервью же опытные интервьюёры начали со слов "ну конечно, платить вам столько, сколько вы сейчас получаете, мы не сможем...". как вы понимаете, это в любом случае сильное начало, и уж тем более когда не знаешь, сколько же на самом деле человек получает. так и не использовал я возможность стать ведущим программистом и надзирать с алтаря.

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags