3 ms·
> code for radiation hardened environments I’m aware of code that detects bit flips via unreasonable value detection (“this counter cannot be this high so quic
by colinb 7mo ago
> code for radiation hardened environments
I’m aware of code that detects bit flips via unreasonable value detection (“this counter cannot be this high so quickly”). What else is there?
- vntok 7mo agoYou can have voting systems in place, where at least 2 out of 3 different code paths have to produce the same output for it to be accepted. This can be done with multiple systems (by multiple teams/vendors) or more simply with multiple tries of the same path, provided you fully reload the input in between.
- qznc 7mo agoThe simplest one is a watchdog: If something stops with regular notifications, then restart stuff.
- gmueckl 7mo agoA watchdog guards against unresponsive software. It doesn't protect against bad data directly. Not all bad data makes a system freeze.
- gmueckl 7mo agoFor safety critical systems, one strategy is to store at least two copies of important data and compare them regularly. If they don't match, you either try to recover somehow or go into a safe state, depending on the context.
- d1sxeyes 7mo agoAt least three copies, so you can recover based on consensus.
- Dylan16807 7mo agoIf your pieces of important data are very tiny, that's probably your best option. If they're hundreds of bytes or more, then two copies plus two hashes will do a better job.
- d1sxeyes 7mo agoAh, true! You just restore the one that matches its hash. Elegant.
- rixed 7mo agoA single hash should be enough.
- Dylan16807 7mo agoYes, but what's easier depends on layout. "Consensus" makes me think of multiple entire nodes, and in that situation you can have a nice symmetry by making each node store one copy and one small hash. If you're doing something that's more centralized then one hash might be simpler, but if you're centralized then you should probably use your own error correction codes instead of having multiple copies.
- pizza 7mo ago“never go to sea with two chronometers, take one or three”
- DennisP 7mo agoSeems like chronometers would be a case where two are better than one, because the mistakes are analog. If they don't exactly agree, just take the average. You'll have more error than if you were lucky enough to take the better chronometer, but less than if you had taken only the worse one. Minimizing the worst case is probably the best way to stay off the rocks.
- qznc 7mo agoIn many cases the system is perfectly safe when it shuts off. Two is enough for that.
- Helmut10001 7mo agoI use ZFS even on consumer devices, these days. Parity checks all the way!