5 ms·
You’re right to be skeptical. This entire space as far as I can tell is filled with people who overpromise and under deliver and use bad metrics to claim succes
by vlovich123 2y ago
You’re right to be skeptical. This entire space as far as I can tell is filled with people who overpromise and under deliver and use bad metrics to claim success. If you look at their false positive and false negative sections, they perform terribly but use words to claim that it’s actually good and use flawed logic to extrapolate on missing data (eg assume our rates stay the same for non-response vs “people are tired of our tickets and ignore our system”). And as follow up work their solution is to keep tuning their parameters (ie keep fiddling to overfit past data”). You can even tell how it’s perceived where they describe people not even bother to interact with their system during 2/4 high impact incidents examined and blaming the developer for one of them as “they didn’t integrate the metrics”. Like if a system can provide a meaningful cost/benefit the teams would be clamoring to adjust their processes. Until demonstrated clearly otherwise it’s dressed up numerology.
I saw a team at oculus fail to do this for highly constrained isolated environments with repeatable workloads and having the threshold be much more conservative (eg 1-10%) and failing. This paper is promulgating filtering your data all to hell to the point of overfitting.
- dataflow 2y agoThanks, I hadn't read that far into the paper. But I have to say I had what I feel is a good reason to be skeptical before even reading a single word in the paper, honestly. Which is that Facebook never felt so... blazing fast, shall we say, to make me believe anyone even wanted to pay attention to tiny performance regressions, let alone the drive and tooling to do so.
- vlovich123 2y ago> blazing fast, shall we say, to make me believe anyone even wanted to pay attention to tiny performance regressions Important to distinguish frontend vs backend performance of course. This is about backend performance where they care about this stuff a lot because it multiplies at scale & starts costing them real money. Frontend performance has less of a direct impact on their numbers with the only data I know on that is the oft-cited Google stuff trying to claim that there's a direct correlation between lost revenue and latency (which I haven't seen anyone else bother to try to replicate & see if it holds up).
- dataflow 2y ago> Important to distinguish frontend vs backend performance of course. I'm not sure what you're calling frontend in this context (client side? or client-facing "front-end" servers?), but I'm talking about their server side specifically. I've looked at their API calls and understand when slowness is coming from the client or the server. The client side is even slower for sure, but the server side also never felt like it was optimized to the point where deviations this small mattered.
- jacques_chester 2y agoI think the confusion arises because of the difference between optimization and control, which are superficially similar. Having control lets you see if things changed. Optimization is changing things. This team seems to be focused on control. I assume optimization is left to the service teams.
- dataflow 2y agoI think by control you mean observability? I get that they're different, but the whole point is optimization here. They're not gathering performance metrics just to hang them up on a wall and marvel at the number of decimal points, right? They presumably invested all the effort into this infrastructure because they think this much precision has significant ROI on the optimization side.
- jacques_chester 2y agoI'm using "control" in the statistical process control sense, where it means "we can tell if variation is ordinary or extraordinary". To me it seemed clear that the paper is about detecting regressions, which is control under my definition above. I still think of that as distinct from optimization.
- joshuamorton 2y agoRight, but what is the point of optimizing? It often isn't to make things go faster for an individual user (often times the driving factor of latency is not computation, but inter-system rpc latency, etc.). The value is to bin-pack processing more requests into the same bucket of CPU. That can have latency wins, but it may not in a lot of contexts.
- jeffbee 2y agoTrying to do fine-grained regression detection in a controlled environment is indeed a fool's errand, but that's the opposite of what this paper is about.
- vlovich123 2y agoYour claim is that doing fine-grained detection in a more chaotic and dynamic environment with unrepeatable inputs is easier than fine-grained detection in a controlled environment with consistent inputs? Not sure I follow.
- jeffbee 2y agoYes, it often is. In a "controlled" environment you control what you control and not the stuff that you can't control or don't even know about. It's tedious and sort of a chore to setup and a source of ongoing woes afterwards. On the other hand natural experiments abound when you have large scale. Just having really large N on both arms of an experiment where the difference is the compiled program, and there are no systematic biases in traffic patterns, will reveal smaller regressions that weren't found in the controlled load tests.
- jacques_chester 2y agoI don't agree. This is basically an elaborate form of statistical process control, which has been proving itself useful and effective for nearly a century. We can quibble about the thresholds and false positive rates, but I think the idea of automating regression detection is perfectly sound.
- vlovich123 2y agoStatistical process control as a concept is a sound idea in theory. When talking about real world complex dynamic systems like operating systems and processes handling random load vs things like assembly lines, it’s less clear it’s on a solid mathematical foundation. Clearly what’s happening in that paper isn’t starting out with some principled idea but instead filtering out patterns deemed “noise” and adjusting the levels for those filters to generate “results”. I think if you read through the lines it’s clear the engineers being supported by this tool aren’t really relying on it which tells you something
- jacques_chester 2y agoSPC gets used on complex dynamic systems all the time. It takes more work and more nuance, but it's doable. I don't see a categorical error here, it's about fine-tuning the details.