>Deterministic simulation. Another lightweight method widely used at AWS is deterministic simulation testing, in which a distributed system is executed on a single-threaded simulator with control over all sources of randomness, such as thread scheduling, timing, and message delivery order. Tests are then written for particular failure or success scenarios, such as the failure of a participant at a particular stage in…
Also somewhat similar to what Antithesis is doing.
Systems Correctness Practices at Amazon Web Services
41–50 of 143 posts
Re: Systems Correctness Practices at Amazon Web Services
#42> 92% of catastrophic failures in tested distributed systems were triggered by incorrect handling of nonfatal errors This. If you take nothing else away from the article (which has a lot) take this: fail well, don’t fail poorly.
It would also be nice to list some "best practices" on how to handle non-fatal errors. I would be definitely interested to know of any sources.
E.g. if you're in python and raise a value error when an API is rate limited, someone down stream from you is going to have a bad time.
Re: Systems Correctness Practices at Amazon Web Services
#43> 92% of catastrophic failures in tested distributed systems were triggered by incorrect handling of nonfatal errors This. If you take nothing else away from the article (which has a lot) take this: fail well, don’t fail poorly.
Re: Systems Correctness Practices at Amazon Web Services
#44Re: Systems Correctness Practices at Amazon Web Services
#45>Deterministic simulation. Another lightweight method widely used at AWS is deterministic simulation testing, in which a distributed system is executed on a single-threaded simulator with control over all sources of randomness, such as thread scheduling, timing, and message delivery order. Tests are then written for particular failure or success scenarios, such as the failure of a participant at a particular stage in…
Re: Systems Correctness Practices at Amazon Web Services
#46> 92% of catastrophic failures in tested distributed systems were triggered by incorrect handling of nonfatal errors This. If you take nothing else away from the article (which has a lot) take this: fail well, don’t fail poorly.
How much effort should be put into "failing well"? I rather see the program crash than output a liability. Fail well is too broad to be useful, in my industry.
Typical example would be processing an event that you can't handle from a message queue. You don't want to crashloop, so you'd probably have to throw it away on a dead letter queue and continue processing. But then, is your system still correct? What happens if you later receive another event relating to the same entity, which depends on the first event? Or sometimes you can't even tell which entity the malformed or bug-triggering event relates to, and then it's a real problem.
Re: Systems Correctness Practices at Amazon Web Services
#47Re: Systems Correctness Practices at Amazon Web Services
#48Would I be right in saying Promela and SPIN are at a higher level than what is being described in the article?
Re: Systems Correctness Practices at Amazon Web Services
#49One thing I wondered about the P language: It seems like in the early days, it was used at Microsoft to generate C code that’s actually used at runtime in the Windows USB stack? But now it is no longer used to generate production code? I asked that question here, which I think was the same question as in a talk: https://news.ycombinator.com/item?id=34284557 It seems like if the generated code is used in a kernel, it…
[0]https://www.microsoft.com/en-us/research/wp-content/uploads/...
Re: Systems Correctness Practices at Amazon Web Services
#50> 92% of catastrophic failures in tested distributed systems were triggered by incorrect handling of nonfatal errors This. If you take nothing else away from the article (which has a lot) take this: fail well, don’t fail poorly.
How much effort should be put into "failing well"? I rather see the program crash than output a liability. Fail well is too broad to be useful, in my industry.