国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于支持?jǐn)?shù)據(jù)事務(wù)的設(shè)備和方法

      文檔序號(hào):6562331閱讀:216來(lái)源:國(guó)知局

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