Я работаю в системе управления версиями клиент / сервер на основе .Net, которая в основном включает
На стороне клиента: встроенная файловая система базы данных
На стороне сервера: файловая система базы данных Sql server
Каждый раз, когда новая версия загружается на сервер с клиента, выполняются следующие шаги: 1. Обновите клиентскую базу данных метаданными нового файла (новая версия #, отметки времени и т. Д.) 2. Отправьте файл насервер через HTTP, скопируйте файл в файловую систему сервера 3. По завершении передачи файла обновите базу данных Sql server новыми метаданными
Весь процесс рассматривается как транзакция.Проблема в том, что в случае неудачи нам трудно откатить транзакцию, основываясь на другой стадии, на которой происходит ошибка.
Мой вопрос заключается в том, каков алгоритм для обработки этого типа распределенной фиксации?Я слышал о 3-фазном коммите, это подходит для этого сценария?
Спасибо,