Size: a a a

2020 December 24

ИЕ

Илья Ермолин... in Tarantool
а разве по сематике в stop функции не должны дропаться спейсы, удаляться функции зарегистрированные (как деинсталяция)?
Или за это другая операция отвечает?
источник

R

R-omk in Tarantool
Konstantin Nazarov
по-другому нормально не сделать. если API держать, то он будет держать референсы на старые функции, которые держат референсы на старые модули (через замыкания)
да все нормально это делается ,   внутри прокси функций  без проблем атомарно меняются ссылки со старых на новые,  при этом "в моменте" когда  роль не доустпна  эти прокси функции выдают служебную ошибку для rpc модуля   который понимает что нужно сделать ретрай в связи с обновлением роли ...   вот как это должно быть
источник

KN

Konstantin Nazarov in Tarantool
гораздо проще считать что если ты получаешь ответ в стиле "404", то сейчас идет перезагрузка кода, и нужно просто делать ретрай
источник

R

R-omk in Tarantool
Илья Ермолин
а разве по сематике в stop функции не должны дропаться спейсы, удаляться функции зарегистрированные (как деинсталяция)?
Или за это другая операция отвечает?
вот вот!!
источник

KN

Konstantin Nazarov in Tarantool
Илья Ермолин
а разве по сематике в stop функции не должны дропаться спейсы, удаляться функции зарегистрированные (как деинсталяция)?
Или за это другая операция отвечает?
нет
источник

DS

Dmitry Sharonov in Tarantool
Илья Ермолин
а разве по сематике в stop функции не должны дропаться спейсы, удаляться функции зарегистрированные (как деинсталяция)?
Или за это другая операция отвечает?
такая была исходная задумка (выключение роли насовсем), но вроде ни один человек так этим не пользуется
источник

R

R-omk in Tarantool
Konstantin Nazarov
гораздо проще считать что если ты получаешь ответ в стиле "404", то сейчас идет перезагрузка кода, и нужно просто делать ретрай
вообще не проще ...  я вообще не хочу  знать про релоад... я вызываю api через роль которая существует
источник

MF

Michael Filonenko in Tarantool
Илья Ермолин
а разве по сематике в stop функции не должны дропаться спейсы, удаляться функции зарегистрированные (как деинсталяция)?
Или за это другая операция отвечает?
я придерживаюсь мнения что автоматические дропы опасны
источник

R

R-omk in Tarantool
источник

ИЕ

Илья Ермолин... in Tarantool
источник

R

R-omk in Tarantool
источник

DS

Dmitry Sharonov in Tarantool
Konstantin Nazarov
заведи ишью на cartridge чтобы stop() у ролей звался
я бы скорее позволил ролям "дописывать" функции в on_shutdown
источник

KN

Konstantin Nazarov in Tarantool
получается да, документация не соответствует тому, как это де-факто используется, надо поменять
источник

ИЕ

Илья Ермолин... in Tarantool
в целом мне кажется каким бы подход ни был рекомендованный - его нужно в документации отразить  (пример будет отлично)
источник

KN

Konstantin Nazarov in Tarantool
R-omk
вообще не проще ...  я вообще не хочу  знать про релоад... я вызываю api через роль которая существует
так в общем случае нельзя сделать, потому что это чревато подвисанием большого количества запросов и истощением ресурсов на сервере. клиентам обязательно надо дать понять что нужно "поумерить пыл на время"
источник

KN

Konstantin Nazarov in Tarantool
мы думали про удержание запросов, но откинули эту идею именно по таким соображениям
источник

KN

Konstantin Nazarov in Tarantool
в частном случае и при большой аккуратности -- может прокатить
источник

KN

Konstantin Nazarov in Tarantool
плюс у тебя не раскрыта проблема с разрегистрацией неиспользуемых более эндпойнтов. сейчас логика такая - мы дропаем все эндпойнты, а когда код загружается, он регистрирует только то что нужно
источник

KN

Konstantin Nazarov in Tarantool
когда новый код загрузится, твои удержанные запросы все равно могут привести к "404"
источник

YD

Yaroslav Dynnikov in Tarantool
а можно шаг назад? что за роль вы пишете и откуда размышления про грейсфул шатдаун?
источник