How We Balance Load Inside Yandex Messenger
summary
Describes how Yandex Messenger balanced load across nodes of a key stateful service by eliminating manual rebalances and reducing node failure background rates during peak load from tens of percent to tenths of a percent per second. Explains the concrete engineering changes and the mathematical tricks and approaches (from classical math) that enabled automated redistribution and much lower failure rates.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:12Fout service tasks
- 2:17Load balancing architecture
- 5:52Balancing algorithm goals
- 7:59First version problems
- 10:07New solution requirements
- 11:52Extended health checks
- 13:58Algorithm v2
- 15:01Forced balancing v3
- 17:50Gini index role
- 19:59Auto-oscillation problem
- 23:58Vyshnegradsky solution and friction
- 26:26Results summary
- 27:30Key takeaways
- 28:35Q&A
related talks
50mHow We Built a Distributed Queue Service at Yandex
45mReinventing the BFF: how Yandex Market reworked its client service architecture
42mHow We Built a Shared Bus of Dynamic Resources at Yandex
42mScaling DDoS Protection to Tens of Millions of RPS: Yandex’s Experience
47mState machines for product data from YDB and queues
59mHow to Survive Under Load: Fault-Tolerant Server, Smart Client
51mReplicated service mesh: hardening systems against failure modes in load balancing
42mPredictive Load-Balancing: Unfair but Faster & more Robust
