涉及客户端和服务器端数据库和文件系统的分布式事务算法
我正在开发一个基于 .Net 的客户端/服务器版本控制系统,该系统基本上涉及
客户端: 嵌入式数据库 文件系统
在服务器端: SQL服务器数据库 文件系统
每次从客户端将新版本上传到服务器时,都会发生以下步骤: 1. 使用新文件元数据(新版本号、时间戳等)更新客户端数据库 2.通过HTTP发送文件到服务器,将文件复制到服务器的文件系统中 3. 文件传输完成后,用新的元数据更新 Sql server db
整个过程被视为一个事务。问题是,一旦出现故障,我们很难根据错误发生的不同阶段来回滚事务。
我的问题是,处理这种类型的分布式提交的算法是什么?我听说过三阶段提交,这适合这种情况吗?
谢谢,
I am working on a .Net based, client/server versioning system which basically involves
At Client side:
an embeded database
file system
At server side:
Sql server db
file system
Everytime a new version is uploaded to the server from the client, the following steps happen:
1. Update the client side db with the new file metadata (new version#, timestamps, etc)
2. Send file to the server via HTTP, copy the file into server's file system
3. When file transfer finishes, update Sql server db with the new meta data
The whole process is treated as a transaction. The problem is, in case of failure, we have a hard time to roll back the transaction based on the different stage the error occurs.
My question is, what is the algorithm to handle this type of distributed commit? I've heard of 3-phase commit, is that a good suit for this scenario?
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是您可以尝试的事情,但您必须改进示例..这只是您可以做什么的示例
this is something that you can try but you will have to improve the example ..this is just an example on what you could do