TWI507987B - 智能設備啓動過程的資料處理方法及智能設備 - Google Patents
智能設備啓動過程的資料處理方法及智能設備 Download PDFInfo
- Publication number
- TWI507987B TWI507987B TW103128992A TW103128992A TWI507987B TW I507987 B TWI507987 B TW I507987B TW 103128992 A TW103128992 A TW 103128992A TW 103128992 A TW103128992 A TW 103128992A TW I507987 B TWI507987 B TW I507987B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- requested
- page cache
- request
- data request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種智能設備啟動過程的資料處理方法及智能設備。
隨著智能設備功能的不斷增加,其上的軟體越來越複雜,開機時間隨之也變得越來越長。因為系統比較龐大,開機時就需要從記憶體上讀取更多的資料,而更多的外記憶體訪問無疑會增加系統啟動時間。
對於開機過程中需要讀取的大檔案,檔案系統本身提供的預讀方法已經提供了資料的預載入了:當上層讀了前幾筆資料後,檔案系統會自動讀取後面的資料,以實現處理器的資料處理跟外記憶體資料讀取的並發進行,減少了能夠影響到開機時間的外記憶體訪問,從而整體上提高系統性能。但是檔案系統的預讀是針對每個檔案內部的,不能跨不同的檔案。所以,對於開機過程中的大量小檔案(小於4K bytes)就無能為力了。
有鑒於此,如今迫切需要設計一種新的針對智能設
備啟動過程的資料處理方法,以便解決現有系統開機慢的缺陷。
本發明主要解決的技術問題是提供一種智能設備啟動過程的資料處理方法,能夠縮短開機啟動時間。
為解決上述技術問題,本發明採用的一個技術方案是:提供一種智能設備啟動過程的資料處理方法,包括:智能設備在啟動過程中檢測到資料請求時,查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含所述資料請求所請求的資料,所述小資料檔案是指其資料量小於設定閾值的檔案;在所述頁高速緩衝記憶體包含所述請求的資料時,判斷所述資料請求是讀資料請求還是寫資料請求;在所述資料請求是讀資料請求時,從所述頁高速緩衝記憶體拷貝所述請求的資料至所述資料請求後返回。
為解決上述技術問題,本發明採用的另一個技術方案是:提供一種智能設備,所述智能設備包括查找模組、判斷模組以及處理模組,其中:所述查找模組用於在智能設備啟動過程中檢測到資料請求時,查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含所述資料請求所請求的資料,所述小資料檔案是指其資料量小於設定閾值的檔案;所述判斷模組在所述查找模組查找到在所述頁高速緩衝記憶體包含所述請求的資料時,判斷所述資料請求是讀資料請求還是寫資料請求;所述處理模組用於在所述判斷模組判斷到所述資料請求是讀資料請求時,從所述
頁高速緩衝記憶體拷貝所述請求的資料至所述資料請求後返回。
本發明的有益效果是:區別於現有技術的情況,本發明通過開機需要讀取資料的時候,先從預存有開機所需的小資料檔案的頁高速緩衝記憶體中查找,如果查找到就直接從頁高速緩衝記憶體中獲取需要讀取的資料。通過這樣的方式,能夠加速智能設備在開機過程中小資料檔案的讀取,使得系統開機速度加快。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
100、200‧‧‧智能設備
110‧‧‧外記憶體設備
21‧‧‧查找模組
22‧‧‧判斷模組
23‧‧‧處理模組
24‧‧‧預存模組
25‧‧‧釋放模組
S101‧‧‧智能設備在啟動過程中檢測到資料請求
S102‧‧‧查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含資料請求所請求的資料
S103‧‧‧判斷資料請求是讀資料請求還是寫資料請求
S104‧‧‧判斷資料請求是讀資料請求還是寫資料請求
S105‧‧‧從頁高速緩衝記憶體拷貝請求的資料至資料請求後返回
S106‧‧‧將頁高速緩衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備
S107‧‧‧從外記憶體設備中讀取請求的資料
S108‧‧‧直接將請求的資料寫入到外記憶體設備
圖1是本發明資料處理系統的結構示意圖。
圖2是本發明智能設備啟動過程的資料處理方法一個實施方式的流程圖。
圖3是本發明智能設備啟動過程的資料處理方法一個實施方式中資料請求的結構示意圖。
圖4是本發明智能設備啟動過程的資料處理方法一個實施方式中資料請求的邏輯視圖。
圖5是本發明智能設備啟動過程的資料處理方法一個實施方式中頁高速緩衝記憶體的基數樹示意圖。
圖6是本發明智能設備一個實施方式的結構示意圖。
首先,針對本發明實現的資料處理系統進行一個簡
單的介紹,請參閱圖1,圖1是本發明智能設備啟動過程的資料處理系統的結構示意圖,本發明智能設備啟動過程的資料處理系統包括智能設備100以及外記憶體設備110,其中,智能設備100包括用戶應用程式、檔案系統、通用塊層以及塊設備,當檔案系統需要資料時,將發資料請求到通用塊層,在通用塊層資料請求將被構造為讀/寫資料請求,最終這些讀/寫資料請求將被按照一定規則放到目標設備(即圖中的塊設備)所關聯的佇列中,最終由塊設備來進行處理。本發明智能設備啟動過程的資料處理方法的實現處於資料處理系統的塊設備,這樣便於根據不同的物理設備對於其實現以及參數做出調整,達到最好的性能。
其中,上述的外記憶體設備可以是EMMC,表1是本發明對於市場上幾個主流EMMC產品的讀性能分析。從表1中可以看出,隨著讀取單位的增大,速度也隨著成正比例增加,這一關係一直會持續到比較大的讀取單元如16K或者32K。也就是說,讀4KB的資料跟讀16KB資料需要的時間一樣。這樣當檔案系統層需要小塊的資料時,塊設備就可以在不增加時間的前提下,讀取更多的資料提前存儲起來。
請參閱圖2,圖2是本發明智能設備啟動過程的資料處理方法一個實施方式的流程圖,本實施方式的智能設備啟動過程的資料處理方法包括:
步驟S101:智能設備在啟動過程中檢測到資料請求;
智能設備在啟動過程中,檢測到資料請求。本發明實施方式中資料請求的資料結構如圖3所示,每個資料請求是由若干個BIO(Block Input Output,塊輸入和輸出),每個BIO由若干個結構體(bio_vec)組成,bio_vec包含一個page(頁)。邏輯上可以認為每個資料請求為圖4所示,這些頁在物理外記憶體上是一組連續存放的資料,對於本發明中的外記憶體設備,也就是塊號是連續的。
其中,本發明實施方式的智能設備啟動過程的資料處理方法還可以包括在頁高速緩衝記憶體中預存開機所需小資料檔案的步驟。即獲取開機所需的小資料檔案,將小資料檔案連續的存放到頁高速緩衝記憶體中。這裡的小資料檔案是指其資料量小於設定閾值的檔案。具體地,將小資料檔案,以頁的形式存儲在頁高速緩衝記憶體中,並採用基數樹的形式管理存儲在所述頁高速緩衝記憶體中的所有頁。
其中,以安卓智能電視為例,針對安卓智能電視的檔案系統為ext4本實施方式可以通過以下方式獲取開機所需小資料檔案:修改對應檔案系統的打開檔案(Open File)函數,將所打開檔案根據大小、檔案名過濾出來,過濾出小於設定閾值的資料檔案即為開機所需的小資料檔案。然後是修改安卓的檔案系統中掃描目錄的規範(Code),使得它優先處理開機需要的小資料檔案,這樣小資料檔案就會被連續的放到一起,增加從頁高速緩衝記憶體中查找到請求資料的命中率。
也就是說,需要預讀的開機所需的小資料檔案是以頁的形式存儲在基數樹中的(如圖5所示),這個頁對應的主鍵(Key)值就是所存儲塊的塊號。因為基數樹是多元搜尋樹,所以給出Key值,就可以立即得到頁高速緩衝記憶體中相應頁的指標。如果找不到,就返回空指標。
對於基數樹的操作本實施方式提供了4組操作:查詢單個頁是否存在於頁高速緩衝記憶體中,查詢從某個塊號起始的N個頁是否存在於頁高速緩衝記憶體中,添加一個頁到頁高速緩衝記憶體中,從頁高速緩衝記憶體中移除某個頁。
為了便於回收頁高速緩衝記憶體中的頁,在構造頁高速緩衝記憶體的同時,也將頁高速緩衝記憶體中的所有頁都連接到一個雙向鏈表中。比如可以使用頁資料結構中的資料項目鏈頭表結點struct list_head lru將頁串進雙向鏈表中。而這個雙向鏈表的操作存在於3個地方:當添加新的頁到基數樹的時候,同時
需要將這些頁加到雙向鏈表的末尾;從基數樹刪除頁的時候,同時從雙向鏈表中拿掉對應的頁;最後是當系統記憶體緊張時,會調用註冊的釋放函數記憶體收縮器memory shrinker。對於本發明中的memory shrinker,就是從雙向鏈表的頭部開始,釋放指定數目的頁,系統調用釋放函數的時候會指定這個參數,同時也需要將基數樹中的對應的頁刪除掉。
由於雙向鏈表可能同時被兩個不同的程序(Process)操作,所以可以通過鎖mutex來保護。而基數樹、雙向鏈表的初始化以及釋放函數的註冊,在系統初始化外記憶體設備的時候完成。
在系統記憶體不足時,可以調用釋放函數使頁高速緩衝記憶體釋放指定資料的頁,該指定資料的頁是從雙向鏈表的表頭開始的指定資料的頁。具體地,當記憶體緊張時,遍歷頁高速緩衝記憶體的鏈表,從鏈表頭開始釋放一定數量的頁給系統。
步驟S102:查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含資料請求所請求的資料;
對於資料請求,智能設備首先在頁高速緩衝記憶體(Page Cache)中查找資料請求所請求的資料。其中,頁高速緩衝記憶體預先存有開機所需的小資料檔案,所述小資料檔案是指其資料量小於設定閾值的檔案。設定的閾值可以根據需要自行設定,本發明實施方式採用16K作為設定閾值。
查找頁高速緩衝記憶體中是否包含有資料請求所請
求的資料,如果包含則進行步驟S103,否則進行步驟S104。
步驟S103:判斷資料請求是讀資料請求還是寫資料請求;
在頁高速緩衝記憶體中包含有資料請求所請求的資料時,進一步判斷資料請求是讀資料請求還是寫資料請求,在資料請求為讀資料請求時,進行步驟S105,在資料請求為寫資料請求時,進行步驟S106。
步驟S105:從頁高速緩衝記憶體拷貝請求的資料至資料請求後返回;
當頁高速緩衝記憶體中包含資料請求所請求的資料,且所述資料請求為讀資料請求時,從頁高速緩衝記憶體中拷貝請求的資料至資料請求後返回。
其中,從頁高速緩衝記憶體中拷貝請求的資料至資料請求後返回的的具體實現過程又分為兩種情況:
第一種情況:當頁高速緩衝記憶體中包含資料請求的所有請求的資料,則直接從頁高速緩衝記憶體中將請求的資料拷貝至資料請求後返回。
第二種情況:當頁高速緩衝記憶體中包含請求的資料的部分資料,這時候要進一步判斷頁高速緩衝記憶體中所包含的部分資料的具體情況,若頁高速緩衝記憶體包含的部分資料覆蓋資料請求所請求的資料最開始的連續一段資料或覆蓋請求的資料結束的一段連續的資料,則將包含的部分資料拷貝至資料請
求中,沒有包含的請求的資料的部分資料從外記憶體設備中讀取;若頁高速緩衝記憶體包含的部分資料覆蓋資料請求所請求的資料中間一段或零散部分,直接將頁高速緩衝記憶體中包含的部分資料刪除,從外記憶體設備中讀取請求的資料。
針對第二種情況,事實上就是針對查找到的部分資料在資料請求中所處的位置進行分析然後再決定如何處理。只對查找到的部分資料是資料請求的前端或者後端連續的部分做處理。比如查找到的部分資料從第0頁(page 0)開始的若干個頁,或者是從最後第n頁(page n)開始往前連續的若干個頁,這時就將查找到的部分資料拷貝進資料請求返回給上層。如果查找到的部分資料是資料請求中間的連續的若干頁或者零散的頁(也就是不包含page 0和page n),直接將這部分資料從頁高速緩衝記憶體中刪除,因為把中間的頁拷貝進資料請求返回的話,這樣就會導致從外記憶體設備讀取請求的剩餘部分資料時,前端和後端至少兩次讀取,一般情況下會導致性能下降,反而沒有做一次連續的讀取操作速度快。
其中,從外記憶體設備中讀取所請求的資料的具體實現過程為:首先要判斷需要從外記憶體設備讀取的資料是否小於設定的閾值,在請求的資料小於設定的閾值時,從外記憶體設備中讀取包含請求的資料在內的閾值大小的資料,從讀取的閾值大小的資料中將請求的資料拷貝至資料請求後返回,剩餘的資料添加到頁高速緩衝記憶體;在請求的資料大於等於設定的閾值
時,直接從外記憶體設備中讀取請求的資料拷貝至資料請求後返回。
比如以本實施方式以設定的閾值為16KB為例,如果需要從外記憶體設備讀取的資料大於等於16K,直接從外記憶體設備讀取。當需要從外記憶體設備讀取的資料小於16K,就從外記憶體設備讀取16K的資料,從這16K的資料中將請求的資料拷貝至資料請求中返回給上層,多讀出來的那一部分資料,向作業系統內核(Kernel)申請頁,將資料拷貝進去,然後將這些頁添加到頁高速緩衝記憶體中。
步驟S106:將頁高速緩衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備;
如果頁高速緩衝記憶體中包含資料請求所請求的資料,且所述資料請求為寫資料請求時,將頁高速緩衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備。
步驟S104:判斷資料請求是讀資料請求還是寫資料請求;
在頁高速緩衝記憶體中沒有包含資料請求所請求的資料時,也要進一步判斷所述資料請求是讀資料請求還是寫資料請求。在資料請求為讀資料請求時,進行步驟S107,在資料請求為寫資料請求時,進行步驟S108。
步驟S107:從外記憶體設備中讀取請求的資料;
如果頁高速緩衝記憶體中沒有包含資料請求所請求的資料,且所述資料請求為讀資料請求時,從外記憶體設備中讀取請求的資料。其中,從外記憶體設備中讀取請求的資料的具體實現流程跟上述描述的方式一樣,在此不再贅述。
步驟S108:直接將請求的資料寫入到外記憶體設備;
如果頁高速緩衝記憶體中沒有包含資料請求所請求的資料,且所述資料請求為寫資料請求時,直接將請求的資料寫到外記憶體設備中。
其中,本發明提供的實施方式中,在進行舉例或者具體描述的時候,都以智能電視作為舉例說明,但這並不用以限制本發明所要求保護的範圍。事實上,本發明的資料處理的方法同樣可以適用於其他的智能設備,如筆記型電腦、平板電腦等等。
上述實施方式的描述,可以理解,本發明通過開機需要讀取資料的時候,先從預存有開機所需的小資料檔案的頁高速緩衝記憶體中查找,如果查找到就直接從頁高速緩衝記憶體中獲取需要讀取的資料。通過這樣的方式,能夠加速智能設備在開機過程中小資料檔案的讀取,使得系統開機速度加快。
通過以上方法實施方式的描述,所屬領域的技術人員可以清楚地瞭解到本申請可以借助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但是很多情況下前者是更佳的實施方式。基於這樣的理解,本申請的技術方案本質上或
者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品存儲在一個存儲介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等等)執行本發明各個實施方式所述方法的全部或部分步驟。而前述存儲介質包括:唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟或者光碟等各種可以存儲程式碼的介質。
請參閱圖6,圖6是本發明智能設備一個實施方式的結構示意圖,本實施方式的智能設備200包括查找模組21、判斷模組22以及處理模組23,其中:
查找模組21用於在智能設備啟動過程中檢測到資料請求時,查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含資料請求所請求的資料,小資料檔案是指其資料量小於設定閾值的檔案;智能設備在啟動過程中,檢測到資料請求。對於資料請求,查找模組21首先在頁高速緩衝記憶體(Page Cache)中查找資料請求所請求的資料。其中,頁高速緩衝記憶體預先存有開機所需的小資料檔案,所述小資料檔案是指其資料量小於設定閾值的檔案。設定的閾值可以根據需要自行設定,本發明實施方式採用16K作為設定閾值。
判斷模組22在查找模組21查找到在頁高速緩衝記憶體包含請求的資料時,判斷資料請求是讀資料請求還是寫資料請求;
在查找模組21查找到頁高速緩衝記憶體中包含有資料請求所請求的資料時,判斷模組22進一步判斷資料請求是讀資料請求還是寫資料請求,將判斷結果輸出給處理模組23。
處理模組23用於在判斷模組22判斷到資料請求是讀資料請求時,從頁高速緩衝記憶體拷貝請求的資料至資料請求後返回。
處理模組23用於當頁高速緩衝記憶體中包含資料請求所請求的資料,且所述資料請求為讀資料請求時,從頁高速緩衝記憶體中拷貝請求的資料至資料請求後返回。
其中,從頁高速緩衝記憶體中拷貝請求的資料至資料請求後返回的的具體實現過程又分為兩種情況:
第一種情況:當頁高速緩衝記憶體中包含資料請求的所有請求的資料,則處理模組23直接從緩衝記憶體中將請求的資料拷貝至資料請求後返回。
第二種情況:當頁高速緩衝記憶體中包含請求的資料的部分資料,這時候要進一步判斷頁高速緩衝記憶體中所包含的部分資料的具體情況,若頁高速緩衝記憶體包含的部分資料覆蓋資料請求所請求的資料最開始的連續一段資料或覆蓋請求的資料結束的一段連續的資料,則處理模組23將包含的部分資料拷貝至資料請求中,沒有包含的請求的資料的部分資料從外記憶體設備中讀取;若頁高速緩衝記憶體包含的部分資料覆蓋資料請求所請求的資料中間一段或零散部分,處理模組23直接將頁高
速緩衝記憶體中包含的部分資料刪除,從外記憶體設備中讀取請求的資料。
針對第二種情況,事實上就是針對查找到的部分資料在資料請求中所處的位置進行分析然後再決定如何處理。只對查找到的部分資料是資料請求的前端或者後端連續的部分做處理。比如查找到的部分資料從第0頁(page 0)開始的若干個頁,或者是從最後第n頁(page n)開始往前連續的若干個頁,這時就將查找到的部分資料拷貝進資料請求返回給上層。如果查找到的部分資料是資料請求中間的連續的若干頁或者零散的頁(也就是不包含page 0和page n),直接將這部分資料從頁高速緩衝記憶體中刪除,因為把中間的頁拷貝進資料請求返回的話,這樣就會導致從外記憶體設備讀取請求的剩餘部分資料時,前端和後端至少兩次讀取,一般情況下會導致性能下降,反而沒有做一次連續的讀取操作速度快。
其中,處理模組23從外記憶體設備中讀取所請求的資料的具體實現過程為:首先要通過判斷模組22判斷需要從外記憶體設備讀取的資料是否小於設定的閾值,在請求的資料小於設定的閾值時,處理模組23從外記憶體設備中讀取包含請求的資料在內的閾值大小的資料,從讀取的閾值大小的資料中將請求的資料拷貝至資料請求後返回,剩餘的資料添加到頁高速緩衝記憶體;在請求的資料大於等於設定的閾值時,處理模組23直接從外記憶體設備中讀取請求的資料拷貝至資料請求後返回。
比如以本實施方式以設定的閾值為16KB為例,如果需要從外記憶體設備讀取的資料大於等於16K,直接從外記憶體設備讀取。當需要從外記憶體設備讀取的資料小於16K,就從外記憶體設備讀取16K的資料,從這16K的資料中將請求的資料拷貝至資料請求中返回給上層,多讀出來的那一部分資料,向作業系統內核(Kernel)申請頁,將資料拷貝進去,然後將這些頁添加到頁高速緩衝記憶體中。
處理模組23還用於在頁高速緩衝記憶體沒有包含請求的資料,且資料請求為讀資料請求時,從外記憶體設備中讀取所述請求的資料。
如果頁高速緩衝記憶體中沒有包含資料請求所請求的資料,且所述資料請求為讀資料請求時,處理模組23從外記憶體設備中讀取請求的資料。其中,從外記憶體設備中讀取請求的資料的具體實現流程跟上述描述的方式一樣,在此不再贅述。
另外,處理模組23還用於在頁高速緩衝記憶體包含請求的資料,且資料請求為寫資料請求時,將頁高速緩衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備;或用於在頁高速緩衝記憶體沒有包含請求的資料,且資料請求為寫資料請求時,直接將請求的資料寫入到外記憶體設備。
如果頁高速緩衝記憶體中包含資料請求所請求的資料,且所述資料請求為寫資料請求時,處理模組23將頁高速緩
衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備。
如果頁高速緩衝記憶體中沒有包含資料請求所請求的資料,且所述資料請求為寫資料請求時,處理模組23直接將請求的資料寫到外記憶體設備中。
請繼續參閱圖6,在本發明智能設備另一種可能的實施方式中,智能設備200還可以進一步包括預存模組24,預存模組24用於獲取開機所需的小資料檔案,將小資料檔案連續的存放到頁高速緩衝記憶體中。
具體地,預存模組24用於將小資料檔案,以頁的形式存儲在頁高速緩衝記憶體中,並採用基數樹的形式管理存儲在頁高速緩衝記憶體中的所有頁。更進一步地,預存模組24還用於將頁高速緩衝記憶體中的所有頁都連接到一個雙向鏈表中。
其中,以安卓智能電視為例,針對安卓智能電視的檔案系統為ext4本實施方式可以通過以下方式獲取開機所需小資料檔案:修改對應檔案系統的打開檔案(Open File)函數,將所打開檔案的整個Path dump出來,過濾出小於設定閾值的資料檔案即為開機所需的小資料檔案。然後是修改安卓的檔案系統中掃描目錄的規範(Code),使得它優先處理開機需要的小資料檔案,這樣小資料檔案就會被連續的放到一起,增加從頁高速緩衝記憶體中查找到請求資料的命中率。
也就是說,需要預讀的開機所需的小資料檔案是以
頁的形式存儲在基數樹中的,這個頁對應的主鍵(Key)值就是所存儲塊的塊號。因為基數樹是多元搜尋樹,所以給出Key值,就可以立即得到頁高速緩衝記憶體中相應頁的指標。如果找不到,就返回空指標。
對於基數樹的操作本實施方式提供了4組操作:查詢單個頁是否存在於頁高速緩衝記憶體中,查詢從某個塊號起始的N個頁是否存在於頁高速緩衝記憶體中,添加一個頁到頁高速緩衝記憶體中,從頁高速緩衝記憶體中移除某個頁。
為了便於回收頁高速緩衝記憶體中的頁,在構造頁高速緩衝記憶體的同時,也將頁高速緩衝記憶體中的所有頁都連接到一個雙向鏈表中。比如可以使用頁資料結構中的資料項目struct list_head lru將頁串進雙向鏈表中。而這個雙向鏈表的操作存在於3個地方:當添加新的頁到基數樹的時候,同時需要將這些頁加到雙向鏈表的末尾;從基數樹刪除頁的時候,同時從雙向鏈表中拿掉對應的頁;最後是當系統記憶體緊張時,會調用註冊的釋放函數memory shrinker。對於本發明中的memory shrinker,就是從雙向鏈表的頭部開始,釋放指定數目的頁,系統調用釋放函數的時候會指定這個參數,同時也需要將基數樹中的對應的頁刪除掉。
由於雙向鏈表可能同時被兩個不同的程序(Process)操作,所以可以通過mutex來保護。而基數樹、雙向鏈表的初始化以及釋放函數的註冊,在系統初始化外記憶體設備
的時候完成。
更進一步地,請繼續參閱圖6,在本發明智能設備的另一種可能的實現方式中,智能設備200還可以進一步包括釋放模組25,釋放模組25用於在系統記憶體不足時,調用釋放函數使頁高速緩衝記憶體釋放指定數目的頁,指定數目的頁是從雙向鏈表的表頭開始的指定數目的頁。
具體地,釋放模組25用於調用釋放函數使頁高速緩衝記憶體從雙向鏈表中刪除所述指定數目的頁,並將基數樹中的指定數目的頁刪除。
上述本發明智能設備啟動過程的資料處理方法及智能設備實施方式的具體闡述,可以理解,本發明通過預先將開機所需的小資料檔案預讀到頁高速緩衝記憶體中,在開機需要讀資料的時候,先從頁高速緩衝記憶體中查找,如果查找到就直接從頁高速緩衝記憶體中獲取需要讀取的資料。該方法針對於開機需要寫入資料的時候同樣適用,在頁高速緩衝記憶體中有需要寫入的資料則直接刪除頁高速緩衝記憶體中的相應的頁,然後直接將資料寫入外記憶體設備。通過這樣的方式,能夠加速智能設備在開機過程中小資料檔案的讀取,使得系統開機速度加快。從而解決軟體越來越龐大,帶來的開機變慢的問題。
在本發明所提供的幾個實施方式中,應該理解到,所揭露的裝置和方法,可以通過其他的方式實現。例如,以上所描述的裝置實施方式僅僅是示意性的,例如,所述模組或單元的
劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其他的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施方式方案的目的。
另外,在本發明各個實施方式中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S101‧‧‧智能設備在啟動過程中檢測到資料請求
S102‧‧‧查找預存有開機所需小資料檔案的頁高速緩衝記憶體是否包含資料請求所請求的資料
S103‧‧‧判斷資料請求是讀資料請求還是寫資料請求
S104‧‧‧判斷資料請求是讀資料請求還是寫資料請求
S105‧‧‧從頁高速緩衝記憶體拷貝請求的資料至資料請求後返回
S106‧‧‧將頁高速緩衝記憶體包含的請求的資料刪除,再將資料請求所請求的資料寫到外記憶體設備
S107‧‧‧從外記憶體設備中讀取請求的資料
S108‧‧‧直接將請求的資料寫入到外記憶體設備
Claims (20)
- 一種智能設備啟動過程的資料處理方法,包括:智能設備在啟動過程中檢測到一資料請求時,查找預存有開機所需一小資料檔案的一頁高速緩衝記憶體是否包含所述資料請求所請求的資料,所述小資料檔案是指其資料量小於設定的一閾值的檔案;在所述頁高速緩衝記憶體包含所述請求的資料時,判斷所述資料請求是讀資料請求還是寫資料請求;在所述資料請求是讀資料請求時,從所述頁高速緩衝記憶體拷貝所述請求的資料至所述資料請求後返回。
- 根據申請專利範圍第1項所述的方法,還包括:獲取開機所需所述小資料檔案,將所述小資料檔案連續的存放到所述頁高速緩衝記憶體中。
- 根據申請專利範圍第2項所述的方法,其中所述將所述小資料檔案連續的存放到所述頁高速緩衝記憶體中的步驟包括:將所述小資料檔案,以頁的形式存儲在所述頁高速緩衝記憶體中,並採用基數樹的形式管理存儲在所述頁高速緩衝記憶體中的所有頁。
- 根據申請專利範圍第3項所述的方法,其中所述採用基數樹的形式管理存儲在所述頁高速緩衝記憶體中的所有頁的步驟還包括:將所述頁高速緩衝記憶體中的所有頁都連接到一雙向鏈表 中。
- 根據申請專利範圍第4項所述的方法,還包括:在系統記憶體不足時,調用釋放函數使所述頁高速緩衝記憶體釋放一指定數目的頁,所述指定數目的頁是從所述雙向鏈表的表頭開始的所述指定數目的頁。
- 根據申請專利範圍第5項所述的方法,其中所述頁高速緩衝記憶體釋放所述指定數目的頁的步驟包括:所述頁高速緩衝記憶體從所述雙向鏈表中刪除所述指定數目的頁,並將所述基數樹中的所述指定數目的頁刪除。
- 根據申請專利範圍第1項所述的方法,其中所述從所述頁高速緩衝記憶體拷貝所述請求的資料至所述資料請求後返回的步驟包括:當所述頁高速緩衝記憶體包含所述請求的資料的一部分資料時,若所述頁高速緩衝記憶體包含的所述部分資料覆蓋所述資料請求所請求的資料最開始的連續一段資料或覆蓋所述請求的資料結束的一段連續的資料,則將包含的所述部分資料拷貝至所述資料請求中,沒有包含的所述請求的資料的部分資料從一外記憶體設備中讀取;若所述頁高速緩衝記憶體包含的所述部分資料覆蓋所述資料請求所請求的資料中間一段或零散部分,直接將所述頁高速緩衝記憶體中包含的所述部分資料刪除,從所述外記憶體設備中讀取所述請求的資料。
- 根據申請專利範圍第1項所述的方法,還包括: 在所述頁高速緩衝記憶體沒有包含所述請求的資料,且所述資料請求為讀資料請求時,從一外記憶體設備中讀取所述請求的資料。
- 根據申請專利範圍第7或8項所述的方法,其中所述從所述外記憶體設備中讀取所述請求的資料的步驟包括:在所述請求的資料小於設定的所述閾值時,從所述外記憶體設備中讀取包含所述請求的資料在內的所述閾值大小的資料,從讀取的所述閾值大小的資料中將所述請求的資料拷貝至所述資料請求後返回,剩餘的資料添加到所述頁高速緩衝記憶體;在所述請求的資料大於等於所述閾值時,直接從所述外記憶體設備中讀取所述請求的資料拷貝至所述資料請求後返回。
- 根據申請專利範圍第1項所述的方法,還包括:在所述頁高速緩衝記憶體包含所述請求的資料,且所述資料請求為寫資料請求時,將所述頁高速緩衝記憶體包含的所述請求的資料刪除,再將所述資料請求所請求的資料寫到一外記憶體設備;在所述頁高速緩衝記憶體沒有包含所述請求的資料,且所述資料請求為寫資料請求時,直接將所述請求的資料寫入到所述外記憶體設備。
- 一種智能設備,包括一查找模組、一判斷模組以及一處理模組,其中:所述查找模組用於在所述智能設備啟動過程中檢測到一資料請求時,查找預存有開機所需一小資料檔案的一頁高速緩衝記 憶體是否包含所述資料請求所請求的資料,所述小資料檔案是指其資料量小於設定的一閾值的檔案;所述判斷模組在所述查找模組查找到在所述頁高速緩衝記憶體包含所述請求的資料時,判斷所述資料請求是讀資料請求還是寫資料請求;所述處理模組用於在所述判斷模組判斷到所述資料請求是讀資料請求時,從所述頁高速緩衝記憶體拷貝所述請求的資料至所述資料請求後返回。
- 根據申請專利範圍第11項所述的智能設備,其中所述智能設備還包括一預存模組,所述預存模組用於獲取開機所需所述小資料檔案,將所述小資料檔案連續的存放到所述頁高速緩衝記憶體中。
- 根據申請專利範圍第12項所述的智能設備,其中所述預存模組用於將所述小資料檔案,以頁的形式存儲在頁高速緩衝記憶體中,並採用基數樹的形式管理存儲在所述頁高速緩衝記憶體中的所有頁。
- 根據申請專利範圍第13項所述的智能設備,其中所述預存模組還用於將所述頁高速緩衝記憶體中的所有頁都連接到一雙向鏈表中。
- 根據申請專利範圍第14項所述的智能設備,其中所述智能設備還包括一釋放模組,所述釋放模組用於在系統記憶體不足時,調用釋放函數使所述頁高速緩衝記憶體釋放一指定數目的 頁,所述指定數目的頁是從所述雙向鏈表的表頭開始的所述指定數目的頁。
- 根據申請專利範圍第15項所述的智能設備,其中所述釋放模組具體用於調用釋放函數使所述頁高速緩衝記憶體從所述雙向鏈表中刪除所述指定數目的頁,並將所述基數樹中的所述指定數目的頁刪除。
- 根據申請專利範圍第11項所述的智能設備,其中在所述頁高速緩衝記憶體包含所述請求的資料的一部分資料時,若所述頁高速緩衝記憶體包含的所述部分資料覆蓋所述資料請求所請求的資料最開始的連續一段資料或覆蓋所述請求的資料結束的一段連續的資料,所述處理模組將包含的所述部分資料拷貝至所述資料請求中,沒有包含的所述請求的資料的部分資料從一外記憶體設備中讀取;若所述頁高速緩衝記憶體包含的所述部分資料覆蓋所述資料請求所請求的資料中間一段或零散部分,所述處理模組直接將所述頁高速緩衝記憶體中包含的所述部分資料刪除,從所述外記憶體設備中讀取所述請求的資料。
- 根據申請專利範圍第11項所述的智能設備,其中所述處理模組還用於在所述頁高速緩衝記憶體沒有包含所述請求的資料,且所述資料請求為讀資料請求時,從一外記憶體設備中讀取所述請求的資料。
- 根據申請專利範圍第17或18項所述的智能設備,其中所述處理模組用於在所述請求的資料小於設定的所述閾值時,從 所述外記憶體設備中讀取包含所述請求的資料在內的所述閾值大小的資料,從讀取的所述閾值大小的資料中將所述請求的資料拷貝至所述資料請求後返回,剩餘的資料添加到所述頁高速緩衝記憶體;或用於在所述請求的資料大於等於所述閾值時,直接從所述外記憶體設備中讀取所述請求的資料拷貝至所述資料請求後返回。
- 根據申請專利範圍第11項所述的智能設備,其中所述處理模組還用於在所述頁高速緩衝記憶體包含所述請求的資料,且所述資料請求為寫資料請求時,將所述頁高速緩衝記憶體包含的所述請求的資料刪除,再將所述資料請求所請求的資料寫到一外記憶體設備;或用於在所述頁高速緩衝記憶體沒有包含所述請求的資料,且所述資料請求為寫資料請求時,直接將所述請求的資料寫入到所述外記憶體設備。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410298614.2A CN104102695B (zh) | 2014-06-26 | 2014-06-26 | 智能设备启动过程的数据处理方法及智能设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI507987B true TWI507987B (zh) | 2015-11-11 |
TW201601064A TW201601064A (zh) | 2016-01-01 |
Family
ID=51670849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103128992A TWI507987B (zh) | 2014-06-26 | 2014-08-22 | 智能設備啓動過程的資料處理方法及智能設備 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9710283B2 (zh) |
CN (1) | CN104102695B (zh) |
TW (1) | TWI507987B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2843570B1 (en) * | 2013-06-21 | 2018-11-28 | Huawei Technologies Co., Ltd. | File reading method, storage device and reading system |
CN104375871B (zh) * | 2014-12-04 | 2018-01-09 | 福州瑞芯微电子股份有限公司 | 一种基于eMMC加速系统开机的方法和装置 |
CN108399047B (zh) * | 2017-02-06 | 2022-11-29 | 中兴通讯股份有限公司 | 一种闪存文件系统及其数据管理方法 |
CN109213526B (zh) * | 2017-06-30 | 2020-03-03 | 清华大学 | 用于确定处理器操作的方法及装置 |
US11042383B2 (en) * | 2018-02-03 | 2021-06-22 | Insyde Software Corp. | System and method for boot speed optimization using non-volatile dual in-line memory modules |
CN110855786B (zh) * | 2019-11-18 | 2022-07-29 | 天津联想协同科技有限公司 | 针对网络数据请求的处理方法、设备及计算机存储介质 |
US20220011746A1 (en) * | 2020-07-08 | 2022-01-13 | BWR Innovations LLC | Software Architecture and System for Delivering Selected Sanitation Protocols for Multiple Pathogens and Pests |
CN114625433B (zh) * | 2020-11-27 | 2024-05-07 | 北京字跳网络技术有限公司 | 应用程序启动方法和系统 |
CN112559060A (zh) * | 2020-12-09 | 2021-03-26 | 珠海全志科技股份有限公司 | 基于文件pagecache预读加速开机启动的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106255A1 (en) * | 2001-01-11 | 2009-04-23 | Attune Systems, Inc. | File Aggregation in a Switched File System |
TW201129203A (en) * | 2009-10-07 | 2011-08-16 | Qualcomm Inc | Method and apparatus for avoiding physical random access channel collisions |
US8239354B2 (en) * | 2005-03-03 | 2012-08-07 | F5 Networks, Inc. | System and method for managing small-size files in an aggregated file system |
TW201234268A (en) * | 2011-02-10 | 2012-08-16 | Microsoft Corp | Virtual switch interceptor |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19961499A1 (de) * | 1999-12-20 | 2001-07-05 | Ericsson Telefon Ab L M | Caching von Objekten in Platten-gestützten Datenbanken |
US6766413B2 (en) * | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US6920533B2 (en) * | 2001-06-27 | 2005-07-19 | Intel Corporation | System boot time reduction method |
US7003646B2 (en) * | 2002-03-27 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Efficiency in a memory management system |
TW200828273A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Hard disk cache device and method |
JP5577238B2 (ja) * | 2008-02-29 | 2014-08-20 | パナソニック株式会社 | アクセス装置、情報記録装置、コントローラ、及び情報記録システム |
US7853751B2 (en) * | 2008-03-12 | 2010-12-14 | Lsi Corporation | Stripe caching and data read ahead |
CN101814038B (zh) * | 2010-03-23 | 2012-10-03 | 杭州顺网科技股份有限公司 | 一种加快计算机启动速度的方法 |
CN102323888B (zh) * | 2011-08-11 | 2014-06-04 | 杭州顺网科技股份有限公司 | 一种无盘计算机启动加速方法 |
TWI514278B (zh) * | 2012-09-19 | 2015-12-21 | Ind Tech Res Inst | 開機之映像檔之大小縮減方法及運算裝置 |
US9280482B2 (en) * | 2012-12-13 | 2016-03-08 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
TW201502782A (zh) * | 2013-05-07 | 2015-01-16 | Insyde Software Corp | 非依電性記憶體中之作業系統啟動加載器之快取技術 |
KR102094163B1 (ko) * | 2013-08-28 | 2020-03-27 | 삼성전자 주식회사 | 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템 |
-
2014
- 2014-06-26 CN CN201410298614.2A patent/CN104102695B/zh active Active
- 2014-08-22 TW TW103128992A patent/TWI507987B/zh active
-
2015
- 2015-06-26 US US14/751,223 patent/US9710283B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106255A1 (en) * | 2001-01-11 | 2009-04-23 | Attune Systems, Inc. | File Aggregation in a Switched File System |
US8239354B2 (en) * | 2005-03-03 | 2012-08-07 | F5 Networks, Inc. | System and method for managing small-size files in an aggregated file system |
TW201129203A (en) * | 2009-10-07 | 2011-08-16 | Qualcomm Inc | Method and apparatus for avoiding physical random access channel collisions |
TW201234268A (en) * | 2011-02-10 | 2012-08-16 | Microsoft Corp | Virtual switch interceptor |
Non-Patent Citations (1)
Title |
---|
"PLFS:ACheckpoint Filesystem for Parallel Applications" by John Bent etc. 2009/11/14 * |
Also Published As
Publication number | Publication date |
---|---|
US9710283B2 (en) | 2017-07-18 |
US20150378745A1 (en) | 2015-12-31 |
CN104102695A (zh) | 2014-10-15 |
TW201601064A (zh) | 2016-01-01 |
CN104102695B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI507987B (zh) | 智能設備啓動過程的資料處理方法及智能設備 | |
US11599546B2 (en) | Stream browser for data streams | |
US10467431B2 (en) | Apparatuses, systems, methods, and computer readable media for providing secure file-deletion functionality | |
US11604759B2 (en) | Retention management for data streams | |
US10191856B2 (en) | Method of managing web browser cache size using logical relationships and clustering | |
KR102097300B1 (ko) | 클라우드-기반 파일 시스템 내에서의 파일 핸들링 | |
CN106575297B (zh) | 使用盲更新操作的高吞吐量数据修改 | |
CN104995895B (zh) | 兼容扩展卸载令牌大小 | |
JP2018133086A5 (zh) | ||
US9529731B1 (en) | Contention-free approximate LRU for multi-threaded access | |
US20140115244A1 (en) | Apparatus, system and method for providing a persistent level-two cache | |
CN106802955B (zh) | 一种图片数据缓存方法 | |
US20130290636A1 (en) | Managing memory | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
US20150193463A1 (en) | Systems and methods for durable database operations in a memory-mapped environment | |
US20190132415A1 (en) | Active data management by flexible routing system and methods of an accelerated application-oriented middleware layer | |
US10552371B1 (en) | Data storage system with transparent presentation of file attributes during file system migration | |
US9948743B2 (en) | Managing memory usage in server systems | |
CN106991059B (zh) | 对数据源的访问控制方法 | |
CN113485642A (zh) | 数据缓存方法及装置 | |
CN110941595B (zh) | 一种文件系统访问方法及装置 | |
US9223780B2 (en) | Non-blocking caching technique | |
CN116303267A (zh) | 数据访问方法、装置、设备以及存储介质 | |
WO2023070462A1 (zh) | 一种文件去重方法、装置和设备 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 |