Roman
еще одно поле в табличке, типа job_owner_id
Roman
главное в такой схеме, что сами воркеры могут быть вообще на разных машинах даже
Wingman
Ладно, я придираюсь)
Roman
Roman
ну и да, на long fat network да с потерями запросто получишь невозможность утилизировать всю полосу
Roman
а скорее, вообще все будет еле ползать
Roman
Roman
они-же все встанут по идеи
Roman
я думаю, @irc0p может больше вариантов рассказать когда такое бывает
Roman
Roman
когда tcp window маленький, то печаль-беда
Roman
Roman
Daniel
так и лейтенси сегодня все хорошо
Roman
Мерль
Daniel
жаэе на мобилке rtt единицы миллисекунд
Daniel
Wingman
Смотря докуда, смотря вообще какой кейс
Daniel
а вот тут прячется ответ
Wingman
Проверочное задание - понять, почему openvpn / tcp работает в разы медленнее udp
Daniel
6-8 параллельных ssl это дорого для сервера
Roman
Daniel
и именно эту проблему решает гугл. для себя!
Roman
Roman
Daniel
это, кстати, не всегда так
Roman
Daniel
потому, что RSA
Roman
плюс 6х - 8х прирост голода на память
Daniel
сегодня мы в проц упираемся - у нас тупо rsa пары медленно генерятся
Roman
Daniel
это как?
Roman
в 6х - 8х больше file-descriptor'ов на котоых select'ить (хотя я не уверен насколько это дороже для современных kqueue, epoll)
Roman
Pavel
Roman
O(1)
в любом не может быть 6-8 соединений настолько же дёшево как 1
Daniel
Daniel
угум
Daniel
но даже 30 - это очень мало
Roman
т.е. я правильно понимаю что HTTP/2 хуже себя поведёт в случае высокого packet-loss?
Daniel
так же он себя поведет
Daniel
просто ретрансмиты будут все соединения тормозить, а не одно
Roman
так же он себя поведет
я просто предполагал что @pragus имеет ввиду, что при наличии нескольких TCP/IP соединений, когда
например соединение 1 делает запрос но валится - он естественно откатывается на sleep чтоб предотвратить загрузку и без того загруженной сети
а следующий запрос будет осуществлять соединением 2, и тут например сеть будет менее насыщеной и поэтому потери пакетов не будет и запрос выполнится ещё до того, как соединение 1 перепошлёт свой первый запрос
так?
т.е. если у нас несколько соединений, то timeout wait на каждое соединение индивидуально и вероятность восстановления сети до timeout'а выше, следственно throughput чуток выше
но latency инициализации соединений будет больше чем с 1 и памяти больше будет жрать, и если в сети потерь мало, то всё это - напрасно
Daniel
эммм
Daniel
если мы не уперлись в полосу - а мы не уперлись - мы уперлись в rtt
Daniel
rtt у нас одинаковый, что мы один пакет шлем, что 10
Daniel
latency будет одинкавая, соответсвенно, хоть 1 соединение устанавливай, хоть 10
Daniel
но если соединение одно с мультиплексированием - на один пакет, в среднем, больше информации приходится, и потеря его, соответственно, больнее отзывается
Roman
если мне не отказывает память, то TCP/IP старается беречь сеть нагружая её меньше обнаружив packet loss
Roman
т.е. от первого retransmit до второго может вырасти delay
Daniel
Roman
А сколько алгоритмов congestion control у нас будет исполняться в случай 1 и 10 соединений?
короче если я тебя правильно понял, то в сетях с большой потерей - несколько соединений выгоднее потому-что congestion control откатывает на более высокий delay индивидуально на каждое соединение (однако непредсказуемо, насколько это выгодно, зависит от сети, как повезёт)
а в случае сетей с низким уровнем потерь или вообще их отситствием - несколько соединений лишь сжирают лишнюю память и CPU
aadz
Сетей без потерь не бывает, или бывают, но на некоторое время, и при некотором объеме траффика
Daniel
вопрос в сочетании количества потерь и latency.
Daniel
одного я понять не могу - в штатах отвратительный инет, хоть стационарный, хоть мобильный. для кого гугл пилит все эти оптимизации?..
aadz
Roman
Roman
Roman
Roman
в идеале webwire должен сам понять, какое колво соединений в каком случае лучше использовать учитывая какое макс. колво разверешает сервер... но это уже звучит сложнее..
Roman
Roman
Мерль
На стороне сервера ты вынимаешь значение из query, а надо десереализовать тело запроса
Мерль
Вот, но с помощью не родного роутера, а с посредством gin (вообще, рекомендую)
https://medium.com/go-to-golang/создания-api-restful-сервера-с-golang-и-mysql-3085133bab91
Мерль
И вот неплохая статья
https://pragmacoders.com/building-a-json-api-in-golang/