¿Cómo funcionan las transacciones distribuidas (por ejemplo, MSDTC)?

Entiendo, de manera difusa, cómo funcionan las transacciones ACID regulares. Realiza algún trabajo en una base de datos de tal manera que el trabajo no se confirma hasta que se establece algún tipo de indicador de confirmación. La parte de confirmación se basa en una suposición subyacente (como si una sola escritura de bloque de disco fuera atómica). En caso de un error catastrófico, puede borrar los datos no confirmados en la fase de recuperación.

¿Cómo funcionan las transacciones distribuidas? En parte de la documentación de MS, he leído que de alguna manera puede realizar una transacción en bases de datos y sistemas de archivos (entre otras cosas).

Esta tecnología podría ser (y probablemente sea) utilizada para instaladores, donde desea que el programa esté completamente instalado o totalmente ausente. Simplemente comienza una transacción al inicio del instalador. A continuación, puede conectarse al registro y al sistema de archivos, realizando los cambios que definen la instalación. Cuando termine el trabajo, simplemente confirme o revierta si la instalación falla por algún motivo. El coordinador de transacciones distribuido mágico limpia automáticamente el registro y el sistema de archivos.

¿Cómo es posible que se puedan realizar transacciones de dos sistemas dispares de esta manera? Me parece que siempre es posible dejar el sistema en un estado inconsistente, donde el sistema de archivos ha comprometido sus cambios y el registro no. Creo que en MSDTC incluso es posible realizar una transacción a través de la red.

He leídohttp: //blogs.msdn.com/florinlazar/archive/2004/03/04/84199.asp, pero parece solo el comienzo de la explicación, y ese paso 4 debería ampliarse considerablemente.

Editar De lo que deduzco enhttp: //en.wikipedia.org/wiki/Distributed_transactio, se puede lograr mediante una confirmación de dos fases http: //en.wikipedia.org/wiki/Two-phase_commi). Después de leer esto, todavía no entiendo el método al 100%, parece que hay mucho margen de error entre los pasos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta