TWI492077B - 檔案系統的檢查點 - Google Patents

檔案系統的檢查點 Download PDF

Info

Publication number
TWI492077B
TWI492077B TW100116194A TW100116194A TWI492077B TW I492077 B TWI492077 B TW I492077B TW 100116194 A TW100116194 A TW 100116194A TW 100116194 A TW100116194 A TW 100116194A TW I492077 B TWI492077 B TW I492077B
Authority
TW
Taiwan
Prior art keywords
checkpoint
data
storage
file system
write
Prior art date
Application number
TW100116194A
Other languages
English (en)
Other versions
TW201202981A (en
Inventor
卡吉爾強納森M
米勒湯瑪斯J
提普頓威廉R
Original Assignee
微軟公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 微軟公司 filed Critical 微軟公司
Publication of TW201202981A publication Critical patent/TW201202981A/zh
Application granted granted Critical
Publication of TWI492077B publication Critical patent/TWI492077B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

檔案系統的檢查點
本發明涉及檔案系統的檢查點。
在將資料寫入儲存器裝置時,可能發生停電或系統失效。當發生時,資料可能遺失或變得不一致。例如,如果系統在帳戶持有人從自動提款機(ATM)提款時失效,則該交易可能不公平地惠及銀行或帳戶持有人。如另一例,如果系統在涉及存取磁碟的漫長計算時失效,則可能要花很多時間重新計算。
本文請求之標的並未限於解決諸如上述缺點或僅在上述環境操作之實施例。相反地,本背景僅係提供以闡述可實行本文一些實施例的一個範例技術領域。
簡言之,本文描述之標的之態樣係關於檔案系統的檢查點。在各式態樣中,檔案系統之更新係組織為檢查點儲存區。當需要檢查點時,後續更新被導向另一檢查點儲存區(bucket)。在全域表已因目前的檢查點儲存器中的更新而被更新後,建立全域表的邏輯副本。此邏輯副本係儲存為檢查點資料的一部份。為幫助復原,檢查點管理器在將最終的檢查點資料寫入儲存器之前,可等到所有目前檢查點儲存區的更新皆已被寫入儲存器。此最終的檢查點資料可參照全域表的邏輯副本,並包含驗證碼以驗證檢查點資料是否正確。
本發明內容係提供以簡要地指明本標的之一些態樣,在以下的實施方式中,這些態樣更進一步地被描述。本發明內容並非意欲指明所請標的之關鍵或必要特徵,亦非意欲用以限制所請標的之範圍。
在本文中,術語「包含」及其變型係理解為開放式術語,表示「包含但不限於」。除非上下文另有清楚指示,術語「或」係理解為「及/或」。術語「以……為基礎」係理解為「至少一部份以……為基礎」。術語「一個實施例」及「一實施例」係理解為「至少一個實施例」。術語「另一實施例」係理解為「至少一個其他實施例」。下文可包含其他外顯或隱含之定義。
範例操作環境
第1圖圖示合適的電腦系統環境100之一例,本文所描述之標的可在該電腦系統環境上實施。電腦系統環境100僅係合適的電腦系統環境之一例,且並非意欲對本文所描述之標的之使用範圍或態樣功能提出任何限制。電腦系統環境100亦不應詮釋為具有關於電腦系統環境100中所圖示組件之任一者或其組合之任何依賴性與需求。
本文描述之標的之態樣可供操作於其他眾多一般目的或特殊目的之電腦系統環境或配置。可適用於此處所描述之標的之態樣的眾所周知的計算系統、環境或配置之例子包含:個人電腦、伺服器電腦、手持裝置或膝上型電腦裝置、多處理器系統、以微控制器為基礎之系統、機上盒、可程式化之消費性電子產品、網路個人電腦、迷你電腦、主機電腦、個人數位助理機(PDA)、遊戲裝置、印表機、電器,包含:機上盒、媒體中心或其他電器,汽車之嵌入式或附著式電腦裝置、其他行動裝置、包含以上任何系統或裝置之分散式計算環境,及其類似物。
本文描述之標的之態樣可用電腦可執行指令之一般情境(context)來描述,諸如電腦執行之程式模組。一般而言,程式模組包含常用程式、程式、物件、資料結構等等,它們執行特殊任務或實施特殊抽象資料類型。此處描述之標的之態樣亦可在分散式計算環境中實行,在該分散式計算環境中,任務由遠端處理裝置執行,遠端處理係經通信網路連接。在分散式計算環境中,程式模組可定位於本機及遠端電腦儲存器媒體,包含記憶體儲存器裝置。
參考第1圖,本圖係實施本文描述之標的之態樣之一範例系統,本圖包含採電腦110形式之一般目的之計算裝置。電腦可包含任何可執行指令之電子設備。電腦110之組件可包含處理單元120、系統記憶體130、系統匯流排121,系統匯流排121耦合各樣系統組件,包含處理單元120之系統記憶體。系統匯流排121可為幾種匯流排結構類性之任一者,包含記憶體匯流排或記憶體控制器、週邊匯流排,及使用各樣匯流排架構之任一者之局部匯流排。以實例說明之,但非限制,此種架構包含工業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增強型工業標準架構(EISA)匯流排、視訊電子標準協會(VESA)局部匯流排、週邊組件互連(PCI)匯流排,PCI匯流排亦被稱為Mezzanine匯流排、週邊組件互連延伸(PCI-X)匯流排、進階圖形埠(AGP),以及PCI Express標準(PCIe)。
電腦110通常包含各樣電腦可讀取媒體。電腦可讀取媒體可為任何可獲取之媒體,此媒體可藉由電腦100存取,並包含揮發性及非揮發性媒體,以及可移除及不可移除媒體。以實例說明之,但非限制,電腦可讀取媒體可包含電腦儲存媒體及通信媒體。
電腦儲存媒體包含揮發性及非揮發性媒體,以及可移除及不可移除媒體,電腦儲存媒體以以任何方法或技術實施以儲存資訊,諸如電腦可讀取指令、資料結構、程式模組,或其他資料。電腦儲存媒體包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可規劃唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、光碟機(CD-ROM)、數位影音多用途光碟機(DVD)或其他光碟儲存器、磁卡匣、磁帶、磁碟儲存器或其他磁性儲存器裝置,或其他可用以儲存所要資訊及藉由電腦110存取之任何媒體。
通信媒體通常包含電腦可讀取指令、資料結構、程式模組,或其他在模組化資料信號內的資料,諸如載波或其他傳輸機制,且包含任何資料傳送媒體。術語「模組化資料信號」表示一信號,該信號之一或多個特徵係經設置或改變以將資訊編碼在信號中。以實例說明之,但非限制,通信媒體包含有線媒體(諸如有線網路或直接有線連接),及包含無線媒體諸如聲訊(acoustic),射頻、紅外線及其他無線媒體。上述之任何組合應可包含在電腦可讀取媒體之範圍內。
系統記憶體130包含採揮發性及/或非揮發性記憶體形式之電腦儲存器媒體,諸如唯讀記憶體(ROM)131及隨機存取記憶體(RAM)132。基本輸出入系統(BOIS)133通常係儲存於ROM 131中,BIOS含有在電腦110中諸如在開機時幫助於元件之間轉移資訊之基本常用程式。RAM 132通常含有藉由處理單元120可立即存取及/或正被操作之資料及/或程式模組。以實例說明之,但非限制,第1圖圖示作業系統134、應用程式135、其他程式模組136及程式資料137。
電腦110亦可包含其他可移除/不可移除、揮發性/非揮發性之電腦儲存器媒體。僅以實例說明之,第1圖圖示可讀寫不可移除及非揮發性之磁性媒體之硬碟機141、可讀寫可移除及非揮發性之磁碟152之磁碟機151,及可讀寫不可移除及非揮發性之光碟156(諸如光碟或其他光學媒體)之光碟機155。其他可移除/不可移除、揮發性/非揮發性之可用於範例操作環境之電腦儲存器媒體包含:磁帶卡匣、快閃記憶體卡、數位影音多用途光碟、其他光碟、數位視訊磁帶、固態RAM、固態ROM及其類似物。硬碟機141通常經由不可移除之記憶體介面(諸如介面140)連接至系統匯流排121,且磁碟機151及光碟機155通常藉由可移除之記憶體介面(諸如介面150)連接至系統匯流排121。
如上述所討論且圖示在第1圖中的磁碟機和與磁碟機相關聯之儲存器媒體,為電腦可讀取指令、資料結構、程式模組及其他用在電腦110的資料提供儲存器。例如,在第1圖中,硬碟機141係圖示為儲存作業系統144、應用程式145、其他程式模組146及程式資料147。注意該等組件可與作業系統134、應用程式135、其他程式模組136及程式資料137相同或相異。本文給予作業系統144、應用程式145、其他程式模組146及程式資料147不同元件符號,以闡述它們至少係相異之副本。
使用者可經由輸入裝置輸入命令和資訊至電腦110中,輸入裝置諸如鍵盤162及指標裝置161,指標裝置通常被稱為滑鼠、軌跡球或觸控板。其他輸入裝置(未圖示)可包含麥克風、搖桿、手柄、衛星碟形(satellite dish)、掃描器、觸控式螢幕、手寫板或其類似物。該等輸入裝置及其他輸入裝置常經由使用者輸入介面160連接至處理單元120,使用者輸入介面係耦合至系統匯流排,但該等輸入裝置及其他輸入裝置可藉由其他介面及匯流排結構連接,諸如平行埠、遊戲埠或通用串列匯流排(USB)。
監視器191或他種顯示裝置亦係經由諸如視訊介面190之介面連接至系統匯流排121。除監視器之外,電腦亦可包含其他週邊輸出裝置,諸如揚聲器197和印表機196,它們可經由輸出週邊介面195連接。
電腦110可在網路環境中操作,網路環境係利用使用邏輯連接連接至一或多個遠端電腦,諸如遠端電腦180。遠端電腦180可為個人電腦、伺服器、路由器、網路個人電腦、同級點裝置(peer device)或其他共用網路節點,且儘管僅有一記憶體儲存器裝置181已圖示於第1圖中,遠端電腦180通常包含許多或所有以上描述之關於電腦110之元件。第1圖中描述之邏輯連接包含區域網路(LAN)171及廣域網路(WAN)173,但亦可包含其他網路。此種網路環境在辦公室、企業級電腦網路、內部網路及網際網路中係為普遍。
當在LAN網路環境中使用時,電腦110經由網路介面或介面卡170連接至LAN171。當在WAN網路環境中使用時,電腦110可包含數據機172或其他用以建立WAN通信之方法,諸如網際網路。數據機172可為內建或外接,可經由使用者輸入介面160或其他適合之機制連結至系統匯流排121。在網路環境中,被描述為關於電腦110或關於電腦110之部份之程式模組可被儲存在遠端記憶體儲存器裝置中。以實例說明之,但非限制,第1圖圖示遠端應用程式185,遠端應用程式185位於記憶體裝置181。應理解,圖示之網路連結係為範例,且可使用在電腦之間建立通信連結之其他方法。
檢查點設置
如之前所述,在將資料寫入儲存器裝置時,可能發生停電或系統失效。這可能使儲存在儲存器裝置中的資料處於不一致的狀態。為了解決此一問題和其他問題,可將檢查點寫入儲存器裝置。
第2圖為表示系統組件之範例配置之方塊圖,本文描述之標的之態樣可在該系統中操作。第2圖所圖示之組件係為範例,且並非意圖總括可能需要或包含的組件。在其他實施例中,與第2圖所一起描述之組件及/或功能可包含於其他組件(圖示或未圖示)內,或置於次組件(subcomponent)中,而不偏離本文描述標的之態樣之精神或範圍。在一些實施例中,與第2圖所一起描述之組件及/或功能可分佈於多個裝置。
見第2圖,系統205可包含一或多個應用210、應用程式介面215、檔案系統組件220、儲存裝置(store)250、通信機制255及其他組件(未圖示)。系統205可包含一或多個計算裝置。此種裝置可包含,例如,個人電腦、伺服器電腦、手持裝置或膝上型電腦裝置、多處理器系統、以微控制器為基礎之系統、機上盒、可程式化之消費性電子產品、網路個人電腦、迷你電腦、主機電腦、手機、個人數位助理機(PDA)、遊戲裝置、印表機、電器,包含:機上盒、媒體中心或其他電器,汽車之嵌入式或附著式電腦裝置、其他行動裝置、包含以上任何系統或裝置之分散式計算環境,及其類似物。
在系統205包含單一裝置的情況下,可配置成用以作為系統205之範例裝置包含第1圖之電腦110。在系統205包含多個裝置的情況下,多個裝置之每一者可包含相似或相異配置之第1圖之電腦110。
檔案系統組件220可包含復原管理器225、檢查點管理器230、輸入/輸出管理器235、寫入計畫管理器237及其他組件(未圖示)。在本文中,術語組件係理解為包含全部或部份裝置、一或多個軟體模組或其部份之集合、一或多個軟體模組或其部份之組合,及一或多個軟體模組或其部份,及其類似物。
通信機制255使系統205得以與其他實體(entity)通信。例如,通信機制255可使系統205得以與遠端主機上之應用通信。通信機制255可為網路介面或介面卡170、數據機172,或其他與第1圖所一起描述之用以建立通信之任何機制。
儲存裝置250為可用以提供資料存取的任何儲存器媒體。儲存裝置可包含揮發性記憶體(例如,快取記憶體)及非揮發性記憶體(例如,持久儲存器)。術語資料係廣泛地理解為包含可藉由一或多個電腦儲存器元件所表示之任何物件。在揮發性或非揮發性記憶體中,資料可邏輯地以一連串的1及0表示。在具有非二進制儲存器媒體的電腦中,資料可根據儲存器媒體之容量以表示。資料可組織為不同類型的資料結構,包含簡單資料類型(諸如數字、字母、及其類似物)、階層資料類型、連結資料類型、或其他相關資料類型、包含多個其他資料結構或簡單資料類型之資料結構,及其類似物。一些資料之例子包含資訊、程式碼、程式狀態、程式資料、其他資料及其類似物。
儲存裝置250可包含硬碟儲存器、其他非揮發性儲存器、揮發性記憶體(諸如RAM)、其他儲存器、上述之一些組合及其類似物,且儲存裝置250可分佈於多個裝置。儲存裝置250可為外接、內建、或包含外接及內建於系統205之組件。
儲存裝置250可經由儲存器控制器240存取。在本文中,存取可包含讀取資料、寫入資料、刪除資料、更新資料、包含上述之兩個或多個之組合,及其類似物。儲存器控制器240可接收存取儲存裝置250之請求,且可適當地滿足此請求。儲存器控制器240可配置成:不保證會依照接收資料的順序將資料寫入儲存裝置250。此外,儲存器控制器240可在儲存器控制器240已真正將資料寫入儲存裝置250之非揮發性記憶體之前,顯示儲存器控制器240已寫入所請求之資料。
一或多個應用210包含可涉及建立資料、刪除資料或更新資料之任何程序。此種程序可在使用者模式或核心模式下執行。本文所用之術語「程序」及其變型可包含一或多個傳統程序、執行緒、組件、函式庫、執行工作之物件,及其類似物。程序可在硬體、軟體或硬體及軟體之組合中實施。然而,在一實施例中,程序係被稱為可執行或用以執行一動作(action)之任何機制。程序可分佈於多個裝置或單一裝置。一或多個應用210可使系統請求(例如,經由功能/方法呼叫)經由API 215至輸入/輸出管理器235。
輸入/輸出管理器235可決定要對儲存器控制器240(或其他一些中間組件)發出何輸入/輸出請求。當與檔案系統請求相關聯之操作進行、完成或失效時,輸入/輸出管理器235亦可將資料返回給一或多個應用210。當檔案系統請求涉及交易時,輸入/輸出管理器235可通知交易管理器(未圖示),使得交易管理器可適當地管理該交易。在一些實施例中,交易管理器之功能可包含在輸入/輸出管理器235之中。
檔案系統組件220在將檔案系統物件或關於檔案系統物件之中介資料寫入儲存裝置250時,可使用寫入時複製(copy on write)、就地寫入(write in place)、上述之組合及其類似方法。術語「檔案」可包含目錄、無子檔案(children)(例如,有時被認為是檔案的事物)之檔案系統物件、其他檔案系統物件及其類似物。
在寫入時複製之狀況下,在修改檔案之資料前,欲修改之資料之副本係被複製至另一位置。在就地寫入之狀況下,可就地修改檔案之資料,而不將原始資料複製至另一位置。寫入時複製及就地寫入之混合寫入方式(hybrid)可包含:對關於檔案之中介資料執行寫入時複製,而對包含於檔案中之資料執行就地寫入。
檔案系統之物件可在交易之情境中更新。交易係為一群操作,此等操作可藉由各樣性質所描述,包含,例如,不可分割的(atomic)、一致的、孤立的及持久的。在本文中,交易可至少藉由一致的性質來定義,且亦可藉由一或多個其他上述性質來定義。
一致的性質指的是關於一或多個檔案的資料之准許狀態。在交易開始前及交易完成後,檔案系統之檔案係處於准許狀態(儘管它們在交易時可能經過非准許狀態)。例如,銀行轉帳可採兩個操作為一組的方式實施:即,來自一帳戶之借方項及轉往另一帳戶之貸方項。在此例中,一致性可定義為:銀行及帳戶持有人之綜合帳戶結餘不變(例如,T=B+A,其中T不變、A為銀行結餘、B為帳戶持有人)。在本例中,欲實施一致性,僅需借貸操作為等量金額,且每一帳戶皆轉帳完成或皆未轉帳完成。
可寫入一檢查點以指示檔案系統之一致狀態。檢查點可包含一或多個驗證碼(例如,一或多個檢查校驗和(checksum)、雜湊(hash)或其他資料),驗證碼可用以決定檢查點及/或與檢查點相關聯之資料是否正確地寫入磁碟。當即將進行復原時,可搜尋最後寫入的檢查點。然後,檢查點之驗證碼可用以決定檢查點及/或與檢查點相關聯之資料是否正確地寫入磁碟。若否,可搜尋先前的檢查點並檢查該檢查點是否有效,直至找到一有效檢查點為止。一旦找到最新之有效檢查點,即可知曉檔案系統之最後的一致狀態。根據需要,可捨棄發生在此點之後的檔案系統操作,或可執行額外復原動作。
在一個實施例中,可將檔案系統之一物件表示為Dn ,其中n向系統指明此物件。檔案系統之物件係為串列化(serializable)(例如,可表示為儲存裝置250上之資料)及去串列化(de-serializable)。物件表將每一物件識別器與每一物件識別器在儲存裝置250上的位置相結關聯。
當Dn 首次在修改交易中更新後,係藉由查閱其在使用n的物件表中之位置以搜尋Dn 。為了在一例子中使用,Dn 在儲存裝置250上之儲存器位置稱為L1
然後,L1 之內容係由儲存裝置250讀取,物件可被去串列化(例如,將經串列化之格式轉換為物件之結構),且將被修改之物件之部份係被複製到主系統記憶體。更新係在記憶體中之部份(或該部份之副本)完成。連同被修改之記憶體部份,儲存裝置250上之一或多個新位置(稱此為L2 )係指定給經修改部份。
本文有時將主系統記憶體中的副本稱為物件之「邏輯副本」。物件之邏輯副本包含可用以表示物件之一或多個資料結構。邏輯上,邏輯副本係物件之複件。實質上,邏輯副本可包含可用以建立物件複件之資料(包含指向其他資料之指標)。例如,在一個實施中,邏輯副本可為物件真正的副本(逐位元複製)或資料結構,資料結構包含可用以建立物件之資料。
在另一實施中,未經修改之邏輯副本可包含一或多個參照至原始物件的指標。當邏輯副本經修改,邏輯副本中的指標可參照至新記憶體位置(例如,為邏輯副本之經改變部份),而其他指標可參照至原始物件之部份(例如,為邏輯副本之未經改變部份)。藉由使用指標,經修改之副本可使用經修改資料及原始物件之未經修改資料來構成。可執行建立邏輯副本以,例如,減少建立物件複件所需之儲存容量。
再者,儘管本文有時提及串列化及去串列化,並無意限制本文描述之標的之態樣於習慣上被認為是串列化及去串列化之事物。在一個實施例中,串列化版本及去串列化版本之每一位元可為完全相同。在另一實施例中,串列化版本之位元可採用與去串列化版本之位元所採用之不同格式及順序予以封包。的確,在一個實施例中,串列化及去串列化應理解為表示任何儲存及檢索資料之機制,此資料表示來自一儲存裝置之物件。其他機制,例如,可包含將物件之性質以文字格式寫入儲存裝置、將物件之性質在儲存裝置中以標記語言(markup language)編碼、將物件之性質及其他特徵儲存在儲存裝置中之其他方法,及其類似方法。
依照系統而定(例如,在交易處理後或一些其他時間),系統可將經修改之邏輯副本串列化,回到穩定媒體,但是在位置L2 上進行。將經修改之邏輯副本寫回新位置之意圖係稱為寫入計畫。寫入計畫可指明一或多個物件之任意數目之更新。寫入計畫可參照發生在多於一個交易的變化。多個寫入計畫可合併為單一的寫入計畫。
寫入計畫管理器237可涉及建立各樣更新之寫入計畫。當寫入計畫涉及多個檔案系統物件(例如,在交易情境中)時,寫入計畫管理器237可供操作以產生寫入計畫,該寫入計畫指示涉及交易之所有檔案系統物件之儲存器上的位置,以為檔案系統保持一致狀態。
當修改恰在檢查點之後發生時,稱為復原區塊(可在多個位置複製)之區塊(block)可修改為指向經修改之邏輯副本之起始處(例如,L2 )。在L2 之物件中之欄位(field)指向接下來要被寫入的位置。此欄位表示發生於檢查點之間的一連串寫入計畫中的一連結。
連同送出寫入邏輯副本的請求,可修改物件表。特別地,由物件之識別器編造索引之位置值可設置為經修改之邏輯副本之儲存器位置之數值(亦即,L2 )。此舉使得對於物件Dn 的後續查找可參照位置L2 (物件之新版本)。
如果交易修改不只一個物件,例如Di 及Dj ,則物件被認為是相互「不可分割地結合」,且被寫入一個寫入計畫中。寫入計畫可(例如,在連至相關物件之連結中)指定此關係。
任意數目之物件可以此種方式持續下去。物件表亦可週期性地如其他任何物件一樣,以同樣的方式被寫入儲存裝置250中。
連同送出將物件表寫入儲存裝置250的請求,刷新命令(flush command)亦可傳送至儲存器控制器240。刷新命令標示(instruct)儲存器控制器240將它的揮發性記憶體中所有尚未被寫入的資料,由該揮發性記憶體寫入儲存裝置250之非揮發性記憶體中。
檢查點可週期性地被寫入儲存裝置中,以下將更為詳細地敘述。可由儲存裝置250所儲存之檢查點記錄指示檢查點。檢查點可於任何時間被寫入,且可在刷新後變得穩定/持久。穩定/持久指的是儲存在儲存裝置之非揮發性記憶體中之檢查點。
在檢查點成為穩定/持久之後,任何舊的及未使用的物件副本(或其部份)可被再利用。在刷新完成之後,復原區塊接著指向一連串接下來的寫入計畫之起始處。在一個實施例中,復原區塊可將一連串接下來的寫入計畫之起始處指向物件表之新位置。
更具體的例子係連同第3圖一起描述,第3圖圖示本文描述之標的之態樣之方塊圖。如圖示,第3圖主記憶體305及儲存裝置250。直線307表示主記憶體305及儲存裝置250之間的分隔。直線307之上的物件係處於主記憶體中,而直線307之下的物件係處於儲存裝置250之揮發性或非揮發性記憶體諸中。
物件314~316係圖示於主記憶體305中。在實施中,物件314~316可分別為物件319~321之去串列化邏輯副本。物件319位於儲存裝置250上之位置1500,物件320位於儲存裝置250上之位置200,且物件321位於儲存裝置250上之位置800。
物件表310包含關鍵值對(key value pair),關鍵值對指示物件314~316在儲存裝置250上之位置。關鍵值對係使用物件314~316之識別器以編造索引。
當交易(例如,藉由將物件316改名為foo.txt)修改物件316時,一致性組件(例如,第2圖之一致性組件220)可為更新物件決定新的儲存器位置(例如,位置801)。若該物件係檔案,則在交易情境中更新檔案名稱亦可造成含有該檔案之目錄亦在該交易中被涉及。例如,當檔案名稱被改變,表示檔案之物件及表示目錄之物件皆可能需要在該交易中被涉及。在此狀況下,包含物件之目錄係以物件314表示,且經更新目錄(例如,物件318)之邏輯副本係以儲存裝置250中之物件323表示。又,表310已被邏輯地更新至表311,以指示經修改物件(亦即,物件317及318)之新儲存器位置(亦即,801及1000)。
在交易情境中,修改物件可影響另一物件,這可藉由,例如,輸入/輸出管理器或一些其他第2圖之組件以明確地指示或決定。
當兩個或更多物件涉及交易中之更新,則此等物件被認為是如前所述「不可分割地結合」。在復原操作中,除非所有交易情境中的物件改變都可在儲存裝置250中被找到,否則捨棄所有找到的改變。換言之,若找到其中一個物件之改變,旦並未找到另一個物件之改變,則捨棄該一個物件之改變。
在一個實施例中,為了不可分割地結合兩個或更多物件,指標可儲存於儲存裝置250中,或和儲存裝置250中的每一物件相關聯。指標可指示該交易中涉及之另一物件(或其部份)之儲存器位置。若該交易中未涉及額外物件,指標可指向「無用區塊(dead block)」或指示另一寫入計畫之「表頭(head)」物件之儲存器位置。此表頭物件可包含寫入計畫、寫入計畫之經修改物件(或其部份),或其類似物。
除了指向下一個儲存器位置的指標以外,資料亦可儲存於儲存裝置250中,以指示所指向物件之正確內容。例如,一雜湊可經儲存以指示所指向物件之正確內容。
在第3圖所圖示的一例子中,與物件322相關聯之指標可指向與物件323相關聯之儲存器位置。指標將兩個物件結合。若在復原時,未找到任一物件、或它們未含正確內容,則可捨棄尋獲物件所表示之改變。
由於儲存裝置250之性質,並無法保證何物件會先被寫入儲存裝置250之非揮發記憶體。若先寫入物件322,而未寫入物件323,則來自物件322之指標將指向可能含有假資料的儲存器位置。然而,藉由計算位於儲存器位置之資料之雜湊,並比對此雜湊及與物件322一起儲存之雜湊,位於位置1000之資料可能被偵測為含有無效資料。在此情況下,當復原時,復原管理器(例如,第2圖之復原管理器255)可捨棄物件322及323所代表之改變。
復原區塊330指向第一儲存器位置(此情況下為位置801),資料在第一儲存器位置處應係儲存於檢查點之後。復原區塊330亦可包含雜湊,或與雜湊相關聯,雜湊係使用儲存於第一儲存器位置之物件之正確資料來計算。
第4圖係大致上表示更新之概略圖,此等更新發生於依照本文描述之標的之態樣之檔案系統上。全域表405包含物件表,此物件表指示儲存裝置上之物件位置,且指示在儲存裝置250上已被分配、關於空間的分配資料。進行中之更新410亦被圖示。當更新接觸時間軸415,更新完成且無須修改任何全域表405。更新410之更新線之每一者可表示多個更新。在需要一起做出多個更新,以維持一致性的情況下,可在交易情境中做出更新。
為了使檢查點有效,需在一致狀態寫入檢查點。藉由寫入檔案系統上之副本,當更新物件時,經改變之物體之邏輯副本係儲存於檔案系統之新位置。此新位置藉由物件表之更新,以反應於物件表中。為了達成一致性,不可讓物件表反應尚未寫入磁碟的更新,因為該更新可能未在系統失效前完整地寫入磁碟。類似地,倘若物件表並未顯示更新,亦不可讓該更新完成並寫入磁碟,及讓其他和交易有關之更新完成。
為了確保一致性,需要在更新之中介資料反應於全域表中時,選擇檢查點。若表示更新410的每一條線指示一期間,在該期間內,全域表405可為該更新而被更新,則在時間520執行檢查點可能產生不一致狀態,而在時間525執行檢查點將產生一致狀態。
第5圖係圖示範例檢查點儲存區之方塊圖,檢查點儲存區係依照本文描述之標的之態樣。為解決上述問題及其他問題,每一更新可與檢查點儲存區(例如,儲存區515之一者)相關聯。檢查點儲存區係邏輯概念,該邏輯概念指示:在將檢查點之檢查點資料寫入磁碟之前,全域表需被更新,以至少將與檢查點儲存區相關更新之寫入計畫納入考量(account for)。換言之,儘管目前該更新可能或可能未寫入該等位置,仍須更新全域表,以將儲存區之更新之位置資訊及分配資訊納入考量。
可週期性地(例如,基於復原視窗之檢查點計時器到期時、已發生一定數量的更新之後、超過其他一些門檻值之後,及其類似物)決定產生檢查點。當發生時,檢查點管理器可更新資料(例如,資料結構510),該資料指示檢查點儲存區,以和後續更新相關聯。例如,檢查點管理器可獲得資料(例如,資料結構510)上之互斥型鎖定點(exclusive lock)(例如,鎖定點505),該資料指示目前的檢查點儲存區。當檢查點管理器獲得資料上之互斥型鎖定點之後,檢查點管理器可更新資料,以為後續更新指示一新的檢查點儲存區。所有的後續更新都與該新的檢查點儲存區相關聯,直至資料被改變以指示後續更新之另一檢查點儲存區。
檢查點儲存區可被認為是邏輯概念,且可以各樣方式實施。例如,在一個實施中,檢查點儲存區可採資料結構的方式實施,諸如含有指標之清單,指標指向與檢查點儲存區相關聯之每一更新。在另一例中,檢查點儲存區可採為每一更新所保存之資料的方式實施,其中該資料指示與更新相關之檢查點。在另一例中,可能無法知曉仍須將何者更行寫入磁碟,但知曉仍須寫入磁碟之更新數量。讀取/寫入鎖定點可被用在此例中。
上述例子並非意圖為實施檢查點儲存區之總括或詳盡方法。實際上,基於本文之教示,熟習此項技術者可辨別實施檢查點儲存區之其他許多機制。
在為後續更新(例如,藉由改變資料結構510)指示檢查點儲存區之後,檢查點管理器可等候目前的檢查點儲存區中、欲產生的所有更新的寫入計畫。當目前的檢查點儲存區之所有更新的寫入計畫產生後,檢查點管理器可為第4圖之全域表405拍攝快照(snapshot),並建立寫入計畫,以將全域表405之快照寫入至儲存裝置中。快照可藉由寫入時複製或其他機制以建立為全域表405之邏輯副本。
回到第4圖,當檢查點管理器等候目前在檢查點儲存區中、欲產生之所有更新時,以及當檢查點管理器產生寫入計畫以寫入檢查點時,可產生該檢查點後之更新之寫入計畫,並將該寫入計畫寫入磁碟。然而,當檢查點管理器試圖獲得全域表之快照時,檢查點管理器可能在建立快照前,獲得全域表405上之互斥型鎖定點。當檢查點管理器擁有互斥型鎖定點,仍可為其他更新產生寫入計畫,且該等寫入計畫甚至可儲存在儲存裝置上,但直到檢查點管理器已釋開其互斥型鎖定點之前,全域表(例如,物件表)可能未更新至指向該等寫入計畫。連同釋開該鎖定點,檢查點管理器可送出一信號(例如,引發事件),信號指示後續之檢查點已被致能(enable),以及後續更新可將全域表更新。
為了幫助復原,可將檢查點連同驗證碼寫入磁碟,以根據下列規則驗證檢查點:
1.等待由寫入計畫所指示、欲被寫入磁碟中的資料(例如,等待與檢查點相關聯、欲被寫入磁碟中之所有更新);
2.請求與檢查點相關聯之所有資料被寫入磁碟(例如,請求中介資料之邏輯副本被寫入磁碟);
3.發出刷新或等待刷新,並等待刷新已成功完成之應答(acknowledgement)。
4.產生經寫入磁碟之檢查點資料之驗證碼。在一個實施例中,驗證碼可為經寫入磁碟之資料之子集。例如,若檔案資料係儲存於樹狀結構(tree)中,樹狀結構的每一節點包含該節點之子節點之驗證碼,然後驗證碼可為樹狀結構之根節點。在此實施例中,驗證碼可連同根節點被寫入,且可用以驗證該驗證碼是否正確。
5.請求將驗證碼(及任何相關聯的資料,諸如根節點)寫入磁碟。注意在系統失效前,驗證碼實際上可能沒有到達磁碟。若沒有到達磁碟,則該檢查點並非一有效的檢查點。
根據該等規則,當復原時,若在儲存器上找到檢查點,且檢查點之內部驗證碼有效,則與檢查點相關聯之其他資料亦被預期已儲存在儲存器上且為有效。若驗證碼係包含在根節點之內,則根節點內之其他資料(例如,指向該樹狀結構中其他節點之指標)亦可用以尋找對應於該檢查點的其餘資料。
作為一替代方案,與檢查點相關聯之每一更新之驗證碼可被寫入儲存器。例如,檢查點可指示所有更新之區塊,該等區塊應該發生在該檢查點之前及先前的檢查點之後。對每一經指示的區塊而言,檢查點可儲存驗證碼,驗證碼指示該區塊之正確內容。在此替代方案中復原時,為驗證檢查點,每一區塊可就與該區塊相關的檢查點驗證碼進行驗證。
回到第2圖,在一個實施例中,檢查點管理器230可供操作以執行包含以下各動作:
1.決定第一檢查點,第一檢查點與更新檔案系統物件之請求相關聯。如前所述,檢查點管理器230可藉由以下方式做到這點:更新資料結構(例如,第5圖之資料結構510)以指向新的檢查點儲存區。然後當接收每一後續之更新請求時,可指派(assign)該請求至該新的檢查點儲存器。
注意本文所用之術語「第一」並非意味最先之檢查點;而是用以與「第二」檢查點區分。換言之,若有N個檢查點,第一檢查點可為任意之X,其中1<=X<=N,且第二檢查點可為任意之Y,其中1<=Y<=N且X<>Y。
2.決定何時將與檢查點相關聯之檢查點資料寫入系統之儲存器。例如,檢查點計時器可能到期,許多更新可能過量,或使其他一些門檻值可用以決定已屆該寫入檢查點資料的時間。
3.決定第二檢查點,第二檢查點用於更新檔案系統物件的後續請求。如前所述,檢查點管理器230可藉由可藉由以下方式做到這點:當獲得資料結構上之互斥型鎖定點後,更新資料結構(例如,第5圖之資料結構510)。
4.當允許為後續之請求寫入資料作準備時,等待檔案系統之一致狀態。當與目前的檢查點儲存區相關聯之所有更新皆被表示在儲存器上(例如,已成功地被寫入儲存器)時,即發生一致狀態。允許為後續之請求寫入資料作準備包含:允許為後續之請求產生寫入計畫,並將寫入計畫寫入儲存器,然而直到建立中介資料之邏輯副本之前,不允許更新中介資料(例如,全域表)。
5.建立檔案系統之中介資料之邏輯副本。如前所述,此動作可藉由為全域表拍攝快照而達成。
6.將中介資料之邏輯副本寫入儲存器。在一個實施例中,此動作可包含:請求將邏輯副本寫入儲存器,以及等待確認邏輯副本已被寫入儲存器。在另一實施例中,此動作可包含:將儲存器上的副本標記為未經污染的(clean),使得在准許後續之中介資料更新前,引發寫入時複製。
7.將至少一個驗證碼寫入儲存器。如前所述,驗證碼可用以決定在檢查點之前的更新是否被寫入儲存器,以及決定檢查點記錄本身是否有效。
API215可接收修改交易中涉及之另一個物件的請求。作為回應,輸入/輸出管理器235可搜尋儲存裝置之儲存器位置(例如,L1 )中之物件、建立物件之邏輯副本、在交易情境中改變物件、決定將儲存邏輯副本的第二儲存器位置視為已被改變、將寫入已被改變的邏輯副本之請求發送至儲存器控制器240、以及更新揮發性資料結構(例如,物件表310),以指示邏輯副本係儲存在第二儲存器位置中。
若API215接收修改交易中涉及之另一物件之請求,則輸入/輸出管理器235可執行額外動作,包含:建立一關聯性(例如,寫入計畫),該關聯性將該另一物件及第一物件結合起來。然後,連同發送將物件之修改寫入儲存器之請求,輸入/輸出管理器235亦可將寫入該關聯性之請求發送至儲存器控制器240。
第6圖至第8圖係大致上表示範例動作之流程圖,此等範例動作可依照本文描述之標的之態樣發生。為便於解釋,連同第6圖至第8圖所描述之方法論係以一連串動作所描繪及描述。應了解且理解,本文描述之標的之態樣並未受到所闡述動作之限制,及/或受到動作順序之限制。然而,在其他實施例中,動作可能同時發生、以另一順序發生,及/或伴隨未呈現及描述於本文中之動作一起發生。再者,並非需要所有所闡述之動作,以實施本文描述之標的之態樣之方法論。此外,熟習此項技術者將了解且理解,該方法論可透過狀態圖另以一連串相互關聯的狀態呈現,或另以事件呈現。
見第6圖,動作於方塊605處開始。在方塊605做出如下指示:第一組更新係將和第一檢查點相關聯。此舉可藉由以下方式達成:修改資料結構以指示後續更新係將和第一檢查點相關聯。這可能涉及,例如,獲得及釋開鎖定點,並更新指標或資料結構,使指標或資料結構參照至如前所述之檢查點儲存區。再次注意到,「第一」可意味檔案系統之任何檢查點,且用以區分此檢查點及後續檢查點。例如,參照第2圖及第5圖,檢查點管理器230可在資料結構510上獲得包含鎖定點505,且更新指標以指向檢查點儲存區515其中之一。
在方塊615,更新係經接收且和第一檢查點相關聯。例如,參照第2圖,輸入/輸出管理器235可經由API215從應用210接收更新請求。當接收該等更新後,此等更新可和一檢查點相關聯。
在方塊620,做出一決定以將第一檢查點之檢查點資料寫入檔案系統之儲存器。例如,參照第2圖,檢查點管理器230可決定檢查點計時器已到期,並可基於檢查點計時器已到期,決定檢查點欲被寫入儲存裝置250。
在方塊625,獲得資料結構上之一鎖定點,以為後續更新指示檢查點。例如,參照第2圖及第5圖,檢查點管理器230獲得資料結構510上之鎖定點505。
在方塊630,更新資料結構係以參照至另一檢查點。此資料結構之修改指示:後續在第一組更新之後發生的任何更新應和後續檢查點相關聯。例如,參照第2圖及第5圖,檢查點管理器230可更新資料結構510,以參照至檢查點儲存區之另一者。
在方塊635,釋開鎖定點。例如,參照第2圖及第5圖,檢查點管理器230可釋開鎖定點505。
在方塊640,產生更新之寫入計畫。每一寫入計畫為資料指示儲存器上之至少一經計畫位置,前述資料表示第一組更新之至少一個更新。例如,參照第2圖,寫入計畫管理器237可涉及為更新建立寫入計畫,該更新係將與檢查點相關聯。
在方塊645,為寫入計畫更新中介資料。(儘管寫入計畫可能或可能尚未被寫入儲存器),此中介資料為寫入計畫指示儲存器位置。例如,參照第2圖,寫入計畫管理器237可更新全域表,以為被寫入計畫所修改之物件指示儲存器位置。
在方塊645之後,動作繼續至第7圖之方塊705。見第7圖,在方塊705,為中介資料獲得一鎖定點。例如,參照第2圖及第4圖,檢查點管理器230可獲得全域表405上之一鎖定點。(儘管所有這些更新可能或可能尚未被寫入儲存器位置),檢查點管理器230可等待至中介資料反應第一組更新中之所有更新之儲存器位置。
在方塊710,建立中介資料之邏輯副本。如前所述,這可涉及:建立中介資料之新副本、將中介資料標記為未經污染的(clean),使得中介資料之後續更新前引發寫入時複製、或其他一些邏輯複製機制。例如,參照第2圖及第4圖,檢查點管理器230可為全域表405建立一邏輯副本。
在方塊715,釋開鎖定點。例如,參照第2圖及第4圖,檢查點管理器230可將鎖定點釋開至全域表405上。
在方塊720,建立寫入計畫,以寫入第一儲存點資料。可在建立此寫入計畫之同時,可產生檢查點後之更新之寫入計畫暨相應於正被寫入磁碟的、現今寫入計畫的資料的寫入計畫(並將此等寫入計畫寫入磁碟)。例如,參照第2圖,檢查點管理器230可使用寫入計畫管理器237以為第一檢查點之檢查點資料建立寫入計畫。此資料可包含前述之全域表之邏輯副本。
在一個實施例中,在方塊725,檢查點管理器可等待第一組更新之所有更新皆已成功地被寫入儲存器。當所有更新皆已成功地被寫入儲存器後,更新管理器接著可寫入包含驗證碼之最後檢查點記錄。如前所述,這使得復原僅需檢查驗證碼,即可決定相應於檢查點之所有更新是否已如預期般被寫入儲存器。
在另一實施例中,檢查點管理器可將數個驗證碼寫入檢查點記錄中。此等驗證碼可與第一組更新之更新之儲存器位置相關聯。在此實施例中,檢查點管理器可等到此等更新已被寫入儲存器,或可不等到該等更新已被寫入儲存器即寫入檢查點記錄。若選擇後者,則在復原時,相較於驗證有效的檢查點記錄係位於磁碟上,可能更需尋找合適的檢查點。
在方塊730,可將檢查點資料寫入儲存器。這可能涉及,例如,將與檢查點資料相關聯之寫入計畫寫入儲存器。如另一例,這可能涉及將檢查點記錄寫入儲存器,儲存器係參照至全域表之邏輯副本。例如,參照第2圖,檢查點管理器230可請求將相應於檢查點資料之寫入計畫寫入儲存器。
在方塊735,至少一個驗證碼被寫入儲存器。將至少一個驗證碼寫入儲存器可與將檢查點記錄寫入儲存器相結合,儲存器係參照至全域表之邏輯副本。例如,參照第2圖,檢查點管理器230可將檢查點記錄寫入儲存器,儲存器係參照至全域表之邏輯副本,且儲存器包含驗證碼,以驗證檢查點記錄之內容。
在方塊740,若有其他任何動作,可執行其他動作。
見第8圖,在方塊805,開始動作。在方塊810,接收復原請求。例如,參照第2圖,復原管理器225可接收復原請求,以為儲存在儲存裝置250上的資料執行復原。
在方塊815,搜尋檢查點資料。例如,參照第2圖,復原管理器225可搜尋儲存在儲存裝置250(或其他一些儲存裝置)上的最新檢查點資料。
在方塊820,使用驗證碼驗證檢查點資料。例如,參照第2圖,復原管理器225可計算檢查點資料之校驗和,並比較此校驗和以及與檢查點資料一同儲存的校驗和。如果校驗和相符合,則檢查點可被視為有效的檢查點。若需要額外的驗證,則復原管理器可嘗試驗證一或多個由全域表指示的物件,全域表係藉由檢查點資料所參照。
在方塊825,若有其他任何動作,可執行其他動作。
由上述的實施內容可以看出,關於檔案系統的檢查點之態樣已被描述。儘管本文描述之標的之態樣易受到各樣修改及替代結構所影響,態樣之特定的經闡述實施例已圖示於圖式中,並已詳細描述如上。然而,應理解,本文並未意欲限制所請標的之態樣於所揭露之特定形式,反之,本文意圖涵蓋所有修改、替代結構以及等效物,其屬於本文所描述之標的之各樣態樣之精神及範圍。
100...電腦系統環境
110...電腦
120...處理單元
121...系統匯流排
130...系統記憶體
131...唯讀記憶體
132...隨機存取記憶體
133...基本輸出入系統
134...作業系統
135...應用程式
136...其他程式模組
137...程式資料
140...不可移除之非揮發性記憶體介面
141...硬碟機
144...作業系統
145...應用程式
146...其他程式模組
147...程式資料
150...可移除之非揮發性記憶體介面
151...磁碟機
152...磁碟
155...光碟機
156...光碟
160...使用者輸入介面
161...指標裝置
162...鍵盤
170...網路介面
171...區域網路
172...數據機
173...廣域網路
180...遠端電腦
181...記憶體儲存器裝置
185...遠端應用程式
190...視訊介面
191...監視器
195...輸出週邊介面
196...印表機
197...揚聲器
200...儲存器位置
205...系統
210...應用
215...應用程式介面
220...檔案系統組件
225...復原管理器
230...檢查點管理器
235...輸入/輸出管理器
237...寫入計畫管理器
240...儲存器控制器
250...儲存裝置
255...通信機制
305...主記憶體
307...直線
310...物件表
311...表
314...物件
315...物件
316...物件
317...物件
318...物件
319...物件
320...物件
321...物件
322...物件
323...物件
330...復原區塊
405...全域表
410...更新
415...時間軸
505...鎖定點
510...資料結構
515...儲存區
520...時間
525...時間
605...開始
610...更新檢查點指標(當需要時,獲得/釋開鎖定點)
615...接收更新
620...決定寫入檢查點
625...獲得檢查點指標上之鎖定點
630...將檢查點指標更新至新儲存區
635...釋開鎖定點
640...為更新產生寫入計畫
645...為寫入計畫更新中介資料
705...為中介資料獲得鎖定點
710...建立中介資料之邏輯副本
715...釋開鎖定點
720...為檢查點建立寫入計畫
725...等待更新已被寫入儲存器
730...將檢查點資料寫入儲存器
735...將驗證碼寫入儲存器
740...其他動作
800...儲存器位置
801...儲存器位置
805...開始
810...接收復原請求
815...搜尋檢查點資料
820...驗證檢查點資料
825...其他動作
1000...儲存器位置
1500...儲存器位置
以上所描述之態樣及本文所描述之本標的之其他態樣係藉由範例所闡述,且並不限於隨附圖示,其中相同元件符號表示類似元件,且其中:
第1圖為表示一般用途之範例電腦環境之方塊圖,本文所描述之標的之態樣可納入該電腦環境中;
第2圖表示系統組件之範例配置之方塊圖,本文所描述之標的之態樣可在該系統中操作;
第3圖圖示本文所描述之標的態樣之方塊圖;
第4圖係大致上表示更新之概略圖,此等更新發生於依照本文描述之標的之態樣之檔案系統上;
第5圖係圖示範例檢查點儲存區之方塊圖,檢查點儲存區係依照本文描述之標的之態樣;
第6圖至第8圖大致上表示範例動作之流程圖,此等範例動作可依照本文描述之標的之態樣發生。
605...開始
610...更新檢查點指標(當需要時,獲得/釋開鎖定點)
615...接收更新
620...決定寫入檢查點
625...在檢查點指標上獲得鎖定點
630...將檢查點指標更新至新儲存區
635...釋開鎖定點
640...為更新產生寫入計畫
645...為寫入計畫更新中介資料

Claims (20)

  1. 一種至少一部份藉由電腦實施之方法,該方法包含以下步驟:指示一第一組更新係將與一第一檢查點相關聯;決定將關於該第一檢查點之檢查點資料寫入一檔案系統之一儲存器,該檔案系統利用寫入時複製(copy on write),以更新該檔案系統之資料;指示在該第一組更新之後發生之任何後續更新係將與一後續檢查點相關聯;為該第一組更新產生寫入計畫,每一寫入計畫為資料在儲存器上指示至少一經計畫位置,該資料表示該第一組更新至少之一者;更新中介資料,以指示該檔案系統之分配資料,暨為檔案系統物件指示儲存器位置,該檔案系統物件係藉由該寫入計畫修改;及建立該中介資料之一邏輯副本。
  2. 如請求項1所述之方法,更包含以下步驟:建立一寫入計畫以寫入該第一檢查點資料,且允許在為該後續更新產生寫入計畫時,同時建立該寫入計畫;及將至少一驗證碼寫入儲存器,該至少一驗證碼係該檢查點資料之部份,該至少一驗證碼可用以決定該第一組更新是否被正確地寫入儲存器。
  3. 如請求項2所述之方法,更包含以下步驟:在將該至少一驗證碼寫入儲存器前,等待表示該第一組更新之資料被寫入儲存器。
  4. 如請求項2所述之方法,其中將至少一驗證碼寫入儲存器包含以下步驟:將一單一驗證碼伴隨其他資料寫入儲存器之一區塊,該其他資料參照至少一樹狀資料結構之根節點,該樹狀資料結構表示該中介資料之該邏輯副本,且更包含以下步驟:計算該單一驗證碼以驗證該區塊。
  5. 如請求項2所述之方法,更包含以下步驟:讀取該至少一驗證碼、計算來自儲存器上資料之至少一其他驗證碼、比較該至少一驗證碼以及該至少一其他驗證碼、且基於該比較步驟決定所有表示該第一組更新之資料是否被成功地寫入儲存器。
  6. 如請求項1所述之方法,其中指示一第一組更新係將與一第一檢查點相關聯之步驟包含以下步驟:更新一資料結構,該資料結構指示該檢查點欲被用於任何更新,該任何更新發生於,已更新該資料結構以指示另一檢查點之前。
  7. 如請求項6所述之方法,更包含以下步驟:在指示在該第一組更新之後發生之任何後續更新係將與一後續檢查點相關聯之前,獲得該資料結構上之一互斥型鎖定點,以及在指示在該第一組更新之後發生之任何後續更新係將與一後續檢查點相關聯之後,釋開該互斥型鎖定點。
  8. 如請求項1所述之方法,其中決定將檢查點資料寫入之步驟包含以下步驟:決定一檢查點計時器已到期,該檢查點計時器係基於一復原視窗。
  9. 如請求項1所述之方法,其中建立該中介資料之一邏輯副本之步驟包含以下步驟:獲得該中介資料上之一互斥型鎖定點、指示將後續被修改之中介資料之任何部份在被修改之前將先被複製、以及在該中介資料上釋開該互斥型鎖定點。
  10. 如請求項1所述之方法,其中建立該中介資料之一邏輯副本之步驟包含以下步驟:在建立該邏輯副本的同時,將表示該第一組更新之該至少一者的資料寫入該儲存器。
  11. 一種位於一計算環境中之系統,包含:一介面,該介面可供操作以接收更新一檔案系統之一檔案系統物件的一請求;一輸入/輸出管理器,該輸入/輸出管理器可供操作以決定對一儲存裝置送出一或多個輸入/輸出請求,以滿足該請求;以及一檢查點管理器,該檢查點管理器可供操作以執行包含以下之動作:決定一第一檢查點,該第一檢查點與更新檔案系統物件之請求相關聯,其中該檢查點管理器可將請求指派至不同的檢查點;決定將與該檢查點相關聯之檢查點資料,寫入該檔案系統之一儲存裝置;決定一第二檢查點,該第二檢查點用於更新檔案系統物件的後續請求;等待該檔案系統之一一致狀態,同時允許為該等後續請求寫入資料作準備;建立該檔案系統之中介資料之一邏輯副本;將該邏輯副本寫入該儲存器;及將至少一驗證碼寫入該儲存器,該至少一驗證碼可用以決定在該檢查點之前的更新是否被寫入儲存器。
  12. 如請求項11所述之系統,其中該檢查點管理器可供操作以決定一檢查點,該檢查點將與更新檔案系統物件之請求相關聯之動作,包含以下動作:該檢查點管理器可供操作以更新一資料結構,該資料結構指示:該第一檢查點欲被用於更新,該等更新發生在以下動作之前,決定將與該檢查點相關聯之檢查點資料寫入該檔案系統之一儲存裝置,且該資料結構指示:該第二檢查點欲被用於接下來發生的更新。
  13. 如請求項12所述之系統,其中該檢查點管理器可供操作以更新一資料結構之動作包含以下動作:該檢查點管理器可供操作以於更新該資料結構之前,獲得該資料結構上之一互斥型鎖定點,並在更新該資料結構之後,釋開該互斥型鎖定點。
  14. 如請求項11所述之系統,其中檢查點管理器可供操作以決定將與該檢查點相關聯之檢查點資料,寫入該檔案系統之一儲存裝置之動作包含以下動作:該檢查點管理器可供操作以決定一檢查點計時器已到期,該檢查點計時器係基於一復原視窗。
  15. 如請求項11所述之系統,其中該輸入/輸出管理器可供操作以決定對一儲存裝置送出一或多個輸入/輸出請求,以滿足該請求之動作,包含以下動作:該輸入/輸出管理器可供操作以於對一儲存裝置送出一或多個輸入/輸出請求,以更新該檔案系統物件之前,建立該檔案系統物件之一邏輯副本。
  16. 如請求項11所述之系統,更包含一寫入計畫管理器,該寫入計畫管理器可供操作以產生一寫入計畫,該寫入指示所有檔案系統物件在儲存器上的位置,該所有檔案系統物件將連同該檔案系統物件一起被更新,以維持檔案系統之一一致狀態。
  17. 如請求項11所述之系統,其中該檢查點可供操作以等待該檔案系統之一一致狀態之動作,包含以下動作:該檢查點可供操作以等到與該第一檢查點之檔案系統物件相關聯之所有更新係表示於該檔案系統之儲存器上。
  18. 如請求項11所述之系統,其中該檢查點可供操作以允許為該等後續請求寫入資料作準備之動作,包含以下動作:該檢查點處理器可供操作以允許為該等後續請求產生寫入計畫,並將該等寫入計畫寫入儲存器中,但直到該中介資料之邏輯副本被建立之前,不允許更新該中介資料。
  19. 一種含有電腦可執行指令之電腦儲存器媒體,當該執行電腦可執行指令時執行包含以下之動作:接收一檔案系統之一復原請求;搜尋該檔案系統之一儲存器上之一檢查點之檢查點資料,該檢查點資料事前已藉由包含以下之動作所產生:指示在與該檢查點相關聯之更新之後發生之任何更新係被指派至一後續檢查點,為與該檢查點相關聯之該等更新產生寫入計畫,每一寫入計畫指示儲存器上至少之一寫入計畫,以表示該等更新至少之一者,更新中介資料,以指示物件之儲存器位置,該儲存器位置係藉由寫入計畫所修改,建立該中介資料之一邏輯副本,及將關於至少一驗證碼的該檢查點寫入儲存器;以及利用該驗證碼驗證該檢查點資料。
  20. 如請求項19所述之電腦儲存器媒體,其中利用該驗證碼驗證該檢查點資料之動作包含以下動作:計算該檢查點資料之一校驗和,並比較該檢查點資料之該校驗和與該驗證碼。
TW100116194A 2010-06-15 2011-05-09 檔案系統的檢查點 TWI492077B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/815,418 US8224780B2 (en) 2010-06-15 2010-06-15 Checkpoints for a file system

Publications (2)

Publication Number Publication Date
TW201202981A TW201202981A (en) 2012-01-16
TWI492077B true TWI492077B (zh) 2015-07-11

Family

ID=45097053

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100116194A TWI492077B (zh) 2010-06-15 2011-05-09 檔案系統的檢查點

Country Status (11)

Country Link
US (3) US8224780B2 (zh)
EP (1) EP2583202B1 (zh)
JP (1) JP5735104B2 (zh)
KR (2) KR101805948B1 (zh)
CN (1) CN102934114B (zh)
AU (1) AU2011265653B2 (zh)
BR (1) BR112012031912B1 (zh)
CA (1) CA2803763C (zh)
RU (1) RU2554847C2 (zh)
TW (1) TWI492077B (zh)
WO (1) WO2011159476A2 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433865B2 (en) * 2009-12-11 2013-04-30 Microsoft Corporation Consistency without ordering dependency
US8793440B2 (en) 2010-06-17 2014-07-29 Microsoft Corporation Error detection for files
US9155320B2 (en) * 2011-07-06 2015-10-13 International Business Machines Corporation Prefix-based leaf node storage for database system
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9766986B2 (en) * 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US8543544B2 (en) * 2012-01-06 2013-09-24 Apple Inc. Checkpoint based progressive backup
FR2989801B1 (fr) * 2012-04-18 2014-11-21 Schneider Electric Ind Sas Procede de gestion securisee d'un espace memoire pour microcontroleur
KR102050723B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
US9003228B2 (en) * 2012-12-07 2015-04-07 International Business Machines Corporation Consistency of data in persistent memory
US9304998B2 (en) * 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
WO2015116190A1 (en) 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Persistent memory controller based atomicity assurance
CN103984609B (zh) * 2014-05-28 2017-06-16 华为技术有限公司 一种基于写时复制的文件系统中回收检查点的方法和装置
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US9892153B2 (en) * 2014-12-19 2018-02-13 Oracle International Corporation Detecting lost writes
CN106294357B (zh) * 2015-05-14 2019-07-09 阿里巴巴集团控股有限公司 数据处理方法和流计算系统
US10031817B2 (en) 2015-11-05 2018-07-24 International Business Machines Corporation Checkpoint mechanism in a compute embedded object storage infrastructure
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
CN105930223A (zh) * 2016-04-24 2016-09-07 湖南大学 一种减少检查点文件大小的方法
US20220100374A1 (en) * 2016-08-19 2022-03-31 Ic Manage Inc Hierarchical file block variant tracking for performance in parallelism at multi-disk arrays
KR101969799B1 (ko) * 2016-09-07 2019-04-17 울산과학기술원 전자 장치 및 제어 방법
CN108509460B (zh) 2017-02-28 2021-07-20 微软技术许可有限责任公司 分布式系统中的数据一致性检查
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US20190102262A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Automated continuous checkpointing
KR102022481B1 (ko) * 2017-12-06 2019-09-18 연세대학교 산학협력단 Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법
KR102468737B1 (ko) * 2017-12-19 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10754785B2 (en) 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
US11416453B2 (en) * 2019-04-23 2022-08-16 EMC IP Holding Company LLC Facilitating checkpoint locks for distributed systems
US11822435B2 (en) 2020-07-06 2023-11-21 Bank Of America Corporation Consolidated data restoration framework
US11620084B2 (en) 2020-12-30 2023-04-04 Samsung Electronics Co., Ltd. Storage device including memory controller and operating method of memory controller
CN113538754B (zh) * 2021-06-08 2023-04-07 福建新大陆通信科技股份有限公司 一种ctid智能门锁授权数据管理方法及系统
CN116048384A (zh) * 2022-11-02 2023-05-02 中国科学院空间应用工程与技术中心 一种文件系统元数据的写入方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200604798A (en) * 2004-04-29 2006-02-01 Ibm Method and system for bootstrapping a trusted server having redundant trusted platform modules
US7505410B2 (en) * 2005-06-30 2009-03-17 Intel Corporation Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
TW201007489A (en) * 2008-04-29 2010-02-16 Maxiscale Inc Peer-to-peer redundant file server system and methods
US7693864B1 (en) * 2006-01-03 2010-04-06 Netapp, Inc. System and method for quickly determining changed metadata using persistent consistency point image differencing

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4959771A (en) * 1987-04-10 1990-09-25 Prime Computer, Inc. Write buffer for a digital processing system
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
DE69425658T2 (de) * 1993-06-03 2001-04-19 Network Appliance Inc Anordnung eines dateisystems zum beschreiben beliebiger bereiche
US6035399A (en) * 1995-04-07 2000-03-07 Hewlett-Packard Company Checkpoint object
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5907849A (en) * 1997-05-29 1999-05-25 International Business Machines Corporation Method and system for recovery in a partitioned shared nothing database system using virtual share disks
US6185663B1 (en) * 1998-06-15 2001-02-06 Compaq Computer Corporation Computer method and apparatus for file system block allocation with multiple redo
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
JP2001101044A (ja) * 1999-09-29 2001-04-13 Toshiba Corp トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6629198B2 (en) * 2000-12-08 2003-09-30 Sun Microsystems, Inc. Data storage system and method employing a write-ahead hash log
US7730213B2 (en) * 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US6678809B1 (en) * 2001-04-13 2004-01-13 Lsi Logic Corporation Write-ahead log in directory management for concurrent I/O access for block storage
JP2003223350A (ja) * 2002-01-29 2003-08-08 Ricoh Co Ltd データベースシステム
US6993539B2 (en) 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US20040216130A1 (en) * 2002-08-30 2004-10-28 Keller S. Brandon Method for saving and restoring data in software objects
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US7216254B1 (en) 2003-03-24 2007-05-08 Veritas Operating Corporation Method and system of providing a write-accessible storage checkpoint
US7412460B2 (en) * 2003-06-19 2008-08-12 International Business Machines Corporation DBMS backup without suspending updates and corresponding recovery using separately stored log and data files
JP3798767B2 (ja) * 2003-06-26 2006-07-19 株式会社東芝 ディスク制御システム及びディスク制御プログラム
US7401093B1 (en) 2003-11-10 2008-07-15 Network Appliance, Inc. System and method for managing file data during consistency points
US7721062B1 (en) 2003-11-10 2010-05-18 Netapp, Inc. Method for detecting leaked buffer writes across file system consistency points
US7054960B1 (en) * 2003-11-18 2006-05-30 Veritas Operating Corporation System and method for identifying block-level write operations to be transferred to a secondary site during replication
US7168001B2 (en) * 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US20070234342A1 (en) * 2006-01-25 2007-10-04 Flynn John T Jr System and method for relocating running applications to topologically remotely located computing systems
JP2009526286A (ja) * 2006-02-06 2009-07-16 ファイルズエックス・インク ディスクでの長期バックアップ
US7769723B2 (en) 2006-04-28 2010-08-03 Netapp, Inc. System and method for providing continuous data protection
US7870356B1 (en) * 2007-02-22 2011-01-11 Emc Corporation Creation of snapshot copies using a sparse file for keeping a record of changed blocks
US8495573B2 (en) 2007-10-04 2013-07-23 International Business Machines Corporation Checkpoint and restartable applications and system services
ATE525695T1 (de) * 2008-10-30 2011-10-15 Ibm Durchführen eines datenschreibvorgangs auf einer speicheranordnung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200604798A (en) * 2004-04-29 2006-02-01 Ibm Method and system for bootstrapping a trusted server having redundant trusted platform modules
US7505410B2 (en) * 2005-06-30 2009-03-17 Intel Corporation Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
US7693864B1 (en) * 2006-01-03 2010-04-06 Netapp, Inc. System and method for quickly determining changed metadata using persistent consistency point image differencing
TW201007489A (en) * 2008-04-29 2010-02-16 Maxiscale Inc Peer-to-peer redundant file server system and methods

Also Published As

Publication number Publication date
US8224780B2 (en) 2012-07-17
US8924356B2 (en) 2014-12-30
RU2554847C2 (ru) 2015-06-27
EP2583202B1 (en) 2022-01-12
JP2013528883A (ja) 2013-07-11
BR112012031912B1 (pt) 2020-11-17
JP5735104B2 (ja) 2015-06-17
US20120259816A1 (en) 2012-10-11
RU2012154324A (ru) 2014-06-20
EP2583202A4 (en) 2017-03-15
CN102934114B (zh) 2015-11-25
AU2011265653A1 (en) 2012-12-13
KR20130115995A (ko) 2013-10-22
KR101805948B1 (ko) 2017-12-07
US20150178165A1 (en) 2015-06-25
KR101840996B1 (ko) 2018-03-21
BR112012031912A2 (pt) 2016-11-08
US20110307449A1 (en) 2011-12-15
TW201202981A (en) 2012-01-16
CN102934114A (zh) 2013-02-13
WO2011159476A2 (en) 2011-12-22
WO2011159476A3 (en) 2012-02-16
KR20170132338A (ko) 2017-12-01
CA2803763C (en) 2019-02-26
CA2803763A1 (en) 2011-12-22
AU2011265653B2 (en) 2014-05-15
EP2583202A2 (en) 2013-04-24

Similar Documents

Publication Publication Date Title
TWI492077B (zh) 檔案系統的檢查點
KR101573965B1 (ko) 분산형 저장 시스템 내의 데이터의 원자 다중 변경
US9430160B2 (en) Consistency without ordering dependency
WO2017041654A1 (zh) 用于分布式存储系统的写入数据、获取数据的方法和设备
EP2583176B1 (en) Error detection for files
TW201638810A (zh) 高性能和大容量儲存之重複刪除中的資料完整性和損耗電阻

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees