Size: a a a

2020 October 08

AK

Alexey Kuzin in Tarantool
Поэтому повтор при таймауте должен явно контролироваться юзером
источник

AT

Alexander Turenko in Tarantool
Alexey Kuzin
По-хорошему, например, при инсерте повтор операции может вызвать ошибку. А это значит что обработчик ошибки при повторении должен отличаться от изначального, так как при первом инсерте это может быть баг, а при втором ошибку можно скипнуть
Ну, insert-то не должен по идее выполниться и вернуть ошибку. Тут или-или.
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
Ну, insert-то не должен по идее выполниться и вернуть ошибку. Тут или-или.
Ошибка одна и та же -- первый раз фатальная, при повторе нет
источник

AK

Alexey Kuzin in Tarantool
И это нельзя зашить в драйвер
источник

AT

Alexander Turenko in Tarantool
BTW, там еще отдельно schema error хендлится. Там нужно повторить после того, как обновил схему.
источник

EL

Eugene Leonovich in Tarantool
У меня можно выбрать стратегию ретрая, например линейно или эспоненциально, то есть можно без ддоса
источник

AT

Alexander Turenko in Tarantool
Alexey Kuzin
Ошибка одна и та же -- первый раз фатальная, при повторе нет
Не понял.
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
BTW, там еще отдельно schema error хендлится. Там нужно повторить после того, как обновил схему.
Кстати, обновление схемы во время выполнения запросов,насколько частый кейс в реальных системах?
источник

AK

Alexey Kuzin in Tarantool
Разве меняют схему не в то время когда нет нагрузки?
источник

AK

Alexey Kuzin in Tarantool
Ведь надо и код поменять если схему меняешь, данные там смигрировать
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
Не понял.
Оба раза дупликейт еррор может возникнуть -- при первой вставке фатальный, при повторе после таймаута -- может быть фатальный, а может и нет, тут на уровне кода автоматически нельзя понять
источник

AT

Alexander Turenko in Tarantool
Ну… ты мог поменять один холодный спейс (скажем, налить новый, дропнуть старый и сделать alter на новый, чтобы подставить имя старого). ID схемы бампнется и коннектор получит schema error, если пойдет со своим старым schema id.
источник

AT

Alexander Turenko in Tarantool
Alexey Kuzin
Оба раза дупликейт еррор может возникнуть -- при первой вставке фатальный, при повторе после таймаута -- может быть фатальный, а может и нет, тут на уровне кода автоматически нельзя понять
Но duplicate мы не будем ретраить — это не таймаут.
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
Ну… ты мог поменять один холодный спейс (скажем, налить новый, дропнуть старый и сделать alter на новый, чтобы подставить имя старого). ID схемы бампнется и коннектор получит schema error, если пойдет со своим старым schema id.
Вот я и хочу понять, насколько это реальный и частый кейс
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
Но duplicate мы не будем ретраить — это не таймаут.
А тут дело не в ретрае, дело в разных обработчиках
источник

AT

Alexander Turenko in Tarantool
Alexey Kuzin
Вот я и хочу понять, насколько это реальный и частый кейс
У меня было такое в реальном проекте (ну, ты знаешь, в каком).
источник

AK

Alexey Kuzin in Tarantool
Ретрай был по тайм-аут ерору
источник

AK

Alexey Kuzin in Tarantool
Alexander Turenko
У меня было такое в реальном проекте (ну, ты знаешь, в каком).
На бою прям схему меняли?
источник

AT

Alexander Turenko in Tarantool
Alexander Turenko
Ну… ты мог поменять один холодный спейс (скажем, налить новый, дропнуть старый и сделать alter на новый, чтобы подставить имя старого). ID схемы бампнется и коннектор получит schema error, если пойдет со своим старым schema id.
Вот такой, собственно, кейс.
источник

AT

Alexander Turenko in Tarantool
Периодическое обновление из внешнего источника с таким вот альтером.
источник