Daniil
Одно дело с дивана рассуждать, другое дать решить ченибудь. Тоже много че ясно станет
Anatoly
и решить её без знания о том, чем массив от хештаблицы отличается, в проде, не сильно получается
Anonymous
хештаблицы что ли?
Anatoly
что пример? никогда не видел, когда контейнер используют не по месту?
Anatoly
типа захерачить 1000 элементов в массив, и потом по ид в нём в цикле искать используя FirstOrDefault, без задней мысли, что это на hot path, и тут у тебя n^2 и вообще так делать никогда нельзя? *
Anonymous
что пример? никогда не видел, когда контейнер используют не по месту?
нет-нет, это видел, просто мне кажется, там упираось во что-то тривиальной типа непрерываная память vs прерывная или hashset/hashtable. тут даже особого глубокого понимания как они устроены не надо, потому как ну поголовно все кандидаты уровне middle просто напамять знают какой когда быстрее.
Anatoly
порядка 20-25.
у тебя хорошая выборка кандидатов. я забил хер и больше не спрашиваю про алгоритмы. их никто толком не знает, теперь я спрашиваю про распределённые системы, базовый тест на лоад балансер, его проходит половина сениоров
Anonymous
ну только не говори, что у тебя больше половины кандидатов не знают пользы хештаблиц и не понимают, что FirstOfDefault на листе займет в худшем сучае O(n)
Anatoly
фигню спрошу, но почему поиск через FirstOfDefault это n^2?
потому что он в цикл заныкан и в сумме получается N*M (N^2)
Vladyslav
а, ок
Daniil
Эх
Anonymous
что за LB?
лоад балансер
Daniil
что за LB?
https://ru.m.wikipedia.org/wiki/Балансировка_нагрузки
Daniil
Ваще там статья про сетевые балансировщики, мельком глянул
Daniil
Но тот же принцип распространяется и на софт
Daniil
Концепт тот же
Nikolay
А на какой магии работает printf?
Nikolay
Помню @fvnever говорил что-то про приниф и АОТ
Anatoly
а тест в чем? типа, как работает LB?
2 часа ночи, тебя подняли по тревоге (продуктовая компания, 1й и 2й уровень поддержки не смогли, потому что ваша команда решить проблему не предоставила доков). каждый 5й запрос к твоему сервису падает. что ты делаешь? сервис - business critical, should work 24/7/365
Anatoly
какой то новый уровень собесов, надеюсь практически не просят повторить?)
просили реальных задач - вот вам реальные задачи. у меня три аутеджа на проде за два дня
Ilya
А почему команда в прод сдала код без доков?
Vasiliy
2 часа ночи, тебя подняли по тревоге (продуктовая компания, 1й и 2й уровень поддержки не смогли, потому что ваша команда решить проблему не предоставила доков). каждый 5й запрос к твоему сервису падает. что ты делаешь? сервис - business critical, should work 24/7/365
просто свои мысли. Интересно на сколько это логично будет вообще посмотреть мониторинг, куда идут эти вызовы, которые падают. Логи запросов и какие именно запросы идут. Ну в целом сеть прочекать еще, думаю ее уже проверили, но лучше самому убедиться. Прочекать связанные сервисы (кэш, шина)
Anatoly
А почему команда в прод сдала код без доков?
там выше тебе про норму прибыли рассказали.
Anatoly
я сейчас поговорю с боссом и вернусь к вам
Ayrat
хм, ролбек — но часть запросов проходит же успешно
Может твой релиз поломал только один ендпоинт например
Vasiliy
ахха, точно, передеплой подовов
Ayrat
главное в 2ч ночи не пытаться думать
Vasiliy
ой, мля, там же еще постепенный релиз может быть.
Ayrat
и в начале сделать очевидные шаги для митигации
Ayrat
чинить уже утром после кофе
Ayrat
ой, мля, там же еще постепенный релиз может быть.
у меня недавно фантомный сервис был. В деплое указан один дц. По факту было 2 Дашборды его не отловили, потому что я мудак так дропбоксы не настроил на мультидц (ДОЛЖЕН ЖЕ БЫЛ БЫТЬ ОДИН) Надо ли говорить сколько WTF я словил из-за раундробина запросов не туда
Ayrat
сидишь, читаешь tail логов Шлёшь запрос, ответ есть, в логах нихуя.
Ayrat
всего один день мне потребовался до осознания (вроде) очевидного
Hog
А дети сидели и плакали: «наш папа мудак»
Ayrat
Ну, мудак и мудак! Есть чем гордиться!!!
Vasiliy
хм, надо поискать на работе более нагруженный сервис. щас вообще живу с двумя подами и мне норм и главное пока что бизнесу хватает. На всякий мониторинг ушло больше ресурсов кластера.
Anonymous
2 часа ночи, тебя подняли по тревоге (продуктовая компания, 1й и 2й уровень поддержки не смогли, потому что ваша команда решить проблему не предоставила доков). каждый 5й запрос к твоему сервису падает. что ты делаешь? сервис - business critical, should work 24/7/365
Ну очевидно, что если каждый пятый, то отвалился на той стороне один из пяти сервисов (условно). Посмотреть какой инстанс падает и если тот же самый, то просто вывести его из группы; параллельно по возможности поднять ему замену. Но прям для критического компонента я предположил бы стендбай реплику, на которую трафик перевести легко; это альтернативный вариант.
Anonymous
Рестартовать дольше будет же.
Ayrat
Все ли роняют. все ли не роняют
Ayrat
рестарт это у меня лично одну кнопку нажать и там rolling restart пойдёт
Anonymous
Это да, но хорошая система мониторинга же предполагается.
Ayrat
Это да, но хорошая система мониторинга же предполагается.
ну смотри. Я просыпаюсь посреди ночи от пейджера. Вижу на телефоне название алёрта - High 5XX on ServiceName in last 30mins ну может ещё незначительные детали. Пиздую сонный к компу, включаюсь в ночи. Всё что надо сделать - это отработать по книге (если она есть). Если там написано рестарт - то это хороший рулбук. Если там написано: - если в логах/дашбордах такая хуита, сделай так - если другая, сделай по-другому ТО ЭТО ПЛОХОЙ РУЛБУК. Потому что такое правило надо сплитить на два алёрта с разными тригерами чтобы было написано однозначно - увидел алёрт, сделай Б
Ayrat
Если рулбука нет, то придумывать его в ночи очень плохая идея. Надо просто сделать: - рестарт - ролбек - ну и пр. по списку выше Если всё это занимает много времени, и рулбука нет, то у меня плохие новости
Ayrat
проблема вовсе не в 5xx!!1
Anonymous
ну смотри. Я просыпаюсь посреди ночи от пейджера. Вижу на телефоне название алёрта - High 5XX on ServiceName in last 30mins ну может ещё незначительные детали. Пиздую сонный к компу, включаюсь в ночи. Всё что надо сделать - это отработать по книге (если она есть). Если там написано рестарт - то это хороший рулбук. Если там написано: - если в логах/дашбордах такая хуита, сделай так - если другая, сделай по-другому ТО ЭТО ПЛОХОЙ РУЛБУК. Потому что такое правило надо сплитить на два алёрта с разными тригерами чтобы было написано однозначно - увидел алёрт, сделай Б
Звучит разумно, да, моя логика была в том, что если проблема с сервисом и он критичный, то каждый пятый запрос это дорого и лучше просто вывести его. Это быстро; лоад балансёр отреагирует в считанные секунды и трафик перестанет отъебывать, для критичных сервисов это приоритет. Рестарт это бабка надвое сказала, а время идёт.
Ayrat
если там в дашбордах видно что из пяти дц пятисотит один, збс, выключаем дц из лб, пиздуем спать
Ayrat
опять же, было бы збс видеть отдельный алёрт - High 5xx on ServiceName in Azure WEST
Ayrat
и всё!
Anonymous
если там в дашбордах видно что из пяти дц пятисотит один, збс, выключаем дц из лб, пиздуем спать
Во, я это и имел в виду, по постановке задачи я себе именно такую проблему нарисовал.
Anonymous
Мол рутовых балансёра говорит, что ферма ребёнка его (другой балансёра) отъебывает.
Ayrat
Про Ажур ничего не знаю
да даже не ажур, какая разница
Ayrat
если у тебя есть некие независимые группы нод деплоя, вот их выдели
Ayrat
Это очень ок. Придёт тебе два таких алёрта, сразу понятно чо делать
Ayrat
Думать в 2 ночи фпесду
Anonymous
Угу, это ты верно говоришь, да и навесить такие триггеры не дорого. Но тут тоже мозги нужны, определённый лимит на рейт выключения инстансов. Если в лоб гасить так, то всплеск нагрузки задушит оставшийся кластер за десять минут.
Anonymous
Переполнение просто и все.
Anonymous
Но в GCP это вшито куда-то в конфигурацию насколько я помню.
Ayrat
ночью надо спать.
Anonymous
Ну на самом деле вопрос не то, чтоб очень сложный и не то, чтоб надо хорошо шарить распределённых системы. Интересно что @aensidhe расскажет о типичных ответах.
Anonymous
По моему опыту где реально люди лажают, это на транзакционности.
Anonymous
На собесах.
Anonymous
Когда начинаются разговоры про транзакции и их использование/рекаверинг, вот там начинается вакханалия.