совершено и любое восстановление после сбоя должно быть выполнено, чтобы транзакция была зафиксирована.

етко понимаю, как работают обычные ACID-транзакции. Вы выполняете некоторую работу с базой данных таким образом, что работа не подтверждается до тех пор, пока не установлен какой-либо флаг фиксации. Часть фиксации основана на некотором базовом предположении (например, запись на единичный диск является атомарной). В случае катастрофической ошибки вы можете просто удалить незафиксированные данные на этапе восстановления.

Как работают распределенные транзакции? В некоторой документации MS я прочитал, что вы можете каким-то образом выполнять транзакции между базами данных и файловыми системами (среди прочего).

Эта технология может быть (и, вероятно, используется) для установщиков, где вы хотите, чтобы программа была полностью установлена ​​или полностью отсутствовала. Вы просто начинаете транзакцию в начале программы установки. Далее вы можете подключиться к реестру и файловой системе, внеся изменения, которые определяют установку. Когда работа завершена, просто подтвердите или откатитесь, если по какой-либо причине установка не удалась. Реестр и файловая система автоматически очищаются для вас этим волшебным координатором распределенных транзакций.

Как это возможно, что две разные системы могут быть обработаны таким образом? Мне кажется, что всегда можно оставить систему в несогласованном состоянии, когда файловая система зафиксировала свои изменения, а реестр - нет. Я думаю, что в MSDTC даже можно выполнить транзакцию по сети.

я прочиталhttp://blogs.msdn.com/florinlazar/archive/2004/03/04/84199.aspx, но кажется, что это только начало объяснения, и этот шаг 4 должен быть значительно расширен.

Редактировать: Из чего я собираюсьhttp://en.wikipedia.org/wiki/Distributed_transaction, это может быть выполнено двухфазным коммитом (http://en.wikipedia.org/wiki/Two-phase_commit). После прочтения этого, я все еще не понимаю метод 100%, кажется, что между шагами есть много места для ошибки.

Ответы на вопрос(1)

Ваш ответ на вопрос