My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…
We built a self-healing system to survive a concurrency bug at Netflix
51–60 of 184 posts
Re: We built a self-healing system to survive a concurrency bug at Netflix
#52Earlier quoted context omitted.
"It's shockingly stable." You're running a soup. I'm not sure if this is satire or not. This reminds me of using a plug-in light timer to reboot your servers because some java program eats all the memory.
or installing software to jiggle the mouse every so often so that the computer with the spreadsheet that runs the company doesn't go to sleep
Re: We built a self-healing system to survive a concurrency bug at Netflix
#53Re: We built a self-healing system to survive a concurrency bug at Netflix
#54My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…
I don't know why my senses tell me that this is wrong even if you can afford it
Re: We built a self-healing system to survive a concurrency bug at Netflix
#55My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…
There's nothing as permanent as a temporary solution.
Re: We built a self-healing system to survive a concurrency bug at Netflix
#56Re: We built a self-healing system to survive a concurrency bug at Netflix
#57iirc it was mostly folks with websocket issues, but fixing the upstream was harder
10 years later and specific software has gotten better, but this type of problem is certainly still prevalent!
Re: We built a self-healing system to survive a concurrency bug at Netflix
#58That Netflix had already built a self-healing system means they were able to handle a memory leak by killing random servers faster than memory was leaking.
This post isn't about how they've managed that, it's just showing off that their existing system is robust enough that you can do hacks like this to it.
Re: We built a self-healing system to survive a concurrency bug at Netflix
#59If you don't know why you should reboot servers/services properly instead of terminating them..
Re: We built a self-healing system to survive a concurrency bug at Netflix
#60My workplace currently has a similar problem where a resource leak can be greatly increased with certain unpredictable/unknown traffic conditions. Our half-day workaround implementation was the same thing, just cycle the cluster regularly automatically. Since we're running on AWS, we just double the size of the cluster, wait for the instances to initialize, then rapidly decommission the old instances. Every 2 hours.…
You should do proper risk assessment, such bug may be leveraged by an attacker, that may actually be a symptom of a running attack. That may also lead to data corruption or exposure. That may mean some part of the system are poorly optimised and over-consuming resources, maybe impacting user-experience. With a dirty workaround, your technical debt increases, expect more and more random issues that requires aggressive "self-healing".