Size: a a a

2020 October 08

EL

Eugene Leonovich in Tarantool
спасибо, посмотрю
источник

AT

Alexander Turenko in Tarantool
Предполагаю, что vshard возвращает ошибки, а не рейзит их, поэтому под case ERR_TIMEOUT: его ошибки не зайдут.
источник

EL

Eugene Leonovich in Tarantool
если отбросить vshard, все остальные ошибки кроме этих 5 не безопасны для повторения, так?
источник

EL

Eugene Leonovich in Tarantool
и опять же вопрос про запросы на изменение, java коннектор повторит запрос если в ответ на eval() придет ERR_TIMEOUT?
источник

AT

Alexander Turenko in Tarantool
Eugene Leonovich
если отбросить vshard, все остальные ошибки кроме этих 5 не безопасны для повторения, так?
Там еще при сетевой ошибке ретраит.
источник

AT

Alexander Turenko in Tarantool
Eugene Leonovich
если отбросить vshard, все остальные ошибки кроме этих 5 не безопасны для повторения, так?
И я не уверен, что этот список можно как золотой стандарт использовать. Скорее, как мысль, от которой можно оттолкнуться.
источник

AT

Alexander Turenko in Tarantool
Eugene Leonovich
и опять же вопрос про запросы на изменение, java коннектор повторит запрос если в ответ на eval() придет ERR_TIMEOUT?
Не готов сходу сказать, откуда может такой ClientError прилететь. Надо смотреть.
источник

AK

Alexey Kuzin in Tarantool
Eugene Leonovich
понятно что есть библиотеки, но не все они хорошие + не каждый сможет найти эту хорошую библиотеку, или даже понять как и что правильно ретраить. хочется иметь какой то удобный компромис из коробки, который бы покрывал часто используемые кейсы
Автоматически ретраить тайм-аут опасно, если операция производит изменение данных
источник

AK

Alexey Kuzin in Tarantool
Или евал
источник

AK

Alexey Kuzin in Tarantool
Некоторые операции можно, но есть риск попасть на тайм-аут ещё раз, соответственно нужно ограниченное количество повторений
источник

EL

Eugene Leonovich in Tarantool
Alexey Kuzin
Автоматически ретраить тайм-аут опасно, если операция производит изменение данных
Вот я и пытаюсь выяснить как это решается в других коннекторах
источник

AK

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

EL

Eugene Leonovich in Tarantool
Alexey Kuzin
Некоторые операции можно, но есть риск попасть на тайм-аут ещё раз, соответственно нужно ограниченное количество повторений
Есть ограничения по количеству, по интервалу, есть выбор стратегий повтора. Осталось только выяснить при каких условиях их можно применять
источник

AK

Alexey Kuzin in Tarantool
Поэтому я за то чтобы ретраить только при потере соединения и до того, как реквест был отправлен
источник

AK

Alexey Kuzin in Tarantool
То есть при ошибках отправки, связанных с соединением
источник

AK

Alexey Kuzin in Tarantool
И дать юзеру возможность ограничивать количество повторов, настраивать таймауты
источник

EL

Eugene Leonovich in Tarantool
Ну селект ведь тоже можно, или пинг
источник

EL

Eugene Leonovich in Tarantool
Рид онли запросы
источник

AK

Alexey Kuzin in Tarantool
Eugene Leonovich
Ну селект ведь тоже можно, или пинг
Можно заддосить сервер повторами тяжёлых селектов которые таймаутят
источник

AK

Alexey Kuzin in Tarantool
Тут наоборот троттлинг бы вставлять
источник