写点什么

微软推新一代事务性文件系统——TxF

  • 2007-07-05
  • 本文字数:1448 字

    阅读完需:约 5 分钟

MSDN 杂志 7 月刊中对新的文件系统作了介绍,作为 Windows 平台一项“革命性”的新技术特性,Vista 和将要发布的 Longhorn 中会支持并不断加强具有事务性的文件系统—— TxF

对于从事服务端开发的技术人员而言,使用事务,尤其是控制分布式操作的事务是个至关重要的能力,如果某个环节“拿捏”不当,将在系统运维过程中用数十倍甚至数百倍的精力来解决。之前文件系统一直被作为一个典型的非事务性对象使用,也就是当数据库、队列、WCF 等事务性对象在某种条件下回退的时候,中间操作过的文件系统也会保留痕迹;与之不同的是,TxF = NTFS + Tx,也就是文件系统也具有操作上的“All or Nothing”的事务性特征。在文章中,作者列举了这一文件系统的三个优势“提升应用稳定性”、“提升平台稳定性”和“增加创新机会”:

借助 TxF 可以有效减少应用在异常情况下的“扫尾”工作,应用的可靠性交给操作系统保证。 在不使用 TxF 的时候,如果事务本身有多层嵌套,而且调用环境又是分布式环境,那么每处涉及文件访问的位置都需要“设防”。需要回退的话,如何通知远端文件系统本身就很困难(限于各种访问控制策略),加之错误本身很多时候就是因为连通性原因导致;在 TxF 环境下,应用不需要关心事务的层次,也不需要关心连通性故障。

另外,使用 TxF 对于在线软件更新之类的应用特性也很有用,“半拉子”的情况最令人头疼,这种情况下应该考虑 TxF 的 All or Nothing 了。

但另外一个重要的地方是提供了一个“选项”——文件操作在异常处理时怎么办。实现方式上,TxF 依赖于操作系统中 KTM(Kernel Transaction Manager),而 KTM 可以与大家熟悉的 DTC 进行交互,相当于 TxF 可以间接地和任何支持 DTC 的技术进行事务协同。包括:

  • 所有主流商用数据库平台、支持 DTC 分布式事务的开源数据库平台。
  • 通过 WS-AtomicTransaction 协议保证的 Web Service 调用。
  • 声明为 OleTransactionProtocol 的 WCF。
  • 还有各主要商用队列产品。
  • 再外延的话,由于 DTC 本身对 XA-Transactions 有支持,所以 TxF 甚至可以把操作 Enlist 到异构操作系统平台的事务管理产品中。

虽然 TxF 为开发人员开辟了一个非常广阔的调用空间,但它只是个“选项”,非事务性的文件系统在很多应用情境下还是非常必要的,诸如:

  • “业务操作日志”,必须保证它不会随着业务操作的回退而被“擦”掉。
  • 还有就是长事务的情况,过多被打开而未关闭的文件将成为服务器的负载,尤其在宕机重启后,“扫尾”工作将成为系统的负担。
  • 另外就是文件系统本身不适合多 Writer 的情况,每次一个 TxF 文件仅允许一个 Writer 写入(除非其它 Writer 与之在同一个事务内)。
  • 还有就是各种“锁”的问题,尤其当 TxF 与其他事务性资源一起因为断电等原因恢复的时候,TxF 文件本身会被持续锁定,直到其他资源(例如:SQL Server)恢复之后才开始可以被释放,但如果外层宿主程序本身是个随操作系统启动的后台服务,状况就很容易恶化。

与 Longhorn 一起到来的应该会是 SOA 渐入主流的开发时代,XML 将成为消息方式的主流,届时 XML 数据库和文件系统均会被用来存储 XML 数据,保证报文的 I/O 与前端 Service 调用结果的事务性同步将会很重要。Txf 作为一项革新技术,如何在有效隔离事务边界的情况下,被妥善地使用将是一个很大的挑战。


