Me gusta el artículo LWN "Crash-only software" y me gustaría obtener más información sobre la programación segura contra fallas y tolerante a fallas.Recursos sobre programación segura contra fallas y tolerancia a fallos
Es sorprendentemente difícil asegurar que el estado persistente sea consistente en situaciones de falla. Aquí ni siquiera hablo sobre operaciones distribuidas: eso también es difícil en un solo nodo: incluso el DB normal de Berkeley (BDB Data Store o BDB Concurrent Data Store) podría tener una base de datos destruida si el sistema se bloquea. No solo se rompen las restricciones de la aplicación de alto nivel, es posible que la base de datos no se abra correctamente si el sistema se bloquea.
¿Qué son buenos recursos sobre diseños, enfoques y programación seguros contra fallas y tolerantes a fallas?
Si los recursos se centran en entornos C++ y POSIX, lo agradecería.
Nota al margen: en el último Mac OS X (Leopard) el sistema operativo simplemente manda un SIGKILL a todas las aplicaciones que se encuentran en un estado supuestamente "limpio". Impresionante cómo esto realmente resulta en un cierre de 1 segundo (en una máquina más nueva, debo admitir). Referencia: http://developer.apple.com/mac/library/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_6.html#//apple_ref/doc/uid/TP40008898-SW22 – ChristopheD