TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 309 subscribers
Post #52 62
🥷Задача 4: Ошибки и задержки, как в реальной жизни.
Итак, мы научились бороться с тормозами, с ошибками, научились ускорять медленный канал. Чтож, теперь мы совместим все это!

У нас есть сервис, который в 10% случаев выдает задержку в 1 секунду, а вдобавок к этому падает в 10% случаев с SocketException!

А наша задача добиться следующих показателей:
Успешность запросов > 0.999 (да! Три девятки!)
При этом 95% задержек должны укладываться в 200мс!
 
❓Вопрос, все тот же: Сколько ретраев, и какой таймаут?
 
✅ Ответ:
Мы можем выбрать, как и раньше таймаут в 180 мс, что даст нам падение по таймауту в примерно 10% случаев, ну и еще в 10% случаев мы и так падаем с какой-то ошибкой, тогда формула будет выглядеть так. Итого есть две несовместимых вероятности (при наступлении одной вторая не натсупит), суммарная вероятность которых равна q1^n + q2^n

А вероятность того, что ни одна ошибка не произойдет будет выглядеть так:
P = 1-(q1^n + q2^n)
Считаем:

P = 1 - (0.1^1 + 0.1^1) = 0.8 - маловато ретраев
P = 1 - (0.1^2 + 0.1^2 ) = 0.98  - маловато
P = 1 - (0.1^3+0.1^3) =   0.998  почти
P = 1 - (0.1^4+0.1^4) = 0.9998 - вот и наше значение
 
🅰️
Итого: 180 мс и 3 ретрая будет достаточно, чтобы справиться с такой ситуацией.

#ресайленс
  • 🔥 2
More from @dimasshortposts
  1. Oct 2, 2026s
  2. Oct 2, 2026Post #503
  3. Sep 30, 2026🛤 Путь до Tier1: от чего он зависит В прошлый раз мы гоняли hello world в цикле и увидели…
  4. Sep 26, 2026🧵 Тредик для вопросов по докладу про MAF на дотнексте В докладе многие подробности опусти…
  5. Sep 23, 2026Даже самым хардкорным ребятам надо отдыхать, так что отдыхаем, мои чюваки 🕺 🧑‍💻dp🥁 #he…
  6. Sep 16, 2026🎯 Instrumented Tier0: профилирование кода В прошлый раз мы разобрали два уровня компиляци…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →