TWI774388B - 資料同步方法 - Google Patents
資料同步方法 Download PDFInfo
- Publication number
- TWI774388B TWI774388B TW110118527A TW110118527A TWI774388B TW I774388 B TWI774388 B TW I774388B TW 110118527 A TW110118527 A TW 110118527A TW 110118527 A TW110118527 A TW 110118527A TW I774388 B TWI774388 B TW I774388B
- Authority
- TW
- Taiwan
- Prior art keywords
- solid
- state storage
- storage device
- command
- data management
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Numerical Control (AREA)
Abstract
一種資料同步的方法,該方法由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置,該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體。該方法包含:由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;為回應接收該同步指令,由該資料管理軟體發出一傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;為回應接收該同步指令,由該資料管理軟體緊接在發出該傳送確認紀錄命令之後發出一緩衝清除請求。
Description
本發明是有關於一種電腦系統,一種易於從固態儲存裝置之故障(crash),例如電力中斷,中還原的方法,一種資料同步的方法及一種固態儲存裝置。
傳統的固態儲存裝置(solid-state storage device, SSD),尤其是具有標準區塊裝置介面的消費級固態儲存裝置,通常在磁碟等級缺乏故障後足夠的機制進行還原。因此,檔案系統和/或應用程式的開發人員必須採取其他措施以確保資料完整性(有時是資料安全性)在故障時有更強的保證,例如修改檔案系統和/或應用程式軟體以發出冗餘的寫入請求或緩衝清除請求。然而,大多數措施可能造成額外的成本,並且對整體系統性能造成不利影響。
因此,本發明的目的,即在提供一種電腦系統,一種易於從固態儲存裝置之故障中還原的方法,一種資料同步的方法,以及一固態儲存裝置,可用以減輕現有技術的至少一個缺點。
根據本發明的一部分,該固態儲存裝置具有一非揮發性記憶體及一固態儲存裝置控制器,該非揮發性記憶體具有多個頁面,其中每一頁面具有一備用區,該固態儲存裝置控制器從主機端接收一寫入請求以寫入資料至該等頁面中的至少一頁面。該易於從固態儲存裝置之故障中還原的方法包含以下步驟:
由該固態儲存裝置控制器依照該寫入請求所被接收的順序,賦予一寫入請求辨識碼(write request identifier, WID)給至少一被寫入資料的被寫入頁面中每一者之該備用區,其中該寫入請求辨識碼是一該寫入請求所獨有的序號;
由該固態儲存裝置控制器賦予一寫入大小給該至少一被寫入頁面中每一者之該備用區,其中該寫入大小指示一該寫入請求即將要寫入資料的該至少一頁面之總數量;
由該固態儲存裝置控制器計數該寫入請求辨識碼在該至少一被寫入頁面中的出現次數以產生一寫入請求辨識碼數量;
由該固態儲存裝置控制器判斷該寫入請求辨識碼數量是否等於該寫入大小;以及
當判斷該寫入請求辨識碼數量等於該寫入大小時,由該固態儲存裝置控制器判斷該寫入請求已完成,且該寫入請求具備在該固態儲存裝置故障後被還原的資格。
根據本發明的另一部分,該資料同步的方法係由一具有一電腦裝置及一固態儲存裝置的電腦系統實施,該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體。該固態儲存裝置可與該電腦裝置通訊。該方法包含以下步驟:
由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;
為回應接收該同步指令,由該資料管理軟體發出一傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置。
根據本發明的另一部分,該電腦系統包含一固態儲存裝置,其具有一非揮發性記憶體,一主記憶體用以儲存軟體,以及一處理器與該固態儲存裝置及該主記憶體電連接,並用以執行該儲存於該主記憶體的軟體。該固態儲存裝置用以依序接收多個寫入請求,該等寫入請求中之每一者包含一特定位址範圍與要被寫入該固態儲存裝置的資料。該固態儲存裝置可被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中。
根據本發明的另一部分,該固態儲存裝置包含一非揮發性記憶體並且用以依序接收多個寫入請求,該等寫入請求中之每一者包含要被寫入該固態儲存裝置的資料。該固態儲存裝置可被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中。
在本發明被詳細描述之前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
儘管固態儲存裝置已被廣泛使用了數十年,但最佳化硬碟(HDD)性能的設計原則仍然普遍存在於兼容固態儲存裝置與硬碟的電腦系統中,例如藉由根據硬碟的讀取頭位置重新排序請求來最小化尋找時間和旋轉等待時間。然而,由於固態儲存裝置和硬碟之間的物理結構和操作原理的差異,固態儲存裝置可能無法從這些設計原理中獲益,例如,重新排序請求可能會使檔案系統或應用程式從固態儲存裝置故障中還原時所需的搜索空間複雜化。
為了增強針對故障事件的資料完整性,一種固態儲存裝置(以下稱為事務性固態儲存裝置, transactional SSD)具有與資料庫事務(transaction)相關的一組屬性,包括原子性、一致性、隔離性,和持久性(ACID)。該等事務通常由多個語句組成,並且原子性保證每一事務被視為單獨的一單元,該單元不是完全成功就是完全失敗。持久性保證一旦一事務被確認,即使系統故障(例如,停電或故障,且以下均以故障舉例通稱)該事務也將保持確認。與具有傳統介面的固態儲存裝置(以下稱為基本固態儲存裝置)相比,該事務性固態儲存裝置使用新型的介面而提供了更強的故障保證。然而,理解到為了相容一事務性固態儲存裝置而須大幅更改系統,許多現有檔案系統(例如,Linux作業系統的第四代擴充套件檔案系統,Ext4)和應用程式軟體(例如,SQLite資料庫管理系統)仍使用傳統介面(例如,類似SATA的標準區塊裝置介面,係針對硬碟進行最佳化)建立與固態儲存裝置的通訊,而非採用事務性固態儲存裝置的新型介面。因此,當最佳化一固態儲存裝置的資料完整性以預防故障時,仍然需要向下相容。
參閱圖1,說明本發明之電腦系統的一實施例。該電腦系統包括一電腦裝置2和一固態儲存裝置1。
該電腦裝置2可以由一個人電腦、一資料庫伺服器、一雲端伺服器、一筆記型電腦、一平版電腦、一行動電話、一可穿戴式電腦、一智慧手錶、一電視、一資料中心群集、一網路附加儲存等設備來實施。然而,該電腦裝置2並不受本文敘述所限制,並且可在其他實施例中有所變化。該電腦裝置2包括:一主記憶體22用以儲存軟體,以及一處理器21與該固態儲存裝置1及該主記憶體22電連接,並用以執行該儲存於該主記憶體22的軟體。該固態儲存裝置1和該電腦裝置2可透過一磁碟介面,特別是類似SATA的已廣泛使用的標準區塊裝置介面,互相通訊。
該固態儲存裝置1包括一寫入快取13、一非揮發性記憶體12,及一固態儲存裝置控制器11。
在本實施例中,該寫入快取13由類似一靜態隨機存取記憶體(SRAM)、一同步動態隨機存取記憶體(SDRAM),或一動態隨機存取記憶體(DRAM)的一揮發性記憶體來實施,但不以此為限。
該非揮發性記憶體12例如但不限於一類似一快閃晶片的快閃記憶體,並且在其他實施例中可以有所變化。例如,該非揮發性記憶體12可以是由一電池供電的一動態隨機存取記憶體、一3D XPoint記憶體、一相變化記憶體(PCM)、一自旋轉移矩磁性記憶體(STT-MRAM)、一可變電阻式記憶體(ReRAM)、一電子抹除式可複寫唯讀記憶體(EEPROM)等等。
該快閃晶片包括多個區塊。每一區塊具有多個快閃頁面,並且每一快閃頁面具有一使用者區和一備用區。該使用者區包括多個扇區。
該固態儲存裝置控制器11執行一包括一快閃記憶體轉換層(FTL)的韌體。該快閃記憶體轉換層用以根據一主機(例如,由該電腦裝置2執行的一作業系統)發送的一組請求(例如,一寫入請求、一讀取請求和一緩衝清除請求)轉換為一組快閃記憶體操作(例如,頁面寫入,頁面讀取,和區塊抹除)。在該實施例中,該快閃記憶體轉換層由一頁面級快閃記憶體轉換層(page-level FTL)來實施,但在其他實施例該快閃記憶體轉換層可以是一區塊級快閃記憶體轉換層(block-level FTL)或一混合快閃記憶體轉換層,並不以此為限。
具體而言,從該主機接收到將資料寫入該固態儲存裝置1的一特定位址範圍的一寫入請求後,該固態儲存裝置控制器11執行該快閃記憶體轉換層以用來根據該特定位址範圍將該資料分為多個頁面,其中每一頁面經由一邏輯頁碼(LPN)被索引,並將被區分的資料寫入至少一快閃頁面中,每一快閃頁面經由一物理頁碼(PPN)被索引。該邏輯頁碼與該物理頁碼的一對應關係被記錄在一邏輯-至-物理(L2P)映射表中。之後,回應於來自該主機的讀取請求,以取回相關於寫入在該特定位址範圍之資料,該固態儲存裝置控制器11執行該快閃記憶體轉換層以用來將該特定位址範圍轉換為該等邏輯頁碼,並查詢在該邏輯-至-物理映射表中對應該等邏輯頁碼的該等物理頁碼,如此,該固態儲存裝置控制器11能夠回傳寫入在該特定位址範圍的該資料(以下也稱為讀出資料)至該主機。
需要注意的是,快閃晶片的存取速度,特別是對於頁面寫入(亦即,將資料寫入該快閃頁面的快閃操作),遠低於動態隨機存取記憶體的存取速度。因此,為了提高該固態儲存裝置的操作效率,自該主機接收的該寫入請求通常在執行頁面寫入前會被快取於該寫入快取13中。
在接收到一緩衝清除請求時,該執行該快閃記憶體轉換層的固態儲存裝置控制器11直到所有在該寫入快取13的有效資料或濁資料(亦即,尚未完成的寫入請求的資料)已被儲存於例如該非揮發性記憶體12(即本實施例中的快閃晶片)的穩定媒體中才回傳一成功通知至該主機。
傳統上,高性能方案採用如,內部平行度、請求排程、寫入快取等方式以提升該等硬碟的性能。然而,這些高性能方案都會破壞該等寫入請求的順序。對於根據本發明的電腦系統的該固態儲存裝置1,當依序接收多個寫入請求,其中每一寫入請求包含一特定位址範圍及要被寫入該固態儲存裝置1的資料,該固態儲存裝置1可被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,保存(persist)被包含在該等寫入請求中之資料在該非揮發性記憶體中。應當注意的是,一旦一固態儲存裝置保存(persist)一資料,無論該資料是否被寫入該固態儲存裝置的一非揮發性記憶體,當該固態儲存裝置故障時,該資料將被保留用以還原。在下文中,本發明的電腦系統的該固態儲存裝置1也被稱作一順序保留轉換還原(Order-Preserving Translation and Recovery, OPTR) 固態儲存裝置。
此外,在該固態儲存裝置1依序接收一第一寫入請求,其包含該固態儲存裝置1的一第一位址範圍,及要被寫入該第一位址範圍內的第一資料,以及一第二寫入請求,其包含該固態儲存裝置1的一第二位址範圍,及要被寫入該第二位址範圍內的第二資料的一情境下,於還原故障的該固態儲存裝置1時,當該固態儲存裝置1判斷出該第一寫入範圍是被該第一寫入請求部分更新且該第二寫入範圍是被該第二寫入請求完全更新時,該固態儲存裝置1將該第二位址範圍回復到一尚未被該第二寫入請求更新的狀態(亦即,回復該第二位址範圍到被該第二寫入請求寫入前的一狀態)。
需要注意的是,由於要採用固態儲存裝置的高性能方案,例如內部平行度,在該順序保留轉換還原固態儲存裝置中並沒有真正保留將資料寫入該非揮發性記憶體12的實際順序(即,執行頁面寫入的順序)。事實上,在該順序保留轉換還原固態儲存裝置故障後實際被保存的順序即為寫入請求被接收的順序,與資料所據以被保存在該非揮發性記憶體12的順序。
為了使該電腦系統能辨識一固態儲存裝置之順序保留特徵,在一個實施例中,該固態儲存裝置1進一步具有一順序保留保證指示符,其指示該固態儲存裝置1正被操作於該順序保留模式。該指示符可透過軟體存取,並且是可編輯或是僅能讀取其中一種類型。此外,在該指示符可透過軟體存取且可編輯的一情境下,該順序保留轉換還原固態儲存裝置可透過編輯該指示符,來在該順序保留模式和一由該基本固態儲存裝置採用的傳統模式間切換。此外,在該指示符可透過軟體存取且僅可讀取的一情境下,該順序保留轉換還原固態儲存裝置僅能在該順序保留模式中運行或是自動判定從該順序保留模式切換到一操作模式。
在該實施例中,該指示符係一二元碼,執行該軟體的該處理器21將相關於該指示符的詢問發送到該固態儲存裝置1,且當根據回應於該詢問的回覆,判定出所查詢到之該指示符的邏輯值為一時,該處理器21判定出該固態儲存裝置1正操作於該順序保留模式。然而,在其他實施例中,該指示符可以在一預定義集合中(例如,{1}),或是一組預定義的一或多個指示該等固態儲存裝置的產品名稱列表之字串,或是該等固態儲存裝置之識別值的一組預定義集合。
在一個實施例中,該電腦系統或該順序保留轉換還原固態儲存裝置具有一人類可讀的指示符指示出該固態儲存裝置正操作於該順序保留模式。該人類可讀的指示符係在該固態儲存裝置1上之一符號、一圖案、一貼籤或文字,或是發表在網際網路上的一敘述。然而,該人類可讀的指示符不限於本文敘述,並可在其他實施例中有所變化。
需要注意的是,使用一屏障(barrier)是一種順序保留方法用以確保在一屏障請求之前和之後所收到的兩個請求依照其所被接收的順序完成。換句話說,由該屏障請求分隔的兩個請求的順序無法被更改,並且傳送寫入請求至該磁碟的所需部分順序能夠被確保,其中該部分順序代表由兩個分別在由該屏障分隔的一先前請求組及一後續請求組中的請求之順序不能交換。然而,考慮到向下相容,大多數固態儲存裝置並不支援實現順序保留的一屏障請求。因此,該緩衝清除請求被用以替代該屏障請求,該緩衝清除強制在該寫入快取13中的資料須早於該緩衝清除請求被寫入至該非揮發性記憶體12前被接收。
參閱圖2至圖5,說明本發明之資料同步的方法的實施例。該資料同步的方法適用於由如上所述的該電腦系統來實施。在這些實施例中,由該電腦裝置2執行的該軟體為一應用軟體與一資料管理軟體,且該資料管理軟體可以是一檔案系統或其他等價的軟體。
參閱圖2的(1)部分,該檔案系統以Linux作業系統的該第四代擴充套件檔案系統(Ext4)為例,而該應用軟體以SQLite資料庫管理系統為例。對於一習知基準固態儲存裝置,該應用軟體向該檔案系統發出一同步指令(如圖2所示的fdatasync())。回應於該同步指令的接收,該檔案系統發出一命令以傳送一日誌(如圖2所示,且該日誌可以是如,該檔案系統中的一重做日誌或一取消日誌)給該固態儲存裝置,並緊接在發出該傳送日誌後發出一緩衝清除請求(如圖2所示),且緊接在發出該緩衝清除請求之後發出一命令以傳送一確認紀錄(commit record)(如圖2所示)給該固態儲存裝置,及緊接在發出傳送該確認紀錄的該命令後發出另一緩衝清除請求。需要注意的是,傳送該確認紀錄的該命令的目的,是作為完成事務的一動作或一指令,亦即,確保該事務具有原子性。因為該習知基準固態儲存裝置無法保證該等寫入請求會依序完成且具有原子性,該日誌及該確認紀錄間的該緩衝清除請求用以防止該習知基準固態儲存裝置在該日誌前保存該確認紀錄。相反地,對於本發明的該順序保留轉換還原固態儲存裝置,因為該順序保留轉換還原固態儲存裝置能夠保證該等寫入請求依序完成且具有原子性,因此能夠安全地省略該日誌及該確認紀錄之間的該緩衝清除請求。
在本發明的資料同步的方法的其中一個實施例中,該處理器21執行該軟體用以讀取該固態儲存裝置1的該指示符以判定該固態儲存裝置1是否操作於該順序保留模式,以及當判定出該固態儲存裝置1正操作於該順序保留模式時,進一步啟動該軟體的一無屏障選項以避免發出任何緩衝清除請求。因此,在執行該同步指令時,緊接在傳送該確認紀錄的該命令之前及之後的該等緩衝清除請求都被省略。此種實施例如圖3及圖2中(4)部分所示。在該實施例中,該檔案系統是具有該無屏障選項的該第四代擴充套件檔案系統(如圖2及圖6所示),且該應用軟體為SQLite。應當注意的是,該檔案系統和該應用軟體並不以本文為限,並可在其他實施例中有所變化。
在該實施例中,本發明的資料同步的方法包括如下所述的一步驟S11和一步驟S12。
在該步驟S11中,該應用軟體對該檔案系統發出一用於使該主記憶體22與該固態儲存裝置1同步的同步指令。
在該步驟S12中,回應於該同步指令的接收,該檔案系統發出一命令以傳送一日誌給該固態儲存裝置1,並且緊接在發出傳送該日誌的該命令之後發出一命令以傳送一確認紀錄給該固態儲存裝置1。換句話說,繼傳送該日誌的該命令後不會接續該緩衝清除。
該實施例對於諸如智慧型手機、消費級電腦,及類似SQLite的次重要資料庫(less critical database)系統是實際且有用的。
參閱圖4和圖2的(2)部分,說明了本發明的資料同步的方法的另一實施例。如步驟S12’所示,在本實施例中,回應於由該應用軟體SQLite在該步驟S11所發出之該同步指令的接收,該檔案系統緊接在發出傳送該確認紀錄的該命令之後發出一緩衝清除請求。在對該檔案系統(如圖2所示)進行小幅修改的情況下,該實施例仍可以保證與圖2的(1)部分中的習知方法具有相同的持久性。
參閱圖5和圖2的(3)部分,說明本發明的資料同步的方法的又一實施例。該實施例是圖4及圖2的(2)部分所示的變型,且該資料同步的方法還包含一步驟S13及一步驟S14。
在該步驟S13中,該應用軟體(即圖2所示的SQLite’) 對該檔案系統發出一用於使該主記憶體22與該固態儲存裝置1同步的純屏障同步指令(即圖2中的fdatafence()或其他實施例中像是fdatabarrier的其他命名)。換句話說,該資料管理軟體提供了兩種類型的同步指令,其中涉及不同數量的緩衝清除請求,以供該應用軟體調用,如圖2所示。
在該步驟S14中,回應於該純屏障同步指令的接收,該檔案系統發出一命令以傳送一日誌給該固態儲存裝置1,並且緊接在發出傳送該日誌的該命令之後發出一命令以傳送一確認紀錄命令給該固態儲存裝置1。
該實施例多提供該純屏障同步指令給需要使用該屏障來定義傳送該等寫入請求至該固態儲存裝置之所需部分順序的應用程式,以增強應用本發明的資料同步的方法的靈活性。此外,可以減少使用同步指令的次數,可以提高該整體電腦系統的性能。
參考圖6,說明本發明的資料同步的方法的效能。如圖6所示的標繪圖,垂直軸表示速度效能,水平軸表示系統變更的程度。顯然地,與以該基準固態儲存裝置實施的該習知方法(以①表示)相比,本發明的資料同步的方法(以②③④表示)只以小幅改變系統為代價就明顯地提升速度性能。此外,與以該基準固態儲存裝置實施的該習知方法(以①⑤表示)相比,藉由利用該順序保留轉換還原固態儲存裝置,本發明的資料同步的方法(以②③④表示)藉由提供更強的請求級故障保證實現更強的資料完整性。
參閱圖7至圖11,說明本發明的一種易於從前述的固態儲存裝置1之故障中還原的方法的實施例。本發明的方法包括幾種機制,例如,寫入完成追蹤,寫入合併追蹤,映射表檢查點,垃圾回收和順序保留還原,這些將在以下段落中進行描述。
本發明的由該順序保留轉換還原固態儲存裝置提供的該請求級故障保證的特徵在於請求原子性,前綴語義和緩衝清除語義。
請求原子性保證了該固態儲存裝置1所接收的每個寫入請求不論該請求的大小(即要寫入的該等扇區數量)都是原子性的。為了確保請求的原子性,該方法分別針對沒有發生頁面合併的情況與發生頁面合併的情況提供不同策略來判定該寫入請求的完成。
關於該寫入完成追蹤,對於沒有發生頁面合併的情況,根據一涉及N個頁面的寫入請求被完成若且唯若該等N個頁面在故障後被確實存在於該快閃晶片的事實,該方法包括如圖7所示的步驟S211至步驟S215並如下所述。
在該步驟S211中,該固態儲存裝置控制器11依照該寫入請求所被接收的順序,賦予一寫入請求辨識碼(WID)給每一被寫入資料的每一被寫入快閃頁面之該備用區(至少會有一被寫入快閃頁面)。該寫入請求辨識碼是一該寫入請求所獨有的序號,並且相對於接收該寫入請求的順序是遞增的。在該實施例中,該寫入請求辨識碼是一八位元組整數。
在該步驟S12中,該固態儲存裝置控制器11賦予一寫入大小給該至少一被寫入快閃頁面中每一者之該備用區。該寫入大小指示一該寫入請求即將要寫入資料的該至少一快閃頁面之總數量。在該實施例中,該寫入大小為一四位元組整數。應當注意的是,該步驟S211和該步驟S212的執行順序可以互換。
在該步驟S213中,該固態儲存裝置控制器11計數該寫入請求辨識碼在該至少一被寫入快閃頁面中的出現次數以產生一寫入請求辨識碼數量。應當注意的是,該步驟S213是在發生故障後才執行。
在該步驟S214中,該固態儲存裝置控制器11判斷該寫入請求辨識碼數量是否等於該寫入大小。
當判斷該寫入請求辨識碼數量等於該寫入大小時,在該步驟S215中,該固態儲存裝置控制器11判斷該寫入請求已完成,且該寫入請求具備在該固態儲存裝置1故障後被還原的資格。
關於該寫入合併,兩個或更多個寫入請求可以在該固態儲存裝置的該寫入快取中被合併,並且相關的該等寫入請求被稱為合併寫入請求。這種情況減少了該被寫入快閃頁面中該寫入請求辨識碼出現的數量。當該固態儲存裝置控制器11接收到在該寫入快取13中被合併的一前寫入請求以及一後寫入請求時,本發明的方法包括步驟S221至步驟S226,用於判定該前寫入請求是否不完整,如圖8所述並概述如下。
在該步驟S221中,對該寫入快取中用以快取對應於前寫入請求資料之快取頁面的每一者,該固態儲存裝置控制器11以一濁旗標(dirty flag)、一寫入請求辨識碼標籤與一大小標籤標記該快取頁面。該濁旗標指示該快取頁面是否為一合併頁面,與其合併一存有對應於後寫入請求資料之一快取頁面,該寫入請求辨識碼標籤儲存一該前寫入請求的寫入請求辨識碼,且該大小標籤儲存一請求大小其指示即將被該前寫入請求寫入資料的總頁數。
在該步驟S222中,對與該等對應後寫入請求資料之快取頁面合併之被合併頁面中,用以快取對應前寫入請求資料之每一者,該固態儲存裝置控制器11記載一頁面合併紀錄,其含有該前寫入請求的該寫入請求辨識碼、對應該前寫入請求的該寫入大小、以及該後寫入請求的一寫入請求辨識碼。在該實施例中,該頁面合併紀錄最初被記錄在該固態儲存裝置1的一動態隨機存取記憶體緩衝中,並且當該等頁面合併紀錄的一累積數量達到該快閃晶片的一快閃頁面的一儲存容量時,最終將被轉移到該快閃晶片的一保留區塊中。
參閱圖9所示的一合併記錄範例,<3,7>,6表示一寫入請求辨識碼為3的前寫入請求與一寫入請求辨識碼為7的後寫入請求合併,且該前寫入請求的該寫入大小為6頁。
在該步驟S223中,該固態儲存裝置控制器11計數該前寫入請求的該寫入請求辨識碼在所有被寫入前寫入請求資料的被寫入頁面中之出現次數(將存在至少一被寫入快閃頁面),以產生一針對該前寫入請求的寫入請求辨識碼數量。應當注意的是,在發生故障後才執行該步驟S223。
在該步驟S224中,該固態儲存裝置控制器11計數該前寫入請求的該寫入請求辨識碼在該等針對該等被合併頁面之頁面合併紀錄中之出現次數,以產生一對應該前寫入請求的頁面合併數量。應當注意的是,該步驟S223和該步驟S224的執行順序可以互換。
在該步驟S225中,該固態儲存裝置控制器11判斷針對該前寫入請求的該寫入請求辨識碼數量與對應該前寫入請求的該頁面合併數量之和,是否小於對應該前寫入請求的該寫入大小。
當判斷針對該前寫入請求的該寫入請求辨識碼數量與對應該前寫入請求的該頁面合併數量之和,小於對應該前寫入請求的該寫入大小時,在該步驟S226中,該固態儲存裝置控制器11判斷該前寫入請求並未被完成並且不具備在該固態儲存裝置1故障後被還原的資格。在數學表示式中,如果Pi
+Di
<Sizei
,則具有該寫入請求辨識碼=i的一合併寫入請求是不完整的,其中Pi
表示寫入快閃頁面被設定該寫入請求辨識碼=i的的數量,Di
表示在具有x=i的頁面合併紀錄中已記錄<x,y>對的數量,Sizei
表示對應於具有該寫入請求辨識碼=i之合併寫入請求的寫入大小。
為了滿足前綴語義以便確保可以保留寫入請求的順序,除非該固態儲存裝置1先前接收的所有寫入請求都是持久的,否則該固態儲存裝置1不會使一寫入請求具有持久性。因此,該方法還包括一步驟:該固態儲存裝置控制器11避免使該後寫入請求成為持久的,除非判斷出該前寫入請求為持久的。在一個實施例中,回應於一詢問的接收,該固態儲存裝置控制器11傳送一指示符指示該固態儲存裝置控制器11避免使該後寫入請求成為持久的,除非判斷該前寫入請求為持久的。
緩衝清除語義保證了在一緩衝清除請求之前接收到的所有寫入請求的持久性。因此,該方法還包含一步驟:該固態儲存裝置控制器11於收到該寫入請求後又從該主機端接收到一緩衝清除請求時,該固態儲存裝置控制器11避免認可(acknowledge)該緩衝清除請求,除非判斷該寫入請求為被完成的。
關於為該映射表提供檢查點,為該邏輯-至-物理映射表提供檢查點至該快閃晶片以加快從故障中還原的速度。本發明的方法保持一整體檢查點,該整體檢查點快照整份該邏輯-至-物理映射表,且至少一增修檢查點僅記錄自最後檢查點(該整體檢查點或該增修檢查點)以來在該邏輯-至-物理映射表中發生的差異,參閱圖10和圖11,該方法包括如下所述的步驟S31至步驟S33。
在該步驟S31中,該固態儲存裝置控制器11對每一被寫入資料的被寫入快閃頁面(至少存在一被寫入快閃頁面),除了該寫入請求辨識碼和該寫入大小還賦予一邏輯頁碼於該被寫入快閃頁面之該備用區。
在該步驟S32中,該固態儲存裝置控制器11經由儲存一整個邏輯-至-物理映射表於該快閃晶片的該等區塊中的一保留區塊以建立一整體檢查點。該整體檢查點含有針對該至少一被寫入快閃頁面中每一者的該邏輯頁碼與一物理頁碼間的對應關係。
在該步驟S33中,該固態儲存裝置控制器11經由儲存一該邏輯-至-物理映射表自最後檢查點建立後所修改的修改部分以建立一增修檢查點,該最後檢查點為該整體檢查點及最後建立之一增修檢查點中的一個。如圖11所示,該整體檢查點及該增修檢查點中之每一者各包含一密封頁面,其記載一寫入請求辨識碼與一物理頁碼,該寫入請求辨識碼對應於在該整體檢查點與該增修檢查點其中之一對應者建立時的一最新寫入請求,該物理頁碼對應於在該整體檢查點與該增修檢查點其中之一對應者建立時的作為一頁面指標的該等快閃頁面中之一個次一自由快閃頁面。對於包括多個快閃晶片的一固態儲存裝置1,每個快閃晶片可以包括一被寫入區塊,當同時寫入多個區塊時,該密封頁面可以有多個頁面指標。
值得注意的是,本發明的方法預設採用該等增修檢查點。當用以儲存該等增修檢查點的空間已滿時,本發明的方法創建新的一整體檢查點並清除該等增修檢查點。而且,本發明的方法對該整體檢查點採用遮蔽策略(shadowing)以確保該映射表檢查點的完整性,且該寫入請求辨識碼在故障後可用於判定該等整體檢查點與增修檢查點間的相似度。當採用遮蔽策略時,該等整體檢查點之前一個將被保留直到對應該等整體檢查點之一當前者的被寫入資料被確認沒有損壞為止。
關於順序保留還原,本發明的該固態儲存裝置1的故障還原與重建該邏輯-至-物理映射表相關,且本發明的方法包括如圖12所述的步驟S41至步驟S46。
在該步驟S41中,該固態儲存裝置控制器11藉由提取儲存於該保留區塊之該整體檢查點以重建該一整個邏輯-至-物理映射表。
在該步驟S42中,該固態儲存裝置控制器11藉由將包含在該增修檢查點中之該修改部分引入該被重建的邏輯-至-物理映射表以修改該被重建的邏輯-至-物理映射表。
在該步驟S43中,該固態儲存裝置控制器11對在該最後檢查點建立後所接收到的該等寫入請求中之每一者,根據被記載在該最後檢查點的該密封頁面之該物理頁碼,計數該寫入請求所對應的寫入請求辨識碼於被寫入該寫入請求的該資料之後續快閃頁面中的出現次數,以產生一故障後寫入請求辨識碼數量,其指示該寫入請求辨識碼在該等後續頁面中出現的總數量。
在該步驟S44中,該固態儲存裝置控制器11對在該最後檢查點建立後所接收到的該等寫入請求中之每一者,根據該故障後寫入請求辨識碼數量以及對應該寫入請求的該寫入大小,決定該寫入請求是否為被完成的。
在該步驟S45中,該固態儲存裝置控制器11藉使用一復原決定程序復原一群在該最後檢查點建立後所接收到的該等寫入請求,該復原決定程序係相關於該等寫入請求的完成度。
在該步驟S46中,該固態儲存裝置控制器11藉由將相關於被復原的該群寫入請求之被寫入快閃頁面的該等邏輯頁碼與該等物理頁碼之間的對應關係之變更處,引入該被修改的邏輯-至-物理映射表,以更新該被修改的邏輯-至-物理映射表。
具體而言,參閱圖13,在步驟S45所使用的還原決定程序包括以下所述的子步驟S451至S454。
在該子步驟S451中,該固態儲存裝置控制器11依照該等寫入請求所被接收到的順序,安排該等在該最後檢查點建立後所接收到的該等寫入請求。
在該子步驟S452中,該固態儲存裝置控制器11對該等寫入請求中之每一連續二者,決定該連續二個寫入請求是否被合併。
在該子步驟S453中,該固態儲存裝置控制器11決定至少一切割,使得該每一切割中介在一連續偶中的該等寫入請求之間,其中在該連續偶中的該等寫入請求之任一者皆未發生合併,而且順序在該切割之前的該等寫入請求全部皆為被完成的,並作為即將要被復原的該群寫入請求。在一個實施例中,在該至少一切割前的該寫入請求作為即將要被復原的該群寫入請求。
在該子步驟S454中,該固態儲存裝置控制器11在該至少一切割中決定一最優切割,其中順序在該最優切割之前的該等寫入請求之數量於該至少一切割中係最多的,並且作為即將要被復原的該群寫入請求。
參考圖14所示的示例進行說明,在該最後檢查點後有六個寫入請求,並且該等寫入請求的某些資料已到達快閃晶片。切割可能會發生在1至7等位置,但只有1和3的位置適合切割,因為在位置1和3間的兩個寫入請求是非合併的,且位置1和3前的每個寫入請求都已完成。此外,切割3為最佳切割,因為在切割1和3之間切割3之前的該等寫入請求數量更大。
參照表1,示例出了還原決定程序的虛擬碼的示例。
表一
尋找最佳還原點 |
Input: widinc ,C Output: the optimal recovery point 1:widrec ←widinc ; 2: Sort C by x in descending order; 3:for c ϵ C do 4: if c.x <widrec c.y >widrec then 5: widrec ←c.x ; 6: end if 7:end for 8: returnwidrec ; |
應當注意的是,為了在故障中還原期間滿足前綴語義的要求,在該固態儲存裝置控制器11接收到該前寫入請求和該後寫入請求的一情境下,該固態儲存裝置控制器11拒絕保留該後寫入請求,除非判斷該前寫入請求為被完成的。
關於垃圾回收,由於就地更新並不被該等固態儲存裝置的該快閃晶片所允許,重覆寫入資料將透過寫入已更新資料至一自由快閃頁面及自該原始快閃頁面移除該過時資料來執行,其中該原始快閃頁面被稱為無效快閃頁面。該無效快閃頁面將被專用例行程序回收,稱為垃圾回收,以供進一步重覆使用。然而,某些藉由垃圾回收的無效快閃頁面可能對從故障中還原很重要,亦即,此方法可能會使該等無效快閃頁面發揮重要功效來將該順序保留轉換還原固態儲存裝置從故障中還原到一順序保留狀態。因此,在垃圾回收上執行兩個限制,並且本發明的方法還包括以下兩個步驟來分別實現該兩個限制。
在一個步驟中,當正在進行垃圾回收時,該固態儲存裝置控制器11避免收回該等頁面中於該最後檢查點建立後被寫入之一者。應該注意的是,在一緩衝清除請求前的所有寫入請求應該具有持久性及原子性,因此該限制可以防止違反在一緩衝清除請求前但在該垃圾回收回收該最後檢查點後寫入該等快閃頁面的該緩衝清除語義,從而阻止在該最後檢查點後該等寫入請求之完成的確定。
在另一步驟中,該固態儲存裝置控制器11在進行垃圾回收之前對該寫入快取13先進行內部緩衝清除。進行內部緩衝清除將確保每一由該垃圾回收的快閃頁面都具有一可在故障後存活之穩定的副本。因此,可以簡化垃圾回收的任務。為了減少一內部緩衝清除的效能損失,透過對一批次區塊(在該實施例中為16個區塊)進行垃圾回收以減輕執行內部緩衝清除的成本。
綜上所述,本發明的一種從一固態儲存裝置故障中還原的方法,透過將該固態儲存裝置的韌體(快閃記憶體轉換層)修改為本發明的順序保留轉換還原固態儲存裝置,以實現在具有該標準區塊裝置介面之該固態儲存裝置上的一些事務特性(及原子性和耐用性)。該順序保留轉換還原固態儲存裝置具有強大的請求級故障保證:一寫入請求不被作為持久的直到所有前寫入請求都是持久的;每一寫入請求都具有原子性,且在一緩衝清除請求前的所有寫入請求都是持久的。因此,一方面達到該等寫入請求依序完成且原子性地的等效效果,一方面該固態儲存裝置的效能得以維持。因而,可以有效限制並顯著減少有效的故障後結果的數量,從而簡化該等應用或檔案系統從故障中還原的該等任務。
為了說明提供一示例,提供一情境來作為一例子,在該例子中該固態儲存裝置控制器11接收一第一寫入請求以透過將該第一寫入請求的資料寫入一第一位址範圍來更新該固態儲存裝置1的該非揮發性記憶體12的該第一位址範圍,以及接收一第二寫入請求以透過將該第二寫入請求的資料寫入一第二位址範圍來更新該固態儲存裝置1的該非揮發性記憶體12的該第二位址範圍,其中該第二寫入請求由該主機自該第一寫入請求後發出。另外,在該第一寫入請求和該第二寫入請求間沒有緩衝清除請求,且在該第一寫入請求和該第二寫入請求間也沒有屏障請求。參閱如下表2,回應於一讀取請求以讀取在該第一位址範圍及該第二位址範圍的資料,該固態儲存裝置控制器11當部分更新被允許時回傳被保證屬於案例1、2、3、6,及9之其中一者的讀出資料(參閱表2最後一欄的子欄位A),或是當部分更新不被允許時回傳屬於案例1、3,及9之其中一者的讀出資料(參閱表2最後一欄的子欄位B)。
表2
案例編號 | 第一位址範圍 | 第二位址範圍 | 讀出資料 | |
A | B | |||
1 | 全面更新 | 全面更新 | V | V |
2 | 全面更新 | 部分更新 | V | |
3 | 全面更新 | 未更新 | V | V |
4 | 部分更新 | 全面更新 | ||
5 | 部分更新 | 部分更新 | ||
6 | 部分更新 | 未更新 | V | |
7 | 未更新 | 全面更新 | ||
8 | 未更新 | 部分更新 | ||
9 | 未更新 | 未更新 | V | V |
為了進一步解釋,參閱圖15,示出了本發明的該基準固態儲存裝置和該順序保留轉換還原固態儲存裝置間的針對故障還原的有效故障後結果之數量的比較。一固態儲存裝置具有四個扇區,這些扇區最初分別儲存四個版本號碼:0、0、0,和0。在故障發生前,該固態儲存裝置接收到四個寫入請求和一個緩衝清除請求,即依序收到write(0,2)、write(1,2)、flush、write(0,4),和write(2,2),其中每個寫入請求均由一邏輯區塊位址(logical block address, LBA)和括號中的大小指定。假如各個扇區的版本號碼在一旦該等寫入請求之一寫入該扇區時會增加1,則該基準固態儲存裝置會呈現2*2*3*3=36個可能的故障後結果,因為該等寫入請求的順序及該等扇區被寫入的順序並不保留。相較之下,本發明的該順序保留轉換還原固態儲存裝置確保該等寫入請求依序並具原子性地被完成,因此有效故障後結果的數量顯著地減少至三個。
由於由本發明的該固態儲存裝置1提供的故障保證是明確的,因此未來應用軟體及檔案系統開發人員的犯錯機會將可減少。
此外,得益於這種強大的請求級故障保證,透過清除由該檔案系統回應於該應用軟體之該同步指令的接收所發出的該等不必要緩衝清除請求,一電腦系統的操作效率將被提高。
在以上描述中,基於解釋的目的,已經闡述許多具體細節以便於提供對該等實施例的透徹理解。然而,對於本領域的技術人員,可以在沒有這些特定細節中的一些情況下實踐一個或多個其他實施例。還需要理解的是,在整份說明書中,對於一個實施例、一實施例、具有順序指示的實施例的引用代表在實踐中可以包括特定的特徵,結構或特性。理當進一步理解的是,在說明書中,有時將各種特徵組合在單一實施例、圖式,或描述中,以簡化本公開並幫助理解各種發明方面,並且在適當情況下,在本發明的實踐中,可以將一個實施例的一或多個特徵或特定細節與另一個實施例的一或多個特徵或特定細節一起實踐。
儘管已經結合示例性實施例描述了本公開,但應當理解的是,本公開不限於所公開的實施例,而是旨在覆蓋包括最廣泛的解釋的精神和範圍內的各種佈置,以涵蓋所有此類修改和等效安排。
1:固態儲存裝置
11:固態儲存裝置控制器
12:非揮發性記憶體
13:寫入快取
2:電腦裝置
21:處理器
22:主記憶體
S11、S12、S12’、S13、S14:步驟
S211~S215:步驟
S221~S226:步驟
S31~S33:步驟
S41~S46:步驟
S451~S454:子步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1是一方塊圖,說明本發明之電腦系統的實施例;
圖2是一示意圖,說明本發明之資料同步的方法的實施方式;
圖3是一流程圖,說明根據本發明之資料同步的方法的一實施例;
圖4是一流程圖,說明根據本發明之資料同步的方法的另一實施例;
圖5是一流程圖,說明根據本發明之資料同步的方法的又一實施例;
圖6是一示意圖,說明本發明之資料同步的方法的效能;
圖7、8、10、12和13是流程圖,說明本發明之易於從固態儲存裝置之故障中還原的方法的實施方式;
圖9是一示意圖,說明本發明之易於從固態儲存裝置之故障中還原的方法之一追蹤合併的示例;
圖11是一示意圖,說明本發明之易於從固態儲存裝置之故障中還原的方法之一映射表檢查點的示例;
圖14是一示意圖,說明本發明之易於從固態儲存裝置之故障中還原的方法之一還原確認過程的示例;及
圖15是一示意圖,說明傳統固態儲存裝置和本發明的固態儲存裝置間故障後之比較的示例。
S11、S12:步驟
Claims (16)
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該方法包含:由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;為回應接收該同步指令,由該資料管理軟體發出一用以傳送一日誌的傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;為回應接收該同步指令,由該資料管理軟體緊接在發出該傳送確認紀錄命令之後發出一緩衝清除請求;由該資料管理軟體發送一詢問給該固態儲存裝置;以及由該資料管理軟體從該固態儲存裝置接收一回應該詢問的指示符其指示該固態儲存裝置正處於一種模式,在此模式下該固態儲存裝置會避免使確認紀錄成為持久的,除非該固態儲存裝置判斷該日誌為持久的。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體該固態儲存 裝置具有一非揮發性記憶體及一標準區塊裝置介面,該標準區塊裝置介面相容於Linux作業系統的第四代擴充套件檔案系統,該方法包含:該固態儲存裝置依序接收多個寫入請求,其中該固態儲存裝置正被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中;由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;為回應接收該同步指令,由該資料管理軟體發出一傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;為回應接收該同步指令,由該資料管理軟體緊接在發出該傳送確認紀錄命令之後發出一緩衝清除請求。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該方法包含:由該應用軟體,對該資料管理軟體發出一純屏障同步指令以使該主記憶體與該固態儲存裝置同步;為回應接收該純屏障同步指令,由該資料管理軟體發 出一用以傳送一日誌的傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;以及為回應接收該同步指令,由該資料管理軟體發出該傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置。
- 如請求項3所述的資料同步的方法,進一步包含:由該資料管理軟體發送一詢問給該固態儲存裝置;由該資料管理軟體從該固態儲存裝置接收一回應該詢問的指示符其指示該固態儲存裝置正處於一種模式,在此模式下該固態儲存裝置會避免使確認紀錄成為持久的,除非該固態儲存裝置判斷該日誌為持久的。
- 如請求項3所述的資料同步的方法,該固態儲存裝置具有一非揮發性記憶體,該方法進一步包含:該固態儲存裝置依序接收多個寫入請求,其中該固態儲存裝置正被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該方法包 含:由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步,其中該資料管理軟體係一檔案系統;為回應接收該同步指令,由該資料管理軟體發出一用以傳送一日誌的傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;由該資料管理軟體發送一詢問給該固態儲存裝置;由該資料管理軟體從該固態儲存裝置接收一回應該詢問的指示符其指示該固態儲存裝置正處於一種模式,在此模式下該固態儲存裝置會避免使確認紀錄成為持久的,除非該固態儲存裝置判斷該日誌為持久的。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該固態儲存裝置具有一標準區塊裝置介面,該標準區塊裝置介面相容於Linux作業系統的第四代擴充套件檔案系統,該方法包含:該固態儲存裝置依序接收多個寫入請求,其中該固態儲存裝置正被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體 中;由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步,其中該資料管理軟體係一檔案系統;為回應接收該同步指令,由該資料管理軟體發出一傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該方法包含:由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;為回應接收該同步指令,由該資料管理軟體發出一用以傳送一日誌的傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置;由該資料管理軟體發送一詢問給該固態儲存裝置;以及由該資料管理軟體從該固態儲存裝置接收一回應該詢問的指示符其指示該固態儲存裝置正處於一種模式,在此模式下該固態儲存裝置控制器會避免使確認紀錄成為 持久的,除非該固態儲存裝置判斷該日誌為持久的。
- 如請求項8所述的資料同步的方法,其中,該指示符為一順序保留保證指示符,其指示該固態儲存裝置正被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中。
- 如請求項9所述的資料同步的方法,其中,該指示符係一二元碼,當判斷該被讀取的指示符其邏輯值屬於一預先定義的值組時,該電腦裝置進一步判斷該固態儲存裝置正操作於該順序保留模式。
- 如請求項8所述的資料同步的方法,當該電腦裝置判斷該固態儲存裝置正操作於該模式時,該方法進一步包含:該資料管理軟體啟動一無屏障選項以避免發出任何緩衝清除請求。
- 如請求項8所述的資料同步的方法,該資料管理軟體係一檔案系統。
- 一種資料同步的方法,係由一電腦系統實施,其具有一電腦裝置以及一可與該電腦裝置通訊的固態儲存裝置(solid-state storage device,SSD),該電腦裝置執行一應用軟體與資料管理軟體且具有一主記憶體,該方法包含:由該應用軟體,對該資料管理軟體發出一同步指令以使得該主記憶體與該固態儲存裝置同步;為回應接收該同步指令,由該資料管理軟體發出一用 以傳送一日誌的傳送日誌命令給該固態儲存裝置,並且緊接在發出該傳送日誌命令之後發出一傳送確認紀錄命令給該固態儲存裝置,該傳送確認紀錄命令被發出後並未再跟接一緩衝清除請求。
- 如請求項13所述的資料同步的方法,進一步包含:由該資料管理軟體發送一詢問給該固態儲存裝置;由該資料管理軟體從該固態儲存裝置接收一回應該詢問的指示符其指示該固態儲存裝置正處於一種模式,在此模式下該固態儲存裝置會避免使確認紀錄成為持久的,除非該固態儲存裝置判斷該日誌為持久的。
- 如請求項13所述的資料同步的方法,該固態儲存裝置具有一非揮發性記憶體,該方法進一步包含:該固態儲存裝置依序接收多個寫入請求,其中該固態儲存裝置正被操作於一順序保留模式,在此模式下該固態儲存裝置會依照該等寫入請求所被接收的順序,將被包含在該等寫入請求中之資料,保存在該非揮發性記憶體中。
- 如請求項13所述的資料同步的方法,當該電腦裝置判斷該固態儲存裝置正操作於該模式時,該方法進一步包含:該資料管理軟體啟動一無屏障選項以避免發出任何緩衝清除請求。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962809580P | 2019-02-23 | 2019-02-23 | |
US62/809,580 | 2019-02-23 | ||
US201962873253P | 2019-07-12 | 2019-07-12 | |
US62/873,253 | 2019-07-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202134882A TW202134882A (zh) | 2021-09-16 |
TWI774388B true TWI774388B (zh) | 2022-08-11 |
Family
ID=72141683
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109105697A TWI737189B (zh) | 2019-02-23 | 2020-02-21 | 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置 |
TW110118527A TWI774388B (zh) | 2019-02-23 | 2020-02-21 | 資料同步方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109105697A TWI737189B (zh) | 2019-02-23 | 2020-02-21 | 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11263180B2 (zh) |
TW (2) | TWI737189B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023136083A (ja) * | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN116991757B (zh) * | 2023-09-26 | 2023-12-15 | 四川云海芯科微电子科技有限公司 | 一种l2p表增量数据压缩方法及系统 |
CN117707436B (zh) * | 2024-02-05 | 2024-05-03 | 苏州元脑智能科技有限公司 | 固件模式切换方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201142621A (en) * | 2010-05-17 | 2011-12-01 | Chunghwa Telecom Co Ltd | Cross information system data synchronization method and system |
TWI434214B (zh) * | 2008-12-30 | 2014-04-11 | Intel Corp | 用以延伸快取一致性以保持緩衝資料之裝置,處理器,系統及方法 |
TW201727491A (zh) * | 2016-01-20 | 2017-08-01 | 后旺科技股份有限公司 | 複合式硬碟的存取方法 |
US20180375938A1 (en) * | 2012-03-30 | 2018-12-27 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966462B2 (en) * | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US9122579B2 (en) * | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8788842B2 (en) * | 2010-04-07 | 2014-07-22 | Apple Inc. | System and method for content protection based on a combination of a user PIN and a device specific identifier |
US8725951B2 (en) * | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US8626713B2 (en) * | 2010-12-08 | 2014-01-07 | International Business Machines Corporation | Multiple contexts in a redirect on write file system |
US20120239860A1 (en) * | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8799216B1 (en) * | 2011-05-14 | 2014-08-05 | Pivotal Software, Inc. | Mirror resynchronization of bulk load and append-only tables during online transactions for better repair time to high availability in databases |
US8868492B2 (en) * | 2011-06-15 | 2014-10-21 | Oracle International Corporation | Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica |
US9274937B2 (en) * | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US10359972B2 (en) * | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US8977896B1 (en) * | 2013-03-13 | 2015-03-10 | Emc Corporation | Maintaining data integrity in data migration operations using per-migration device error flags |
US10025704B2 (en) * | 2013-12-27 | 2018-07-17 | Crossbar, Inc. | Memory system including PE count circuit and method of operating the same |
US10073902B2 (en) * | 2014-09-24 | 2018-09-11 | Microsoft Technology Licensing, Llc | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency |
US20160132251A1 (en) * | 2014-11-11 | 2016-05-12 | Wisconsin Alumni Research Foundation | Operating method of storage device and data writing method for writing data into storage device |
US10678445B2 (en) * | 2015-06-10 | 2020-06-09 | Microsoft Technology Licensing, Llc | Recovery in data centers |
US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
TWI604308B (zh) * | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
WO2018055686A1 (ja) * | 2016-09-21 | 2018-03-29 | 株式会社日立製作所 | 情報処理システム |
CN107295080B (zh) * | 2017-06-19 | 2020-12-18 | 北京百度网讯科技有限公司 | 应用于分布式服务器集群的数据存储方法和服务器 |
CN107870744A (zh) | 2017-10-27 | 2018-04-03 | 上海新储集成电路有限公司 | 一种非同步镜像的混合硬盘阵列存储系统及方法 |
US11392544B2 (en) * | 2018-02-06 | 2022-07-19 | Samsung Electronics Co., Ltd. | System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system |
US20190243578A1 (en) * | 2018-02-08 | 2019-08-08 | Toshiba Memory Corporation | Memory buffer management for solid state drives |
US10445238B1 (en) * | 2018-04-24 | 2019-10-15 | Arm Limited | Robust transactional memory |
US10885004B2 (en) * | 2018-06-19 | 2021-01-05 | Intel Corporation | Method and apparatus to manage flush of an atomic group of writes to persistent memory in response to an unexpected power loss |
US10909030B2 (en) * | 2018-09-11 | 2021-02-02 | Toshiba Memory Corporation | Enhanced trim command support for solid state drives |
US10860483B2 (en) * | 2019-04-30 | 2020-12-08 | EMC IP Holding Company LLC | Handling metadata corruption to avoid data unavailability |
US11113188B2 (en) * | 2019-08-21 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data preservation using memory aperture flush order |
US11157177B2 (en) * | 2020-03-16 | 2021-10-26 | EMC IP Holding Company LLC | Hiccup-less failback and journal recovery in an active-active storage system |
-
2020
- 2020-02-21 US US16/797,944 patent/US11263180B2/en active Active
- 2020-02-21 TW TW109105697A patent/TWI737189B/zh active
- 2020-02-21 TW TW110118527A patent/TWI774388B/zh active
-
2022
- 2022-01-10 US US17/572,077 patent/US20220129420A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI434214B (zh) * | 2008-12-30 | 2014-04-11 | Intel Corp | 用以延伸快取一致性以保持緩衝資料之裝置,處理器,系統及方法 |
TW201142621A (en) * | 2010-05-17 | 2011-12-01 | Chunghwa Telecom Co Ltd | Cross information system data synchronization method and system |
US20180375938A1 (en) * | 2012-03-30 | 2018-12-27 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
TW201727491A (zh) * | 2016-01-20 | 2017-08-01 | 后旺科技股份有限公司 | 複合式硬碟的存取方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220129420A1 (en) | 2022-04-28 |
TW202103155A (zh) | 2021-01-16 |
TW202134882A (zh) | 2021-09-16 |
TWI737189B (zh) | 2021-08-21 |
US20200272604A1 (en) | 2020-08-27 |
US11263180B2 (en) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6556911B2 (ja) | 注釈付きアトミック書き込み操作を行う方法および装置 | |
US10176190B2 (en) | Data integrity and loss resistance in high performance and high capacity storage deduplication | |
US11960729B2 (en) | Method of increasing flash endurance by improved metadata management | |
US10102075B2 (en) | Systems and methods for storage collision management | |
US10445000B2 (en) | Device controller and method for performing a plurality of write transactions atomically within a nonvolatile data storage device | |
US9842128B2 (en) | Systems and methods for atomic storage operations | |
US10019320B2 (en) | Systems and methods for distributed atomic storage operations | |
EP3519969B1 (en) | Physical media aware spacially coupled journaling and replay | |
TWI774388B (zh) | 資料同步方法 | |
US9342256B2 (en) | Epoch based storage management for a storage device | |
WO2017190604A1 (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
CN108431783B (zh) | 访问请求处理方法、装置及计算机系统 | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
Oh et al. | SHARE interface in flash storage for relational and NoSQL databases | |
US9778860B2 (en) | Re-TRIM of free space within VHDX | |
CN110196818B (zh) | 缓存数据的方法、缓存设备和存储系统 | |
CN102012849B (zh) | 一种基于闪存的数据库恢复方法 | |
EP2590078B1 (en) | Shadow paging based log segment directory | |
CN103530237A (zh) | 一种固态盘阵列的垃圾回收方法 | |
US20170017405A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
CN112035294A (zh) | 安全日志文件系统及其实现方法和介质 | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
US20170017406A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
KR101419428B1 (ko) | 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법 | |
Lee et al. | RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk |