微軟推新一代事務性檔案系統——TxF

heying1229發表於2007-09-25
微軟推新一代事務性檔案系統——TxF[@more@]來自:infoq中文站 

 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與之在同一個事務內)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-972034/,如需轉載,請註明出處,否則將追究法律責任。

相關文章