写点什么

微软推新一代事务性文件系统——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:271458
用户头像

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

关注

评论

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

Dubbo 中 Zookeeper 注册中心原理分析

vivo互联网技术

zookeeper dubbo

下一代编解码技术Ali266在视频超高清领域的应用展望

阿里云视频云

云计算 Ali266 超高清

系统运维 SysOM profiling 在云上环境的应用观测实践 | 龙蜥技术

OpenAnolis小助手

开源 cpu 系统运维 profiling 龙蜥技术

升哲科技荣获2022年度华夏建设科学技术奖二等奖

SENSORO

测试开发 | AppCrawler 自动遍历测试实践(二):定制化配置

霍格沃兹测试开发学社

小红书2023春节消费报告

易观分析

春节 小红书 消费

柯里化与部分施用

SkyFire

函数式编程 柯里化 部分施用

IoTLink v1.5.0 最新公告

山东云则信息科技

物联网平台 物联网 spring-boot

高效学 C++|面向对象程序设计的思维方式

TiAmo

c++ 面向对象 设计模式

SpringBoot 如何保证接口安全?老鸟们都是这么玩的!

程序知音

Java spring 架构

如何又快又好实现Catalog系统搜索能力?火山引擎DataLeap这样做

字节跳动数据平台

大数据 数据治理 数据研发 企业号 2 月 PK 榜

java实现FTP下载,解决假死问题

Steven

电商平台的多门店产品设计要点分析

产品海豚湾

产品经理 产品设计 SaaS 产品分析 电商产品

助力信创自主可控,AntDB与浪潮、超聚变完成产品互认

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 2 月 PK 榜

Kratos微服务工程Bazel构建指南

微服务 CMS Kratos Monorepo bazel

亚信安慧携AntDB数据库入选信通院软件供应链厂商和产品名录

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 2 月 PK 榜

开源机器学习软件对AI的发展意味着什么?

OneFlow

人工智能 深度学习 开源

新思科技:数字赋能,安全先行

InfoQ_434670063458

机器学习之特征工程详解

九章云极DataCanvas

2023年1月网约车领域月度观察

易观分析

网约车 出行

为WEB3 的GameFi行业爆发提供全新动力

股市老人

“一键”模型迁移,性能翻倍,多语言AltDiffusion推理速度超快

OneFlow

人工智能 深度学习

还在用 OpenFeign?来试试 SpringBoot3 中的这个新玩意!

江南一点雨

spring springboot

Dubbo 中 Zookeeper 注册中心原理分析

小小怪下士

Java zookeeper dubbo

利器 | AppCrawler 自动遍历测试工具实践(一)

霍格沃兹测试开发学社

巧用Golang泛型,简化代码编写

百度Geek说

Go golang 企业号 2 月 PK 榜

优化器-RBO 的规则转化

KaiwuDB

RBO 数据库优化器

测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

霍格沃兹测试开发学社

关于 NGINX Kubernetes Gateway,你需要知道的 5 件事

NGINX开源社区

nginx NGINX Ingress Controller NGINX Kubernetes Gateway 企业号 2 月 PK 榜

微博评论计算架构

Geek_7d539e

Getaverse 1月总结 | 节点数突破6200+

Geek_Web3

#区块链# 元宇宙 web3

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