Reproducing the AWS Outage Race Condition with a Model Checker
wyounas.github.io
Reproducing the AWS Outage Race Condition with a Model Checker
1–10 of 52 posts
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#2Re: Reproducing the AWS Outage Race Condition with a Model Checker
#3I have yet to learn about this and will not be throwing some time into researching this topic.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#4Let's imagine that the process usually takes 1 minute and the tombstones are kept for 1 day. It would take something ridiculous to make the thing that usually takes 1 minute take longer than a day - not worth even considering. But sometimes there are a confluence of events that make such a thing possible... For example, maybe the top of rack switch died. The server stays running, it just can't succeed any upstream calls. Maybe it is continuously retrying while the network is down (or just slowly timing out on individual requests and skipping to the next one to try it). When the network comes back up, those calls start succeeding but now it's so much staler than you ever even thought was possible or planned for. That's just one scenario, probably not exactly what happened to AWS.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#5Wish the author had an introduction to model checker article. I have yet to learn about this and will not be throwing some time into researching this topic.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#6Re: Reproducing the AWS Outage Race Condition with a Model Checker
#7Presumably that one guy at AWS who promotes TLA+ is furiously modeling all this himself in more detail for internal analysis.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#8I don't really understand the purpose of this. It's not like they have anything other than the RCA (e.g. the code)
Here we see the basic steps of modeling a complex system, and how that can be useful for understanding behavior even without knowing the details of every component.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#9Presumably that one guy at AWS who promotes TLA+ is furiously modeling all this himself in more detail for internal analysis.
Re: Reproducing the AWS Outage Race Condition with a Model Checker
#10Real world systems often have to deviate from the "pure" version used to run formal methods on. This could be how long you keep transaction logs for, or how long rows are tombstoned for, etc. The longer the time period, the costlier it usually is, in total storage cost and sometimes performance too. So you have to compromise with where you set the time period for. Let's imagine that the process usually takes 1 minute…
QA people deal with problems and edge cases most devs will never deal with. They’re your subject-matter-experts of 'what can go wrong'.
Anyway, the point is. You can’t trust anything "will resolve in time period X" or "if it takes longer than X, timeout". There are so many cases where this is simply not true and should be added to a "myths programmers believe" article if it isn't already there.