MSDTC changes in WS2008, Part 1: Introduction

Windows Server 2008 has a number of significant changes to MSDTC, addressing issues from performance, simplicity, and reach.  These changes are the culmination of a stream of work that began with Vista, and was heavily influenced by .Net from 2.0 onwards.

 

The changes in WS2008 had the following goals:

  • Support the use of transacted NTFS and transacted Registry operations.
  • Increase flexibility of deployment, predictability of performance in a Windows cluster.
  • Improve the diagnostics available for troubleshooting.
  • Be a 'good Windows citizen'.

 

Much of the visible changes to support transacted NTFS and registry operations showed up in Vista.  The changes in WS2008 are largely to support those features in a cluster.  I'll talk about them in passing as part of the overall cluster changes.

 

The biggest set of changes, by far, had to do with the cluster support.  This is what I'm going to focus on in parts 2 & 3.

 

Through WS2003, MSDTC could only have a single instance on a cluster.  This paralleled the single-instance-per-node assumption that holds for non-clustered systems.  However, it meant that entering a cluster meant that the local MSDTC was disabled, thus preventing it from completing any outstanding recovery.  It also meant that you could be very asymmetric performance patterns depending on where failovers had taken the recovery resource, such as a SQL server instance, and the MSDTC instance.  As you can imagine, you'd get much better performance when they happened to be on the same system vs. when they weren't.

 

In WS2008 the underlying assumption has been removed.  You can have any number of MSDTC cluster resources, they can be affinitized to other cluster resources (so that you can keep the transaction on the same system, regardless of failover patterns), you can retain the use of the local (per-node) MSDTC instances for those cases where the application is not cluster-aware, and you can split a cluster safely without requiring that all transactions be resolved.

 

 

Finally, there were two sets of changes that we made that should be considered largely internal.  One was a set of changes to unify and extend the advanced diagnostic tracing features that PSS would typically use when resolving a customer problem.  The other was a set of changes related to the quality and feature expectations for any component going into Windows.  Although neither should directly impact any customers, I'll touch on those in part 4.

 

Jim.


Posted Mar 15 2008, 01:44 PM by jim-johnson

Comments

自由、创新、研究、探索…… wrote Windows Server 2008的MSDTC改进
on 06-29-2008 7:15 AM

事务处理作为企业级开发必备的基础设施,WindowServer2008在事务处理上的改进也是很大的,无论是开发还是配置管理方面都得到了极大的改进。有几篇关于WindowsServer2008的...

Add a Comment

(required)  
(optional)
(required)  
Remember Me?