作者简介:王翔,全国海关信息中心高级架构师,从事海关主要广域分布式系统的设计和实施,多次参与各业务系统的优化。此外,作为信息安全工作组副组长,他还一直致力于应用密码技术和公钥基础设施保障海关业务的安全运行。此外,他还是《程序员》杂志的专栏作者。

2007-07-05 23:271565
用户头像

发布了 61 篇内容, 共 11.6 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

汽车辐射大?技术来救它:整车辐射抗扰发射天线仿真建模及性能预测

Altair RapidMiner

人工智能 汽车 仿真 altair 辐射

用Python来DIY一个AI面部情绪识别API的简单方案

幂简集成

API

从焦虑症到AI「网红」:这名程序员是如何让AI「助他一臂之力」

新程序员编辑部

ChatGPT Prompt

一文剖析高可用向量数据库的本质

Zilliz

人工智能 大数据 AI Zilliz 向量数据库

如数据血缘探究数据管理的“自治理”

Aloudata

Data 数据管理 数据血缘 Data Fabric

你知道程序员再过几年会没落?

高端章鱼哥

2024年团队任务分配软件推荐:7大热门工具

爱吃小舅的鱼

团队管理 任务管理 任务管理工具 任务分配工具 团队任务管理

管理能力达到国际认可水平 智谱获得国内首批ISO/IEC 42001:2023人工智能管理体系认证证书

技术研究院

待办事项软件选择指南:挑选你的效率助手

爱吃小舅的鱼

待办事项

一站式解决方案:如何挑选合适的项目工单系统

爱吃小舅的鱼

项目工单管理 项目工单

InPlant SCADA笔记 背景模版

万里无云万里天

工厂运维 InPlant SCADA

探索最佳工作内容管理工具:2024年7大精选

爱吃小舅的鱼

任务管理 任务管理软件 任务管理工具 工作内容管理工具

天工一刻 | 一文看懂3D大模型

新消费日报

InPlant SCADA笔记 io 查看数据库管理与IO驱动

万里无云万里天

工厂运维 InPlant SCADA

Kubernetes集群的ETCD分布式数据库高可用原理解析

inBuilder低代码平台

开源 云原生 Kubernetes, 云原生, eBPF

性能提升20%,字节跳动HTTPDNS从中心下沉到边缘

火山引擎边缘云

边缘计算 HTTP DNS #DNS 边缘计算平台

AWS 弹性伸缩特性介绍

AutoMQ

云计算 kafka 云原生 AWS

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

Geek_b7ce72

InPlant SCADA笔记 查看工程的数据库与历史趋势的信息

万里无云万里天

工厂运维 InPlant SCADA

智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐

不在线第一只蜗牛

人工智能 AI

涨见识了!脱离vue项目竟然也可以使用响应式API

快乐非自愿限量之名

JavaScript Vue 前端

写报告 进图谱 做演讲,可信数据库大会上亚信科技AntDB可太忙了

亚信AntDB数据库

精选顶级工时管理平台:你的最佳选择

爱吃小舅的鱼

工时管理 工时管理系统

InPlant SCADA笔记 查看工程的网络架构

万里无云万里天

工厂运维 InPlant SCADA

HAProxy 可观测性最佳实践

观测云

HAProxy

如何借助逻辑数据编织平台实现“数据优先堆栈( DFS )”

Aloudata

数据仓库 数据虚拟化 数据编织

如何找到最适合你的项目工时跟踪工具

爱吃小舅的鱼

工时管理 工时管理系统

如何在 SpringBoot 中优雅的做参数校验?

快乐非自愿限量之名

Java Spring Boot 后端

澳鹏Appen入选大模型产业链基础层图谱及案例研究

澳鹏Appen

大模型训练 大模型 百模大战

InPlant SCADA笔记 报警管理功能

万里无云万里天

工厂运维 InPlant SCADA

从0到100:旅拍小程序开发笔记(上)

CC同学

微软推新一代事务性文件系统——TxF_.NET_王翔_InfoQ精选文章