Size: a a a

2020 December 02

VG

Vladislav Grubov in Tarantool
Евгений
если роль еще не применилась, а такое возможно, бывший мастер, поставит задачу на репликацию и данные все равно лягут куда надо
Вы можете столкнуться с проблемой старых чтений. На новом мастере уже поменяли данные по ключу, а на старом нет (и не поменяют), а он у вас в rw и на нем можно сделать какой-нибудь update. Тут либо вы этот апдейт потеряете, либо отрепоицируете в новый мастер, а он там не нужен, потому что был применен к старым данным
источник

R

R-omk in Tarantool
короче, в vashrd тоже можно сделать переключение почти  мгновенным, в каком тотикете это все описано
источник

Е

Евгений in Tarantool
Vladislav Grubov
Вы можете столкнуться с проблемой старых чтений. На новом мастере уже поменяли данные по ключу, а на старом нет (и не поменяют), а он у вас в rw и на нем можно сделать какой-нибудь update. Тут либо вы этот апдейт потеряете, либо отрепоицируете в новый мастер, а он там не нужен, потому что был применен к старым данным
да, я написал про грязные чтения. Это теоретически возможно. Но в нашей системе есть особенность, благодаря которой это не критично, кроме того, проект на tnt поднимается за доли секунды и в правильной последовательности. Запись всегда будет верной.
источник

VG

Vladislav Grubov in Tarantool
R-omk
короче, в vashrd тоже можно сделать переключение почти  мгновенным, в каком тотикете это все описано
Есть autovshard от Авито, кстати. Но я его пока не пробовал
источник

R

R-omk in Tarantool
Vladislav Grubov
Есть autovshard от Авито, кстати. Но я его пока не пробовал
только на нем и сидим
источник

Е

Евгений in Tarantool
Vladislav Grubov
Есть autovshard от Авито, кстати. Но я его пока не пробовал
я о таком не слышал, посмотрим
источник

VG

Vladislav Grubov in Tarantool
R-omk
только на нем и сидим
Эх, если бы etcd он умел
источник

R

R-omk in Tarantool
это да, консул заепарил,  но работает
источник

VS

Vladislav Shpilevoy in Tarantool
Евгений
Все на lua. Есть некоторая функция, согласно которой мы раскидываем данные на хосты - шарды. Допустим их 3 штуки. Они реплицируют данные на 3 штуки слейвов, которые работают согласно своей настройке. Клиент вызывая шард функцию, знает куда надо писать/читать делает r/w только в мастер (для чего это отдельная история).
Дальше
Нужно добавить с схему новый сервер, меняется настройка слейва и применяется. Что происходит?
1. 3 Мастера начали сливать данные на новые сервера (допустим их уже 4) согласно конфигу слейвов
2. Слейв становится неадекватный, потому что один и тот же пользователь оказывается на разных хостах
3. Зачищаем полностью слейвы (стираем данные) далее, запускаем функцию синхронизации, одновременно идет репликация. Эти процессы идут одновременно и разруливаются приоритетом, чтобы устаревшие данные не затерли новые.
4. Слейвы работаю по новой схеме и полностью адекватны
5. Меняем роли. Слейв становится мастеров, а мастер слейвом
все. Ни секунды остановки

Нет одного роутера, их много, все разруливается конфигами на lua. Достаточно просто рестартануть все проекты на инстансах
Тут есть проблемка маленькая. Шаг 5 не бывает мгновенным. В кластере ничего мгновенно не бывает. Утверждение про ровно 0 долей секунды не достижимо в принципе, физически.
источник

VS

Vladislav Shpilevoy in Tarantool
Там будет момент, когда оба ro. Короткий мб, если реализация шустрая, но будет
источник

VS

Vladislav Shpilevoy in Tarantool
В вшарда этот диапазон сильно большой да. Надо поправить. Но нулевого нет нигде. Не бывает
источник

VS

Vladislav Shpilevoy in Tarantool
R-omk
короче, в vashrd тоже можно сделать переключение почти  мгновенным, в каком тотикете это все описано
источник

Е

Евгений in Tarantool
Vladislav Shpilevoy
Тут есть проблемка маленькая. Шаг 5 не бывает мгновенным. В кластере ничего мгновенно не бывает. Утверждение про ровно 0 долей секунды не достижимо в принципе, физически.
я уже говорил про проблему грязных чтений, грязная запись решается репликацией старого мастера на слейв. Кроме того у меня 300+ инстансов обновляются за 0.3-0.7 сек. Это не шард, это вся система
источник

Е

Евгений in Tarantool
Шард гораздо меньше
источник

R

R-omk in Tarantool
Vladislav Shpilevoy
В вшарда этот диапазон сильно большой да. Надо поправить. Но нулевого нет нигде. Не бывает
если заставить старый мастер быть некоторые время привилегированным  проксиком , то теоретически что то похожее на мгновенное переключение ...  но это почти равноправно быстрому ретраю с общего роутера
источник

VS

Vladislav Shpilevoy in Tarantool
Евгений
я уже говорил про проблему грязных чтений, грязная запись решается репликацией старого мастера на слейв. Кроме того у меня 300+ инстансов обновляются за 0.3-0.7 сек. Это не шард, это вся система
Я ни слова про грязное что-либо не сказал. Я говорю, что утверждение про нулевое время переключения - неправда
источник

VS

Vladislav Shpilevoy in Tarantool
R-omk
если заставить старый мастер быть некоторые время привилегированным  проксиком , то теоретически что то похожее на мгновенное переключение ...  но это почти равноправно быстрому ретраю с общего роутера
Да
источник

Е

Евгений in Tarantool
Vladislav Shpilevoy
Я ни слова про грязное что-либо не сказал. Я говорю, что утверждение про нулевое время переключения - неправда
А кто говорил про нулевое?
источник

VS

Vladislav Shpilevoy in Tarantool
> Ни секунды простоя.
а, ну да, если это трактовать как ни одной целой секунды простоя, то все так
источник

Е

Евгений in Tarantool
Vladislav Shpilevoy
> Ни секунды простоя.
а, ну да, если это трактовать как ни одной целой секунды простоя, то все так
это значит что система ни на миг не вставала в read only
источник