專利名稱::用于支持數據事務的設備和方法
技術領域:
:本發明一般涉及數據事務,具體是數據寫入易失性存儲器的分布式事務支持。
背景技術:
:事務是指視為保證數據完整性的可分性單元的一系列信息交換和相關工作(例如數據庫更新)。在一個事務中,將數據從一個一致狀態轉換到另一個一致狀態。為了完成一個事務以及使得數據變化成為永久的(或“被提交”),關于事務失敗方面,必須保證一個事務是原子的,即該事務必須被完整地完成。如果在該事務被成功完成之前出現了一些情況,到該事務被終止,且必須撤消對數據所做的改變,以便產生這樣一個結果,即該事務從來就沒有存在過。下文中,當將術語“完成”應用于一個事務時,是指該事務或者被提交或者被終止。當事務中的參加者是一個分布式系統的一部分時,事務支持的固有困難就被加劇。從而有必要保證事務被所有參加者原子地且一致地提交或終止。例如,一個事務中的某些參加者可能失敗,且在一個分布式系統中,可能其它參加者中的某個不知道該失敗。同樣,從失敗中恢復的參加者必須確定該事務的命運。在此引入作為參考的,Bernstein等人(Addison-Wesley,1987)的“數據庫系統中的并行控制和恢復”的第7章中,描述了用來保證在分布式系統的多個結點上的事務一致性原子提交協議(ACP)。作者描述了作為ACP例子的一個兩段提交(2PC)協議。2PC協議包括第一階段,其中對一個事務的所有參加者輪詢該事務是否應被提交或終止。在2PC協議的第二階段,該事務的一個協調者基于輪詢來確定該事務是否被提交或終止,并將該確定發送給參加者。本領域已知在一個計算機系統故障事件中,有效存儲數據和從被存儲的數據中恢復的方法。這些方法依賴于將數據之外的信息存儲到一個非易失性存儲器,典型地是一個磁盤,并在出現故障時,使用該額外的信息恢復被存儲的數據。在此將其公開內容引入作為參考的English等人的美國專利5,345,575描述了包括一個存儲器的磁盤控制器。該存儲器含有將存儲在磁盤中的數據塊的邏輯地址映射到標識了物理存儲單元的一張表格。除了將數據寫入到一個存儲單元中之外,磁盤控制器還寫入每個存儲單元的相關的邏輯地址、時間標記以及指示了一個特定數據塊出現在一系列數據塊的何處的數據。通過實質上從整個磁盤中讀取,這些額外的信息被用來從系統故障中恢復。在此將其公開內容引入作為參考的Chao等人的美國專利5,481,694描述了包含一個存儲器、多個磁盤機以及一個控制器的電子數據存儲器系統。該存儲器包括交叉引用了邏輯地址和磁盤機上的物理地址的表格、含有陳舊數據的物理地址列表以及能夠接收數據的磁盤機上的段的物理地址列表。當把數據寫入磁盤機時,包括對于多塊的邏輯地址和序列號的標記被與數據寫入。為了從系統故障中恢復,存儲在磁盤機上的檢驗點記錄和檢驗點段恢復表格和列表。將1993年12月的第14次操作系統原理會議的會議錄的15-28頁中,deJonge等人的題為“TheLogicalDiskANewApproachtoImprovingFileSystem(邏輯磁盤改進文件系統的一個新方法)”的文章在此引入作為參考,其中作者描述了一種邏輯磁盤,其中規定了用于將文件管理和磁盤管理分離的磁盤存儲器的接口。該接口使用邏輯塊號和塊列表,并支持多文件系統。作者聲稱支持一個原子恢復單元(ARU)。在恢復過程中,屬于相同ARU的所有邏輯磁盤命令被看作單一的無形操作。因此,邏輯磁盤總是恢復到以前存在的狀態,或恢復到執行了ARU的所有操作之后存在的狀態。不過,不支持并行ARU。將1992年1月的USENIXwinter1992技術會議會議錄的第237-251頁中的English等人的題為“Logeaself-organizingdiskcontroller(Loge一種自我組織的磁盤控制器)”的文章在此引入作為參考,其中作者描述了使用一張轉換表和一個分配圖將數據存儲到磁盤中的系統。將包含一個塊地址和一個時間標記的尾部標記與被存儲數據一起寫入磁盤。尾部標記中的信息使得系統能夠從故障中恢復。將Chao等人的題為“Mimeahighperformanceparallelstoragedevicewithstrongrecoveryguarantees(Mime帶有強大恢復保證的高性能并行存儲器設備)”,HPL-CSP-92-9(Hewlett-packard公司于1992年11月出版)的文章在此引入作為參考,其中作者描述了類似于上面所描述的Loge的磁盤存儲結構。在Mime中,尾部標記包括對于多塊寫的一個塊地址、一個序列號以及多塊寫中的最后分組的標記。與Loge中一樣,尾部標記信息使得系統能夠從故障中恢復。Mime支持視見度組形式中的有限形式事務支持的原子多塊寫。Mime保證在故障的情況下,一個活動視見度組中的所有塊寫被終止。
發明內容本發明的某些方面的一個目的是提供用來支持數據事務的改進系統。本方面的某些方面的另一個目的是提供當事務的參加者分布在一個網絡上時,用來執行并行數據事務的改進系統。在本方面的優選實施方案中,一個或多個存儲設備最好是固定磁盤,被用來存儲存儲設備的一個或多個客戶所啟動的事務的數據內容。這些存儲設備中的每一個由最好是一個存儲服務器的控制電路來管理,該服務器將事務的數據內容寫入存儲設備的所選擇的塊幀中。這種存儲設備在這里稱作事務支持邏輯磁盤(TSLD)。存儲服務器有易失性存儲器,其中有數據結構,數據結構的值被用來記錄寫入到TSLD的事務數據,并動態鏈接數據被寫入的塊幀的物理和邏輯地址。為了保護一個TSLD防備一個特定存儲服務器的故障,使用檢驗點操作將服務器的數據結構中的值以周期間隔存儲到TSLD中。在檢驗點操作之間,數據結構中的值也被與每個TSLD的塊幀中的事務的數據內容一起存儲。數據結構中的值以及檢驗點數據最好使得塊幀能夠在存儲服務器故障的事件中被方便地找到,以便塊幀中的數據內容能夠被恢復。在故障事件中,存儲服務器讀取被存儲的檢驗點數據并“重放”TSLD操作的過程,包括自從執行上次檢驗點以來的提交和終止事務。重放過程使得存儲服務器能夠在故障時,恢復其狀態以及任何正在進行的事務的狀態。上述的臨時專利申請以及轉讓給本申請同一受證人的,2000年7月6日提交的另一個題為“EnhancedStableDiskStorage(增強固定磁盤存儲器)”的,在此將其公開內容引入作為參考的專利申請中描述了存儲和恢復的替代方法。本方面的優選實施方案最好是支持如本發明背景中所描述的一個兩段提交(2PC)協議。在事務的第一階段,一個稱作事務協調者的特定TSLD客戶通過將參加該事務的TSLD中的一個指定為主TSLD來啟動該事務。該主TSLD作為記錄事務狀態的記錄器而工作,且客戶指導該主TSLD開始該事務。客戶通過參加該事務的其它TSLD的管理服務器來指導這些TSLD將該事務的恰當數據內容“軟寫入”各自的TSLD,從而產生未提交的塊值,并通知每種情況下的客戶該操作已被完成。在一個軟寫入操作中,塊幀被寫入的邏輯和物理地址被臨時鏈接。一旦客戶第一階段已被成功完成,則在第二階段,它就指導主TSLD提交該事務,然后客戶發布提交指令給參加的每個TSLD以提交該事務,從而產生被提交的塊值。通過永久鏈接被臨時鏈接的地址來執行提交操作。如果在一個預定的時間段內,第一階段未被成功完成,則客戶指導主TSLD終止該事務,然后客戶發布終止指令給參加的每個TSLD以終止該事務,從而該事務之前存在的地址鏈接被恢復。對于本領域已知的事務系統上的事務操作,上面描述的系統有多個重要優點。特別地·數據結構中的相同信息被用來使得一個TSLD能夠從服務器故障中基本上完全恢復,并允許兩段提交協議的有效執行。·系統支持多個TSLD上的分布式事務,還支持一個或多個TSLD上的并行數據事務。·沒有事務狀態的中央日志。每個事務可以選擇不同的主TSLD,從而事務狀態記錄是分布式的。·TSLD支持并行活動事務并能夠從多個事務故障中恢復。·因為數據結構中的所有信息都被存儲到TSLD中,所以TSLD可以從一個故障服務器移動到一個工作服務器,從而能夠重新生成開放事務的地址鏈接和信息。·不需要對TSLD的額外的輸入/輸出操作,就可以執行對TSLD的數據結構信息的增加的存儲。·即使當系統包括分別在一個網絡上的多個磁盤和/或多個服務器時,軟寫入操作與事務的提交和終止也一起被支持。·可以以靈活的方式來實現檢驗點操作,例如作為一個后臺操作或通過標識自從上個檢驗點后變化的數據結構中的成分。·故障之后的TSLD的恢復是快速的,由于只有該TSLD上次檢驗點操作后被存儲的塊幀需要被讀取。·故障之后的TSLD的恢復產生關于開放事務的足夠信息以使得該事務的參加者能夠查詢事務狀態并獲得是否提交或終止該事務的一致意見。在客戶故障的情況下,TSLD上有足夠的信息用于提交或終止事務,其信息可以被其它客戶影響。因此,根據本發明的優選實施方案,提供了用來支持數據事務的設備,包括用來接收作為連續數據塊的數據以存儲在各自物理單元的至少一個TSLD;以及控制電路,被配置用來當寫入至少一個TSLD時,將連續數據塊、至少一些數據塊以及指示了連續數據塊中后來的數據塊的物理單元的至少一個參數一起傳送到至少一個TSLD,并被配置以轉換數據的狀態,以便利用至少一個參數完成數據事務。控制電路最好包括將控制電路耦合到至少一個TSLD的至少一條通信鏈路,且控制電路通過至少一條鏈路管理至少一個TSLD。上述設備最好包括一個數據傳輸網絡,用來將數據傳送到控制電路并與該控制電路耦合。此外數據傳輸網絡最好被耦合到并傳送數據到至少一個TSLD,且控制電路通過該數據傳輸網絡來管理至少一個TSLD。上述設備最好包括一個將數據傳送到控制電路的客戶。控制電路最好包括至少一個易失性存儲器,用來存儲含有指示了至少一些數據塊的一個或多個特性的數據的一個或多個數據結構,這些數據中的至少一些由控制電路寫入到至少一個TSLD,這樣至少一個易失性存儲器的內容可以被從存儲在至少一個TSLD中的一個或多個數據結構中的數據中的至少一些數據中再生。此外,數據結構中的一個最好包括一張轉換表,用來將連續數據塊的邏輯塊地址映射到各自的物理地址并標記數據塊中的哪個正在參與一個開放的數據事務。數據結構中的一個最好包括一個輔助轉換表,用來為每個各自的開放數據事務,將與一個開放事務相關的邏輯塊地址映射到在啟動該事務之前存在的連續數據塊的各自的物理地址,并映射到開放數據事務的一個標識。控制電路最好將各自的邏輯地址寫入到連續的數據塊。控制電路最好將一個數據事務的標識寫入到連續的數據塊。控制電路最好將一個數據事務的狀態的記錄器的標識寫入到連續的數據塊。數據結構中的一個最好包括一個分配位圖,用來映射連續數據塊中的每一個的可用性。此外,數據結構中的一個最好包括一個連續數據塊中的下一個可用數據塊的單元的指針值。數據結構中的一個最好包括連續數據塊中的第一可用數據塊的單元的指針值。至少一個TSLD最好包括一個有磁頭的磁盤,并且控制電路在一個單一方向上在磁盤的表面上,以磁頭的一系列掃描,將數據塊寫入到磁盤中。此外,一系列掃描中的每一個最好有一個檢驗點號,且數據結構中的一個包括一個指示了當前檢驗點號的值。數據結構中的一個最好包括一個工作分配位圖拷貝,用來存儲在磁頭的一個或多個掃描結束處的連續數據塊中的每一個的可用性。當磁頭的一個或多個掃描完成時,控制電路最好是將一個或多個數據結構中的至少一些數據寫入至少一個TSLD中。數據結構中的一個最好包括一個事務狀態日志,用來存儲數據事務的至少一個記錄,其中至少一個記錄包括數據事務的一個標識以及參加該數據事務的至少一個TSLD的標識,其中至少一個記錄包括一組記錄中的至少一個,這組記錄包括開始-事務、提交-事務和終止事務,它們分別記錄事務已經開始、被提交和被終止。控制電路最好在連續的數據塊上寫入尾標,該尾標包括一個或多個指示了每個數據塊使用的數據域。一個或多個數據域最好包括數據事務的一個標識以及作為數據事務狀態記錄器的主TSLD的標識。一個或多個數據域最好包括數據塊的一個邏輯地址。一個或多個數據域最好包括一個指示了數據事務狀態的標記。該設備最好包括一個磁盤控制器,它控制至少一個TSLD,其中磁盤控制器能夠從控制電路寫入至少一個TSLD的數據中恢復一個易失性存儲器的內容。至少一個參數最好包括多個參數。數據事務最好包括多個并行數據事務。至少一個TSLD最好包括一個由服務器管理的磁盤。至少一個TSLD最好包括多個TSLD。至少一個參數最好包括一個事務狀態日志,它記錄了數據事務的一個或多個狀態。至少一個參數最好包括至少一個分布式事務狀態日志的一部分,該日志記錄了數據事務的一個或多個狀態。至少一個存儲設備最好被用做可以移動的,以便被其它控制電路操作,從而恢復存儲在至少一個存儲設備中的信息。根據本發明的優選實施方案,還提供了一種用來執行數據事務的方法,包括在至少一個TSLD中接收作為連續數據塊的數據、至少一些數據塊的每一個和指示了連續數據塊中的一個隨后數據塊的物理位置的參數;以及響應于至少一個參數,轉換至少一個TSLD中的數據的狀態,以便完成數據事務。至少一個參數最好包括多個參數。在至少一個TSLD中接收數據最好包括將數據通過數據傳輸網絡傳送到至少一個TSLD。傳送數據最好包括將至少一個TSLD連接到數據傳輸網絡。傳送數據最好包括通過控制電路將至少一個TSLD連接到數據傳輸網絡;以及將控制電路連接到數據傳輸網絡。此外,接收數據最好包括從一個客戶接收數據。該方法最好包括將一個或多個數據結構存儲到至少一個易失性存儲器中,上述數據結構含有指示了至少一些數據塊的一個或多個特性的數據,并將數據結構中的至少一些數據寫入到至少一個TSLD中,以便至少一個固定存儲器的內容可以從存儲在至少一個TSLD中的一個或多個數據結構中的至少一些數據中恢復。存儲一個或多個數據結構最好包括存儲一個轉換表,該轉換表用來將連續數據塊的邏輯塊地址映射到各自的物理地址,并標記數據塊中的哪一個當前正在參加一個開放數據事務。存儲一個或多個數據結構最好包括存儲一個輔助轉換表,用來為每個各自的開放數據事務,而將與一個開放事務相關的邏輯塊地址映射到在啟動數據事務之前存在的連續數據塊的各自的物理地址,并映射到該開放數據事務的標識。接收數據最好包括將各自的邏輯地址寫入連續的數據塊。該方法最好包括使用轉換表來定位一個特定數據塊,以便從特定數據塊中讀取數據。存儲一個或多個數據結構最好包括存儲一個指示了連續位置中的每一個的可用性的位置位圖。此外,將至少一些數據寫入至少一個TSLD最好包括使用下列步驟將數據寫入連續數據塊中的一個掃描一個或多個數據結構以確定至少一個TSLD中的一個可用數據塊的物理位置;將一個或多個數據結構的數據和至少一些內容寫入物理位置;以及響應于被確定的物理位置,更新一個或多個數據結構。掃描一個或多個數據結構最好包括檢查一個邏輯地址是否包括在一個開放事務中。寫入一個或多個數據結構的數據和至少一些內容包括的步驟最好是寫入對應于一個軟寫操作的值;以及寫入作為主TSLD的至少一個TSLD的標識,以執行臨時寫操作,該TSDL作為數據事務的一個記錄器工作。寫入一個或多個數據結構的數據和至少一些內容最好包括寫入一個對應于開始操作的值,且更新一個或多個數據結構包括寫入一個開始記錄,該記錄包括事務的一個標識和主TSLD的一個標識,以便執行開始操作。寫入一個或多個數據結構的數據和至少一些內容最好包括寫入對應于一個提交操作的值,且更新一個或多個數據結構包括清除指示了事務的開放狀態的標記;寫入一個提交記錄,該記錄包括事務的一個標識和主TSLD的一個標識,以便執行提交操作;以及更新一個事務狀態日志。寫入一個或多個數據結構的數據和至少一些內容最好包括寫入對應于一個終止操作的值,且更新一個或多個數據結構包括清除指示了事務的開放狀態的標記;寫入一個終止記錄,該記錄包括事務的一個標識和主TSLD的一個標識,以便執行終止操作;以及更新一個事務狀態日志。該方法最好包括掃描一個或多個數據結構以確定數據事務的狀態。該方法最好包括執行一個包括下列步驟的檢驗點操作鎖住一個或多個數據結構;將一個或多個數據結構的內容寫入到至少一個TSLD的檢驗點位置;以及響應于將內容寫入至少一個TSLD,來改變一個或多個數據結構的至少一些內容。該方法最好包括執行包括下列步驟的恢復操作從至少一個TSLD中讀取一個或多個數據結構的內容;以及響應于上述內容,更新至少一個易失性存儲器中的一個或多個數據結構。執行恢復操作最好包括讀取自從執行檢驗點操作以來被寫入的所有的一個或多個數據結構的內容。此外,執行恢復操作最好包括讀取自從執行檢驗點操作以來寫入的所有一個或多個數據結構的內容,該讀取所用時間基本上不多于用來寫入自從執行檢驗點操作以來寫入的所有的一個或多個數據結構所用的時間。執行恢復操作最好包括確定一個開放事務的狀態以及使得開放事務的一個或多個客戶能夠查詢狀態并確定是否提交或終止該開放事務。該方法最好包括執行一個包括下列步驟的事務協調操作選擇至少一個TSLD中的一個作為數據事務狀態的記錄器;提交一個開始事務操作給記錄器;為一個響應等待一個來自記錄器的預定時間,該響應指示了數據事務的狀態;基于上述響應,提交一個或多個軟寫操作給至少一個TSLD;以及基于上述響應,確定是否提交或終止該事務,通過發出一個提交或終止事務操作。此外,該方法最好包括執行包括下列步驟的事務完成操作從含有指示了一個數據事務狀態的內容的至少一個TSLD中讀取第一組連續數據塊;以及響應于第一組連續數據塊的內容,將第二組連續數據塊寫入至少一個TSLD中,并將一組一個或多個數據結構寫入至少一個易失性存儲器。數據事務最好包括多個并行數據事務。至少一個TSLD最好包括一個由服務器管理的磁盤。至少一個TSLD最好包括多個TSLD。根據本發明的一個優選實施方案,還提供了用于電子數據存儲的設備,包括一個TSLD,用來接收連續數據塊以存儲到各自的物理位置;以及控制電路,被配置當寫入TSLD時,將連續數據塊與至少一些數據塊、一個或多個指示了連續數據塊中的后來的數據塊的物理位置的參數一起傳送到TSLD。一個或多個參數最好包括多個參數。根據本發明的實施方案,還提供了用于電子數據存儲的方法,包括提供連續數據塊以存儲到TSLD中各自的物理位置;為連續數據塊中的至少一些數據塊的每一個確定指示了該連續數據塊中的一個后來的數據塊的物理位置的一個或多個參數;以及將連續數據塊和一個或多個參數存儲到TSLD中。一個或多個參數最好包括多個參數。根據本發明的一個優選實施方案,還提供了一個用來執行數據事務的計算機軟件產品,包括將程序指令記錄在其中的計算機可讀介質,當其中的指令被計算機讀取時,使得計算機在至少一個TSLD中接收作為連續數據塊的數據、至少一些數據塊中的每一個與指示了連續數據塊中的一個后來數據塊的物理位置的至少一個參數,并響應于至少一個參數,來轉換至少一個TSLD中的數據的狀態,以完成數據事務。根據本發明的一個優選實施方案,還提供了一個用于電子數據存儲的計算機軟件產品,包括其中記錄有程序指令的計算機可讀介質,當其中的指令被計算機讀取時,使得計算機提供連續數據塊以存儲到TSLD中各自的物理位置,以為連續數據塊中的至少一些數據塊中的每一個確定指示了連續數據塊中的后來的數據塊物理位置的一個或多個參數,并將連續數據塊以及一個或多個參數存儲到TSLD中。現在根據下面的本發明優選實施方案的描述以及附圖來更充分地理解本發明,其中圖1A是根據本發明的一個優選實施方案,給出了一個分布式存儲系統的示意框圖,其中磁盤被物理連接到存儲服務器且其中事務發生;圖1B是根據本發明的一個優選實施方案,給出了替代的分布式存儲系統的示意框圖,其中磁盤被虛擬連接到存儲服務器且其中事務發生;圖2是根據本發明的一個優選實施方案,給出了包括在圖1A或圖1B中的系統的支持邏輯磁盤(TSLD)的事務和服務器之間的關系的示意框圖;圖3是根據本發明的一個優選實施方案,由TSLD存儲的磁盤上塊結構的示意框圖;圖4是根據本發明的一個優選實施方案,表示包括在一個軟寫操作中的步驟的流程圖;圖5是根據本發明的一個優選實施方案,表示包括在一個軟讀操作中的步驟的流程圖;圖6是根據本發明的一個優選實施方案,表示包括在一個讀取操作中的步驟的流程圖;圖7是根據本發明的一個優選實施方案,表示包括在一個開始操作中的步驟的流程圖;圖8是根據本發明的一個優選實施方案,表示包括在一個提交操作中的步驟的流程圖;圖9是根據本發明的一個優選實施方案,表示包括在一個終止操作中的步驟的流程圖;圖10A是根據本發明的一個優選實施方案,表示包括在一個查詢操作中的步驟的流程圖;圖10B是根據本發明的一個優選實施方案,來自圖10A的查詢操作的可能結果的狀態圖;圖11是根據本發明的一個優選實施方案,表示包括在一個檢驗點操作中的步驟的流程圖;圖12是根據本發明的一個優選實施方案,表示包括在一個對于事務的協調操作中的步驟的流程圖;圖13是根據本發明的一個優選實施方案,表示包括在第一恢復操作中的步驟的流程圖;圖14是根據本發明的一個優選實施方案,表示包括在第二恢復操作中的步驟的流程圖;圖15是根據本發明的一個優選實施方案,表示包括在第三恢復操作中的步驟的流程圖;圖16是根據本發明的一個優選實施方案,表示包括在事務完成操作中的步驟的流程圖。具體實施例方式現在討論圖1A,它是根據本發明的一個優選實施方案,表示了一個其中事務發生的分布式存儲系統20的示意框圖。系統20包括多個作為存儲設備操作的磁盤28、30和34。磁盤34連接到存儲服務器32,包括使得服務器32能夠管理磁盤的控制電路33。磁盤28和30連接到存儲服務器26,包括分別使得服務器26能夠管理磁盤的控制電路35和37。由恰當的控制電路管理的存儲設備,例如磁盤28、30和34在這里稱作事務支持邏輯磁盤(TSLD)。這里稱作TSLD接口的控制電路執行存儲設備或連接到電路上的設備上的TSLD操作。下面給出了TSLD、TSLD接口以及TSLD操作的詳細描述。系統20內的每個磁盤28、30和34被分配一個唯一的標識,這里分別稱作TSLD1、TSLD2、TSLD3。盡管系統20包括三個TSLD,但應當理解系統可以包括任意數量的TSLD,其中的每一個連接一個存儲服務器(下面簡單地稱作服務器)并由它進行管理。還應當理解,系統20中的每個服務器管理一個或多個TSLD。服務器26和32進而又連接到一個數據傳輸網絡24,例如一個局域網,客戶22連接到該網絡。客戶22知道系統20中的每個磁盤的標識并知道管理每個磁盤的各自的服務器。客戶22協調一個TSLD事務的執行。它啟動一個TSLD操作,并將該TSLD操作與操作將應用于的一個或多個TSLD的標識轉發到恰當的存儲服務器或服務器。一旦接收到一個TSLD操作,每個服務器執行由客戶22指定的一個或多個TSLD上的操作,并對客戶做出響應。圖1B是根據本發明的一個優選實施方案,表示替代的其中事務發生的分布式存儲系統40的示意框圖。除了下面描述的區別之外,系統40的操作一般類似于系統20的操作(圖1A),其中由系統40和20中的相同參考編號指示的元件一般在結構和操作上都是相同的。系統40包括服務器26和32以及磁盤TSLD1,TSLD2,TSLD3被連接到的一個存儲區域網絡42。服務器26和32通過網絡42被虛擬連接到并管理其各自的磁盤,如圖中的虛線所示。通過網絡42轉發一個TSLD操作給恰當的服務器或多個服務器,客戶22啟動該操作,且每個特定服務器通過網絡響應客戶22。圖2是根據本發明的一個優選實施方案,表示服務器26和TSLD28之間的關系的示意框圖。盡管下面的描述應用于包括在服務器26中的TSLD28及其相關TSLD接口35,但應當理解系統20和/或系統40中的每個TSLD及各自的服務器基本上如下面對于TSLD28和服務器26的描述來交互。TSLD28包括由磁盤驅動器61操作的一個非固定存儲磁盤62。磁盤62最好是在磁介質63中實現,它被磁盤支架79上的磁盤頭78讀寫。如下面更詳細描述的,在塊寫上,磁盤支架79以“移動前向存儲”動作操作。磁盤控制器76控制磁盤62的操作。磁盤控制器76、磁盤驅動器61及其所有部件最好是流行的、行業標準項。利用本領域已知的方法,磁介質63被分成多個物理扇區64a、64b、64c…64z,這里統稱為扇區64。每個物理扇區由一個物理扇區地址指向。每個扇區的尺寸最好是等于2的整數次冪的字節,例如512字節。要被存儲到磁盤62上的數據被寫入多個固定尺寸的塊幀位置82a、82b、82c…,這里統稱作塊幀82。每個塊幀最好由第一個扇區的物理地址扇區指向,該第一個扇區由塊幀組成。每個塊幀82最好是由整數個連續扇區64構成,且每個塊幀能夠存儲數據塊。在磁盤62的格式化過程中,一些扇區64被保留用于描述涉及服務器26和磁盤62的物理和邏輯參數。參數包括每個扇區64的尺寸,磁盤62中的扇區的數量,塊幀82的尺寸和數量以及磁盤62支持的邏輯塊地址(LBA)的范圍。同樣在磁盤62的格式化過程中保留的是在檢驗點操作過程中使用的空間,其中除了其它事務之外,服務器26中包含的易失性存儲器70中存儲的數據被存儲到磁盤62中。下面更詳細地描述檢驗點操作。下面將更詳細地描述易失性存儲器70存儲多個固定動態數據結構,這些數據結構作為一個TSLD接口35工作。數據結構的內容最好是由服務器26控制。存儲器70作為接口35存儲·一個轉換表數據結構72,它在LBA和物理塊地址之間轉換。該轉換表將每個邏輯塊地址“i”與磁盤62的一個塊幀的相應物理地址綁定,這里稱作TT(i)。TT(i)最好是容納最近被存儲的邏輯地址為“i”的塊的內容。最初,TT(i)的所有值都被設置成NULL(空)。當數據被寫入磁盤62時,對于特定邏輯塊地址i的TT(i)的值就從NULL值改變,并被更新成為塊i上次被存儲的塊空間的磁盤扇區地址。轉換表72還包括一個標記域73,轉換表72中的每個項TT(i)的標記被設置來指示塊“i”當前正在參加一個開放事務。當一個特定標記被設置時,各自的項TT(i)指向一個未提交的塊幀。如下面描述的,對于塊i的被提交的塊幀可以使用一個輔助轉換表項ATT(i)來被找到。如果TT(i)項未被標記,則TT(i)指向對于塊i的被提交的塊幀。·一個輔助轉換表(ATT)數據結構172,是表72的精簡形式,包括表72的非空項,其中標記域73被設置。換句話說,輔助轉換表172記錄當前包含在一個開放事務中的塊。表172包含對于包含在開放事務中的每個塊i的項,在開放事務之前被存儲的塊i的相應的塊幀地址ATT(i),以及塊i當前被包含在的事務的標識‘TransID’。·一個分配位圖數據結構74,用來在塊到磁盤62的每次存儲過程中,定位可用的磁盤塊幀82。對于每個塊幀i,如果塊幀對于塊內容的存儲是可用的,則分配位圖74中的相應比特被設置成0。如果塊幀含有一個塊的內容,或者如果塊幀已經被保留由服務器26數據結構使用,則相應的比特被設置成1。當磁盤62被初始化時,使得除了那些為服務器26所保留的所有塊幀都成為可用的,以便分配位圖74中的每個比特都被設置成0。·一個工作分配位圖數據結構174。工作位圖174是當執行上一次檢驗點操作時所做的分配位圖74的拷貝。·一個檢驗點數據結構84,它記錄已經被執行的檢驗點操作的數量。當磁盤支架79已經完成一個移動前向存儲動作并準備開始另一個動作時,自動執行檢驗點操作。最初,將檢驗點數量84設置為0。·兩個指針數據結構,一個第一可用塊幀指針86和一個下一個可用塊幀指針88。當一個檢驗點操作發生時,第一可用塊幀指針86指向第一個可用塊幀。下一個可用塊幀指針88指向一個可用的將被下一個塊存儲操作使用的塊幀。指針88在每個塊存儲操作上被更新。當執行一個磁盤恢復時,由服務器26“重放”自從上一次檢驗點之后的塊存儲過程來恢復第一可用塊幀指針86所指向的塊幀之后的塊幀的地址。最初,兩個指針都被設置成第一個未保留塊幀的地址。·一個事務狀態日志數據結構90,它含有關于事務狀態的記錄列表。每個事務被分配一個通用唯一標識符,這里稱作Tid。日志90的記錄包括Tid并將一個參加該事務的TSLD的列表94與Tid相關聯。日志記錄包括三部分記錄類型、事務標識符以及列表94。下面詳細描述進入日志90的記錄類型、開始事務、提交事務以及終止事務。上面描述的每個數據結構部件,即轉換表72、輔助轉換表172、分配位圖74、工作分配位圖174、檢驗點數量84、第一可用塊幀指針86、下一個可用塊幀指針88以及事務狀態日志90被在主存儲器70中作為TSLD接口35維護,并在一個對于TSLD28的檢驗點操作過程中被存儲。當一個新塊幀被需要用來存儲數據時,根據分配位圖74,一個塊幀被從磁盤62上可用的空閑塊幀分配,且工作分配位圖184被更新以反映新的分配。為了選擇哪個塊幀要被寫入,服務器26記錄下一個可用塊幀指針88的值。服務器26使用這個值與分配位圖74一起,定位有在上一次被寫入的塊幀之前的地址的下一個可用塊幀。這樣,磁盤支架79以移動前向存儲動作移動,直到一個檢驗點操作被調用。在前面參考的臨時專利申請60/176507以及被轉讓給本發明同一受讓人的,2000年7月6日提交的專利申請“EnhancedStableDiskStorage(增強固定磁盤存儲器)”中描述了有關移動前向存儲方法的進一步的細節。當一個客戶啟動多個TSLD上的事務時,客戶選擇TSLD中的一個,最好是選擇有最小標識的TSLD作為主TSLD。主TSLD作為事務狀態的記錄器來工作。如下面描述的,事務狀態日志90的記錄最好是有三種類型。開始事務記錄92記錄這樣一個事實,即一個事務Tid已經開始并且列在參加該事務的TSLD的列表94中。列表94上的第一TSLD96是為事務Tid選擇的主TSLD。這里使用的對于開始事務記錄92的符號是Begin(Tid;TSLD1,TSLD2...TSLDm)其中TSLD1是主TSLD,TSLD2…TSLDm是參加事務Tid的其它TSLD。一個提交事務記錄102記錄這樣一個事實,即一個事務被提交。每個提交事務記錄102包括事務的標識Tid以及參加該事務的TSLD的列表94。這里使用的對于提交事務記錄102的符號是Commit(Tid;TSLD1,TSLD2...TSLDm)一個終止事務記錄112記錄這樣一個事實,即事務被終止。每個終止事務記錄112包括事務的標識Tid以及參加該事務的TSLD的列表94。這里使用的對于終止事務記錄112的符號是Abort(Tid;TSLD1,TSLD2...TSLDm)如下面所描述的,最好是每個開始事務記錄92只被存儲在對于事務Tid的主TSLD的事務日志中,直到事務被提交或終止。最好是每個提交事務記錄102被存儲到事務Tid的主TSLD的事務狀態日志90中。最好是為了其它還不知道事務被提交的TSLD的利益,當關于事務Tid的數據結構已經被在特定TSLD中更新之后,提交事務記錄保留在特定TSLD的事務狀態日志中。在一個特定的主TSLD中,提交事務記錄代替開始事務記錄。最好是每個終止事務記錄112被存儲在事務Tid的主TSLD的事務日志90中。最好是為了其它還不知道事務被終止的TSLD的利益,當關于事務Tid的數據結構已經被在特定TSLD中更新之后,每個終止事務記錄保留在特定TSLD的事務狀態日志中。在一個特定的主TSLD中,終止事務記錄代替開始事務記錄。在非主TSLD中,最好是將該非主TSLD所涉及的終止事務和提交事務記錄一直保留到下一個檢驗點。圖3是根據本發明的一個優選實施方案,由TSLD28存儲在磁盤上塊結構的示意圖。數據被作為塊200存儲到特定塊幀82中。塊200包括一個客戶部分202,由客戶202使用存儲其內容數據,且一個尾部204包括由TSLD28使用的域。尾部204包括下列域·一個磁盤上的檢驗點數量域206,其中存儲了檢驗點數量84的當前值。這是在塊存儲操作時的檢驗點數量。·一個邏輯塊地址(LBA)域208,其中存儲了塊200的LBA。·一個塊類型域210,其中存儲了描述了塊200類型的標記。塊200的類型在下面被描述。·一個事務標識域212,其中存儲了塊200正在參加的事務的標識Tid。可替代地,如果當塊被存儲時,塊200沒有在參加一個事務,則將域212設置為0。·一個主TSLD域214,其中存儲了塊200正在參加的事務的主TSLD的標識TSLDp。可替代地,如果當塊被存儲時,塊200沒有在參加一個事務,則將域214設置為0。塊類型域210可以假設下面類型的塊·一個數據塊類型,其中來自客戶22的內容數據被存儲在客戶數據域202中,且其中塊被存儲的塊幀被事務表72定位,且其中塊不是一個開放事務的一部分。·一個軟寫塊類型,其中來自客戶22的內容數據被存儲在客戶數據域202中,且數據被存儲在的未提交塊幀被表72指向,但舊的被提交塊的內容所存儲在的塊幀不被釋放以由客戶22使用,而是由表172指向。兩個塊幀都在分配位圖74中被標記分配。·一個開始塊類型,其中將特定事務標識Tid與參加事務Tid的TSLD的標識一起存儲到域202中。這種塊記錄這樣一個事實,即事務Tid已經開始,并且開始塊占用其各自的塊幀,直到下一個檢驗點操作。在一個成功的檢驗點操作之后,如上所述,釋放被占用的塊幀。·一個提交塊類型,其中將特定事務標識Tid與參加事務Tid的TSLD的標識一起存儲到域202中。一個特定提交塊記錄這樣一個事實,即事務Tid已經被提交,并且占用其各自的塊幀,直到下一個檢驗點操作。在一個成功的檢驗點操作之后,如上所述,釋放被占用的塊幀。·一個終止塊類型,其中將特定事務標識Tid與參加事務Tid的TSLD的標識一起存儲到域202中。一個特定終止塊記錄這樣一個事實,即事務Tid已經被終止,并且占用其各自的塊幀,直到下一個檢驗點操作。在一個成功的檢驗點操作之后,如上所述,釋放被占用的塊幀。圖4是給出了根據本發明的一個優選實施方案,包括在軟寫操作220中的步驟的流程圖。軟寫操作220將事務Tid的內容,有primTSLD值的主TSLD存儲到由事務Tid更新的每個塊幀中。這里使用的對于軟寫操作220的符號是Soft-Write(Tid,primTSLD,i,contents)下面假設TSLD28是參加TSLD的一個,且假設操作220由客戶22啟動。操作220也將內容與一個LBAi相關,而不丟失LBAi的舊內容。軟寫操作220作為一個臨時寫操作動作,其可以在后來被提交或終止,從而作為兩段提交協議的第一段來動作,這在發明背景中已被描述過。在檢查步驟222中,檢查轉換表72以查找是否對應于LBAi,TT(i)的項對其標記進行了設置。如果標記被設置了,則將下面參考圖16要描述其功能的開放事務錯誤代碼返回給客戶22。如果標記未被設置,則在掃描步驟224中,分配位圖74被掃描以查找跟隨在下一個可用塊幀88中記錄的塊幀之后的第一個可用塊幀。如果在可用性檢查步驟226中沒有找到可用的塊幀,則執行如下所述的一個檢驗點操作。如果一個塊幀被找到,則假設其物理地址為“a.”。在存儲步驟228中,將檢驗點數量、LBAi、事務標識Tid以及主TSLDprimTSLD這些值寫入到下一個可用塊幀88中記錄的塊幀中的塊的各自的尾部域206、208、212和214(圖3)中。將對應于塊類型,即軟寫塊類型的值寫入到塊幀的尾部域210中。此外,將客戶22提供的Tid的數據內容寫入塊幀的數據域202中。在更新步驟230,在存儲器26中,執行下列分配·在工作分配位圖174中,A(下一個可用塊幀)←1;·在輔助轉換表172中,(ATT(i),TransID)←<TT(i),Tid>;·在轉換表72中,TT(i)←下一個可用塊幀,且TT(i)的標記被在標記域73中設置;且·數據結構下一個可用塊幀88被設置成值“a.”應當理解,作為已經被完成的事務的一部分,軟寫操作220將數據和尾部域數據寫入下一個可用塊幀88的塊中。不過,用來容納i的舊內容的特定塊幀不被改變,且通過將該特定塊幀的分配比特設置為0來不釋放該塊幀,這樣如果需要的話,舊內容仍可以被訪問。圖5是給出了根據本發明的一個優選實施方案,包含在軟讀操作240中的步驟的流程圖。作為一個未完成事務的一部分,軟讀操作240讀取在軟寫操作220中已經被存儲的數據內容。這里使用的對于軟讀操作240的符號是Soft-Read(i)在檢查步驟241中,檢查轉換表72以查找對應于LBAi,TT(i)的項是否對其標記進行了設置。如果標記未被設置,則將一個開放事務錯誤代碼返回給客戶22。如果標記被設置,則在讀取步驟242中,諸如客戶22的一個請求者請求在轉換表72中,由TT(i)指向的塊幀中的塊的數據內容202。數據內容202被返回給請求者,然后軟讀操作240終止。圖6是給出了根據本發明的一個優選實施方案,包含在讀操作250中的步驟的流程圖。操作250被用來讀取已經完成一個事務的塊幀中的邏輯塊i的數據內容,并將該內容返回給諸如客戶22的一個請求者。這里使用的對于讀操作的符號是Read(i)在第一步驟254中,在轉換表72中由TT(i)指向的塊幀中的塊的數據內容202被從TSLD中讀取。通過檢查TT(i)的標記是否被設置,操作250繼續。如果標記被設置,表明包含TT(i)的事務還沒有被完成,則將一個開放事務錯誤信號返回給先前讀取了塊幀的請求者。如果TT(i)的標記未被設置,表明塊不包含在一個開放事務中,則通過將塊幀返回給用戶,操作250完成。然后操作250終止。圖7給出了根據本發明的一個優選實施方案,包含在一個開始操作260中的步驟中的流程圖。操作260存儲這里稱作開始塊的一個塊,它記錄了在一個主TSLD上的一個事務的細節。如上面參考圖2所描述的,操作260還存儲開始事務記錄92,Begin(Tid;TSLD1,TSLD2...TSLDm)。假設該事務有一個標識Tid,并包含下列的TSLDTSLD1,TSLD2...TSLDm。最好是TSLD1作為事務Tid的主TSLD(primTSLD)工作。一個事務協調者,運里假設是客戶22,啟動主TSLD,即TSLD1上的開始操作260。這里使用的對于開始操作260的符號是Begin(Tid;primTSLD,TSLD2,TSLD3...TSLDm)在記錄步驟262中,標識Tid和事務的參加的TSLD,即TSLD1,TSLD2,TSLD3,...TSLDm被記錄在事務日志90中。在掃描步驟264中,分配位圖74被掃描以查找跟隨在下一個可用塊幀88中記錄的塊幀之后的第一個可用塊幀。如果在可用性檢查步驟266中,沒有找到可用塊幀,則執行檢驗點操作。如果隨后的塊幀被找到,則假設其物理地址為“a.”。在存儲步驟268中,將檢驗點數量、事務標識Tid以及TSLD1(primTSLD)這些值寫入記錄在下一個可用塊幀88中的塊幀的塊的各自的尾部域206、212和214(圖3)中,這里假設該塊幀的物理地址為“p.”。將對應于塊類型,即開始塊類型的值寫入塊的尾部域210中。在邏輯地址域208中,沒有做任何項。同樣,在存儲步驟268中,事務的參加TSLD,即TSLD1,TSLD2...TSLDm被在塊幀“p.”的塊的數據域202中記錄。在更新步驟270中,在存儲器26中,數據結構下一個可用塊幀88被設置為值“a.”。然后操作260終止。應當指出,在操作260中,工作分配位圖174沒有被更新,即A(p)保持設置為0。這樣,塊幀“p”保持標記為空閑。不過,在操作260完成時,“a”大于“p”,這樣,在操作260之后的操作將總是尋找有物理地址大于“p.”的塊。這樣,在磁盤支架79的當前掃描過程中,塊幀“p”將不被存儲進去。當執行一個檢驗點操作時,當前掃描終止,在該檢驗點操作過程中,塊幀“p”中的所有有關參數都被存儲到磁盤62中。檢驗點操作之后,塊幀“p”對于進一步的存儲操作成為可用的。圖8是給出了根據本發明的一個優選實施方案,包含在一個提交操作280中的步驟的流程圖。操作280應當在所有與一個給定事務相關的軟寫操作220都已經成功終止之后才被執行,并使得所做的臨時寫操作成為永久的。對于軟寫操作220的操作280應當被在事務Tid中包含的每個TSLD上執行。這里使用的對于提交操作280的符號是Commit(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)如下所述,步驟284、286和288存儲一個提交塊到磁盤62。所存儲的提交塊作為一個提交操作的臨時存儲器來工作,直到執行了一個隨后的檢驗點操作為止。在掃描步驟284中,對分配位圖74進行掃描以查找跟隨在下一個可用塊幀88中記錄的塊幀之后的第一個可用塊幀。如果在可用性檢查步驟286中沒有找到可用塊幀,則執行一個檢驗點操作。如果找到了一個隨后的塊幀,則假設其物理地址為“a.”。在存儲步驟288中,檢驗點數量、事務標識Tid以及TSLD1(primTSLD)這些值被寫入在下一個可用塊幀88中記錄的塊幀中的塊的各自尾部域206、212和214(圖3),這里假設該塊幀的物理地址為“p.”。對應于塊類型,即一個提交塊類型的值被寫入塊幀的尾部域210。在邏輯地址域208中,沒有做任何項。同樣,在存儲步驟288中,事務的參加TSLD,即TSLD1,TSLD2,...TSLDm被在塊幀“p.”的塊的數據域202中記錄。在更新步驟290中,在存儲器26中,數據結構下一個可用塊幀88被設置為值“a.”。在掃描步驟292中,對于包含事務標識Tid的項,輔助轉換表172被掃描。對于每個被找到的項,·將工作分配位圖174中的相應比特設置為0,這樣由項指向的塊幀成為可用的。·在轉換表72中,對應于在輔助轉換表172中找到的那些的每個項的標記被清除。·將輔助轉換表172中的項清除,以便以精簡形式保持表172。在記錄步驟294中,如果TSLD28是主TSLD,即TSLD1,則如記錄步驟262(圖7)中所執行的事務日志90的開始事務記錄,由事務Tid和參加的TSLD的一個提交記錄所代替,然后提交操作280終止。如果TSLD28不是主TSLD,則在步驟292之后,操作280終止。應當理解,塊幀“p”只被占據到下一個檢驗點操作,之后該塊幀成為可用的。圖9是給出了根據本發明的一個優選實施方案,包含在終止操作300中的步驟的流程圖。如果與一個給定事務相關的軟寫操作220中的一個失敗了,則應當執行操作300。操作300從操作220中執行的臨時寫操作中退出,并且在執行操作220之前,使得塊幀的內容成為可用的。至于軟寫操作220,操作300被在包含在事務Tid中的每個TSLD上執行。這里使用的對于終止操作300的符號是Abort(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)步驟304、306、308和310將一個終止塊存儲到磁盤62。所存儲的終止塊作為終止操作的臨時存儲器來工作,直到執行了一個隨后的檢驗點操作為止。在操作上,步驟304、306和310基本上類似于如上所述的步驟284、286和290。在存儲步驟308中,檢驗點數量、事務標識Tid以及TSLD1(primTSLD)這些值被寫入在下一個可用塊幀88中記錄的塊幀中的塊的各自的尾部域206、212和214(圖3),這里假設該塊幀有一個物理地址“q.”。對應于塊類型,即終止塊的值被寫入塊的尾部域210。在邏輯地址域208中,不做任何項。同樣,在存儲步驟308中,事務的參加TSLD,即TSLD1,TSLD2,...TSLDm被記錄在塊幀“q.”中的塊的數據域202。在掃描步驟312中,對于包含事務標識Tid的項,掃描輔助轉換表172。對于每個找到的項,轉換表72被用來定位相應的塊幀。然后在工作分配位圖174中的相應比特被復位。同樣在步驟312中,當比特已經被復位之后,轉換表72被更新,以便被找到的項現在指向在輔助轉換表172中找到的項。最后,將輔助轉換表172中的每個項清除,并且將轉換表72中每個相應項的標記清除。在記錄步驟314中,如果TSLD28是主TSLD(TSLD1),則如記錄步驟262(圖7)所執行的事務日志90的開始事務記錄被一個事務Tid和參加TSLD的終止記錄所代替,然后終止操作300終止。如果TSLD28不是主TSLD,則在步驟312之后,操作300終止。應當理解,塊幀“q”只被占用到下一個檢驗點操作為止,之后該塊幀成為可用的。圖10A是給出了根據本發明的一個優選實施方案,包含在一個查詢操作中的步驟的流程圖。對于系統20或系統40中的每個TSLD,查詢操作320檢查事務狀態日志90關于一個特定事務Tid的狀態,并將所知道的關于該事務的信息返回給一個諸如客戶22的請求者。這里使用的對于查詢操作320的符號是Query_State(Tid)在第一查詢322中,檢查日志90以看對于特定事務的開始記錄是否存在。如果開始記錄存在,表明所查詢的TSLD是主TSLD并且該事務Tid還在進行中,即是開放的,則返回一個帶有參加TSLD列表(從開始記錄中得出)的返回開放狀態。列表表明該事務是開放的并列出了其它參加的TSLD。如果一個開始記錄不存在,則操作320繼續到第二查詢324,其中檢查輔助轉換表172以看該表是否包括對于事務Tid的項。如果該表包括對于Tid的一個或多個項,表明該事務在進行中,則返回一個“開放”聲明。如果對于查詢324的回答是否定的,則操作320繼續到第三查詢326,其中檢查事務日志90以看對于特定事務的終止記錄是否存在。如果一個終止記錄存在,則返回一個“終止”聲明。如果對于查詢326的回答是否定的,則操作320繼續到第四查詢328,其中檢查事務日志90以看對于事務的提交記錄是否存在。如果一個提交記錄存在,則返回一個“提交”聲明。如果一個提交記錄不存在,則返回一個“未知”聲明,且存在320終止。圖10B是給出了根據本發明的一個優選實施方案,來自特定TSLD上的操作320的可能結果的狀態圖330。如圖330所示,一個特定事務Tid能夠在一個開放狀態332、一個被終止狀態334、一個被提交狀態336或一個未知狀態338中存在。如果對于一個事務Tid的主TSLD以“未知”來響應一個查詢狀態,而另一個非主TSLD以“開放”狀態來響應該查詢,則可以推斷出該事務已經被提交。這種情況發生在當該事務已經在主TSLD中成功執行,但在非主TSLD中未成功執行提交操作。圖11是給出了根據本發明的一個優選實施方案,包括在檢驗點存在340中的步驟的流程圖。雖然下面關于操作340的描述特定應用于TSLD28(圖2),但系統20或系統40中的所有TSLD基本上遵循與下面描述的在執行各自的檢驗點操作中的相同的步驟。檢驗點操作340將易失性存儲器70中的TSLD接口35中容納的值寫入磁盤62,其中值被永久存儲。最好是檢驗點操作340寫入預分配給該操作的磁盤62上的塊幀82e。最好是不將檢驗點數據寫入塊幀82e中相同的空間,但以一種交互方式寫入,從而先前的檢驗點數據不被立即寫入或擦除。檢驗點操作340以周期間隔將來自TSLD35的數據結構復制到磁盤62中,這樣在失敗事件中,TSLD28能夠快速恢復。可以在任何時間由TSLD28執行檢驗點操作340,但必須當在下一個可用塊幀88周圍沒有可用塊幀時執行。在初始步驟342中,TSLD接口35中的所有數據結構被鎖住,這樣TSLD28停止支持除檢驗點操作之外的操作。在第二步驟344中,檢驗點操作340讀取來自接口35的第一個可用塊幀86的值。塊幀86是從工作分配位圖174中確定的空閑的并被與最低的磁盤扇區地址相關的塊幀。在增加步驟346中,檢驗點數量84的值被增加,且被增加的值被讀取。在存儲步驟348a、348b、348c、348d和348e中,操作340將轉換表72、復制轉換表172、工作分配位圖174、第一個可用塊幀86、被增加的檢驗點數量84和事務狀態日志90寫入到塊幀32e中。在第一重賦值步驟350中,下一個可用塊幀88的值被賦值成為如步驟344中找到的第一個可用塊幀86的值,其下一個可用塊幀被用于一個隨后的移動前向存儲操作。在第二重賦值步驟352中,分配位圖74被賦值成為工作分配位圖174的值。然后操作340解鎖TSLD接口35中的被鎖住的數據結構并終止,于是TSLD28利用被更新的數據結構恢復操作。當檢驗點操作340運行于一個特定TSLD上時,TSLD停止其它操作。為了減小對于一個系統用戶的影響,可以在小時間段中執行操作340。在上述臨時專利扇區以及上述題為“EnhancedStableDiskStorage(增強固定磁盤存儲器)”的專利申請中,描述了基本上類似于操作340的檢驗點操作。此外,還詳細解釋了用于在小時間段中執行檢驗點操作以減小對系統用戶影響的方法。本領域中的技術人員能夠采用題為“EnhancedStableDiskStorage(增強固定磁盤存儲器)”的專利申請中的方法以在小時間段中執行操作340。圖12是給出了根據本發明的一個優選實施方案,包含在對于事務Tid的一個協調操作中的步驟的流程圖。這里假設由作為事務協調者的客戶22啟動,且假設參加該事務的TSLD是TSLD1,TSLD2,...TSLDm。在初始步驟362中,客戶22選擇參加的TSLD中的一個作為對于事務Tid的主TSLD工作。通過選擇帶有最低標識符或最不活動的TSLD或者任意地來進行該選擇。這里假設TSLD1是主TSLD(primTSLD)。在開始事務步驟364中,客戶22將開始操作260(圖7),Begin(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)提交給TSLD1,并且在第一等待步驟365中,對于一個來自TSLD1的關于開始操作已經被成功完成的確認等待一個預定時間段。如果沒有確認,則客戶22提交終止操作300,Abort(Tid;primTSLD,TSLD2,TSLD3...TSLDm)給TSLD1并終止該事務。如果客戶22接收到開始操作260已經被成功完成的確認,則在軟寫步驟366中,客戶22將一個或多個軟寫操作220(圖4),Soft-Write(Tid;primTSLD,i,contents)提交給參加的TSLD中的每一個。客戶22將下列數據提供給每個參加的TSLD事務標識Tid、主TSLD標識(TSLD1)、相關邏輯塊地址以及要被存儲的相關數據塊內容。在第二等待步驟368中,客戶22等待一個預定時同段以接收來自參加的TSLD中的每一個的關于每個軟寫操作被成功完成的肯定確認。這對于每個軟寫操作繼續。如果在預定時間段中,從所有參加的TSLD中都沒有接收到肯定確認,則在終止步驟370中,客戶22將終止操作300,Abort(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)提交給參加的TSLD中的每一個。如果主TSLD沒有能夠確認操作300已經被成功完成,則在等待對于每個完成確認的提交之后,客戶22進而又將一個吸附(sticky)終止操作(下面將解釋),StickyAbort(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)提交給參加的非主TSLD中的每一個一旦接收到一個確認,或如果所有參加的TSLD已經被查詢且沒有一個做出響應,則終止協調操作360。如果在預定時間段中,從所有參加的TSLD接收到了肯定確認,到在提交步驟372中,客戶22將提交操作280,Commit(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)提交給事務的主TSLD。如果主TSLD確認了該提交操作,然后操作被發送給參加的TSLD中的每一個。如果TSLD沒有能夠確認操作280已經被成功完成,則在等待對于每個完成確認的提交之后,客戶22進而又將一個吸附提交操作(下面將解釋),Stickycommit(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)提交給參加的非主TSLD中的每一個。一旦接收到一個確認,或如果所有參加的TSLD已經被查詢且沒有一個做出響應,則終止協調操作360。吸附提交操作基本上與提交操作相同,相應的吸附提交記錄基本上與提交記錄相同。吸附提交操作和記錄應用于非主TSLD。作為吸附提交操作的結果,一個吸附提交記錄被添加到非主TSLD的事務狀態日志上。不能將一個吸附提交記錄從一個非主TSLD的事務狀態日志上清除,除非由一個客戶明確地指示。上面的描述也應用于吸附終止操作和終止操作之間的關系,以及吸附終止記錄和終止記錄之間的關系。應當理解,協調操作360試圖提交或終止事務Tid,并在事務的參加TSLD中的至少一個上記錄操作的結果。圖13是給出了根據本發明的一個優選實施方案,包含在第一恢復操作373中的步驟的流程圖。在從諸如系統20或系統40中的服務器26這樣的存儲服務器故障中恢復之后,執行操作373。如下面詳細描述的,操作373要求掃描分配位圖74。(上面提到的題為“EnhancedStableDiskStorage(增強固定磁盤存儲器)”的專利申請給出了從一個非固定磁盤存儲器的故障中恢復的替代方法的詳細描述,本領域中的技術人員將能夠應用該描述使諸如服務器26的服務器從系統故障中恢復。該替代方法花費的時間是自從上次檢驗點以來被寫的塊的數量的線性函數。)在第一讀取步驟374中,在上次檢驗點操作340中已經被存儲到磁盤62上的分配位圖74的值被在TSLD接口35中讀回到分配位圖74和工作分配位圖174中。在第二讀取步驟375中,在上次檢驗點操作340中被存儲到磁盤62上的第一個可用塊幀86的值被讀回到第一個可用塊幀86和下一個可用塊幀88中。在第三讀取步驟376中,在上次檢驗點操作340中被存儲的轉換表72、輔助轉換表172、檢驗點數量84以及事務狀態日志90中的值,被在TSLD接口35中讀回到各自的數據結構中。在第四讀取步驟377中,存儲在由下一個可用塊幀88給出的塊幀地址中的塊被讀取。在更新步驟378中,當檢查TSLD接口35中的檢驗點數量84對應于對于每個被讀取的塊的被存儲檢驗點數量時,1.根據上次被讀取的塊(從步驟377開始)更新TSLD接口35中的所有相關數據結構。即重放當存儲塊幀時出現的TSLD操作。2.通過在分配位圖74中向前查找標記了一個可用塊幀的第一個比特,并在該塊幀中讀取塊,來定位要被存儲到的下一個塊幀。3.繼續步驟378a和378b,忽略由于故障扇區64而不能讀取的任何塊,直到已經在前向完成掃描分配位圖74為止。然后操作373終止。應當理解,利用“重放”自從上次檢驗點操作以來執行的TSLD操作這個過程,第一個恢復操作373基本上將TSLD接口35上的數據結構完全返回到它們故障之前的值,除了由不能被讀取的塊所引起的本地化錯誤之外。通過從上次檢驗點操作寫入磁盤62的一個或多個參數來實現該重放過程,以便建立自從上述操作后寫入的塊幀位置。圖14是給出了根據本發明的一個優選實施方案,包含在第二恢復操作380中的步驟的流程圖。操作380最好是在已經在一個這里假設是服務器26的被恢復的服務器上結束的操作373之后執行,以便確定開放事務的狀態。在恢復操作380的第一步驟382中,服務器26對于開始事務記錄掃描其事務狀態日志90,該記錄指示了其中TSLD28是主TSLD的開放事務。對于每個這樣的事務,在查詢步驟384中,TSLD28對于一個提交或終止記錄,檢查事務的每個參加的TSLD。在更新步驟386中,TSLD28根據步驟384的結果更新其事務日志90。然后第一恢復操作380終止。應當理解,通過執行操作380,TSLD在一個狀態中,在該狀態中,它能夠用更新信息響應來自包含在其中TSLD28是主TSLD的事務中的其它TSLD的查詢。圖15是給出了根據本發明的一個優選實施方案,包含在第三恢復操作390中的步驟的流程圖。至于恢復操作380,最好是由服務器26在從故障中恢復后,以及在執行了操作380之后執行恢復操作390。在第一步驟392中,服務器26掃描其如上所述被重建的輔助轉換表172,以查找看來是開放的事務。對于每個這樣的事務,服務器26執行下面的步驟。在查詢步驟394中,服務器26定位對應于特定事務的軟寫塊,并查詢其事務日志90以找到事務的狀態。如果事務日志90提供了事務的狀態,則服務器26按要求更新存儲器70中的數據結構并繼續下一個開放事務。如果事務日志90不能提供事務的狀態,則在第二查詢步驟396中,如事務的塊幀的尾部域214規定的事務的主TSLD被查詢。服務器26將對于主TSLD的查詢結果包含在TSLD接口35的數據結構中。當步驟392中找到的所有開放事務都已經通過步驟394和/或步驟396被處理后,操作390終止。圖16是給出了根據本發明的一個優選實施方案,包含在由客戶執行的事務完成操作400。典型地,這作為執行事務時客戶故障的結果。操作400最好是由系統20或系統40中的客戶在其試圖讀取一個特定事務中的特定塊幀時接收到一個開放事務錯誤返回時執行。(如上所述,例如在軟寫操作220的檢查步驟222中。)這里,假設客戶是客戶22,假設塊幀是TSLD28中的塊幀。開放事務錯誤指示塊幀64a正在參加一個開放事務。操作400使得一個開放事務的參加者能夠建立是否提交或終止該事務的一致意見,從而完成該事務。在第一步驟402中,客戶22在塊幀64a上執行軟讀操作240(圖5),即Soft-Read(i),并接收事務標識Tid以及主TSLD的標識。在第一查詢步驟404中,客戶22在主TSLD上執行查詢操作320(圖10A),即Query_State(Tid),并根據接收到的響應來工作。如果沒有響應,則由于主TSLD不在運行,客戶22不能夠完成該事務。在這種情況下,在等待步驟406中,客戶22等待主TSLD被發送到一個運行中的服務器。如果在第一響應步驟408中,主TSLD用一個“未知”聲明來響應,則客戶22在特定TSLD上執行提交操作280,即Commit(Tid;primTSLD,TSLD2,TSLD3,...TSLDm),從該TSLD上客戶接收開放事務錯誤信號,在這種情況下該特定TSLD是TSLD28。如果在第二響應步驟410中,主TSLD用一個“開放”聲明與參加該事務的其它TSLD的列表一起來響應,則在第二查詢步驟412中,客戶22進而又在參加的TSLD中的每一個上執行查詢操作320。如果從參加的TSLD中的任何一個接收到一個明確的響應,即“提交”或“終止”回答,則在第三響應步驟414中,客戶22在剩余的參加的TSLD上執行各自的提交操作280或終止操作300,即Abort(Tid;primTSLD,TSLD2,TSLD3,...TSLDm)。如果在第二響應步驟412中,所有參加的TSLD返回一個“開放”回答,則在第四響應步驟416中,萬一在自從操作400開始后有一個變化,客戶22再次設法讀取初始的塊幀,即塊幀64a。如果沒有變化,則客戶22在參加的TSLD上執行終止操作300。如果在第二響應步驟412中,參加的TSLD中的一個沒有響應,則在第五響應步驟418中,客戶22等待來自特定TSLD的響應,因為可能特定的未響應的TSLD有所要求的回答。在步驟406、408、414、416或418之后,操作400終止。應當理解,在TSLD28可訪問的所有時間中,TSLS28的一個特定塊幀82或者不參加一個事務,或者參加,以便事務表72會標記該參加。相同的情況應用于系統20或系統40中其它可訪問的TSLD和它們各自的轉換表。這樣,在事務完成操作400中,客戶22能夠讀取一個TSLD上的塊幀的塊內容以及另一個TSLD上的塊幀的塊內容,這樣系統20或系統40顯得不一致。不過,即使在這種情況下,客戶也知道系統的狀態并能夠得出關于任何未完成事務的狀態。為了最小化事務狀態日志90的尺寸,當不再需要記錄時,需要將記錄從日志中清除。如上所述,在主TSLD中,每個開始事務記錄被一個提交記錄或一個終止記錄所代替。在預定的時間間隔之后,在一個主TSLD上的提交記錄能夠被清除,因為不再需要它們了。(如上所述,如果已知一個事務在一個非主TSLD上是開放的,并且主TSLD當被查詢時,用“未知”來響應,則假設事務已經提交)。一旦主TSLD已經確認相關事務的所有參加的TSLD都知道事務的狀態,則在主TSLD上的終止記錄可以被清除。一旦對于事務的主TSLD已經查詢了關于該事務的一個非主TSLD,則該非主TSLD就能夠清除一個特定事務的提交或終止記錄,因為在進行查詢時,主TSLD記錄了事務的狀態。因此最最好是,在一個系統內的TSLD如上所述地進行協調,以將不需要的事務記錄從事務狀態日志90中清除。應當理解,盡管系統20和系統40使用了多個TSLD和管理這些TSLD的多個服務器,但本發明的原則也適用于管理一個TSLD的一個服務器。此外,應當理解,當多個并發事務在一個或多個TSLD上被執行時,本發明的原則適用于所述多個并發數據事務的恢復和完成,因為這些多個事務基本上是互相獨立記錄和恢復的。還應當理解,本發明的范圍包括除了上面描述的用于在服務器的一個故障之后,從連續數據塊中恢復數據的方法之外的方法,其中指示一個連續數據塊的位置的一個或多個參數被寫入一個存儲器設備。這些方法的例子在臨時專利申請60/176507和題為“EnhancedStableDiskStorage(增強固定磁盤存儲器)”中被描述。還應當理解,本發明的優選實施方案被作為計算機軟件產品而提供。這樣一種產品可以作為一個電子數據傳輸或者以諸如CD-ROM這樣的計算機可讀介質上的可觸摸形式或者兩種形式的混合來提供。因此,應當理解,上述優選實施方案是利用實例來引用的,并且本發明不限于被特別示出以及上面所描述的內容。而是,本發明的范圍包括上面描述的各種特征的組合或子組合,在閱讀了前面描述的先驗技術中未公開的描述之后,本領域的技術人員可以做出本發明的各種變化和修改。權利要求1.用于支持數據事務的設備包括至少一個存儲器設備,用來接收作為連續數據塊的數據以在其中各自的物理位置存儲;以及控制電路,被配置當寫入至少一個存儲器設備時,將連續數據塊與至少一些數據塊以及指示了在連續數據塊中后來的數據塊的物理位置的參數一起傳送到至少一個存儲器設備,并轉換數據的狀態以利用至少一個參數來完成數據事務。2.如權利要求1的設備,其中控制電路包括將控制電路連接到至少一個存儲器裝置的至少一條通信鏈路,其中控制電路通過該至少一條鏈路管理至少一個存儲器設備。3.如權利要求1的設備,包括將數據傳送到控制電路并被與之相連的數據傳輸網絡。4.如權利要求3的設備,其中數據傳輸網絡被連接到至少一個存儲器設備,并將數據傳送到該至少一個存儲器設備,其中控制電路通過該數據傳輸網絡管理至少一個存儲器設備。5.如權利要求1的設備,包括將數據傳送到控制電路的一個客戶。6.如權利要求1的設備,其中控制電路包括至少一個易失性存儲器,用來存儲含有指示了至少一些數據塊的一個或多個特性的數據的一個或多個數據結構,該至少一些數據塊中的至少一些由控制電路寫入至少一個存儲器設備,以便該至少一個易失性存儲器的內容可以從存儲在該至少一個存儲器設備中的一個或多個數據結構中的至少一些數據中再生。7.如權利要求6的設備,其中數據結構中的一個包括一個轉換表,用來將連續數據塊的邏輯塊地址映射到各自的物理地址,并標記其中的哪個數據塊當前正在參加一個開放事務。8.如權利要求7的設備,其中數據結構中的一個包括一個輔助轉換表,用來對于每個各自的開放數據事務,將與一個開放事務相關的邏輯塊地址映射到數據事務開始之前存在的連續數據塊的各自的物理地址,并映射到該開放數據事務的一個標識。9.如權利要求7的設備,其中控制電路將各自的邏輯塊地址寫入連續數據塊。10.如權利要求7的設備,其中控制電路將數據事務的標識寫入連續數據塊。11.如權利要求7的設備,其中控制電路將數據事務的狀態的記錄器的標識寫入連續數據塊。12.如權利要求6的設備,其中數據結構中的一個包括一個映射連續數據塊中的每一個的可用性的分配位圖。13.如權利要求6的設備,其中數據結構中的一個包括一個連續數據塊中的下一個可用數據塊的位置的指針值。14.如權利要求6的設備,其中數據結構中的一個包括連續數據塊中的第一可用數據塊的位置的指針值。15.如權利要求6的設備,其中至少一個存儲器設備包括有一個磁頭的磁盤,并且其中控制電路在磁頭以單方向在磁盤表明上的一系列掃描中,將數據塊寫入磁盤。16.如權利要求15的設備,其中一系列掃描中的每一個有一個檢驗點數量,并且其中數據結構中的一個包括指示了當前檢驗點數量的值。17.如權利要求15的設備,其中數據結構中的一個包括一個工作分配位圖,用來在磁頭的一個或多個掃描完成時,存儲連續數據塊中的每一個的可用性。18.如權利要求15的設備,其中控制電路在磁頭的一個或多個掃描完成時,將一個或多個數據結構中的至少一些數據寫入至少一個存儲器設備。19.如權利要求6的設備,其中數據結構中的一個包括一個用來存儲數據事務中的至少一個記錄的事務狀態日志,其中至少一個記錄包括數據事務的標識以及參加該數據事務的至少一個存儲器設備的標識,并且其中至少一個記錄包括由下列內容組成的一組記錄中的至少一個開始事務、提交事務以及終止事務,它們分別記錄事務已經開始、已經被提交和已經終止。20.如權利要求1的設備,其中控制電路將一個尾部寫入連續數據塊,該尾部包括指示了每個數據塊的使用的一個或多個數據域。21.如權利要求20的設備,其中一個或多個數據域包括數據事務的標識以及數據事務記錄器的標識,其中數據事務的記錄器包括至少一個存儲器設備中的一個。22.如權利要求20的設備,其中一個或多個數據域包括數據塊的一個邏輯地址。23.如權利要求20的設備,其中一個或多個數據域包括指示了數據事務狀態的標記。24.如權利要求1的設備,包括控制至少一個存儲器設備的磁盤控制器,其中磁盤控制器能夠從由控制電路寫入至少一個存儲器設備的數據中恢復一個易失性存儲器的內容。25.如權利要求1的設備,其中至少一個參數包括多個參數。26.如權利要求1的設備,其中數據事務包括多個并發數據事務。27.如權利要求1的設備,其中至少一個存儲器設備包括由一個服務器管理的磁盤。28.如權利要求1的設備,其中至少一個存儲器設備包括多個存儲器設備。29.如權利要求1的設備,其中至少一個參數包括記錄數據事務的一個或多個狀態的事務狀態日志。30.如權利要求1的設備,其中至少一個參數包括記錄數據事務的一個或多個狀態的分布式事務狀態日志的至少一部分。31.如權利要求1的設備,其中至少一個存儲器設備被改為移動的,以便由其它控制電路操作以恢復存儲在至少一個存儲器設備上的信息。32.一種用來執行一個數據事務的方法,包括在至少一個存儲器設備中接收作為連續數據塊的數據、至少一些數據塊中的每一個以及指示了在連續數據塊中一個后來數據塊的物理位置的至少一個參數;以及響應于至少一個參數,轉換至少一個存儲器設備中的數據的狀態,以完成該數據事務。33.如權利要求32的方法,其中至少一個參數包括多個參數。34.如權利要求32的方法,其中在至少一個存儲器設備中接收數據包括通過一個數據傳輸網絡將數據傳送到至少一個存儲器設備。35.如權利要求34的方法,其中傳送數據包括將至少一個存儲器設備連接到數據傳輸網絡。36.如權利要求34的方法,其中傳送數據包括通過控制電路將至少一個存儲器設備連接到數據傳輸網絡;以及將控制電路連接到數據傳輸網絡。37.如權利要求32的方法,其中接收數據包括從客戶接收數據。38.如權利要求32的方法,包括在至少一個易失性存儲器中存儲含有指示了至少一些數據塊的一個或多個特性的數據的一個或多個數據結構,并將數據結構中的至少一些數據寫入至少一個存儲器設備,以便至少一個易失性存儲器中的內容可以從存儲在至少一個存儲器設備中的一個或多個數據結構中的至少一些數據中再生。39.如權利要求38的方法,其中存儲一個或多個數據結構包括存儲一個轉換表,用來將連續數據塊的邏輯塊地址映射到各自的物理地址,并標記其中的哪個數據塊當前正在參加一個開放數據事務。40.如權利要求39的方法,其中存儲一個或多個數據結構包括存儲一個輔助轉換表,用來對于每個各自的開放數據事務,將與該開放數據事務相關的邏輯塊地址映射到在該數據事務開始之前存在的連續數據塊的各自的物理地址,并映射到該開放數據事務的標識。41.如權利要求39的方法,其中接收數據包括將各自的邏輯地址寫入連續數據塊。42.如權利要求39的方法,包括使用轉換表定位一個特定數據塊,以從該特定數據塊中讀取數據。43.如權利要求38的方法,其中存儲一個或多個數據結構包括存儲一個指示了連續數據塊中的每一個的可用性的分配位圖。44.如權利要求38的方法,其中將至少一些數據寫入至少一個存儲器設備包括使用下列步驟將數據寫入連續數據塊中的一個掃描一個或多個數據結構以確定至少一個存儲器設備中的一個可用數據塊的物理地址;將數據和一個或多個數據結構的至少一些內容寫入物理位置;以及響應于該被確定的物理位置,更新一個或多個數據結構。45.如權利要求44的方法,其中掃描一個或多個數據結構包括檢查一個邏輯塊地址是否包含在一個開放事務中。46.如權利要求44的方法,其中寫入數據和一個或多個數據結構中的至少一些內容包括步驟寫入對應于一個軟寫操作的值;以及寫入作為一個事務狀態記錄器的至少一個存儲器設備中的一個的標識,以執行一個臨時寫操作。47.如權利要求44的方法,其中寫入數據和一個或多個數據結構中的至少一些內容包括寫入對應于一個開始操作的值,并且其中更新一個或多個數據結構包括寫入一個包括事務標識和至少一個存儲器設備的標識的開始記錄,以執行該開始操作。48.如權利要求44的方法,其中寫入數據和一個或多個數據結構中的至少一些內容包括寫入對應于一個提交操作的值,并且其中更新一個或多個數據結構包括清除指示了事務的開放狀態的標記;寫入一個包括事務標識和至少一個存儲器設備的標識的提交記錄,以執行該提交操作;以及更新一個事務狀態日志。49.如權利要求44的方法,其中寫入數據和一個或多個數據結構中的至少一些內容包括寫入對應于一個終止操作的值,并且其中更新一個或多個數據結構包括清除指示了事務的開放狀態的標記;寫入包括事務標識和至少一個存儲器設備標識的終止記錄,以執行該終止操作;以及更新一個事務狀態日志。50.如權利要求38的方法,包括掃描一個或多個數據結構以確定數據事務的狀態。51.如權利要求38的方法,包括執行一個包括下列步驟的檢驗點操作鎖住一個或多個數據結構;將一個或多個數據結構的內容寫入至少一個存儲器設備的檢驗點位置;以及響應于將內容寫入至少一個存儲器設備,而改變一個或多個數據結構的至少一些內容。52.如權利要求51的方法,包括執行一個包括下列步驟的恢復操作從至少一個存儲器設備中讀取一個或多個數據結構的內容;以及響應于上述內容,而更新至少一個易失性存儲器中的一個或多個數據結構。53.如權利要求52的方法,其中執行恢復操作包括讀取自從執行檢驗點操作以來寫入的所有一個或多個數據結構的內容。54.如權利要求52的方法,其中執行恢復操作包括讀取自從執行檢驗點操作以來寫入的所有一個或多個數據結構的內容,所用時間基本上不大于寫入自從執行檢驗點操作以來寫入的所有一個或多個數據結構所花費的時間。55.如權利要求52的方法,其中執行恢復操作包括確定一個開放事務的狀態并使得開放事務的一個或多個客戶能夠查詢該狀態并確定是否提交或終止該開放事務。56.如權利要求38的方法,包括執行包括下列步驟的事務協調操作選擇至少一個存儲器設備中的一個作為數據事務狀態的記錄器;將一個開始事務操作提交給記錄器;為一個來自于至少一個存儲器設備的指示了數據事務狀態的響應,而等待一個預定時間;基于該響應,將一個或多個軟寫操作提交給至少一個存儲器設備;以及基于該響應,確定是否通過發布一個提交或終止事務操作來提交或終止該事務。57.如權利要求38的方法,包括執行包括下列步驟的事務完成操作從含有指示了數據事務狀態的內容的至少一個存儲器設備中讀取連續數據塊的第一組;以及響應于該連續數據塊的第一組的內容,將連續數據塊的第二組寫入至少一個存儲器設備并將一組一個或多個數據結構存儲到至少一個易失性存儲器。58.如權利要求32的方法,其中數據事務包括多個并發數據事務。59.如權利要求32的方法,其中至少一個存儲器設備包括由一個服務器管理的磁盤。60.如權利要求32的方法,其中至少一個存儲器設備包括多個存儲器設備。61.用于電子數據存儲的設備包括一個存儲器設備,用來接收連續數據塊以存儲到其中各自的物理地址;以及控制電路,被配置當寫入存儲器設備時,將連續數據塊與至少一些數據塊以及指示了連續數據塊中后來數據塊的物理地址的一個或多個參數寫入存儲器設備。62.如權利要求61的設備,其中一個或多個參數包括多個參數。63.一種用于電子數據存儲的方法包括提供連續數據塊以存儲到一個存儲器設備的各自物理地址;為連續數據塊中的至少一些數據塊中的每一個確定指示了連續數據塊中后來數據塊的物理位置的一個或多個參數;以及在存儲器設備中存儲連續數據塊以及一個或多個參數。64.如權利要求63的方法,其中一個或多個參數包括多個參數。65.用于執行數據事務的一種計算機軟件產品,包括有其中記錄了程序指令的計算機可讀介質,這些指令在被計算機讀取時,會引起計算機在至少一個存儲器設備中接收作為連續數據塊的數據、至少一些數據塊的每一個以及指示了在連續數據塊中后來數據塊的物理位置的至少一個參數,并響應于該至少一個參數,而轉換在至少一個存儲器設備中的數據狀態,以完成該數據事務。66.用于電子數據存儲的一種計算機軟件產品,包括有其中記錄了程序指令的計算機可讀介質,這些指令在被計算機讀取時,會引起計算機提供連續數據塊以存儲到存儲器設備中各自的物理位置,并為連續數據塊中的至少一些數據塊中的每一個確定指示了在連續數據塊中后來數據塊的物理位置的一個或多個參數,并將連續數據塊和一個或多個參數存儲到存儲器設備。全文摘要用來執行數據事務的設備,包括至少一個存儲器設備,用來接收作為連續數據塊的數據以存儲到其中各自的物理位置,還包括控制電路。該控制電路被配置當寫入至少一個存儲器設備時,將連續數據塊、至少一些數據塊和指示了數據事務標識的參數、事務狀態記錄器的標識以及連續數據塊中后來數據塊的位置一起傳送到至少一個存儲器設備。該控制電路還被配置來利用一些指示參數,轉換數據狀態以完成(提交或終止)數據事務。在事務完成(提交或終止)之前設備故障的情況下,設備促使利用存儲在數據塊中的數據完成恢復。文檔編號G06F13/00GK1365056SQ0112581公開日2002年8月21日申請日期2001年8月29日優先權日2000年8月30日發明者J·薩特蘭,I·戈德,D·舍恩瓦德申請人:國際商業機器公司