Friday, March 23, 2012  PyCon: Make Sure Your Programs Crash
See the website.  This talk was given by Moshe Zadka from
VMware.  Think about how to crash and then recover from the
crash.  If your application recovers quickly, stuff can crash
and no one will see.  Even Python code occasionally crashes due
to C bugs, untrapped exceptions, infinite loops, blocking calls,
thread deadlocks, inconsistent resident state, etc. These things
happen!  Recovery is important.  A system failure can usually be
considered to be the result of two program errors. The second
error is in the recovery routine.  When a program crashes, it
leaves data that was written in an arbitrary program state.
Avoid storage: caches are better than master copies.  Databases
are good at transactions and at recovering from crashes.  File
rename is an atomic operation in modern OSs.  Think of efficient
caches and reliable masters. Mark cache inconsistency.  He seems
to be skeptical of the ACID nature of MySQL and PostgreSQL. I'm
not sure why.  Do