TWI702500B - 使用多串流的系統、方法以及製品 - Google Patents
使用多串流的系統、方法以及製品 Download PDFInfo
- Publication number
- TWI702500B TWI702500B TW105125727A TW105125727A TWI702500B TW I702500 B TWI702500 B TW I702500B TW 105125727 A TW105125727 A TW 105125727A TW 105125727 A TW105125727 A TW 105125727A TW I702500 B TWI702500 B TW I702500B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- write request
- storage device
- request
- log
- Prior art date
Links
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0608—Saving storage space on storage 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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
- G06F2212/1036—Life time enhancement
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
揭露一種在使用實行雙寫入的應用程式及/或資料儲存系
統時,對日誌資訊及資料使用多串流的系統及方法。可將日誌寫入請求與日誌資訊一起發送,所述日誌寫入請求指明所述日誌資訊應被寫入至一個串流。可將資料寫入請求與資料一起發送,所述資料寫入請求指明所述資料應被寫入至另一串流。儲存裝置上的控制器可接著將所述日誌資訊寫入至與第一串流相關聯的區塊並將所述資料寫入至與所述第二串流相關聯的區塊。
Description
本發明概念是有關於儲存裝置,且更具體而言是有關於在使用實行日誌登載(journaling)的應用程式時將具有無用數據(garbage)收集的儲存裝置的使用最佳化。
本專利申請案主張於2015年12月30日提出申請的第62/273,323號美國臨時專利申請案的權利,所述美國臨時專利申請案併入本案供參考。
反及快閃記憶體式固態硬碟(Solid-State Drive,SSD)已廣泛用於企業伺服器及資料中心,以加快所有種類的資料儲存系統的速度。固態硬碟中的快閃記憶體具有獨特的特性,因此直接以固態硬碟取代傳統磁碟無法利用所述裝置的全部潛能。一個重要的原因是所述固態硬碟僅寫入至空的快閃記憶體區塊,並使用無用數據收集過程來恢復無效的快閃記憶體區塊以供重複使
用。由於傳統作業系統及應用程式不在熱資料與冷資料之間進行區分,因此具有不同壽命期限的資料的混合使得無用數據收集更難管理並回收快閃記憶體。此會影響固態硬碟的效能及壽命二者。
當前,諸多資料儲存系統-包括物件儲存系統(例如Ceph)、區塊儲存系統(例如,快取及其他快取系統)、以及檔案儲存系統(例如,IBM JFS/JFS2、Linux xfs、以及Linux ext4)-出於資料耐久性及效能之目的而使用日誌登載。該些系統儲存資料的兩個副本:一個儲存於日誌部中且另一個儲存於資料部中。
當在純固態硬碟環境中部署該些系統時,由於效能及成本的原因,該些系統通常將日誌及實際資料儲存於同一固態硬碟上。當接收欲被寫入的資料時,所述資料儲存系統首先將所述資料的一個副本儲存於被清除至所述磁碟的日誌中,且所述資料的第二個副本被儲存於記憶體中的檔案系統頁面快取中。所述資料儲存系統接著向使用者應用程式傳回成功資訊。之後,有時候在後台中,所述資料儲存系統將檔案系統頁面快取中的該些資料記錄清除至磁碟中,並移除磁碟上的日誌中相同的資料記錄。對每一資料寫入重複此過程,且即使日誌僅用於元資料時亦進行此過程。
當與固態硬碟一起使用時,此種雙寫入方法存在問題:每一固態硬碟區塊內部的快閃記憶體內部碎片(internal fragmentation)。此內部碎片問題會造成更多的無用數據收集,從而使得儲存系統效能劣化、讀取/寫入潛時更長,並使固態硬碟的壽命縮短。
仍需提供與固態硬碟一起利用雙寫入方法以避免(或至少最小化)固態硬碟中快閃記憶體的碎片的方式。
一種系統可包括電腦、儲存裝置、應用程式、以及控制器。電腦可包括處理器及記憶體。應用程式可在所述處理器上運行。所述應用程式可運作以將日誌寫入請求及資料寫入請求二者發送至所述儲存裝置。所述日誌寫入請求可包括日誌資訊且與第一串流相關聯。所述資料寫入請求可包括資料且與第二串流相關聯。位於所述儲存裝置上的控制器可運作以指令所述儲存裝置將日誌資訊寫入至與所述第一串流相關聯的第一區塊並將所述資料寫入至與所述第二串流相關聯的第二區塊。
105:伺服器
110:處理器
115:記憶體
120:資料儲存系統
125:應用程式
130:儲存裝置
135:控制器
205:記憶體控制器
210:時鐘
215:網路連接器
220:匯流排
225:使用者介面
230:輸入/輸出引擎
305:日誌資訊
310:日誌寫入請求
315:串流識別符/串流
320:資料寫入請求
325:資料
330:串流識別符/串流
335、625:訊號
340、630:無效化請求
405、410、415、420、505、535、545、550:區塊
425、430、440、445、450、455、460:頁面
510、515、520:頁面/日誌寫入
525、530、540:頁面/資料寫入
605:日誌寫入請求
610:日誌資訊
615:串流識別符
620:資料寫入請求
705、710、715、720、725、730、735、740、745、750:方塊
圖1示出根據本發明概念的實施例的可利用具有日誌登載的資料儲存系統的伺服器。
圖2示出圖1所示伺服器的其他細節。
圖3示出圖1所示應用程式與圖1所示儲存裝置進行通訊以實行日誌登載及資料寫入二者。
圖4示出圖1所示儲存裝置使用多串流來儲存日誌及資料。
圖5A至圖5B示出使用傳統方法時圖1所示儲存裝置的使用
與使用本發明概念的實施例時圖1所示儲存裝置的使用的比較。
圖6A至圖6B示出圖1所示應用程式及圖1所示資料儲存系統與圖1所示儲存裝置進行通訊以實行日誌登載及資料寫入二者。
圖7A至圖7B示出根據本發明概念的實施例的用於使圖1所示應用程式及圖1所示資料儲存系統與圖1所示儲存裝置進行通訊並實行日誌登載及資料寫入二者的示例性程序的流程圖。
現在將詳細參照本發明概念的實施例,所述實施例的實例說明於附圖中。在以下詳細說明中,闡述大量的具體細節,以達成對本發明概念的透徹理解。然而,應理解,此項技術中具有通常知識者可不使用該些具體細節來實踐本發明概念。在其他情形中,未對眾所習知的方法、程序、組件、電路、及網路予以詳細闡述,以免不必要地使實施例的態樣模糊不清。
應理解,儘管本文中可能使用用語「第一」、「第二」等來闡述各種元件,然而該些元件不應受限於該些用語。該些用語僅用於區分各個元件。舉例而言,第一模組可被稱為第二模組,且相似地,第二模組可被稱為第一模組,而此並不背離本發明概念的範圍。
本文中在闡述本發明概念時所使用的術語僅用於闡述特定實施例,而並非旨在限制本發明概念。除非上下文中清楚地另
外指明,否則在對本發明概念及隨附申請專利範圍的說明中所使
用的單數形式「一(a、an)」及「所述(the)」旨在亦包括複數形式。亦應理解,本文中所使用的用語「及/或(and/or)」指代並囊括相關列出項其中一或多個項的任意及所有可能組合。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件、及/或其群組的存在或添加。圖式中的組件及特徵未必按比例繪製。
圖1示出根據本發明概念的實施例的可利用具有日誌登載的資料儲存系統的伺服器。在圖1中,示出伺服器105。伺服器105可為任意種類的伺服器。伺服器105可包括處理器110及記憶體115。處理器110可為任意種類的處理器;記憶體115可為任意種類的記憶體。
在處理器110上運行的可為資料儲存系統120。資料儲存系統120可為實行雙寫入(亦即,日誌登載寫入及資料寫入二者)的任意系統。資料儲存系統120旨在不僅包括例如Ceph®等物件儲存系統及檔案儲存系統,且亦包括在其他作業系統上運行的應用程式,其中所述應用程式實行雙寫入。(Ceph是美國的Inktank Storage股份有限公司的註冊商標。)
除資料儲存系統120以外,應用程式125亦可在資料儲存系統120的頂上運行。在本發明概念的某些實施例中,由於內部原因,應用程式125可自行實行雙寫入。舉例而言,應用程式
125可為即時模擬程式。該些程式高度依存於所實行的時間操作。
若即時模擬程式被經緩衝但未被寫入的資料中斷,則所述模擬的結果會被浪費。因此,所述模擬程式可能希望確保經由日誌登載而儲存資料,即使所述資料未藉由資料儲存系統120而被寫入至儲存裝置130。
儲存裝置130可為對無效資料實行無用數據收集的任意所需種類的儲存裝置。作為實例,儲存裝置130可為快閃式固態硬碟(SSD)。儲存裝置130可具有控制器135,控制器135負責管理儲存裝置130的運作。舉例而言,控制器135可管理資料讀取及寫入,並可將邏輯區塊位址映射至儲存裝置130上的實體區塊位址,除此以外還具有其他功能。控制器135可除其他組件以外亦包括:實體介面,可將控制器135(直接地或間接地)連接至伺服器105;處理器,控制儲存裝置130的運作;錯誤修正碼電路系統,為儲存於快閃儲存器中的資料提供錯誤偵測及錯誤修正能力;動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)控制器,管理儲存裝置130內的動態隨機存取記憶體;以及一或多個快閃控制器,管理所述快閃儲存器。控制器135亦可包括多串流控制器,所述多串流控制器可管理將哪些資料寫入至哪一區塊(如下文所述,與不同串流相關聯的區塊)。在本發明概念的某些實施例中,控制器135可為被適當地程式化有該些組件的功能性的單個晶片;在本發明概念的其他實施例中,控制器135可包括該些組件中的某些或全部作為單獨的組件(例如,晶
片)。
圖2示出圖1所示伺服器的其他細節。參照圖2,通常,一或多個伺服器105包括一或多個處理器110,處理器110可包括記憶體控制器205及時鐘210,時鐘210可用來協調一或多個伺服器105的各組件的運作。處理器110亦可耦接至記憶體115,記憶體115可包括例如隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、或其他狀態保存媒體(state preserving media)。處理器110亦可耦接至儲存裝置130及網路連接器215,網路連接器215可為例如乙太網路連接器。處理器110亦可連接至匯流排220,匯流排220上可附接有使用者介面225以及可使用輸入/輸出引擎230來管理的輸入/輸出介面埠、以及其他組件。
圖3示出圖1所示應用程式125與圖1所示儲存裝置130進行通訊以實行日誌登載及資料寫入二者。在圖3中,示出應用程式125在不利用圖1所示資料儲存系統120的情況下與儲存裝置130進行通訊。在其中僅有一個軟體元件(在圖3中被表示為應用程式125)與儲存裝置130進行通訊的本發明概念的實施例中,此軟體元件可為實行日誌登載的任意軟體元件。因此,可以圖1所示資料儲存系統120取代圖3中的應用程式125而不喪失適用性。(下文中圖6A至圖6B闡述其中應用程式125及圖1所示資料儲存系統120二者皆對儲存裝置130實行日誌登載的本發明概念的實施例。)
在圖3中,應用程式125可發送日誌寫入請求310至儲存裝置130。日誌寫入請求310可包括日誌資訊305及串流識別符315。串流識別符315可指明日誌資訊305被指派至的特定串流。
如下文參照圖4所述,不同串流可與儲存裝置130上的不同區塊或超級區塊相關聯,從而基於一或多個特性(例如,預期壽命或任何其他分割準則)來分割資料。可使用直接輸入/輸出(input/output,I/O)命令來發送日誌寫入請求310,以確保日誌資訊305被立即寫入至儲存裝置130。作為另外一種選擇,可將日誌寫入請求310發送至緩衝器,緩衝器會被立即清除(即使緩衝器未滿),以再次確保日誌資訊305被立即寫入至儲存裝置130。
應用程式125亦可發送資料寫入請求320至儲存裝置130。資料寫入請求320可包括資料325及串流識別符330。串流識別符330可識別來自串流識別符315的不同串流,以使資料325寫入至不同於日誌資訊305的串流(且因此寫入至不同區塊或超級區塊)。由於日誌寫入請求310被立即寫入至儲存裝置130,因此可將資料寫入請求320作為經緩衝寫入請求發送,其中資料325可最終但未必立即地被寫入至儲存裝置130。
最終,儲存裝置130可發送訊號335至應用程式125。訊號335可指示資料寫入請求320已完成且指示資料325已被寫入至儲存裝置130。此時,不再需要日誌資訊305來確保資料被寫入儲存裝置130上的某處。在實行無用數據收集的儲存裝置上,在資料可經由無用數據收集而被刪除前,所述資料通常是無效化
的。因此,應用程式125可發送無效化請求340至儲存裝置130,以請求將日誌資訊305自儲存裝置130刪除。由於日誌資訊305被寫入至不同於資料325的區塊(或超級區塊),因此無效化請求340將不在儲存裝置130內產生無效-碎片化區塊(或超級區塊)。
圖4示出圖1所示儲存裝置130使用多串流來儲存日誌及資料。在圖4中,示出儲存裝置130被劃分成區塊,例如區塊405、區塊410、區塊415、及區塊420、以及其他區塊。可將每一區塊依次劃分成頁面:舉例而言,區塊405被示出為包括頁面425、頁面430、頁面435、及頁面440,且區塊410被示出為包括頁面445、頁面450、頁面455、及頁面460。雖然圖4示出區塊405、區塊410、區塊415、及區塊420皆具有四個頁面,但區塊405、區塊410、區塊415、及區塊420可包括任意所需數目的頁面,四個頁面是僅作為實例而示出。
如固態硬碟可發生的一般,頁面可代表可自儲存裝置130讀取或被寫入至儲存裝置130的資料的最小單位。相比之下,在本發明概念的某些實施例中,區塊可代表被實行無用數據收集的資料的最小單位。在本發明概念的其他實施例(圖4中未示出)中,儲存裝置130的區塊可被組織成被稱為超級區塊的更大的群組,超級區塊可為被實行無用數據收集的資料的最小單位。無論是對區塊還是對超級區塊實行無用數據收集,無用數據收集的最小單位皆大於頁面。此種差異可解釋無用數據收集可對儲存裝置130的運作具有負面影響的原因:若在作為無用數據收集目標的區
塊的一或多個頁面中存在有效資料,則在所述區塊可經歷無用數據收集前必須將此資料複製至另一區塊。舉例而言,若頁面425含有有效資料,則在區塊405可經歷無用數據收集前必須將此資料複製至比如區塊410中的頁面445(假設頁面445是空的)。
在本發明概念的某些實施例中,頁面可被組織成區塊。
但並非對區塊實行無用數據收集,而是可將區塊組織成超級區塊,從而對超級區塊實行無用數據收集。雖然超級區塊的概念可對儲存裝置130中的無用數據收集的實作產生作用,但自理論的觀點而言,超級區塊僅僅是對用於無用數據收集目的的區塊的大小的重新定義。任何有關於區塊的論述皆可被理解為亦適用於超級區塊。
如上文參照圖3所述,各個區塊可被指派至各串流。舉例而言,區塊405及區塊410可被指派至串流315,而區塊415及區塊420可被指派至串流330。在其中「熱」資料及「冷」資料可被劃分成不同串流的本發明概念的實施例中,串流指派可避免日誌寫入與資料寫入的混雜,否則可導致無用數據收集運作出現問題。
圖5A至圖5B示出利用傳統方法時儲存裝置130的使用與利用本發明概念的實施例時儲存裝置130的使用的比較。如上文所述,在傳統系統中日誌寫入及資料寫入被寫入至圖1所示儲存裝置130中的同一區塊。在圖5A中,示出區塊505具有含有日誌寫入的頁面510、頁面515、及頁面520以及含有資料寫入的頁
面525、頁面530、及頁面540。由於日誌寫入傾向於具有短的壽命期限(一旦對應的資料寫入完成,便可將日誌寫入刪除),如在區塊535(其是與區塊505相同的區塊,但在所述日誌寫入被無效化後)中所示,日誌寫入與資料寫入的混雜會留下碎片化區塊。
若區塊535接著經歷無用數據收集,則首先必須將頁面525、頁面530、及頁面540複製至另一區塊。此種複製會耗費時間,從而減緩儲存裝置130上的其他讀取操作及寫入操作。
但是若如在本發明概念的實施例中一般將日誌寫入及資料寫入發送至不同串流,則抹除日誌寫入不會留下碎片化區塊。圖5B示出此種情形。在圖5B中,日誌寫入被發送至區塊545;資料寫入被發送至區塊550。當日誌寫入510、日誌寫入515、及日誌寫入520被無效化時,區塊545不儲存需要被複製至另一區塊的任何資料;資料寫入525、資料寫入530及資料寫入540儲存於區塊550中。(儘管以上說明簡化了此種情形,由於日誌寫入未必被全部同時抹除,通常日誌寫入在其被寫入後相對快地被刪除,尤其是與資料寫入的壽命相比。因此,在最末日誌寫入被寫入至區塊545後,區塊545中的所有資料應立刻被無效化,且整個區塊可經歷無用數據收集而無需複製任何資料至另一區塊。)
圖6A至圖6B示出圖1所示應用程式125及圖1所示資料儲存系統120與圖1所示儲存裝置130進行通訊以實行日誌登載及資料寫入二者。與其中應用程式125在不利用資料儲存系統120的情況下與儲存裝置130進行通訊的圖3相比,圖6A至圖6B
可包括依照事件順序的資料儲存系統120。
在圖6A中,與此前相同,應用程式125發送日誌寫入請求310,日誌寫入請求310具有日誌資訊305及串流識別符315。
由於日誌寫入請求310可為直接輸入/輸出命令,圖6A示出應用程式125繞開資料儲存系統120而發送日誌寫入請求310至儲存裝置130。但在本發明概念的其他實施例中,應用程式125可發送日誌寫入請求310至資料儲存系統120,其中具有使資料儲存系統120實行直接輸入/輸出命令以完成日誌寫入請求310的指令。然而,與圖3相比,應用程式125發送具有資料325及串流識別符330的資料寫入請求320至資料儲存系統120:不發送至儲存裝置130。資料儲存系統120可接著負責監督將資料325寫入至儲存裝置130。
由於資料儲存系統120可自行對其自身的資料及/或元資料實行日誌登載,因此資料儲存系統120可發送日誌寫入請求605至儲存裝置130。日誌寫入請求605可包括日誌資訊610及串流識別符615。此表明寫入單個資料單位可涉及到多個日誌,且因此涉及到多個串流。
在圖6B中,資料儲存系統120可發送其自身的資料寫入請求620至儲存裝置130。資料寫入請求620可包括資料325及串流識別符330。應注意,資料寫入請求620中的資料325及串流識別符330可與資料寫入請求320中的相同:此是可行的,乃因所寫入的資料相同,只是繞道經過資料儲存系統120而已。最終,
儲存裝置130可發送訊號625,以告知資料儲存系統120資料寫入請求620已完成,在此之後資料儲存系統120可發送無效化請求630以刪除日誌資訊610。儲存裝置130亦可將訊號335發送回應用程式125(若儲存裝置130知道應用程式125的存在),以使應用程式125可發送其自身的無效化請求340。但在本發明概念的其他實施例中,資料儲存系統120可使用無效化請求630來刪除日誌資訊610及日誌資訊305二者。且在本發明概念的另一些實施例中,資料儲存系統120可發送訊號335至應用程式125,以告知應用程式125其可發送無效化請求340。
在上文所述本發明概念的實施例中,應用程式125及/或資料儲存系統120負責抹除日誌資訊305及/或日誌資訊610。因此,應用程式125及/或資料儲存系統120需要接收訊號335及/或訊號625,以得知何時刪除日誌資訊305及/或日誌資訊610是安全的。但在本發明概念的其他實施例中,儲存裝置130可知道資料325的來源,且一旦資料寫入請求320及/或資料寫入請求620完成便可自動刪除日誌資訊305及/或日誌資訊610,從而不需要應用程式125及/或資料儲存系統120發送無效化請求340及/或無效化請求630。
在本發明概念的某些實施例中,資料儲存系統120的多個實例(instance)可共同存在於單個儲存裝置130上。舉例而言,儲存裝置130可具有多個日誌登載檔案系統分割部分。或者,儲存裝置130可保存多個物件儲存實例。在本發明概念的此種實施
例中,資料儲存系統120的每一實例可發送其自身的日誌寫入請求605至同一儲存裝置130。每一單個日誌寫入請求605可包括其自身的日誌資訊610及串流識別符615。資料儲存系統120的每一實例可發送其自身的資料寫入請求620至同一儲存裝置130。每一單個資料寫入請求620可包括其自身的資料325及串流識別符330。資料儲存系統120的每一實例可儲存其自身的日誌資訊610及資料325至不同串流,且接著儲存裝置130可將各個日誌資訊610及資料325儲存於不同區塊或超級區塊中。因此,除了資料儲存系統120的單個實例的日誌資訊610及資料325位於不同區塊或超級區塊中之外,來自資料儲存系統120的不同實例的不同日誌資訊610亦可儲存於不同區塊或超級區塊中,且來自資料儲存系統120的不同實例的不同資料325可儲存於不同區塊或超級區塊中。
圖7A至圖7B示出根據本發明概念的實施例的用於使圖1所示應用程式125及圖1所示資料儲存系統120與圖1所示儲存裝置130進行通訊並實行日誌登載及資料寫入二者的示例性程序的流程圖。在圖7A中,在方塊705處,圖1所示應用程式125可識別圖3所示資料325欲被寫入至圖1所示儲存裝置130。在方塊710處,圖1所示應用程式125可將圖3所示日誌寫入請求310作為直接輸入/輸出命令發送至圖1所示儲存裝置130,以指明圖3所示串流識別符315作為用於圖3所示日誌資訊305的串流。
此時,運作可沿不同路徑進行。在本發明概念的某些實
施例中,在方塊715處,圖1所示應用程式125可將圖3所示資料寫入請求320作為經緩衝輸入/輸出命令發送至圖3所示儲存裝置130。接著,在方塊720處,圖1所示應用程式125可自圖1所示儲存裝置130接收指示圖3所示資料寫入請求320已完成的訊號335。最後,在方塊725處,圖1所示應用程式125可發送圖3所示無效化請求340至圖1所示儲存裝置130,以刪除圖3所示日誌資訊305。
作為另外一種選擇,在本發明概念的其他實施例中,圖1所示應用程式125可不發送圖3所示資料寫入請求320至圖1所示儲存裝置130。而是在方塊730處,圖1所示應用程式125可發送圖3所示資料寫入請求320至圖1所示資料儲存系統120。在方塊735處,圖1所示資料儲存系統120可發送圖6A所示第二日誌寫入請求605至圖1所示儲存裝置130。在方塊740處,圖1所示資料儲存系統120可發送圖6B所示第二資料寫入請求620至圖1所示儲存裝置130。在方塊745處,圖1所示資料儲存系統120可自圖1所示儲存裝置130接收指示圖6B所示第二資料寫入請求620已完成的圖6B所示訊號625。且在方塊750處,圖1所示資料儲存系統120可發送圖6B所示無效化請求630至圖1所示儲存裝置130,以刪除圖6A所示日誌資訊610。處理可接著在圖7A所示方塊720處繼續進行。
在圖7A至圖7B中,示出本發明概念的某些實施例。但熟習此項技術者將認識到,亦可藉由改變方塊的次序、藉由省略
方塊、或藉由包括圖中未示出的鏈接而達成本發明概念的其他實施例。流程圖的所有此種變化皆被視為本發明概念的實施例,而無論是否予以明確闡述。
以下論述旨在提供對可在其中實作本發明概念的某些態樣的一或多個適合的機器的簡要總體說明。所述一或多個機器可至少部分地藉由來自例如鍵盤、滑鼠等傳統輸入裝置的輸入以及藉由自另一機器接收的指令、與虛擬實境(virtual reality,VR)環境的交互作用、生物統計回饋、或其他輸入訊號而得到控制。
本文中所使用的用語「機器」旨在廣泛囊括單個機器、虛擬機器、或由能夠在通訊上耦合於一起的多個機器、多個虛擬機器、或一起運作的多個裝置形成的系統。示例性機器包括:計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、手持裝置、電話、平板等;以及運輸裝置,例如私人或公共運輸(例如,汽車、火車、計程車等)。
所述一或多個機器可包括嵌式控制器,例如可程式化或非可程式化邏輯裝置或陣列、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、嵌式電腦、智慧卡等。所述一或多個機器可利用與一或多個遠端機器的一或多個連接,例如經由網路介面、數據機、或其他通訊耦合。機器可使用實體及/或邏輯網路(例如,內部網路、網際網路、局部區域網路、廣域網路等)相互連接。熟習此項技術者將理解,網路通訊可利用各種有線及/或無線短程或遠程載波及協定,包括射頻(radio frequency,
RF)、衛星、微波、電機電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)802.11、藍牙®、光學、紅外、纜線、雷射等。
本發明概念的實施例可藉由參照或結合相關聯的資料來闡述,所述相關聯的資料包括當被機器存取時使得所述機器實行任務或定義抽象資料類型或低層階硬體配置(hardware context)的功能、程序、資料結構、應用程式等。相關聯的資料可儲存於例如揮發性及/或非揮發性記憶體(例如,隨機存取記憶體、唯讀記憶體等)中、或儲存於其他儲存裝置及其相關聯的儲存媒體(包括硬碟驅動機(hard drive)、軟碟、光學儲存器、磁帶、快閃記憶體、記憶條、數位視訊光碟、生物儲存器等)中。相關聯的資料可以封包、串列資料(serial data)、並列資料(parallel data)、傳播訊號(propagated signal)等的形式在傳輸環境(包括實體及/或邏輯網路)中遞送且可以壓縮或加密格式使用。相關聯的資料可用於分佈式環境中,並儲存於本地及/或遠端以供機器存取。
本發明概念的實施例可包括包含可由一或多個處理器執行的指令的有形的、非暫時性機器可讀取媒體,所述指令包括用以實行如本文所述本發明概念的要件的指令。
上文已參照所說明實施例闡述並說明了本發明概念的原理,應認識到,可在不背離該些原理的條件下在排列及細節上對所說明實施例進行潤飾,且所說明實施例可以任意所需方式加以組合。並且,儘管以上論述著重於特定實施例,然而預期存在其
他構造。具體而言,儘管本文中使用例如「根據本發明概念的實施例」等表達或類似表達,然而該些片語意在大體提及實施例的可能性,而並非旨在將本發明概念限制為特定實施例構造。本文所使用的該些用語可提及能夠組合成其他實施例的相同或不同實施例。
上述說明性實施例不應被視為限制本發明概念。儘管已闡述少數實施例,然而熟習此項技術者將易於理解,可在實質上不背離本揭露內容的新穎教示內容及優點的條件下對該些實施例作出諸多潤飾。因此,所有此種潤飾皆旨在包含於如申請專利範圍中所界定的本發明概念的範圍內。
本發明概念的實施例可擴展至以下聲明,但並非僅限於此:聲明1。本發明概念的實施例包括一種系統,所述系統包括:電腦,包括處理器及記憶體;儲存裝置;應用程式,在所述處理器上運行,所述應用程式能夠運作以將日誌寫入請求及資料寫入請求二者發送至所述儲存裝置,所述日誌寫入請求包括日誌資訊且與第一串流相關聯,且所述資料寫入請求包括資料且與第二串流相關聯;以及控制器,位於所述儲存裝置上,所述控制器能夠運作以指示所述儲存裝置將所述日誌資訊寫入至與所述第一串流相關聯的第
一區塊並將所述資料寫入至與第二串流相關聯的第二區塊。
聲明2。本發明概念的實施例包括根據聲明1的系統,其中所述儲存裝置包括固態硬碟(SSD)。
聲明3。本發明概念的實施例包括根據聲明1的系統,其中所述應用程式能夠運作以使用直接輸入/輸出(I/O)命令來發送所述日誌寫入請求至所述儲存裝置。
聲明4。本發明概念的實施例包括根據聲明1的系統,其中所述應用程式能夠運作以使用經緩衝寫入命令來發送所述資料寫入請求至所述儲存裝置。
聲明5。本發明概念的實施例包括根據聲明1的系統,其中所述控制器能夠運作以在所述資料寫入請求完成後接收將所述日誌資訊刪除的無效化請求。
聲明6。本發明概念的實施例包括根據聲明5的系統,其中所述應用程式能夠運作以發送所述無效化請求。
聲明7。本發明概念的實施例包括根據聲明6的系統,其中所述應用程式能夠運作以因應於所述應用程式接收到關於所述資料寫入請求已完成的訊號而發送所述無效化請求。
聲明8。本發明概念的實施例包括根據聲明7的系統,其中所述應用程式能夠運作以因應於所述應用程式自所述控制器接收到關於所述資料寫入請求已完成的訊號而發送所述無效化請求。
聲明9。本發明概念的實施例包括根據聲明1的系統,其
中:所述應用程式能夠運作以發送所述資料寫入請求至在所述處理器上運行的資料儲存系統;以及所述資料儲存系統能夠運作以發送第二資料寫入請求至所述儲存裝置,所述第二資料寫入請求包括所述資料且與所述第二串流相關聯。
聲明10。本發明概念的實施例包括根據聲明9的系統,其中所述資料儲存系統更能夠運作以發送第二日誌寫入請求至所述儲存裝置,所述第二日誌寫入請求包括第二日誌資訊且與第三串流相關聯。
聲明11。本發明概念的實施例包括根據聲明10的系統,其中所述資料儲存系統更能夠運作以發送第二無效化請求。
聲明12。本發明概念的實施例包括根據聲明10的系統,其中所述資料儲存系統能夠運作以因應於所述資料儲存系統接收到關於所述第二資料寫入請求已完成的第二訊號而發送所述第二無效化請求。
聲明13。本發明概念的實施例包括根據聲明12的系統,其中所述資料儲存系統能夠運作以因應於所述資料儲存系統自所述控制器接收到關於所述第二資料寫入請求已完成的所述第二訊號而發送所述第二無效化請求。
聲明14。本發明概念的實施例包括一種方法,所述方法包括:
識別欲自實行日誌寫入及資料寫入二者的應用程式寫入的資料;自所述應用程式發送日誌寫入請求至對無效資料實行無用數據收集的儲存裝置,所述日誌寫入請求被指派至第一串流;以及自所述應用程式發送資料寫入請求至所述儲存裝置,所述資料寫入請求被指派至第二串流。
聲明15。本發明概念的實施例包括根據聲明14的方法,其中:自所述應用程式發送日誌寫入請求至儲存裝置包括自所述應用程式發送所述日誌寫入請求至固態硬碟(SSD);以及自所述應用程式發送資料寫入請求至所述儲存裝置包括自所述應用程式發送所述資料寫入請求至所述固態硬碟。
聲明16。本發明概念的實施例包括根據聲明14的方法,其中:自所述應用程式發送日誌寫入請求至所述儲存裝置包括使用直接輸入/輸出(I/O)命令自所述應用程式發送所述日誌寫入請求至所述儲存裝置;以及自所述應用程式發送資料寫入請求至所述儲存裝置包括使用經緩衝寫入命令自所述應用程式發送所述資料寫入請求至所述儲存裝置。
聲明17。本發明概念的實施例包括根據聲明14的方法,更包括在所述資料寫入請求被寫入至所述儲存裝置後發送無效化
請求至所述儲存裝置以刪除所述日誌資訊。
聲明18。本發明概念的實施例包括根據聲明17的方法,其中發送無效化請求至所述儲存裝置包括自所述應用程式發送所述無效化請求至所述儲存裝置。
聲明19。本發明概念的實施例包括根據聲明18的方法,其中自所述應用程式發送無效化請求至所述儲存裝置包括在所述應用程式處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
聲明20。本發明概念的實施例包括根據聲明19的方法,其中在所述應用程式處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號包括在所述應用程式處自所述儲存裝置接收關於對所述儲存裝置的所述資料寫入請求已完成的所述訊號。
聲明21。本發明概念的實施例包括根據聲明14的方法,其中自所述應用程式發送資料寫入請求至所述儲存裝置包括:自所述應用程式發送所述資料寫入請求至資料儲存系統;以及自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置。
聲明22。本發明概念的實施例包括根據聲明21的方法,其中自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置包括自所述資料儲存系統發送第二日誌寫入請求至所述儲存裝置。
聲明23。本發明概念的實施例包括根據聲明22的方法,更包括在所述第二資料寫入請求被寫入至所述儲存裝置後發送無效化請求至所述儲存裝置以刪除由所述第二日誌寫入請求寫入的所述資料。
聲明24。本發明概念的實施例包括根據聲明23的方法,其中發送無效化請求至所述儲存裝置包括自所述資料儲存系統發送所述無效化請求至所述儲存裝置。
聲明25。本發明概念的實施例包括根據聲明24的方法,其中自所述資料儲存系統發送無效化請求至所述儲存裝置包括在所述資料儲存系統處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
聲明26。本發明概念的實施例包括根據聲明25的方法,其中自所述資料儲存系統接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號包括在所述資料儲存系統處自所述儲存裝置接收關於對所述儲存裝置的所述資料寫入請求已完成的所述訊號。
聲明27。本發明概念的實施例包括一種製品,所述製品包括有形儲存媒體,所述有形儲存媒體上儲存有非暫時性指令,所述非暫時性指令在由機器執行時使得:識別欲自實行日誌寫入及資料寫入二者的應用程式寫入的資料;自所述應用程式發送日誌寫入請求至對無效資料實行無用數
據收集的儲存裝置,所述日誌寫入請求被指派至第一串流;以及自所述應用程式發送資料寫入請求至所述儲存裝置,所述資料寫入請求被指派至第二串流。
聲明28。本發明概念的實施例包括根據聲明27的製品,其中:自所述應用程式發送日誌寫入請求至儲存裝置包括自所述應用程式發送所述日誌寫入請求至固態硬碟(SSD);以及自所述應用程式發送資料寫入請求至所述儲存裝置包括自所述應用程式發送所述資料寫入請求至固態硬碟。
聲明29。本發明概念的實施例包括根據聲明27的製品,其中:自所述應用程式發送日誌寫入請求至所述儲存裝置包括使用直接輸入/輸出(I/O)命令自所述應用程式發送所述日誌寫入請求至所述儲存裝置;以及自所述應用程式發送資料寫入請求至所述儲存裝置包括使用經緩衝寫入命令自所述應用程式發送所述資料寫入請求至所述儲存裝置。
聲明30。本發明概念的實施例包括根據聲明27的製品,所述有形儲存媒體上儲存有進一步的非暫時性指令(further non-transitory instructions),所述進一步的非暫時性指令在由所述機器執行時使得在所述資料寫入請求被寫入至所述儲存裝置後,發送無效化請求至所述儲存裝置以刪除所述日誌資訊。
聲明31。本發明概念的實施例包括根據聲明30的製品,其中發送無效化請求至所述儲存裝置包括自所述應用程式發送所述無效化請求至所述儲存裝置。
聲明32。本發明概念的實施例包括根據聲明31的製品,其中自所述應用程式發送無效化請求至所述儲存裝置包括在所述應用程式處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
聲明33。本發明概念的實施例包括根據聲明32的製品,其中在所述應用程式處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號包括在所述應用程式處自所述儲存裝置接收關於對所述儲存裝置的所述資料寫入請求已完成的所述訊號。
聲明34。本發明概念的實施例包括根據聲明27的製品,其中自所述應用程式發送資料寫入請求至所述儲存裝置包括:自所述應用程式發送資料寫入請求至資料儲存系統;以及自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置。
聲明35。本發明概念的實施例包括根據聲明34的製品,其中自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置包括自所述資料儲存系統發送第二日誌寫入請求至所述儲存裝置。
聲明36。本發明概念的實施例包括根據聲明35的製品,所述有形儲存媒體上儲存有進一步的非暫時性指令,所述進一步
的非暫時性指令在由所述機器執行時使得在所述第二資料寫入請求被寫入至所述儲存裝置後,發送無效化請求至所述儲存裝置以刪除由所述第二日誌寫入請求寫入的所述資料。
聲明37。本發明概念的實施例包括根據聲明36的製品,其中發送無效化請求至所述儲存裝置包括自所述資料儲存系統發送所述無效化請求至所述儲存裝置。
聲明38。本發明概念的實施例包括根據聲明37的製品,其中自所述資料儲存系統發送無效化請求至所述儲存裝置包括在所述資料儲存系統處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
聲明39。本發明概念的實施例包括根據聲明38的製品,其中自所述資料儲存系統接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號包括在所述資料儲存系統處自所述儲存裝置接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
因此,考慮到對本文所述實施例的眾多種排列,此詳細說明及隨附材料旨在僅為說明性的,而不應被視為限制本發明概念的範圍。因此,所主張的本發明概念是可歸屬於以下申請專利範圍及其等效範圍的範圍及精神內的所有此種潤飾。
120:資料儲存系統
125:應用程式
130:儲存裝置
305:日誌資訊
310:日誌寫入請求
315:串流識別符/串流
320:資料寫入請求
325:資料
330:串流識別符/串流
605:日誌寫入請求
610:日誌資訊
615:串流識別符
Claims (21)
- 一種使用多串流的系統,包括:電腦,包括處理器及記憶體;儲存裝置;應用程式,在所述處理器上運行,所述應用程式能夠運作以將日誌寫入請求發送至所述儲存裝置且將資料寫入請求發送至在所述處理器上運行的資料儲存系統,所述日誌寫入請求包括日誌資訊且被指派至第一串流,且所述資料寫入請求包括資料且被指派至第二串流;所述資料儲存系統能夠運作以將第二日誌寫入請求發送至所述儲存裝置且將第二資料寫入請求發送至所述儲存裝置,所述第二日誌寫入請求包括第二日誌資訊且被指派至第三串流,所述第二資料寫入請求包括所述資料且被指派至所述第二串流;以及控制器,位於所述儲存裝置上,所述控制器能夠運作以指示所述儲存裝置將所述日誌資訊寫入至被指派至所述第一串流的第一區塊,將所述資料寫入至被指派至所述第二串流的第二區塊,並將所述第二日誌資訊寫入至被指派至所述第三串流的第三區塊,其中所述第一串流、所述第二串流及所述第三串流是藉由資料特性來界定。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述控制器能夠運作以在所述資料寫入請求完成後接收將所述日誌資訊刪除的無效化請求。
- 如申請專利範圍第2項所述的使用多串流的系統,其中所述應用程式能夠運作以發送所述無效化請求。
- 如申請專利範圍第3項所述的使用多串流的系統,其中所述應用程式能夠運作以因應於所述應用程式接收到關於所述資料寫入請求已完成的訊號而發送所述無效化請求。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述資料儲存系統更能夠運作以發送第二無效化請求。
- 如申請專利範圍第5項所述的使用多串流的系統,其中所述資料儲存系統更能夠運作以在所述第二資料寫入請求完成後將所述第二無效化請求發送至所述儲存裝置以刪除所述日誌資訊。
- 如申請專利範圍第1項所述的使用多串流的系統,其中:所述日誌寫入請求是作為直接輸入/輸出(I/O)請求被發送;且所述資料寫入請求是作為經緩衝輸入/輸出(I/O)請求被發送,其中所述日誌寫入請求用來確保所述資料寫入請求中的所述資料被寫入至所述儲存裝置。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述第二資料寫入請求中所包括的所述資料是所述資料寫入請 求中的所述資料。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述日誌寫入請求用來確保所述資料寫入請求中的所述資料被寫入至所述儲存裝置。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述第三區塊是所述第一區塊。
- 如申請專利範圍第1項所述的使用多串流的系統,其中:所述日誌寫入請求被所述應用程式指派至所述第一串流;且所述資料寫入請求被所述應用程式指派至所述第二串流。
- 如申請專利範圍第1項所述的使用多串流的系統,其中所述第一區塊及所述第二區塊是單一媒體類型。
- 一種使用多串流的方法,包括:識別欲自實行日誌寫入及資料寫入二者的應用程式寫入的資料;自所述應用程式發送日誌寫入請求至對無效資料實行無用數據收集的儲存裝置,所述日誌寫入請求被指派至第一串流,所述日誌寫入請求是作為直接輸入/輸出(I/O)請求被發送;自所述應用程式發送資料寫入請求至資料儲存系統,所述資料寫入請求包括所述資料且被指派至第二串流,所述資料寫入請求是作為經緩衝輸入/輸出(I/O)請求被發送;自所述資料儲存系統發送第二日誌寫入請求至所述儲存裝 置,所述第二日誌寫入請求被指派至第三串流;以及自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置,所述第二資料寫入請求被指派至所述第二串流且包括所述資料,其中所述日誌寫入請求及所述第二日誌寫入請求用來確保所述資料寫入請求中的所述資料被寫入至所述儲存裝置。
- 如申請專利範圍第13項所述的使用多串流的方法,更包括在所述資料寫入請求被寫入至所述儲存裝置後,發送無效化請求至所述儲存裝置以刪除日誌資訊。
- 如申請專利範圍第14項所述的使用多串流的方法,其中發送所述無效化請求至所述儲存裝置包括自所述應用程式發送所述無效化請求至所述儲存裝置。
- 如申請專利範圍第15項所述的使用多串流的方法,其中自所述應用程式發送所述無效化請求至所述儲存裝置包括在所述應用程式處接收關於對所述儲存裝置的所述資料寫入請求已完成的訊號。
- 如申請專利範圍第13項所述的使用多串流的方法,更包括在所述第二資料寫入請求被寫入至所述儲存裝置後發送無效化請求至所述儲存裝置以刪除由所述第二日誌寫入請求寫入的所述資料。
- 一種使用多串流的製品,包括有形儲存媒體,所述有形儲存媒體上儲存有非暫時性指令,所述非暫時性指令在由機器執行時使得:識別欲自實行日誌寫入及資料寫入二者的應用程式寫入的資料;自所述應用程式發送日誌寫入請求至對無效資料實行無用數據收集的儲存裝置,所述日誌寫入請求被指派至第一串流,所述日誌寫入請求是作為直接輸入/輸出(I/O)請求被發送;以及自所述應用程式發送資料寫入請求至資料儲存系統,所述資料寫入請求包括所述資料且被指派至第二串流,所述資料寫入請求是作為經緩衝輸入/輸出(I/O)請求被發送;自所述資料儲存系統發送第二日誌寫入請求至所述儲存裝置,所述第二日誌寫入請求被指派至第三串流;以及自所述資料儲存系統發送第二資料寫入請求至所述儲存裝置,所述第二資料寫入請求被指派至所述第二串流且包括所述資料,其中所述日誌寫入請求及所述第二日誌寫入請求用來確保所述資料寫入請求中的所述資料被寫入至所述儲存裝置。
- 如申請專利範圍第18項所述的使用多串流的製品,所述有形儲存媒體上儲存有進一步的非暫時性指令,所述進一步的非暫時性指令在由所述機器執行時使得在所述資料寫入請求被寫 入至所述儲存裝置後,發送無效化請求至所述儲存裝置以刪除日誌資訊。
- 如申請專利範圍第19項所述的使用多串流的製品,其中發送所述無效化請求至所述儲存裝置包括自所述應用程式發送所述無效化請求至所述儲存裝置。
- 如申請專利範圍第18項所述的使用多串流的製品,所述有形儲存媒體上儲存有進一步的非暫時性指令,所述進一步的非暫時性指令在由所述機器執行時使得在所述第二資料寫入請求被寫入至所述儲存裝置後發送無效化請求至所述儲存裝置以刪除由所述第二日誌寫入請求寫入的所述資料。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562273323P | 2015-12-30 | 2015-12-30 | |
US62/273,323 | 2015-12-30 | ||
US15/089,237 | 2016-04-01 | ||
US15/089,237 US9959046B2 (en) | 2015-12-30 | 2016-04-01 | Multi-streaming mechanism to optimize journal based data storage systems on SSD |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201723857A TW201723857A (zh) | 2017-07-01 |
TWI702500B true TWI702500B (zh) | 2020-08-21 |
Family
ID=59226308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105125727A TWI702500B (zh) | 2015-12-30 | 2016-08-12 | 使用多串流的系統、方法以及製品 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9959046B2 (zh) |
JP (1) | JP6734768B2 (zh) |
KR (1) | KR102412978B1 (zh) |
CN (1) | CN106933747B (zh) |
TW (1) | TWI702500B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422992A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种SSD运行时Journal保存方法及系统 |
US11386002B2 (en) * | 2018-10-04 | 2022-07-12 | ScaleFlux, Inc. | Enhancing solid-state storage device speed performance through stream-aware garbage collection |
CN109491616B (zh) | 2018-11-14 | 2022-05-24 | 三星(中国)半导体有限公司 | 数据的存储方法和设备 |
KR20200145151A (ko) | 2019-06-20 | 2020-12-30 | 삼성전자주식회사 | 맵핑 정보를 축약하는 플래시 변환 계층 구조를 이용하여 메모리 리소스를 관리하는 데이터 저장 장치 |
KR20210097010A (ko) * | 2020-01-29 | 2021-08-06 | 삼성전자주식회사 | 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화 |
KR20210156190A (ko) | 2020-06-17 | 2021-12-24 | 삼성전자주식회사 | 스토리지 장치 지원 실시간 가상 머신 마이그레이션 |
KR20220086934A (ko) | 2020-12-17 | 2022-06-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128630A (en) * | 1997-12-18 | 2000-10-03 | International Business Machines Corporation | Journal space release for log-structured storage systems |
WO2009102425A1 (en) * | 2008-02-12 | 2009-08-20 | Netapp, Inc. | Hybrid media storage system architecture |
TW201314464A (zh) * | 2011-08-09 | 2013-04-01 | Lsi Corp | 輸入/輸出裝置及計算主機相互運作 |
US20140149473A1 (en) * | 2012-11-29 | 2014-05-29 | Research & Business Foundation Sungkyunkwan University | File system for flash memory |
TW201437802A (zh) * | 2013-03-18 | 2014-10-01 | Toshiba Kk | 資訊處理系統、控制程式、及資訊處理裝置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4415356B2 (ja) | 2002-12-24 | 2010-02-17 | エルジー エレクトロニクス インコーポレイティド | 二重ジャーナリングの保存方法及びその記憶媒体 |
US7363420B2 (en) * | 2003-12-15 | 2008-04-22 | Nortel Networks Limited | Method and file structures for managing data on a flash disk |
US7197599B2 (en) * | 2003-12-29 | 2007-03-27 | Intel Corporation | Method, system, and program for managing data updates |
JP2008165624A (ja) * | 2006-12-28 | 2008-07-17 | Hitachi Ltd | 計算機システム及び第1記憶装置 |
US20090119352A1 (en) | 2007-11-05 | 2009-05-07 | Steven Joseph Branda | Method for Optimizing Generational Garbage Collection Through Object Life Heuristics |
US9727452B2 (en) * | 2007-12-14 | 2017-08-08 | Virident Systems, Llc | Distributing metadata across multiple different disruption regions within an asymmetric memory system |
US8949684B1 (en) * | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US8738882B2 (en) | 2011-06-03 | 2014-05-27 | Apple Inc. | Pre-organization of data |
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
US9075731B2 (en) * | 2013-01-23 | 2015-07-07 | Vmware, Inc. | Using transaction entries to achieve crash consistency when performing write-behind caching using a flash storage-based cache |
KR101567134B1 (ko) | 2013-03-29 | 2015-11-09 | 이화여자대학교 산학협력단 | 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법 |
US10191822B2 (en) | 2014-02-20 | 2019-01-29 | Rambus Inc. | High performance persistent memory |
JP2016170583A (ja) | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160283124A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US20170139825A1 (en) * | 2015-11-17 | 2017-05-18 | HGST Netherlands B.V. | Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach |
-
2016
- 2016-04-01 US US15/089,237 patent/US9959046B2/en active Active
- 2016-08-02 KR KR1020160098623A patent/KR102412978B1/ko active IP Right Grant
- 2016-08-12 TW TW105125727A patent/TWI702500B/zh active
- 2016-09-29 CN CN201610867445.9A patent/CN106933747B/zh active Active
- 2016-12-12 JP JP2016240058A patent/JP6734768B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128630A (en) * | 1997-12-18 | 2000-10-03 | International Business Machines Corporation | Journal space release for log-structured storage systems |
WO2009102425A1 (en) * | 2008-02-12 | 2009-08-20 | Netapp, Inc. | Hybrid media storage system architecture |
TW201314464A (zh) * | 2011-08-09 | 2013-04-01 | Lsi Corp | 輸入/輸出裝置及計算主機相互運作 |
US20140149473A1 (en) * | 2012-11-29 | 2014-05-29 | Research & Business Foundation Sungkyunkwan University | File system for flash memory |
TW201437802A (zh) * | 2013-03-18 | 2014-10-01 | Toshiba Kk | 資訊處理系統、控制程式、及資訊處理裝置 |
Also Published As
Publication number | Publication date |
---|---|
KR102412978B1 (ko) | 2022-06-24 |
CN106933747B (zh) | 2019-08-20 |
KR20170080419A (ko) | 2017-07-10 |
US9959046B2 (en) | 2018-05-01 |
JP2017120626A (ja) | 2017-07-06 |
JP6734768B2 (ja) | 2020-08-05 |
US20170192687A1 (en) | 2017-07-06 |
CN106933747A (zh) | 2017-07-07 |
TW201723857A (zh) | 2017-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI702500B (zh) | 使用多串流的系統、方法以及製品 | |
TWI770358B (zh) | 主機系統及其方法和加速模組 | |
US11989160B2 (en) | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device | |
US11461010B2 (en) | Data property-based data placement in a nonvolatile memory device | |
TWI706315B (zh) | 儲存元件 | |
JP6893897B2 (ja) | ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 | |
CN106164883A (zh) | 针对网络连接的存储系统的方法和装置 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
US11042328B2 (en) | Storage apparatus and method for autonomous space compaction | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN110908927A (zh) | 数据储存装置及其删除命名空间的方法 | |
US20220066799A1 (en) | Mechanism to discover computational storage functions and devices | |
TW202203061A (zh) | 包含鍵值儲存裝置的機器、區塊介面仿真方法及包括非暫時性儲存媒體的製品 | |
JP4439798B2 (ja) | ディスクアレイ装置の制御方法、及びディスクアレイ装置 | |
TW202203016A (zh) | 用於排序鍵的鍵值儲存裝置及方法 | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
WO2020019173A1 (zh) | 一种用于对象存储的存储器控制电路 | |
CN111339046A (zh) | 针对文件的数据写入、读取和删除方法及装置 | |
JP2004227211A (ja) | ディスクアレイ装置およびプログラム |