【发布时间】:2012-03-06 04:04:12
【问题描述】:
我正在开发一个基于 .Net 的客户端/服务器版本控制系统,主要涉及
在客户端: 嵌入式数据库 文件系统
在服务器端: Sql 服务器数据库 文件系统
每次从客户端上传新版本到服务器时,都会发生以下步骤: 1. 使用新的文件元数据(新版本号、时间戳等)更新客户端数据库 2.通过HTTP向服务器发送文件,将文件复制到服务器的文件系统中 3.文件传输完成后,用新的元数据更新Sql server db
整个过程被视为一个事务。问题是,在失败的情况下,我们很难根据错误发生的不同阶段来回滚事务。
我的问题是,处理这种分布式提交的算法是什么?我听说过 3 阶段提交,这适合这种情况吗?
谢谢,
【问题讨论】:
-
你是如何处理 Commit / RollBack 的,目前还不是指 2 Phase Commit..?
-
数据库事务由 DBMS 提供。对于文件系统,我只使用 C# 代码来复制/备份当前或新版本。谢谢。
-
没问题..只是想知道您当前的流程是什么..我粘贴的内容可能有助于阐明一些想法
标签: c# distributed-transactions