TW202014912A - 有效檔案存儲和檢索系統、方法與裝置 - Google Patents
有效檔案存儲和檢索系統、方法與裝置 Download PDFInfo
- Publication number
- TW202014912A TW202014912A TW108136594A TW108136594A TW202014912A TW 202014912 A TW202014912 A TW 202014912A TW 108136594 A TW108136594 A TW 108136594A TW 108136594 A TW108136594 A TW 108136594A TW 202014912 A TW202014912 A TW 202014912A
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- data storage
- memory
- mass
- storage device
- Prior art date
Links
Images
Classifications
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0643—Management of files
-
- 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/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/0661—Format or protocol conversion arrangements
-
- 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
-
- 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
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
這是連接至大量資料存儲裝置的主機處理系統,用於高效存儲和檢索檔案的系統、方法和裝置。主機處理系統可發送由存儲裝置驅動器映射在主機處理系統中標準或供應商特定命令的檔案存儲和檢索命令。存儲裝置驅動器將發送單一檔案存儲或檔案檢索命令,而命令相關檔案將根據單一標準或供應商特定命令,存儲於大量資料存儲裝置中,或從大量資料存儲裝置中檢索。
Description
本發明涉及數位資料存儲領域,具體涉及用於高效存儲和檢索主機處理系統和大量資料存儲裝置之間的數位資料。
現代計算裝置,例如平板電腦、桌上電腦、伺服器和智慧型手機等,為消費者和相關公司提供了廣泛的實用應用。這些裝置通常包含用於執行存儲於記憶體內電腦代碼的主機處理系統,而大量資料存儲裝置則透過標準通訊匯流排連接至主機處理系統上,可存儲相對大量的數位資料,例如數位相片、電郵、文件等。
在這些裝置中,“檔案系統”通常放置於主機處理系統內,並用於管理和控制資料存儲和大量資料存儲裝置檢索。應用與檔案系統進行通訊,存儲或檢索來自大量資料存儲裝置的檔案,而檔案系統將請求轉換為命令,在“區塊”基礎上訪問大量資料存儲裝置中的檔案,即預先定義數量的數位資料。檔案系統還可執行其他任務,例如維護資料結構以管理檔案資料,包括元資料,以及存儲空間管理。
每次存儲或從資料存儲系統中檢索檔案時,主機處理系統中的檔案系統均會發送大量讀取和寫入命令,原因是必須與檔案一同存儲/檢索的大量區塊。這些讀取和寫入命令將透過通訊匯流排發送,導致延遲,降低系統性能。此外,現今的大量資料存儲裝置存儲性能和訪問速度各异,例如旋轉式磁性裝置和NAND快閃記憶體,因此無法對各種存儲裝置的檔案系統進行優化來實現最大存儲和檢索訪問次數。
因此最好能够克服此前檔案存儲和檢索技術的限制,更為高效地管理計算系統中的資料。
本發明提供一種將來自主機處理系統的檔案高效地存儲至大量資料存儲裝置中的系統、方法和裝置。其中一個實施例描述了一個大量資料存儲裝置,該裝置包含主機介面電路,用於接收來自透過通訊匯流排連接至大量資料存儲裝置的主機處理系統的命令,並透過通訊匯流排向主機處理系統提供此前存儲的檔案資料,用於存儲處理器可執行指令的記憶體,用於存儲主機處理系統所提供檔案和檔案相關元資料的大量存儲記憶體,連接至主機介面電路的存儲控制器,用於執行處理器可執行指令、以便大量資料存儲裝置接收單一命令,以及存儲或檢索由主機介面電路從主機處理系統透過通訊匯流排發送的完整檔案的大量存儲記憶體,包含檔案識別符的命令可確定用於根據檔案識別符和元資料定位檔案的大量存儲記憶體中的位址,以及訪問與元資料一致的大量存儲記憶體中的存儲位址。
本發明另一實施例則說明了高效資料存儲和檢索方法,由透過通訊匯流排連接至主機處理系統的大量資料存儲裝置實行,包括接收單一命令,存儲或檢索由主機介面電路從主機處理系統透過通訊匯流排發送的完整檔案,該命令包含檔案識別符,用於根據大量資料存儲裝置中記憶體內存儲的檔案識別符和元資料定位檔案的大量存儲記憶體中的位址,以及透過檔案系統,訪問與元資料一致的大量存儲記憶體中的存儲位址。
本文描述了現代計算裝置和系統用於高效資料存儲和檢索的系統、方法和裝置。與檔案系統相關的功能,即大量資料存儲裝置的管理與控制,屬透過通訊匯流排連接至主機處理系統的大量資料存儲裝置。這一配置使得主機處理系統發送更少用於存儲和檢索資料的命令。
本揭露書的某些方面和示例如下。這些方面和示例中的一些可單獨應用,另一些可組合應用,這對於本領域中的技術人員來說顯而易見。出於解釋目的,以下描述中闡述了具體細節,以便讀者全面理解本發明的示例。然而,很明顯,也可在沒有這些具體細節的情况下實踐各種示例。附圖和描述並非用於施加限制。
隨後的描述僅提供示例性示例,並非用於限制本揭露書的範圍、適用性或配置。相反,隨後對示例性示例的描述將為那些本領域中的技術人員提供用於實現示例性示例的使能性描述。應該理解的是,在不背離所附請求項中所述本發明精神和範圍的情况下,可對各元素的功能和排列作出各種改變。
以下描述中闡述了具體細節,以便讀者全面理解本發明的示例。然而,本領域中的普通技術人員應理解,也可在沒有這些具體細節的情况下實踐各種示例。例如,可將電路、系統、網路、過程和其他組件以方塊圖形式顯示為組件,以避免在不必要的細節方面模糊示例。在其他情况下,可顯示不含不必要細節的已知電路、過程、算法、結構和技術,以避免模糊示例。
此外,需要注意的是,可將單個示例描述為一個過程,該過程可描述為流程表、流程圖、資料流程圖、結構圖或方塊圖。儘管流程圖可將操作描述為順序過程,但是許多操作可並行或同時執行。此外,可以重新安排操作順序。過程在操作完成時終止,但可能存在圖中未包含的其他步驟。過程可能對應於方法、函數、流程、子常式、子程式等。當過程與函數對應時,該過程終止可能與調用函數或主函數的返回值對應。
術語“電腦可讀介質”、“記憶體”和“存儲介質”包括但不限於可携式或非可携式存儲裝置、光學存儲裝置及能够存儲、容納或携帶指令和/或資料的各種其他介質。每個術語均可包括可存儲資料的非暫態介質,但其中不包括透過無線或有線連接傳輸的載波和/或暫態電子訊號。非暫態介質示例可包括但不限於磁碟或磁帶;光碟或數位通用磁碟等光學存儲介質;快閃記憶體、隨機存取記憶體、唯讀記憶體、磁碟驅動器等。電腦可讀介質或類似介質可存儲代碼和/或機器可執行指令,這些代碼和/或指令可表示流程、函數、子程式、程式、常式、子常式、模組、套裝軟體、種類或指令、資料結構或程式叙述的任意組合。透過傳遞和/或接收資訊、資料、引數、參數或記憶體內容,代碼符號可與另一個代碼符號或硬體電路連接。可透過任何適當的方式傳遞、轉發或傳輸資訊、引數、參數、資料等,包括記憶體共享、訊息傳遞、訊標傳遞、網路傳輸等。
此外,可透過硬體、軟體、韌體、中間軟體、微代碼、硬體描述語言或其任意組合來實現示例。當透過軟體、韌體、中間軟體或微代碼實現示例時,程式代碼(即“處理器可執行代碼”)或執行必要任務的代碼符號(例如電腦程式産品)可存儲在電腦可讀或機器可讀介質中。處理器可執行必要任務。
本發明所述示例提供了對資料存儲和檢索系統的具體改進。例如,在因介質故障或發出噪音等發生擦除或錯誤的情况下,示例使存儲和檢索系統能够僅使用異或算法恢復存儲在一個或多個存儲介質中的資料。使用異或算法可避免複雜算法的使用,例如基於高氏場理論的多項式計算,裏德-所羅門碼等傳統的糾錯解碼技術也是如此。僅限使用異或算法進行運算改進了資料存儲和檢索系統的功能,因為可使用價格更低、功率更低的處理器,並且與本領域中的已知技術相比,存儲和檢索的速度更快。
圖1展示了先前技術存儲和檢索系統100的概念圖。文字處理、網頁瀏覽、電郵、相片編輯、密碼挖掘等一個或多個軟體應用程式102運行於主機處理系統104上。該等應用程式通常以檔案的形式存儲和檢索來往於大量存儲裝置的資料,例如硬驅動機或SSD,顯示為存儲裝置106。
在從存儲裝置106中存儲或檢索檔案時,應用程式將會向檔案系統108提供檔案名稱,標識待存儲或檢索的檔案。檔案系統通常為主機處理系統104作業系統的一部分,用於管理存儲裝置106的存儲空間,創建識別檔案在存儲裝置106中存儲位置的資料結構(包含元資料和inode表)。檔案系統將檔案存儲和檢索請求轉換為每個檔案的無數寫入和讀取命令(以及至少一項“開啓”和“關閉”命令),因為通常檔案系統會在稱為“區塊”的預先定義資料組集中訪問檔案。例如,如應用程式向檔案系統108發送命令要求存儲特定檔案,檔案系統將查閱inode表,確定應用程式的使用者是否有權訪問檔案、檔案大小、檔案在存儲裝置106中的存儲位置(位址)等資訊。檔案系統隨後將生成“創建”命令,該命令通常包含一系列存儲裝置106的讀取和寫入操作,隨後是待存儲資料區塊的寫入命令。這些寫入命令通常包含多個讀取和寫入命令。
檔案系統的命令傳輸至存儲裝置驅動器110,並根據主機處理系統104所用的特定通訊匯流排架構進行配置。匯流排架構示例包括SATA、SATEe、SAS、eMMC、UFS、PCI、PCIe、NVMe、PCI-X、USB等。重新配置的命令之後將透過可能是主機處理系統104其中一部分的通訊匯流排112發送,發送至存儲裝置106中的存儲控制器114。控制器114從存儲裝置驅動器110處接收命令,並向大量存儲記憶體116提供訪問權,而控制器114則處理檢索或存儲資料區塊的各個讀取和寫入命令,如存儲裝置驅動器110發送的命令所示。
因此每次存儲或檢索檔案時,檔案系統108必須諮詢資料結構,確定檔案如何,或將如何存儲,確定檔案存儲或將存儲的位址,之後向存儲裝置108發送多個命令,從而存儲或檢索一個檔案。
圖2展示了符合本說明所述方法的存儲和檢索系統200的示例概念圖。在本實施例中,圖1的檔案系統108已移至存儲裝置206處,顯示為檔案系統208,新的功能部件主機處理系統204中的檔案系統封套218則替換主機處理系統104中的檔案系統108。新的資料和存儲系統200大大减少了主機處理系統204在一個或多個應用程式202請求進行的檔案存儲或檢索流程中向存儲裝置206發送的讀取和寫入命令數量。
在本實施例中,應用程式202請求存儲和檢索來往檔案系統封套218的檔案。檔案系統封套218封裝了檔案標識符,例如完整路徑檔案名稱,並將其提供予存儲裝置驅動器210。裝置驅動器210將封裝檔案名稱作為單一請求提供予存儲控制器214,而檔案系統208則接收單一請求,並處理請求,確定在出現檔案請求時如何檢索檔案,或存儲檔案的位置與方式,而在實施例中,則為在出現存儲請求時,在大量存儲記憶體216中存儲相關元資料。檔案系統根據其中一個應用程式202請求的操作,向大量存儲記憶體216發出一系列讀取和寫入操作(或向控制器記憶體402或其他與檔案系統208相關的記憶體)。如應用程式202發送檔案存儲命令,檔案系統208將確定大量存儲記憶體216中的可用空間,以及檔案將存儲在大量存儲記憶體216中的位置。
儘管圖2所示大量資料存儲裝置206實質上與主機處理系統204相隔離,在其他實施例中,大量資料存儲裝置206實質上是主機處理系統204的一部分,即安裝於主機處理系統204的附件中,如個人電腦。在大量資料存儲裝置206為主機處理系統204一部分的實施例中,通訊匯流排212包含符合以下標準的標準化電腦匯流排之一:相關標準為SATA、SATEe、SAS、eMMC、UFS、PCI、PCIe、NVMe、PCI-X、USB等。在這些實施例中,大量資料存儲裝置206通常包含插入主機處理系統204主機板的擴展端口的連接器。在大量資料存儲裝置206與主機處理系統204實質分離的實施例中,通訊匯流排212可包含一個或多個無線介面、乙太網路纜線、SATA纜線、USB纜線、PCIe纜線或其他適用於主機處理系統204和大量資料存儲裝置206的特定存儲性能的纜線。在部分實施例中,大量資料存儲裝置206的安裝位置遠離主機處理系統204,可透過一個或多個廣域網路訪問,例如網際網路。
圖3為圖2所示的主機處理系統204和大量資料存儲裝置206的功能方塊圖。主機處理系統204包含主機處理器300、主機記憶體302、使用者介面304、緩衝器306和資料存儲介面308。這些部件組成了一系列不同計算裝置的基礎,例如個人電腦、智慧型手機、伺服器、數位相機等,裝置可用於運行一系列應用程式,例如文字處理、網頁瀏覽、發送電郵、數位拍攝等。在許多應用程式中,資料由主機處理器300存儲和/或檢索於大量資料存儲裝置206中。
主機處理器300的配置使其可透過執行存儲於主機記憶體302中的處理器可執行指令,實現主機處理系統204的基本操作,例如可執行電腦代碼。主機處理器300通常包含一個由加利福尼亞聖克拉拉Intel Corporation或加利福尼亞桑尼維爾Advanced Micro Devices製造的通用微處理器或微控制器,選擇依據是計算速度、費用和其他因素。
主機記憶體302包含一個或多個非暫態資訊存儲裝置,例如隨機存取記憶體、唯讀記憶體、電子可抹除可程式化唯讀記憶體、紫外線可程式化唯讀記憶體、快閃記憶體、SD記憶體、XD記憶體或其他類型的電子、光學或機械存儲裝置。主機記憶體302用於存儲處理器可執行指令,操作主機處理系統204,包括處理器300或主機處理系統204中的其他處理器的處理器可執行指令,從而實現檔案系統封套218的功能。應理解,在部分實施例中,主機記憶體302的一部分可嵌入主機處理器300中,且主機記憶體302不包含傳播訊號的媒介。
緩衝記憶體306連接至處理器300,且通常會連接至資料存儲介面308。緩衝記憶體306包含一個存儲裝置,用於暫時存儲大量資料存儲裝置206將存儲的檔案,或檢索自大量資料存儲裝置206的檔案。緩衝記憶體306通常包含一個或多個隨機存取記憶體,或透過使用存儲於記憶體302中處理器可執行指令所定義的虛擬資料緩衝,指向記憶體302或緩衝記憶體306的位置。
資料存儲介面308連接至處理器302和通訊匯流排212,可發送和接收命令和檔案資料。資料存儲介面包含用於在主機處理系統204和大量資料存儲裝置206之間進行高速資料傳輸的電路。該電路利用了一系列知名高速資料協定之一,例如SATA、SATEe、SAS、eMMC、UFS、PCI、PCIe、NVMe、PCI-X、USB等。資料存儲介面308通常包含資料存儲驅動器210,包括從檔案系統封套218處接收檔案存儲和檔案檢索命令的可執行指令,以及使用來自檔案系統封套218的命令中資訊,組成適用於大量資料存儲裝置206的命令,例如存儲和檢索資料的裝置或供應商特定命令。
大量資料存儲裝置206包含一個或多個固體狀態驅動機、磁性硬驅動機、磁帶驅動器或其他能够存儲較大量資料,例如多於1吉位元組的存儲媒介。大量資料存儲裝置206包含檔案系統218,該系統可包含存儲於記憶體中的處理器可執行指令,對存儲空間進行管理,維持資料結構,從而管理檔案資料和元資料,以及資料存儲和檢索中使用的讀取/寫入操作。與檔案系統218相關的更多詳情將於下文討論。在其他實施例中,大量資料存儲裝置206可包含視訊卡、音效卡、數位相機或其他周邊裝置。
圖4是大量資料存儲裝置206一個實施例的簡化功能方塊圖。應理解,在其他實施例中,圖4所示功能可整合入單一特定應用積體電路或單晶片系統中。主機處理系統204的命令透過主機介面404接收,例如“檔案檢索”和“檔案存儲”。但這些命令與先前技術命令不同,其中大量資料存儲裝置206並未規定打開、關閉、讀取或寫入的位址。位址資訊由存儲控制器400確定,下文將詳細說明。
主機介面404包含用於在主機處理系統204和大量資料存儲裝置206之間進行高速資料傳輸的電路。該電路利用了一系列知名高速資料協定之一,例如SATA、SATEe、SAS、eMMC、UFS、PCI、PCIe、NVMe、PCI-X、USB等。
控制器400的配置使其可透過執行存儲於主機記憶體402中的處理器可執行指令,實現大量資料存儲裝置206的基本操作,例如可執行電腦代碼。控制器400負責響應主機處理系統204發送的開啓、關閉、讀取和寫入命令。控制器400通常包含一個或多個專用微處理器、微控制器、定制化單一特定應用積體電路和/或單晶片系統。控制器400通常根據計算速度、費用、大小和其他考慮因素選擇。
處理器記憶體402包含一個或多個非暫態資訊存儲裝置,例如隨機存取記憶體、唯讀記憶體、電子可抹除可程式化唯讀記憶體、快閃記憶體、SD記憶體、XD記憶體或其他類型的電子、光學或機械存儲裝置。處理器記憶體402用於存儲處理器可執行指令,操作控制器400,包括控制器400或大量資料存儲裝置206中的其他處理器的處理器可執行指令,從而實現檔案系統208的功能。應理解,在部分實施例中,處理器記憶體402整合入控制器400中,且處理器記憶體402不包含傳播訊號的媒介。
輸入/輸出緩衝406包含一個或多個大量資料存儲裝置,用於暫時存儲待存儲於大量存儲記憶體216中的資料和/或從大量存儲記憶體216中檢索的資料,等待傳輸至主機處理系統204。緩衝406通常包含用於快速訪問資料的隨機存取記憶體。
大量存儲記憶體216包含一個或多個非暫態資訊存儲裝置,例如隨機存取記憶體、快閃記憶體、SD記憶體、XD記憶體或其他類型的電子、光學或機械存儲裝置,用於存儲主機處理系統204提供的資料。在一個實施例中,大量存儲記憶體216包含許多NAND快閃記憶體晶片,按一系列組別和迴路排列,提供高達多個兆位元組的資料存儲空間。大量存儲記憶體216通常透過多條資料和控制線路連接至控制器400,在一些實施例中,控制器400和大量存儲記憶體216之間提供了專用介面,用於輔助存儲和檢索流程。大量存儲記憶體216不包含傳播訊號的媒介。
圖5A和5B組成了展示存儲和檢索系統100實施的方法或算法的一個實施例的流程圖。具體地說,該方法描述了主機處理裝置204與大量資料存儲裝置206之間的互動,更具體地說,描述了主機處理器300與資料存儲控制器400進行的操作,各操作分別執行了主機記憶體302和大量資料存儲裝置記憶體402中存儲的處理器可執行指令。同時應理解,某些示例中,並非會包含圖5中所示的所有步驟,並且在其他示例中執行步驟的順序可能不同。此外,為了清楚起見,一些次要的方法步驟可省略。
方法共分為兩個部分:區塊500至516說明了資料存儲和檢索系統100如何存儲新檔案。區塊518至532則說明了資料存儲和檢索系統100如何檢索此前已存儲於大量資料存儲裝置206中的檔案。儘管圖5僅詳細說明了這兩個操作,應理解其他操作也能够得到實施。
在區塊500中,應用程式202由主機處理系統204為響應使用者操作主機處理系統204而執行。應用程式202可利用此前存儲於大量資料存儲裝置206中的檔案,和/或可創建新檔案或其他資訊,例如在智慧型手機上運行的數位拍攝應用程式。
在區塊502中,應用程式202生成存儲與應用程式202相關的新檔案的請求。該等資訊可包含一份數位試算表、一份數位正文文件、一張數位相片、一個數位視頻、一封電郵或其他資訊,例如資料存儲和檢索系統100包含雲端備份存儲系統時的大量使用者資料。該等資訊在本文中統稱為“檔案”。
存儲資訊的請求通常是為響應使用者與應用程式202之間互動而生成的。請求通常包含完整路徑名稱,包括檔案名稱和應存儲檔案的大量資料存儲裝置206的目錄,即C:\documents\file.docx。請求隨後發送至處理器300。
在區塊504中,處理器300接收請求,而檔案系統封套218則被調用。為響應請求,檔案系統封套218生成了“檔案存儲”命令,促使大量資料存儲裝置206分配大量資料存儲裝置上的存儲空間,之後將完整檔案存儲至大量資料存儲裝置206所分配的存儲空間。因此,完整檔案的存儲由單一命令完成。這與先前技術存儲系統不同,其中主機處理系統204中的檔案系統所生成的檔案存儲命令會導致存儲裝置驅動器發送多個讀取/寫入命令,分配大量資料存儲裝置106上的空間,隨後多個讀取/寫入命令將透過通訊匯流排112發送,將實際檔案資料存儲於大量資料存儲裝置106中。
檔案系統封套218可額外生成與待創建檔案相關的元資料,包含檔案大小、檔案是否可讀取/寫入/執行、檔案所有者,最後創建、訪問或修改檔案的時間和日期等資訊。在一個實施例中,創建命令導致大量資料存儲裝置206為將存儲的檔案指定“檔案處置”。主機處理器300可在特定檔案相關的進一步操作中使用檔案處置,例如未來讀取和寫入操作。
檔案存儲命令可識別由存儲裝置驅動器210發送的裝置特定,或“供應商特定”命令,如下所述,或由大量資料存儲裝置確認,允許訪問大量資料存儲裝置206的標準命令。
在區塊506中,資料存儲介面208接收檔案存儲命令,而存儲裝置驅動器210確認該命令可與供應商特定或裝置特定命令一同使用,訪問大量資料存儲裝置206。供應商特定命令可能是存儲裝置驅動器210向檔案系統封套218提供的一系列命令之一。存儲裝置驅動器210所發送的許多標準命令均允許以傳統方式對大量資料存儲裝置206進行特定訪問,供應商特定或裝置特定命令則較為靈活,允許對大量資料存儲裝置206進行個性化訪問。檔案系統封套218可用的一系列命令可透過傳統方式來確定,例如處理器300在大量資料存儲裝置206首次引入主機處理系統204時,在安裝了大量資料存儲裝置206的主機處理系統204首次開機時,或通常而言,在安裝了大量資料存儲裝置206時,對大量資料存儲裝置206進行初始化設定。
例如,在一個實施例中,來自檔案系統封套218的檔案存儲命令根據知名的NVMe資料存儲和檢索協議,識別由存儲裝置驅動器210發送的供應商特定命令。NVMe是PCIe匯流排上固體狀態驅動機的存儲介面規格。NVMe規格的最新版本可在www.nvmexpress.org上查閱,現為第1.3版,日期為2017年5月1日,透過完整引用而納入本文。與NVMe協議相符的普通供應商特定命令格式示例如下所示,並引用於圖12的NVMe規格中。
在此實施例中,各供應商特定命令均包含16個四位元組,每個四位元組長度為4個位元組(因此該命令長度為64個位元組)。供應商特定命令包含命令四位元組0、名稱空間識別符字段、預留字段、動作識別符(即“開啓”、“關閉”、“創建”、“存儲”、“檢索”),以及在部分實施例中,還包含檔案的完整路徑名稱、元資料指示器(即主機記憶體302中存儲元資料的位置)、資料指示器(即主機記憶體302中存儲實際檔案資料的位置)、資料傳輸四位元組數量字段、元資料傳輸四位元組數量字段,以及4個命令四位元組。應理解,在其他實施例中,不同的字段排列和每個字段的位元數量可能與本實施例所述的不同。
存儲裝置驅動器210識別檔案存儲命令為調用供應商特定命令時,存儲裝置驅動器210將透過從檔案存儲命令將資料映射至供應商特定命令,生成供應商特定命令。在此實施例中,識別符位元組16至39用於將文字“存儲”、“檔案存儲”或其他參照詞彙插入檔案存儲中,而在一個實施例中,則識別用於識別待存儲檔案名稱及其目錄的完整路徑名稱為有效負載。最後四個四位元組,即位元組48至63,用於放置與檔案相關的部分或所有元資料,例如檔案的完整路徑名稱、檔案大小、許可等。主機處理系統204中的緩衝記憶體也可在供應商特定字段之一中識別,例如記憶體302或緩衝記憶體(未顯示),且可能提供一個或多個位址或偏移,用於識別待寫入檔案在主機處理系統204中存儲的位置。供應商特定命令生成後,將透過通訊匯流排212向大量資料存儲裝置206提供。應理解,供應商特定命令是將完整檔案存儲於大量資料存儲裝置206中所需的唯一命令。
在區塊508中,大量資料存儲裝置206中的主機介面404將接收供應商特定命令,並將其發送至控制器400。
在區塊510中,控制器400將確定供應商特定命令包含“檔案存儲”命令,且之後向檔案系統208發送供應商特定命令中的資訊。
在區塊512中,檔案系統208將確定檔案在大量存儲記憶體216中存儲的一個或多個位置。在一個實施例中,檔案系統208將透過執行來往於大量存儲記憶體216、記憶體402或其他與檔案系統208相關的記憶體(即“本機記憶體”)的讀取和寫入操作,確定檔案存儲的位置,從而將大量存儲記憶體216的區塊配置到檔案中。同時,檔案系統208將按技術所述,訪問資料位元映像、inode位元映像和一個或多個與大量存儲記憶體216相關的inode表,如下所示:
表2、檔案創建等時線(時間向下增長)
上表來自由Remzi Arpaci-Dusseau和Andrea Arpaci-Dusseau所著“作業系統:三大簡單的部分”,可在http://pages.cs.wisc.edu/~remzi/OSTEP/上查閱,文章透過引用納入本文。儘管表格參照了先前技術存儲和檢索系統(即檔案系統208在主機處理系統104中的位置)所進行的讀取和寫入操作,該表格仍適用於展示大量資料存儲裝置206中的檔案系統208如何與本機記憶體進行互動,為檔案配置存儲空間。表格展示了檔案系統208為在名為“foo”的目錄中創建名為“bar”的檔案,所進行的各種讀取和寫入操作。檔案系統208不僅配置了inode,還配置了包含新檔案的目錄內空間。所需的流量較高:一部分讀取inode位元映像(尋找自由inode),一部分寫入inode位元映像(標記其配置的位置),一部分寫入新的inode(進行初始化),一部分分配予目錄資料(將檔案的高級名稱與其資料結構數字相連),以及一部分讀取和寫入目錄資料結構以便進行更新。如目錄需要擴大以計入新記錄,則還需要額外的輸入/輸出(即資料位元映像和新的目錄塊)。在檔案“bar”創建於目錄“foo”的示例中,本機記憶體的讀取和寫入操作均歸於命令之下,以及操作從上至下發生的粗略排序。在此示例中,為配置大量存儲記憶體216中的存儲空間,必須發生10次輸入/輸出。之後每次寫入檔案的資料塊時,將發生5次輸入/輸出:一對用於讀取和更新inode,另一對用於讀取和更新資料位元映像,最後寫入資料本身。這些輸入/輸出通常透過通訊匯流排112傳輸。然而,當前實施例中所有輸入/輸出均發生於機載存儲裝置206中,在檔案系統208和存儲inode表和位元映像資料的本機記憶體之間。
在區塊514,檔案系統208可生成與檔案相關的元資料。在此實施例中,檔案系統可確定檔案大小,檔案首次創建、存儲、訪問或修改的時間和日期,以及其他與檔案相關的資訊。檔案系統將以該元資料更新指定的inode。
在區塊516中,在檔案存儲空間已在大量存儲記憶體216中配置後,控制器400將促使主機介面404從記憶體302中檢索完整檔案資料,或透過通訊匯流排212檢索作為主機處理系統204一部分的緩衝記憶體。檔案位址和大小可從供應商特定命令所含資訊中查找,該命令由主機介面404在區塊508中接收。完整檔案可透過通訊匯流排212簡單讀取緩衝記憶體306來檢索,無需將資料分配至區塊中。完整檔案通常存儲於輸入/輸出暫存處406中。在檢索後,檔案系統208可確定完整檔案的大小,並透過更新檔案對應的inode表元資料,根據檔案大小配置大量存儲記憶體216中的空間。
在區塊518中,檔案系統208在從輸入/輸出暫存處406中檢索檔案時,存儲了大量存儲記憶體216中的完整檔案。在一個實施例中,檔案系統208將完整檔案分配至區塊中,並將區塊存儲於大量存儲記憶體216中。在一個實施例中,檔案inode表的元資料隨後經過更新,顯示存儲區塊的位置。
在區塊520中,應用程式202向檔案系統封套218發送“檔案檢索”命令,因此使用者可讀取正文文件或查看數位相片或視頻。檢索命令可包含所需檔案所在的完整路徑名稱。
在區塊522中,檔案系統封套218生成了一個檢索命令,包含完整路徑名稱和/或識別檔案的檔案處置。檢索命令可識別同一“供應商特定”命令用於寫入檔案的類屬,如上所述。檢索命令將發送至資料存儲介面208。
在區塊524中,資料存儲介面208接收檔案檢索命令,而存儲裝置驅動器210確認該命令可與供應商特定命令一同使用。因此,存儲裝置驅動器210將透過從檢索命令將資料映射至供應商特定命令,生成單一的供應商特定命令。在此實施例中,標識符位元組16至39用於將文字“檢索”或其他參照詞彙插入檔案檢索中,而在一個實施例中,則識別用於識別待存儲檔案名稱及其目錄的完整路徑名稱為有效負載。最後四個四位元組,即位元組48至63,用於放置與檔案相關的部分或所有元資料,例如檔案的完整路徑名稱、檔案大小、許可等。主機處理系統204中的記憶體也可在供應商特定字段之一中識別,例如記憶體302或緩衝記憶體(未顯示),且可能提供一個或多個位址或偏移,用於識別檔案由大量資料存儲裝置206檢索後,應存儲在主機處理系統204中的位置。供應商特定命令生成後,將透過通訊匯流排212向大量資料存儲裝置206提供。應理解,供應商特定命令是將完整檔案從大量資料存儲裝置206中檢索所需的唯一命令。
在區塊526中,大量資料存儲裝置206中的主機介面404將接收供應商特定命令,並將其發送至控制器400。
在區塊528中,控制器400將確定供應商特定命令包含“檔案存儲”命令,且之後向檔案系統208發送供應商特定命令中的資訊。
在區塊530中,檔案系統208將確定檔案在大量存儲記憶體216中存儲的一個或多個位置。在一個實施例中,檔案系統208將透過執行來往於大量存儲記憶體216、記憶體402或其他與檔案系統208相關的記憶體(即“本機記憶體”)的讀取和寫入操作,確定檔案存儲的位置。在一個實施例中,檔案系統208首先為供應商特定命令中標明的檔案查找inode,從而獲取與檔案相關的基本資訊(許可資訊、檔案大小等)。檔案系統208首先在大量存儲記憶體216的根目錄中進行讀取操作(通常稱為/),讀取根目錄的inode,該資料結構預先定義且存儲於本機記憶體中。例如,在大部分UNIX檔案系統中,root inode數字定義為2。因此檔案系統208將讀取包含inode數字2的記憶區塊。讀取inode後,檔案系統208將評估其中的資料,查找資料區塊的一個或多個指示器,其中包含根目錄的內容。檔案系統208因此將使用指示器來瀏覽目錄,在此情况下為供應商特定命令中標明的目錄查找記錄。
檔案系統208為目錄查找記錄時;檔案系統208將檢索接下來需要的目錄的inode數字(即44)。
檔案系統208隨後將遞回地追溯路徑名稱,直至查找到所需的inode。在此示例中,檔案系統208讀取了包含目錄inode的區塊,隨後讀取其目錄資料,最後查找到檔案的資料結構數字。
下一步,檔案系統208將讀取檔案的inode,此時檔案應為“打開”狀態。檔案的inode包含與檔案相關的元資料,包含檔案大小(有時顯示為一系列區塊)、檔案是否可讀取/寫入/執行、檔案所有者,最後創建、訪問或修改檔案的時間和日期等資訊。inode還包含存儲檔案的大量存儲記憶體216中的起始位址。
接下來,檔案系統208將如inode所示,開始讀取各檔案區塊,之後讀取下一區塊,直至在大量存儲記憶體216中讀取完整檔案。
在區塊532中,在從大量存儲記憶體216讀取區塊的實施例中,檔案系統208將向輸入/輸出暫存處406提供區塊用於臨時存儲。
在區塊534中,處理器300將促使主機介面404從輸入/輸出暫存處406中檢索區塊,並透過通訊匯流排212向主機處理系統204發送區塊,如供應商特定命令指示,將其存儲於主機處理系統204的緩衝中。
與本發明公開的示例相關的所述方法或算法可直接體現在硬體中,或體現在處理器執行的處理器可讀指令中。處理器可讀指令可駐留在隨機存取記憶體、快閃記憶體、唯讀記憶體、可擦除可規劃式唯讀記憶體、電子可擦除可規劃式唯讀記憶體、暫存器、硬碟、可移式磁碟、唯讀記憶光碟或任何其他形式的存儲介質中。示例性存儲介質連接到處理器,以便處理器可以從存儲介質讀取資訊,並將資訊寫入存儲介質。另一種方案是,存儲介質可與處理器集成在一起。處理器和存儲介質可以駐留在專用集成電路中。專用集成電路可駐留在使用者終端中。另一種方案是,處理器和存儲介質可以作為離散組件駐留。
因此,本發明的示例可以包含一個內含實現本發明中公開的教學、方法、過程、算法、步驟和/或功能的電腦可讀代碼或處理器可讀指令的電腦可讀媒介。
儘管上述揭露書顯示了本發明的說明性示例,但應注意,在不偏離所附請求項中界定的本發明範圍的情况下,可以在本發明中進行各種更改和修改。按照本發明所述示例的方法請求項的功能、步驟和/或動作不需要以任何特定的順序執行。此外,儘管本發明的元素用單數來描述或請求,但應考慮包括了複數,除非明確規定了對單數的限制。
100、200:存儲和檢索系統
102、202:應用程式
104、204:主機處理系統
106、206:存儲裝置
108、208:檔案系統
110、210:存儲裝置驅動器
112、212:通訊匯流排
114、214:存儲控制器
116、216:存儲記憶體
218:檔案系統封套
300:處理器
302:記憶體
304:使用者介面
306:緩衝記憶體
308:資料存儲介面
400:存儲控制器
402:控制器記憶
404:主機介面
406:輸入/輸出緩衝
500、502、504、506、508、510、512、514、516、518、520、522、524、526、528、530、532、534:步驟
本發明的特徵、優點和目的請參閱以下結合附圖給出的詳細描述,圖中相應的標識了類似的參考字符,並且其中:
圖1展示了先前技術存儲和檢索系統的概念圖;
圖2展示了符合本說明所述方法的存儲和檢索系統的示例概念圖;
圖3為圖2所示的主機處理系統和大量資料存儲裝置的功能方塊圖;
圖4為圖2和圖3所示大量資料存儲裝置一個示例的簡化功能方塊圖;以及
圖5A和5B組成了展示圖2和圖3所示存儲和檢索系統實施的方法或算法的一個示例的流程圖。
200:存儲和檢索系統
202:應用程式
204:主機處理系統
206:存儲裝置
208:檔案系統
210:存儲裝置驅動器
212:通訊匯流排
214:存儲控制器
216:存儲記憶體
218:檔案系統封套
Claims (17)
- 一種大量資料存儲裝置,包含: 用於從透過通訊匯流排連接至主機處理系統的大量資料存儲裝置中接收命令,以及透過通訊匯流排向主機處理系統發送此前存儲的檔案資料的主機介面電路; 用於存儲處理器可執行指令的記憶體: 用於存儲由主機處理系統提供的資料,存儲與存放於大量存儲記憶體中檔案相關的元資料的大量存儲記憶體;以及 用於執行處理器可執行指令,促使大量資料存儲裝置進行以下操作的、連接至主機介面電路的存儲控制器、記憶體和大量存儲記憶體: 接收主機介面電路透過通訊匯流排從主機處理系統發送的存儲或檢索完整檔案的單一命令,該命令包含檔案標識符; 根據檔案標識符和元資料,確定在大量存儲記憶體中定位檔案的位址;以及 按照元資料訪問大量存儲記憶體中的存儲位址。
- 如請求項1所述的大量資料存儲裝置,單一命令包含單一供應商特定命令,其中包括顯示檔案檢索命令的有效負載,促使大量資料存儲裝置訪問大量存儲記憶體中位址的處理器可執行指令,以及促使大量資料存儲裝置進行以下操作的指令: 根據元資料識別與檔案標識符相關的檔案初始位址; 確定與最初在初始位址存儲於大量存儲記憶體中檔案相關的一系列資料存儲區塊,資料存儲區塊至少包含檔案的一部分; 根據初始位址和檔案相關的資料存儲區塊數量,檢索由處理器從大量存儲記憶體中發送的資料存儲區塊;以及 向主機介面裝置發送資料存儲區塊,用於將完整檔案透過標準化通訊匯流排傳輸至主機處理系統。
- 如請求項2所述的大量資料存儲裝置,其中指令將促使大量資料存儲裝置檢索資料存儲區塊,其中包含促使大量資料存儲裝置進行以下操作的指令: 檢索所有與檔案相關的資料存儲區塊,無需處理透過標準化通訊匯流排從主機處理系統發送的寫入命令。
- 如請求項3所述的大量資料存儲裝置,檔案檢索命令包含大量資料存儲裝置所確認的標準命令,而標準命令則包含有效負載; 其中有效負載包含檢索命令;以及 檔案檢索命令包含主機資料緩衝中的標識,其中資料存儲區塊由主機介面電路發送。
- 如請求項1所述的大量資料存儲裝置,命令包含了檔案存儲命令,以及促使大量資料存儲裝置訪問大量存儲記憶體中位址的處理器可執行指令,其中包含促使大量資料存儲裝置進行以下操作的指令: 按照檔案系統模組,確定大量存儲記憶體中檔案的初始位址; 更新檔案相關的元資料; 透過通訊匯流排從主機處理系統中接收完整檔案;以及 在初始位址處開始將完整檔案寫入大量存儲記憶體中。
- 如請求項5所述的大量資料存儲裝置,指令將促使大量資料存儲裝置寫入完整檔案,其中包含促使大量資料存儲裝置進行以下操作的指令: 將完整檔案寫入大量存儲裝置中,無需處理透過標準化通訊匯流排從主機處理系統發送的讀取命令。
- 如請求項1所述的大量資料存儲裝置,命令包含大量資料存儲裝置所確認的標準命令,而標準命令則包含有效負載; 其中有效負載包含檔案存儲命令;以及 檔案存儲命令包含主機資料緩衝中的標識,其中資料存儲區塊由主機介面電路透過通訊匯流排存儲。
- 如請求項1所述的大量資料存儲裝置,處理器可執行指令將進一步包含促使大量資料存儲裝置進行以下操作的指令: 響應接收命令,生成檔案處置,而檔案處置將用於暫時標識檔案;以及 向主機介面電路提供檔案處置,供主機處理系統用於識別後續檔案存儲或檔案檢索操作中的檔案。
- 一種透過標準通訊匯流排連接至主機處理系統的大量資料存儲裝置,為進行高效資料存儲和檢索所實行的方法包含: 接收主機介面電路透過通訊匯流排從主機處理系統發送的存儲或檢索完整檔案的單一命令,該命令包含檔案標識符; 根據由記憶體存儲於大量資料存儲裝置中的檔案標識符和元資料,確定在大量資料存儲裝置內大量存儲記憶體中定位檔案的位址;以及 按照元資料訪問大量存儲記憶體中檔案系統發送的存儲位址。
- 如請求項9所述的方法中,單一命令包含單一供應商特定命令,其中包括顯示檔案檢索命令的有效負載,且可訪問大量存儲記憶體中的位址,其中包含: 根據元資料識別與檔案標識符相關的檔案初始位址; 確定與最初在初始位址存儲於大量存儲記憶體中檔案相關的一系列資料存儲區塊,資料存儲區塊至少包含檔案的一部分; 根據初始位址和檔案相關的資料存儲區塊數量,檢索由處理器從大量存儲記憶體中發送的資料存儲區塊;以及 向主機介面裝置發送資料存儲區塊,用於將完整檔案透過標準化通訊匯流排傳輸至主機處理系統。
- 如請求項9所述的方法中,指令將促使大量資料存儲裝置檢索資料存儲區塊,其中包含促使大量資料存儲裝置進行以下操作的指令: 檢索所有與檔案相關的資料存儲區塊,無需處理透過標準化通訊匯流排從主機處理系統發送的寫入命令。
- 如請求項11所述的方法中,檔案檢索命令包含大量資料存儲裝置所確認的標準命令,而標準命令則包含有效負載; 其中有效負載包含檢索命令;以及 檔案檢索命令包含主機資料緩衝中的標識,其中資料存儲區塊由主機介面電路發送。
- 如請求項9所述的方法中,命令包含了檔案存儲命令,以及促使大量資料存儲裝置訪問大量存儲記憶體中位址的處理器可執行指令,其中包含促使大量資料存儲裝置進行以下操作的指令: 按照檔案系統模組,確定大量存儲記憶體中檔案的初始位址; 更新檔案相關的元資料; 透過通訊匯流排從主機處理系統中接收完整檔案;以及 在初始位址處開始將完整檔案寫入大量存儲記憶體中。
- 如請求項13所述的方法中,指令將促使大量資料存儲裝置寫入完整檔案,其中包含促使大量資料存儲裝置進行以下操作的指令: 將完整檔案寫入大量存儲裝置中,無需處理透過標準化通訊匯流排從主機處理系統發送的讀取命令。
- 如請求項9所述的方法中,指令將促使大量資料存儲裝置寫入完整檔案,其中包含促使大量資料存儲裝置進行以下操作的指令: 其中有效負載包含檔案存儲命令;以及 檔案存儲命令包含主機資料緩衝中的標識,其中資料存儲區塊由主機介面電路透過通訊匯流排存儲。
- 如請求項9所述的方法中,處理器可執行指令將進一步包含促使大量資料存儲裝置進行以下操作的指令: 響應接收命令,生成檔案處置,而檔案處置將用於暫時標識檔案; 向主機介面電路提供檔案處置,供主機處理系統用於識別後續檔案存儲或檔案檢索操作中的檔案。
- 一種用於高效資料存儲和檢索的主機處理系統,包含: 主機處理系統,包含: 用於存儲處理器可執行指令的主機記憶體; 用於向運行於主機處理系統上的應用程式發送檔案存儲和檢索操作的檔案系統封套; 用於透過通訊匯流排,與主機處理系統進行通訊的存儲裝置驅動器;以及 連接至主機記憶體、檔案系統封套以及存儲裝置驅動器,用於執行處理器可執行指令,促使主機處理裝置進行以下操作的處理器: 從運行於主機處理系統上的應用程式處接收請求,從透過通訊匯流排連接至主機處理系統的大量資料存儲裝置處存儲或檢索檔案: 封裝與檔案相關的檔案標識符; 向存儲裝置驅動器提供封裝檔案標識符作為單一請求;以及 響應發送單一請求,接收完整檔案。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/159,516 US20200117722A1 (en) | 2018-10-12 | 2018-10-12 | Efficient file storage and retrieval system, method and apparatus |
US16/159,516 | 2018-10-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202014912A true TW202014912A (zh) | 2020-04-16 |
Family
ID=70159648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136594A TW202014912A (zh) | 2018-10-12 | 2019-10-09 | 有效檔案存儲和檢索系統、方法與裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200117722A1 (zh) |
TW (1) | TW202014912A (zh) |
WO (1) | WO2020077301A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI770732B (zh) * | 2020-12-22 | 2022-07-11 | 威聯通科技股份有限公司 | 儲存管理系統及其搜尋排序方法 |
TWI849427B (zh) * | 2022-04-27 | 2024-07-21 | 大陸商鼎捷軟件股份有限公司 | 元數據生成系統以及元數據生成方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230050976A1 (en) * | 2021-08-12 | 2023-02-16 | Seagate Technology Llc | File system aware computational storage block |
CN114328508B (zh) * | 2021-11-19 | 2024-04-26 | 北京遥测技术研究所 | 一种星载固态存储器的快速检索方法 |
KR20240087103A (ko) | 2022-12-12 | 2024-06-19 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778426A (en) * | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US20080140724A1 (en) * | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8060356B2 (en) * | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
US20120278560A1 (en) * | 2009-10-04 | 2012-11-01 | Infinidat Ltd. | Pre-fetching in a storage system that maintains a mapping tree |
CN102193882B (zh) * | 2010-03-15 | 2014-09-10 | 京瓷办公信息系统株式会社 | 数据处理装置以及数据处理方法 |
JP5973134B2 (ja) * | 2011-02-03 | 2016-08-23 | ローム株式会社 | システムlsi |
US20130080603A1 (en) * | 2011-09-27 | 2013-03-28 | Microsoft Corporation | Fault Tolerant External Application Server |
US9817728B2 (en) * | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
-
2018
- 2018-10-12 US US16/159,516 patent/US20200117722A1/en not_active Abandoned
-
2019
- 2019-10-09 TW TW108136594A patent/TW202014912A/zh unknown
- 2019-10-11 WO PCT/US2019/055988 patent/WO2020077301A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI770732B (zh) * | 2020-12-22 | 2022-07-11 | 威聯通科技股份有限公司 | 儲存管理系統及其搜尋排序方法 |
TWI849427B (zh) * | 2022-04-27 | 2024-07-21 | 大陸商鼎捷軟件股份有限公司 | 元數據生成系統以及元數據生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200117722A1 (en) | 2020-04-16 |
WO2020077301A1 (en) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202014912A (zh) | 有效檔案存儲和檢索系統、方法與裝置 | |
US8370835B2 (en) | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device | |
US9612910B2 (en) | Systems and methods for generating catalogs for snapshots | |
US9606748B2 (en) | Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution | |
US8966188B1 (en) | RAM utilization in a virtual environment | |
US20160110292A1 (en) | Efficient key collision handling | |
US9092426B1 (en) | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing | |
KR101301840B1 (ko) | 비휘발성 메모리 장치의 데이터 처리 방법 | |
KR102156222B1 (ko) | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 | |
US20130166855A1 (en) | Systems, methods, and interfaces for vector input/output operations | |
EP3608790B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
US20090019223A1 (en) | Method and systems for providing remote strage via a removable memory device | |
US11263090B2 (en) | System and method for data packing into blobs for efficient storage | |
CN108604162B (zh) | 为应用虚拟机提供对生产数据的访问的方法和系统 | |
EP3248135B1 (en) | File encryption support for fat file systems | |
US9767118B2 (en) | Optimized UEFI file system with network file system compound statements | |
US8265919B1 (en) | Emulating a peripheral mass storage device with a portable device | |
US20120131274A1 (en) | Legacy Data Managment | |
US10977198B2 (en) | Hybrid memory system interface | |
WO2023235040A1 (en) | File system improvements for zoned storage device operations | |
JP6215631B2 (ja) | コンピュータシステム及びそのデータ管理方法 | |
US10061653B1 (en) | Method to expose files on top of a virtual volume | |
US11734246B2 (en) | Systems and methods for multiplexing data of an underlying index | |
CN106775456B (zh) | 一种数据处理方法、装置及系统 | |
US20100274828A1 (en) | Electronic Device, Storage Area Allocation Method for File System, and Computer Product |