Daniil
Одно дело с дивана рассуждать, другое дать решить ченибудь. Тоже много че ясно станет
Anatoly
и решить её без знания о том, чем массив от хештаблицы отличается, в проде, не сильно получается
Anonymous
Anonymous
хештаблицы что ли?
Anatoly
что пример? никогда не видел, когда контейнер используют не по месту?
Anatoly
типа захерачить 1000 элементов в массив, и потом по ид в нём в цикле искать используя FirstOrDefault, без задней мысли, что это на hot path, и тут у тебя n^2 и вообще так делать никогда нельзя? *
Anonymous
что пример? никогда не видел, когда контейнер используют не по месту?
нет-нет, это видел, просто мне кажется, там упираось во что-то тривиальной типа непрерываная память vs прерывная или hashset/hashtable. тут даже особого глубокого понимания как они устроены не надо, потому как ну поголовно все кандидаты уровне middle просто напамять знают какой когда быстрее.
Anatoly
Anonymous
Anatoly
порядка 20-25.
у тебя хорошая выборка кандидатов. я забил хер и больше не спрашиваю про алгоритмы. их никто толком не знает, теперь я спрашиваю про распределённые системы, базовый тест на лоад балансер, его проходит половина сениоров
Vladyslav
Anonymous
ну только не говори, что у тебя больше половины кандидатов не знают пользы хештаблиц и не понимают, что FirstOfDefault на листе займет в худшем сучае O(n)
Vladyslav
а, ок
Anonymous
Vladyslav
Daniil
Эх
Anonymous
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
Stas
Ilya
А почему команда в прод сдала код без доков?
Anatoly
я сейчас поговорю с боссом и вернусь к вам
Ayrat
Vasiliy
Vasiliy
ахха, точно, передеплой подовов
Ayrat
главное в 2ч ночи не пытаться думать
Vasiliy
ой, мля, там же еще постепенный релиз может быть.
Ayrat
и в начале сделать очевидные шаги для митигации
Ayrat
чинить уже утром после кофе
Ayrat
ой, мля, там же еще постепенный релиз может быть.
у меня недавно фантомный сервис был.
В деплое указан один дц. По факту было 2
Дашборды его не отловили, потому что я мудак так дропбоксы не настроил на мультидц (ДОЛЖЕН ЖЕ БЫЛ БЫТЬ ОДИН)
Надо ли говорить сколько WTF я словил из-за раундробина запросов не туда
Ayrat
сидишь, читаешь tail логов
Шлёшь запрос, ответ есть, в логах нихуя.
Ayrat
всего один день мне потребовался до осознания (вроде) очевидного
Hog
А дети сидели и плакали: «наш папа мудак»
Ayrat
Ayrat
Ну, мудак и мудак! Есть чем гордиться!!!
Vasiliy
хм, надо поискать на работе более нагруженный сервис.
щас вообще живу с двумя подами и мне норм и главное пока что бизнесу хватает.
На всякий мониторинг ушло больше ресурсов кластера.
Anonymous
Anonymous
Рестартовать дольше будет же.
Ayrat
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
если там в дашбордах видно что из пяти дц пятисотит один, збс, выключаем дц из лб, пиздуем спать
Ayrat
опять же, было бы збс видеть отдельный алёрт - High 5xx on ServiceName in Azure WEST
Ayrat
и всё!
Anonymous
Anonymous
Мол рутовых балансёра говорит, что ферма ребёнка его (другой балансёра) отъебывает.
Anonymous
Ayrat
если у тебя есть некие независимые группы нод деплоя, вот их выдели
Ayrat
Это очень ок. Придёт тебе два таких алёрта, сразу понятно чо делать
Ayrat
Думать в 2 ночи фпесду
Anonymous
Угу, это ты верно говоришь, да и навесить такие триггеры не дорого. Но тут тоже мозги нужны, определённый лимит на рейт выключения инстансов. Если в лоб гасить так, то всплеск нагрузки задушит оставшийся кластер за десять минут.
Anonymous
Переполнение просто и все.
Anonymous
Но в GCP это вшито куда-то в конфигурацию насколько я помню.
Ayrat
ночью надо спать.
Anonymous
Ну на самом деле вопрос не то, чтоб очень сложный и не то, чтоб надо хорошо шарить распределённых системы. Интересно что @aensidhe расскажет о типичных ответах.
Anonymous
По моему опыту где реально люди лажают, это на транзакционности.
Anonymous
На собесах.
Anatoly
Anonymous
Когда начинаются разговоры про транзакции и их использование/рекаверинг, вот там начинается вакханалия.
Anatoly
Anatoly
Anatoly