两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于管理在共享的高速緩存存儲系統(tǒng)的文件的上傳的系統(tǒng)和方法

文檔序號:6361983閱讀:235來源:國知局
專利名稱:用于管理在共享的高速緩存存儲系統(tǒng)的文件的上傳的系統(tǒng)和方法
用于管理在共享的高速緩存存儲系統(tǒng)的文件的上傳的系統(tǒng)和方法
相關(guān)申請的交叉引用
該申請要求在2010年8月19日提交的美國臨時(shí)專利申請n0.61/401,841的權(quán)益,其在此被引用附于此。技術(shù)領(lǐng)域
本發(fā)明總體地涉及存儲設(shè)備,且更具體地涉及用于管理向外部位置上傳在存儲設(shè)備的高速緩存中預(yù)籌備的文件的方法和設(shè)備。
背景技術(shù)
發(fā)行商(例如服務(wù)和內(nèi)容提供商)希望向用戶的存儲設(shè)備下載主動提供的(unsolicited)內(nèi)容,以期用戶將最終花錢消費(fèi)主動提供的內(nèi)容,由此增加他們的收入。在未征得用戶同意的情況下在存儲設(shè)備上存儲主動提供的內(nèi)容的發(fā)行商希望該用戶會花錢消費(fèi)這些內(nèi)容,發(fā)行商的這種行為在媒體發(fā)布領(lǐng)域中被已知為“預(yù)測寄售(predictiveconsignment)”。但是,主動提供的內(nèi)容可以仍然存儲在存儲設(shè)備中,而存儲設(shè)備的用戶不得知其存在或不想要消費(fèi)它。在存儲設(shè)備中存儲主動提供的內(nèi)容減少了在存儲設(shè)備上的可用(即,空閑)用戶存儲空間,這是從用戶的角度是不期望的。用戶可能發(fā)現(xiàn)在存儲設(shè)備中存在更少空間來用于用戶自己的內(nèi)容(例如,音樂文件),因?yàn)槠渌?即,一些發(fā)行商)已經(jīng)占據(jù)了存儲設(shè)備上的部分存儲空間,或用戶可能必須通過刪除主動提供的內(nèi)容來收回(reclaim)如此占用的存儲空間。
移動手持機(jī)用戶趨于存儲他們生成或獲得的內(nèi)容。用戶通常在諸如他們維持賬戶的服務(wù)器上的個(gè)人站點(diǎn)的遠(yuǎn)程存儲庫中存儲他們趨于與其他人共享的內(nèi)容、或趨于存儲用于未來使用的內(nèi)容。為此,用戶會試圖上傳他們在存儲設(shè)備中存儲的內(nèi)容。但是,所述存儲設(shè)備可能被發(fā)行商在其中存儲的內(nèi)容所占據(jù)。實(shí)際上,用戶不會總是提前知道他們的存儲空間限制,當(dāng)他們試圖上傳他們的內(nèi)容到遠(yuǎn)程、外部站點(diǎn)時(shí)他們也不知道網(wǎng)絡(luò)業(yè)務(wù)負(fù)荷,直至IJ他們面臨問題。
因此,需要一種新技術(shù),該新技術(shù)智能地管理手持存儲器、以便當(dāng)用戶期望進(jìn)行諸如向外部位置上傳文件或預(yù)籌備用于上傳到外部位置的文件的動作時(shí)、用戶在無損失的情況下自由地使用他們的存儲器、同時(shí)仍然使得內(nèi)容所有者能夠向手持機(jī)推送內(nèi)容。發(fā)明內(nèi)容
本發(fā)明的實(shí)施例由權(quán)利要求限定,且該部分不應(yīng)該被視為對那些權(quán)利要求的限制。作為簡要介紹,在該文檔中描述和在所附附圖中圖示的實(shí)施例通常涉及管理存儲設(shè)備中的文件,該存儲設(shè)備包括存儲一個(gè)或多個(gè)可丟棄文件的高速緩存。上傳管理器——其在一些實(shí)施方式中可以作為在存儲設(shè)備操作性地所耦合的主機(jī)中存在的存儲分配器的一部分——識別要上傳到外部位置的文件,且確定在高速緩存中是否存在足夠空閑空間以預(yù)籌備用于上傳到外部位置的文件。該上傳管理器可以在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備文件用于根據(jù)上傳策略找機(jī)會上傳這種文件。該上傳策略可以包括當(dāng)與外部位置的通信是非高峰時(shí)上傳預(yù)籌備的文件,或上傳預(yù)籌備的文件以釋放高速緩存中的空間。


并入并組成本說明書的一部分的附示了各個(gè)實(shí)施例和本發(fā)明的方面,并與本說明書一起用于在不限制這些例子的情況下說明其原理。將理解,為了圖示的簡化和清楚,以下引用的圖中所示的元件不一定被畫成成比例的。而且,在適當(dāng)考慮時(shí),可以在附圖之間重復(fù)使用附圖標(biāo)記來指示相同的、對應(yīng)的或類似的元件。在附圖中:
圖1是根據(jù)示例實(shí)施例的存儲系統(tǒng)的方框圖。
圖2是根據(jù)另一示例實(shí)施例的存儲系統(tǒng)的方框圖。
圖3是根據(jù)示例實(shí)施例的存儲分配器的方框圖。
圖4是根據(jù)示例實(shí)施例的用于管理文件的方法。
圖5是根據(jù)示例實(shí)施例的用于管理在存儲設(shè)備中的可丟棄文件的存儲的方法。
圖6是用于根據(jù)示例實(shí)施例的用于在FAT32結(jié)構(gòu)的文件系統(tǒng)中標(biāo)記一個(gè)或多個(gè)主動提供的文件的方法。
圖7是與FAT32表相關(guān)聯(lián)的示例目錄區(qū)域。
圖8是根據(jù)示例實(shí)施例的FAT32表。
圖9是根據(jù)示例實(shí)施例的NTFS表。
圖10是根據(jù)示例實(shí)施例的基于FAT的文件系統(tǒng)的邏輯映像。
圖11示范了根據(jù)該公開的文件的存儲管理方法。
圖12圖示了用于在包括被配置以存儲一個(gè)或多個(gè)可丟棄文件的高速緩存的系統(tǒng)中管理向外部位置上傳文件的方法的流程圖。
具體實(shí)施方式
在此專利特許證申請和要求使得本領(lǐng)域技術(shù)人員能夠制作和使用所要求保護(hù)的發(fā)明的背景下提供以下描述。對所描述和示出的實(shí)施例的各種修改和等同替換是可能的,且在此定義的各種通用原理可以被應(yīng)用于這些和其他實(shí)施例。因此,所要求保護(hù)的發(fā)明要符合與在此公開的原理、特征和教導(dǎo)一致的最寬的范圍。
近年來已經(jīng)快速地增加了非易失性的存儲設(shè)備的使用,因?yàn)樗鼈儽銛y且它們具有小的物理大小和大的存儲容量。存儲設(shè)備具有各種設(shè)計(jì)。一些存儲設(shè)備被視為“嵌入式”,意味著它們不能且不意圖由用戶從它們所工作的主機(jī)設(shè)備上移除。其他存儲設(shè)備是可移除的,這意味著用戶可以從一個(gè)主機(jī)設(shè)備(例如,從數(shù)碼相機(jī))移除它們到另一設(shè)備,或用另一個(gè)存儲設(shè)備來替換一個(gè)存儲設(shè)備。例如,在一種安裝中,可以在主機(jī)設(shè)備內(nèi)部(在其外殼內(nèi))可移除地安裝存儲設(shè)備,很像電池一樣。在另一種安裝中,可以經(jīng)由專用插槽外部地、可移除地插入可移除存儲設(shè)備。
在存儲設(shè)備中存儲的數(shù)字內(nèi)容可以來源于存儲設(shè)備的主機(jī)。例如,數(shù)碼相機(jī)、一種示例的主機(jī),捕獲圖像且將它們翻譯為對應(yīng)的數(shù)字?jǐn)?shù)據(jù)。然后,數(shù)據(jù)相機(jī)在與其一起操作的存儲設(shè)備中存儲數(shù)字?jǐn)?shù)據(jù)。在存儲設(shè)備中存儲的數(shù)字內(nèi)容還可以來源于遠(yuǎn)程源:其可以例如通過數(shù)據(jù)網(wǎng)絡(luò)(例如,因特網(wǎng))或通信網(wǎng)絡(luò)(例如,蜂窩電話網(wǎng)絡(luò))向存儲設(shè)備的主機(jī)發(fā)送,且然后由該主機(jī)下載到存儲設(shè)備。遠(yuǎn)程源可以是例如服務(wù)提供者或內(nèi)容提供者。服務(wù)提供者和內(nèi)容提供者以下統(tǒng)稱為“發(fā)行商(publishers)”。
隨著移動手持機(jī)內(nèi)的存儲設(shè)備在尺寸和容量上增長,出現(xiàn)了活躍的用于內(nèi)容獲取和消費(fèi)的新場景。通常,可以使用手持機(jī)來消費(fèi)從操作員控制的服務(wù)器諸如蘋果(Apple)的iTunes服務(wù)的市場應(yīng)用下載和自諸如SanDisk的slotMedia卡的源的側(cè)裝載(side-loaded)的電影和音樂。但是,在所有這些應(yīng)用中,用戶必須主動搜尋他想要消費(fèi)的內(nèi)容,指示并授權(quán)該內(nèi)容的獲取,獲取該內(nèi)容,然后消費(fèi)它。這減少了內(nèi)容所有者提供用于瞬時(shí)消費(fèi)的內(nèi)容的能力、和用戶立即看到他獲取的東西而不用等待其下載的能力。
已圍繞向用戶預(yù)先載入內(nèi)容創(chuàng)建了若干產(chǎn)品開端,但是他們都有一個(gè)共同的缺陷:用戶必須犧牲其自己的存儲容量來存儲內(nèi)容,但直至在購買它之后才能訪問該內(nèi)容。必須購買該容量的用戶通常不想看到該容量的很大部分被分配給他們不能實(shí)際使用的內(nèi)容。
存儲設(shè)備的用戶可以自愿通過從發(fā)行商請求媒體內(nèi)容或廣告來下載媒體內(nèi)容和廣告。但是,有時(shí),想要提高他們收入的發(fā)行商在不征求用戶的許可的情況下,向用戶發(fā)送內(nèi)容,且有時(shí)甚至用戶不知道這種內(nèi)容已被下載到他們的存儲設(shè)備了。發(fā)行商在未得到用戶同意的情況下向用戶發(fā)送的內(nèi)容在此被稱為“主動提供的內(nèi)容”。通常,主動提供的內(nèi)容意圖由用戶在支付之后、或在承諾給發(fā)行商支付費(fèi)用之后消費(fèi)。
如上所述,在與存儲設(shè)備相關(guān)聯(lián)的文件系統(tǒng)的結(jié)構(gòu)中將存儲設(shè)備中存儲的文件或要存儲的文件標(biāo)記為不可丟棄或可丟棄的。被標(biāo)記為不可丟棄或可丟棄的每個(gè)文件與諸如優(yōu)先級的丟棄標(biāo)準(zhǔn)相關(guān)。通常,在使用可丟棄文件的系統(tǒng)中,新發(fā)行商的文件(即,主動提供的發(fā)文件)只有在存儲設(shè)備中存儲其不使預(yù)留用于用戶文件的存儲使用安全余量變窄超過一所期望余量時(shí),才被允許在存儲設(shè)備中存儲。另一方面,用戶文件即使在它們的存儲使得存儲使用安全余量變窄超過期望寬度的情況下也被允許存儲在存儲設(shè)備中。但是,在這種情況下,通過從存儲設(shè)備移除一個(gè)或多個(gè)可丟棄文件來恢復(fù)存儲安全余量的期望寬度。如果可丟棄文件的丟棄優(yōu)先級等于或高于(或,低于,如在此描述的)預(yù)定丟棄閾值,則將該可丟棄文件從存儲設(shè)備移除。
為了解決用于上傳到外部位置(諸如服務(wù)器)的文件的預(yù)籌備、主動提供的內(nèi)容的存儲、和相關(guān)問題,用戶文件被給定了超出其他文件的存儲優(yōu)先級、且存儲使用安全余量被維持以保證該優(yōu)先級?!坝脩粑募笔谴鎯υO(shè)備的用戶自愿存儲或已經(jīng)同意其在存儲設(shè)備中存儲的文件。例如,用戶向她/他的存儲設(shè)備下載的音樂文件被視為用戶文件。被用戶請求或同意存儲的用戶文件被視為“索求的”文件。
“其他文件”可以是“預(yù)籌備的文件”,或已知為“發(fā)行商文件”和“主動提供的文件”的文件?!邦A(yù)籌備的文件”是在存儲設(shè)備中存儲的直到可以基于上傳策略找機(jī)會向遠(yuǎn)程位置上傳的文件。通常,在將預(yù)籌備的文件上傳到遠(yuǎn)程位置之前不會從存儲設(shè)備移除該預(yù)籌備的文件??梢栽诖鎯ξ募到y(tǒng)的結(jié)構(gòu)中將預(yù)籌備的文件標(biāo)記為“可丟棄的”。
“發(fā)行商文件”是在用戶未請求它或未意識到它(至少一段時(shí)間還沒有)的情形下由發(fā)行商在存儲設(shè)備中存儲的文件。用戶可能不想要使用諸如發(fā)行商文件的主動提供的文件。未使用的主動提供的文件趨于消費(fèi)在用戶的存儲設(shè)備上的珍貴存儲空間。因此,根據(jù)在此公開的原理,這種文件只有存儲它們不致縮小存儲使用安全余量才被允許存儲在存儲設(shè)備中。通過維持保留用于未來的用戶的文件的空閑存儲空間(即,存儲使用安全余量)來向用戶文件呈現(xiàn)存儲優(yōu)先級。必須維持存儲使用安全余量以便保證無論何時(shí)需要或期望時(shí)都可以在存儲設(shè)備中存儲用戶文件。
如果出于某原因,存儲使用安全余量變得比期望的窄,則將從存儲設(shè)備移除(即刪除)一個(gè)或多個(gè)主動提供的文件以便恢復(fù)存儲使用安全余量。維持存儲使用安全余量保證在附加的用戶文件被下載到存儲設(shè)備的情況下用于這種文件的存儲空間。為此,在存儲文件系統(tǒng)的結(jié)構(gòu)中將主動提供的文件標(biāo)記為“可丟棄的”,且如果需要,稍后將其移除來至少收回維持存儲使用安全余量所需的空閑存儲空間。
存儲設(shè)備的已知為高速緩存的存儲區(qū)域用于存儲諸如預(yù)籌備的文件或發(fā)行商文件的文件、或所謂可丟棄的文件,且其還包括存儲設(shè)備的空閑存儲空間。高速緩存中的可丟棄文件可以經(jīng)由存儲設(shè)備中的替換數(shù)據(jù)結(jié)構(gòu)或文件系統(tǒng)來管理,在該替換數(shù)據(jù)結(jié)構(gòu)或文件系統(tǒng)中,它們被標(biāo)記為可丟棄文件。
因?yàn)橛脩羰褂酶鞣N用戶文件、預(yù)籌備的文件和主動提供的文件的可能性可能彼此不同,因此基于例如存儲設(shè)備的用戶是否自愿存儲文件、文件是否正預(yù)籌備在高速緩存中用于找機(jī)會上傳到遠(yuǎn)程位置、使用該文件的可能性、與使用文件相關(guān)聯(lián)的可能的收益、文件的大小、文件的類型、文件的位置、文件的年代等,向每個(gè)文件(或更具體地每個(gè)可丟棄的文件)預(yù)先分配諸如丟棄優(yōu)先等級的丟棄標(biāo)準(zhǔn)。例如,關(guān)于預(yù)籌備的文件,丟棄優(yōu)先等級可以被分配給預(yù)籌備的文件,以便預(yù)籌備的文件具有比主動提供的文件更大的優(yōu)先級、但比用戶文件更低的優(yōu)先級。因此,主動提供的文件可以在預(yù)籌備的文件之前從存儲設(shè)備移除,預(yù)籌備的文件可以在用戶文件之前從存儲設(shè)備移除。
關(guān)于主動提供的文件,可以用收益的潛在可能來確定丟棄優(yōu)先等級。以此方式,電影宣傳片或廣告將具有比實(shí)際電影更高的丟棄優(yōu)先級,因?yàn)橛脩敉ǔ2粫樾麄髌蛷V告付費(fèi)。根據(jù)另一例子,最可能被用戶使用的一個(gè)或多個(gè)可丟棄文件將被分配最低丟棄優(yōu)先級,這意味著這種文件將是從存儲設(shè)備移除的最后的(一個(gè)或多個(gè))文件。換句話說,可丟棄文件的使用概率越高,被分配給該文件的丟棄優(yōu)先等級越低。如果即使已移除了一個(gè)或多個(gè)可丟棄文件,期望的存儲使用安全余量也未完全恢復(fù),則將從存儲設(shè)備移除另外的可丟棄文件,直到恢復(fù)期望的存儲使用安全余量。
簡言之,諸如文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)用于在計(jì)算機(jī)系統(tǒng)中存儲和組織各種文件的方法,無論該計(jì)算機(jī)系統(tǒng)為移動手持機(jī)設(shè)備、桌面型計(jì)算機(jī)、服務(wù)器還是其他計(jì)算平臺。文件系統(tǒng)包括針對存儲、層次地組織、操縱、導(dǎo)航、訪問和提取數(shù)據(jù)而實(shí)施的抽象數(shù)據(jù)類型和元數(shù)據(jù)的集合。抽象的數(shù)據(jù)類型和元數(shù)據(jù)形成“目錄樹”,通過其可以訪問、操縱和啟動文件。“目錄樹”通常包括根目錄和可選的子目錄。目錄樹被存儲在文件系統(tǒng)中作為一個(gè)或多個(gè)“目錄文件”。在文件系統(tǒng)中包括的元數(shù)據(jù)和目錄文件的集合在此被稱為“文件系統(tǒng)結(jié)構(gòu)”。因此,文件系統(tǒng)包括有助于訪問、操縱、更新、刪除和啟動文件的文件系統(tǒng)結(jié)構(gòu)。
文件分配表(“FAT”)是示例的文件系統(tǒng)架構(gòu)。FAT文件系統(tǒng)與包括DR-D0S、OpenDOS、MS-DOS、Linux,、Windows、Windows Mobile、Windows CE、Symbian OS、Palm OS、uCLinx、Tiny0S、Nut0S、pS0S、Vx WorksΛBSD Unix、Nucleus OS、ThreadX (FiIeX)、Android、Mac OS,BlackBerry OS、iOS等的各種操作系統(tǒng)一起使用。FAT結(jié)構(gòu)的文件系統(tǒng)使用集中了存儲關(guān)于哪些存儲區(qū)域是空閑或被分配的和每個(gè)文件被存儲在存儲設(shè)備上哪里的信息的表。為了限制該表的大小,按稱為“簇”的連續(xù)扇區(qū)的組向文件分配存儲空間。由于存儲設(shè)備已經(jīng)演化,因此簇的最大數(shù)量已經(jīng)增加且用于標(biāo)識簇的位的數(shù)量已經(jīng)增長了。FAT格式的版本來源于表位的數(shù)量:FAT12使用每個(gè)條目12位;FAT16使用16位,且FAT32使用32位。
另一文件系統(tǒng)架構(gòu)已知為新技術(shù)文件系統(tǒng)(“NTFS”)。目前,NTFS是Windows NT、包括其稍后的版本 Windows2000、Windows XP>ffindows Server2003>Windows Server2008>Windows Vista和Windows7的標(biāo)準(zhǔn)文件系統(tǒng)。FAT32和NTFS是可以向存儲設(shè)備100提供的示例文件系統(tǒng)。
圖1示出了典型的存儲設(shè)備100。存儲設(shè)備100包括存儲各種文件(例如,音樂文件、視頻文件等)的存儲區(qū)域110,各種文件中的一些可以是用戶文件,且其他可以是預(yù)籌備的文件或發(fā)行商文件。存儲設(shè)備100還包括經(jīng)由數(shù)據(jù)和控制線130來管理存儲區(qū)域110的存儲控制器120。存儲控制器120還經(jīng)由主機(jī)接口 150與主機(jī)設(shè)備140通信。主機(jī)設(shè)備140可以是專用硬件或通用計(jì)算平臺。
存儲區(qū)域110可以是例如NAND閃存類型的。存儲控制器120通過控制例如“讀”、“寫”和“擦除”操作、損耗平衡等并通過控制與主機(jī)140的通信,來控制去往/來自存儲區(qū)域110的所有數(shù)據(jù)傳輸和去往/來自主機(jī)設(shè)備140的數(shù)據(jù)傳輸。存儲區(qū)域110可以包含例如用戶文件和發(fā)行商的文件、被允許僅由授權(quán)主機(jī)設(shè)備使用的受保護(hù)數(shù)據(jù)、和僅由存儲控制器120內(nèi)部使用的安全數(shù)據(jù)。通常,主機(jī)(例如主機(jī)140)不能直接訪問存儲區(qū)域110。也就是說,如果主機(jī)140要求或需要來自存儲設(shè)備100的數(shù)據(jù),主機(jī)140必須向存儲控制器120請求它。為了有助于容易地訪問在存儲設(shè)備100中存儲的數(shù)據(jù)文件,給存儲設(shè)備100提供文件系統(tǒng)160。
在該例子中,存儲區(qū)域110在功能上被劃分為三個(gè)部分:用戶區(qū)域170、可丟棄文件區(qū)域180和空閑存儲空間190。用戶區(qū)域170是其中存儲了用戶文件的存儲區(qū)域110內(nèi)的存儲空間??蓙G棄文件區(qū)域180是其中存儲了預(yù)籌備的文件或發(fā)行商文件的存儲區(qū)域110內(nèi)的存儲空間??臻e存儲空間190是存儲區(qū)域110內(nèi)的空的存儲空間。可以使用空閑的存儲空間190來保持用戶文件、預(yù)籌備的文件或發(fā)行商文件。共同地,可丟棄文件區(qū)域180和空閑存儲空間190占據(jù)存儲區(qū)域110的我們在此稱為高速緩存185的一部分。當(dāng)在空閑存儲空間190中存儲用戶文件時(shí),將保存該用戶文件的存儲空間從空閑存儲空間190中減去并添加到用戶區(qū)域170。類似地,當(dāng)在空閑存儲空間190中存儲預(yù)籌備的文件或發(fā)行商文件時(shí),將保存預(yù)籌備的文件或發(fā)行商文件的存儲空間從空閑存儲空間190中減去并添加到可丟棄文件區(qū)域180。如果從存儲區(qū)域110移除(即、刪除)用戶文件、預(yù)籌備的文件或發(fā)行商文件,則將收回的存儲空間添加到(其返回到)空閑存儲空間190。
如果空閑存儲空間190的大小允許,則存儲設(shè)備100的用戶可以從主機(jī)140下載用戶文件到存儲區(qū)域110。下載的用戶文件將被存儲在空閑存儲空間190中,且如以上所述,保存該文件的存儲空間將從空閑的存儲空間190減去且被添加到用戶區(qū)域170。如上所述,用戶文件具有高于其他(例如,發(fā)行商)文件的優(yōu)先級,且為了保證該優(yōu)先級,設(shè)置期望的存儲使用安全余量,且如果需要,以以下描述的方式恢復(fù)期望的存儲使用安全余量。
主機(jī)140包括存儲分配器144來有助于恢復(fù)空閑存儲空間190。存儲分配器144可以是硬件、固件、軟件或其組合。通常,存儲分配器144確定向主機(jī)140傳送的或在主機(jī)140上已經(jīng)存在的文件(例如文件142)是否是用戶文件、預(yù)籌備的文件或發(fā)行商文件之一,且然后相應(yīng)地標(biāo)記該文件(即,作為不可丟棄的文件或作為可丟棄的文件)。
如果存儲分配器144確定文件(例如,文件142)是不可丟棄的,例如,因?yàn)樵撐募怯脩粑募?,則存儲分配器144發(fā)送該文件以用于以常規(guī)的方式存儲在存儲區(qū)域110中。如上所述,將把存儲區(qū)域100內(nèi)保存不可丟棄文件的存儲空間添加到用戶區(qū)域170或是用戶區(qū)域170的一部分。但是,如果存儲分配器144確定該文件是可丟棄的(例如因?yàn)槠涫穷A(yù)籌備的文件或發(fā)行商文件),則存儲分配器144標(biāo)記該文件作為可丟棄的。應(yīng)理解,在一些實(shí)施方式中,為了將文件標(biāo)記為可丟棄的,存儲分配器144標(biāo)記在文件系統(tǒng)160中的文件系統(tǒng)結(jié)構(gòu)以指示該文件是可丟棄文件。在其他實(shí)施方式中,為了標(biāo)記該文件為可丟棄的,存儲分配器144將該文件本身標(biāo)記為可丟棄文件。為了存儲被標(biāo)記為可丟棄文件的發(fā)行商文件,如果空閑存儲空間190大于期望的存儲使用安全余量,則存儲分配器144在空閑存儲空間190中存儲標(biāo)記的可丟棄文件。但是,如上所述,將保存可丟棄文件的空閑存儲空間190內(nèi)的存儲空間從空閑存儲空間190中減去(B卩,減小空閑存儲空間),且添加至可丟棄文件區(qū)域180。
如上所述,發(fā)行商文件可以被用戶使用的可能性在各個(gè)發(fā)行商文件之間可不同,這使得具有最小使用概率的發(fā)行商文件成為從存儲區(qū)域110移除的第一候選。因此,除了將文件標(biāo)記為不可丟棄的或可丟棄的以外,存儲分配器144還在可丟棄文件被存儲在存儲區(qū)域110中之前、同時(shí)或之后給每個(gè)可丟棄文件分配丟棄優(yōu)先等級。
通過標(biāo)記文件為不可丟棄的或?yàn)榭蓙G棄的、由存儲分配器144分配丟棄優(yōu)先等級且通過使用存儲設(shè)備100的文件系統(tǒng)160 (或其映像),存儲分配器144 “知曉”在存儲區(qū)域110中和高速緩存185中的用戶文件、預(yù)籌備的文件和發(fā)行商文件的數(shù)量以及其大小和在存儲區(qū)域110和高速緩存185內(nèi)的邏輯位置。知道該信息(即,文件的數(shù)量、大小和位置),且具體地基于一個(gè)或多個(gè)標(biāo)記的文件,存儲分配器144管理存儲區(qū)域110和索求的和主動提供的文件在存儲區(qū)域110中的存儲。管理存儲區(qū)域110或管理在存儲區(qū)域110中的文件的存儲可以包括例如通過選擇性地移除被標(biāo)記為可丟棄的一個(gè)或多個(gè)文件、預(yù)籌備文件用于找機(jī)會上傳到遠(yuǎn)程位置、通過移除被標(biāo)記為可丟棄的所有文件來釋放存儲區(qū)域、且將文件的簇重新映射到更低性能的存儲模塊來恢復(fù)存儲使用安全余量。管理存儲區(qū)域110或在此存儲的文件可以包括管理存儲區(qū)域110或其中存儲的文件的其他、附加的、或替換的方面。
存儲分配器144藉由向每個(gè)可丟棄文件分配的丟棄級別還知道可以或應(yīng)該丟棄(即從存儲區(qū)域110刪除或移除)可丟棄文件以便恢復(fù)為未來的用戶文件而原始預(yù)留的空閑存儲空間(即,恢復(fù)期望的存儲使用安全余量)的順序。因此,如果用戶想要在存儲區(qū)域110中存儲新用戶文件,但是沒有足夠的空閑存儲空間來容納該用戶文件(這意味著存儲使用安全余量比期望的窄),存儲分配器144使用被分配給可丟棄文件的丟棄優(yōu)先等級來一個(gè)接一個(gè)迭代地刪除可丟棄文件,來收回更多的空閑存儲空間(即,擴(kuò)展空閑的存儲空間190),直到期望的存儲使用安全余量被完全恢復(fù)。如上所述,完全恢復(fù)的存儲使用安全余量高概率地保證足夠的空閑存儲空間被預(yù)留用于未來的用戶文件。僅響應(yīng)于接收到存儲新用戶文件的請求時(shí),才從存儲設(shè)備100移除或刪除可丟棄文件,這是因?yàn)榭紤]用戶可能有時(shí)想要使用存儲的可丟棄文件,且因此,只有新用戶文件需要容納該文件的存儲空間時(shí),才從存儲設(shè)備移除可丟棄文件。存儲分配器144可以被嵌入或并入到主機(jī)140中,或其可以駐留在主機(jī)140和存儲設(shè)備100的外部(被不出為虛線框144’)。
存儲分配器144具有存儲設(shè)備100的、或與其相關(guān)聯(lián)的文件系統(tǒng)的代表性映像。存儲分配器144使用存儲設(shè)備的文件系統(tǒng)映像來將文件標(biāo)記為不可丟棄的或?yàn)榭蓙G棄的,且向每個(gè)可丟棄文件分配丟棄級別。再次,文件系統(tǒng)是用于管理文件的一個(gè)數(shù)據(jù)結(jié)構(gòu),因此映像應(yīng)該是該數(shù)據(jù)結(jié)構(gòu)的映像,而不管它可能具有何種形式。在該例子中,文件系統(tǒng)包括FAT,且在該情況下,在與該文件相關(guān)的FAT條目的未使用部分中,通過設(shè)置一個(gè)或多個(gè)未使用的位來進(jìn)行該標(biāo)記。因?yàn)椴煌奈募到y(tǒng)具有不同的結(jié)構(gòu),標(biāo)記文件(即為不可丟棄或可丟棄的)且分配丟棄級別適用于使用的文件系統(tǒng)結(jié)構(gòu),如在圖6到10中所詳述以及結(jié)合這些圖所描述的。
圖2是根據(jù)另一示例實(shí)施例的便攜存儲設(shè)備200的方框圖。存儲控制器220類似于存儲控制器120 —樣運(yùn)作,且存儲分配器244類似于存儲分配器144 一樣運(yùn)作。存儲分配器244可以是硬件、固件、軟件或其任意組合。存儲分配器244內(nèi)部地與存儲控制器220合作。無論何時(shí)存儲控制器220從主機(jī)240接收在存儲區(qū)域210中存儲文件的存儲請求,該請求包括該文件是否是可丟棄文件的指示,存儲控制器220都通知存儲分配器244該存儲請求和該文件是否是可丟棄的。然后,該存儲分配器244在與存儲設(shè)備200相關(guān)的文件系統(tǒng)的結(jié)構(gòu)中標(biāo)記文件為不可丟棄的或可丟棄的。
通常,在主機(jī)240上運(yùn)行的應(yīng)用確定文件是可丟棄文件,且向存儲控制器220發(fā)送指示該文件是可丟棄文件的標(biāo)簽或其他指示。在主機(jī)240上運(yùn)行的應(yīng)用發(fā)送標(biāo)記或其他指示作為用于請求在存儲設(shè)備上存儲文件的存儲協(xié)議的部分。這種存儲協(xié)議的例子包括POSIX文件系統(tǒng)功能或java.1o類樹的使用。
如果存儲分配器244確定該新文件是可丟棄的,存儲分配器244根據(jù)文件的使用概率向新文件分配丟棄優(yōu)先等級。然后,存儲分配器244評估空閑存儲空間290的當(dāng)前大小,且決定是否應(yīng)該從存儲區(qū)域210移除(即,刪除或上傳到外部位置)一個(gè)或多個(gè)可丟棄文件以便為新文件制造空間。如果應(yīng)該從存儲設(shè)備移除可丟棄的一個(gè)文件或多個(gè)文件,則存儲分配器244決定哪個(gè)(些)文件是用于移除的當(dāng)前候選文件。然后,存儲分配器244通知存儲控制器220應(yīng)該從存儲區(qū)域210移除的可丟棄文件,且響應(yīng)于該通知,存儲控制器220移除由存儲分配器244指示的可丟棄的一個(gè)文件或多個(gè)文件。在便攜存儲設(shè)備200的一些配置中,存儲分配器244可以被功能性地放置在存儲控制器220和存儲區(qū)域210之間。在其中存儲分配器244被功能性地放置在存儲控制器220和存儲區(qū)域210之間的配置中,存儲分配器244或存儲區(qū)域210必須承擔(dān)存儲控制器220的一些功能。在這種配置中,存儲區(qū)域210由以高于快閃NAND協(xié)議的級別來通信的存儲器單元構(gòu)成。
圖3是根據(jù)示例實(shí)施例的存儲分配器300的方框圖。存儲分配器300包括存儲器單元310、處理器320和接口 330。存儲器單元310可以保持與存儲設(shè)備(例如,圖2的存儲設(shè)備200)相關(guān)聯(lián)的文件系統(tǒng)結(jié)構(gòu)或文件系統(tǒng)結(jié)構(gòu)的映像。處理器320管理與該存儲設(shè)備相關(guān)聯(lián)的文件系統(tǒng)。接口 330可以適用于與主機(jī)和與存儲設(shè)備的存儲控制器合作,如圖1中所示的,或僅與存儲設(shè)備的存儲控制器合作,如在圖2中所示的。
處理器320被配置或適用于經(jīng)由接口 330接收請求來在存儲設(shè)備的存儲區(qū)域中存儲文件且在與存儲分配器300與其一起操作的存儲設(shè)備相關(guān)聯(lián)的文件系統(tǒng)的結(jié)構(gòu)中標(biāo)記該文件作為可丟棄的或作為不可丟棄的。如果接口 330功能地附接于圖2的存儲控制器220 (且因此接收例如SCSI或打包的(wrapped)USB/MSC命令,而不是文件級別的命令),所接收的請求處于比文件級別低得多的級別。也就是說,所接收的請求將是在邏輯塊地址處存儲扇區(qū)的請求,當(dāng)由主機(jī)適當(dāng)?shù)胤g時(shí),該邏輯塊地址將對應(yīng)于一個(gè)文件。如果存儲控制器220支持NVMHCI協(xié)議或諸如NFS或類似協(xié)議的聯(lián)網(wǎng)文件系統(tǒng)協(xié)議,存儲控制器220可以得到文件級的請求。因此,在諸如存儲控制器220的存儲控制器和諸如接口 330的接口之間的通信不限于NVMHCI或類似于NVMHCI的實(shí)施方式。通信接口 330可以與存儲分配器300是一體的,如圖3所示。
處理器320進(jìn)一步被配置或適用于向存儲設(shè)備發(fā)送標(biāo)記的文件。標(biāo)記該文件為可丟棄的包括向該文件分配丟棄優(yōu)先等級。如果由存儲設(shè)備使用的文件系統(tǒng)是基于FAT的,處理器320通過在對應(yīng)于標(biāo)記的文件的FAT中向m個(gè)最高(B卩,最高有效)位(例如,m=4)設(shè)置對應(yīng)的值,向標(biāo)記的文件分配丟棄優(yōu)先等級。設(shè)置給在FAT條目中的最高有效位的對應(yīng)值、或設(shè)置給NTFS目錄條目的值可以是文件的屬性,或可以與文件的屬性相關(guān)?!皩傩浴币馕吨贔AT表或NTFS表的頭部中的元數(shù)據(jù)標(biāo)簽或某種數(shù)據(jù)結(jié)構(gòu),該FAT表或NTFS表包含關(guān)于該表內(nèi)存儲的內(nèi)容的類型的信息?!皬V告”、“獎勵(lì)內(nèi)容”和“推廣(空閑)內(nèi)容”是可以在FAT表或在NTFS表中存儲的示例類型的內(nèi)容。設(shè)置丟棄級別的替換標(biāo)準(zhǔn)是例如最后訪問的文件、文件大小、文件類型等。
專用于標(biāo)記文件的FAT32條目的最高位的數(shù)量m可以是四個(gè)或少于四個(gè),這是因?yàn)椴皇褂眠@些位。另外,所使用的位越多,則可以使用的丟棄優(yōu)先等級越多。例如,使用三個(gè)位(即,m=3)提供八個(gè)(23=8)丟棄優(yōu)先等級且使用四個(gè)位(B卩,m=4)提供十六個(gè)(24=16)丟棄優(yōu)先等級(即,包括被分配給不可丟棄的文件的丟棄優(yōu)先等級“O”)。換句話說,如果標(biāo)記的文件是不可丟棄的,所述處理器將m個(gè)最高位的值設(shè)置為0,或如果標(biāo)記的文件是可丟棄的,m個(gè)最高位的值則設(shè)置為在I和2m-l之間的值。丟棄優(yōu)先等級指示標(biāo)記文件可以或應(yīng)該從存儲設(shè)備丟棄的優(yōu)先級。例如,取決于實(shí)施方式,值“I”可以表示以最低優(yōu)先級或以最高優(yōu)先級可丟棄的文件,且值“2m_l”可以分別表示以最高優(yōu)先級或以最低優(yōu)先級可丟棄的文件。
處理器320可以根據(jù)文件的預(yù)期使用,如上文結(jié)合要由存儲設(shè)備的用戶使用主動提供的文件的概率或可能性所解釋的,來向標(biāo)記文件分配丟棄優(yōu)先等級。處理器320可以憑借或響應(yīng)于接收到在存儲設(shè)備中存儲新文件的每個(gè)請求,更新標(biāo)記文件的丟棄優(yōu)先等級。處理器320可以與在存儲設(shè)備中存儲文件的一個(gè)或多個(gè)新請求獨(dú)立地更新給定的標(biāo)記文件的丟棄優(yōu)先等級。例如,先前是高優(yōu)先等級的文件可以在特定時(shí)間段間隔之后降低其優(yōu)先等級。如果在存儲設(shè)備中存儲的文件與等于或大于預(yù)定丟棄閾值的丟棄優(yōu)先等級相關(guān)聯(lián),則處理器320刪除該文件。處理器320可以基于文件寫或添加的數(shù)量,或取決于對存儲設(shè)備上的空閑存儲空間的預(yù)期使用或新發(fā)行商文件的可用性,來(重新)設(shè)置丟棄閾值。
存儲器單元310可以保存包含處理器320向在存儲設(shè)備中存儲的文件分配的丟棄優(yōu)先等級的分配表340。另外,分配表340可以保存文件的標(biāo)識符和將文件與被分配給文件的丟棄優(yōu)先等級相關(guān)聯(lián)的信息。分配表340可以另外保存丟棄閾值。在分配表340中保存的信息允許處理器320標(biāo)識可以從存儲設(shè)備移除哪個(gè)或哪些文件來恢復(fù)期望的存儲使用安全余量。
響應(yīng)于接收在存儲設(shè)備中存儲新文件的請求,處理器320評估在存儲設(shè)備上的空閑存儲空間的大小,且如果存儲設(shè)備上的空閑存儲空間(f)的評估大小大于預(yù)定大小,則在存儲設(shè)備中存儲該新文件,或如果其不大于預(yù)定大小,處理器320在存儲設(shè)備內(nèi)搜索一個(gè)或多個(gè)可以移除的可丟棄文件,且在找到這樣的一種或多種文件時(shí),處理器320移除該一個(gè)文件或多個(gè)文件來擴(kuò)展當(dāng)前空閑的存儲空間(f),以便擴(kuò)展空閑存儲空間的總大小等于或大于預(yù)定大小。如果與可丟棄文件相關(guān)聯(lián)的丟棄優(yōu)先等級等于或大于預(yù)定丟棄閾值(例如,在I和15之間(包含本數(shù)),例如15),則可以從存儲設(shè)備移除該可丟棄的一個(gè)文件或多個(gè)文件。
在空閑存儲空間擴(kuò)展為足夠的之后,處理器320允許在擴(kuò)展的空閑存儲空間中存儲該新文件?!翱臻e存儲空間被擴(kuò)展為足夠”意味著,通過一個(gè)接一個(gè)地釋放占用的存儲空間來擴(kuò)展空閑存儲空間,直到總空閑存儲卡可以容納新文件,而沒有縮小上述期望的存儲使用安全余量,或最終直到擴(kuò)展的空閑存儲空間的總大小等于或大于預(yù)定大小,或直到移除了所有可丟棄文件。
控制器320可以是標(biāo)準(zhǔn)的現(xiàn)貨芯片上系統(tǒng)(“SoC”)器件或包裝中系統(tǒng)(“SiP”)器件或通用處理單元,其具有當(dāng)被執(zhí)行時(shí)進(jìn)行在此描述的步驟、操作和評估的特定軟件?;蛘撸幚砥?20可以是通過使用硬件來實(shí)施在此描述的步驟、操作和評估的專用集成電路(“ASIC”)。
圖4是根據(jù)一個(gè)示例實(shí)施例的用于存儲可丟棄的文件的方法。圖4將結(jié)合圖1描述。在步驟410中,主機(jī)140接收在存儲設(shè)備100中存儲文件142的請求。在步驟420中,存儲分配器144將該文件標(biāo)記為“可丟棄”或?yàn)椤安豢蓙G棄的”,且在步驟430中,如果空閑存儲空間190足夠大,則向存儲設(shè)備100的存儲控制器120發(fā)送標(biāo)記的文件(即,用于在存儲區(qū)域110中存儲)。也在向該文件分配丟棄優(yōu)先等級的意義上標(biāo)記該文件。在步驟440,存儲分配器144基于該標(biāo)記的文件、且可選地基于已經(jīng)被標(biāo)記的一個(gè)或多個(gè)文件來(通過與存儲控制器120通信)管理存儲區(qū)域110或在存儲區(qū)域110中存儲的文件。
圖5是根據(jù)一個(gè)示例實(shí)施例的用于管理在存儲設(shè)備中的可丟棄文件的存儲的方法。將與圖1相關(guān)聯(lián)地描述圖5。新文件是用于在存儲設(shè)備100存儲的候選者。在知曉存儲設(shè)備100的文件系統(tǒng)160的當(dāng)前映像的情況下,存儲分配器144在步驟510評估空閑存儲空間190的當(dāng)前大小“f”來查看其當(dāng)前大小是f的空閑存儲空間190是否能夠容納該新文件(即,該作為用于存儲的候選者的文件)。通常,存儲分配器144取決于新文件是用戶文件還是發(fā)行商文件來處理該新文件。因此,存儲分配器144首先確定該新文件是用戶文件還是發(fā)行商文件。
在步驟520,存儲分配器144檢查空閑存儲空間190是否能夠容納該新用戶文件。如果空閑存儲空間190能夠容納該新用戶文件(在步驟520中示出為“是”),存儲分配器144在步驟560中在空閑存儲空間190中存儲該新用戶文件,而不考慮期望的存儲使用安全余量是否由于存儲新用戶文件而被縮小。如果期望的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變窄(即,相對于期望的存儲使用安全余量),則存儲分配器144不針對新用戶文件的存儲采取進(jìn)一步的動作。
但是,如果期望的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變窄,步驟550包括附加的步驟,其中,存儲分配器144確定哪個(gè)所存儲的可丟棄文件應(yīng)該首先被刪除,哪個(gè)可丟棄文件應(yīng)該其次被刪除,等等,以便維持期望的存儲使用安全余量。存儲分配器144基于存儲分配器144分配給所存儲的可丟棄文件的丟棄級別來確定哪個(gè)可丟棄文件應(yīng)該首先被移除,哪個(gè)可丟棄文件應(yīng)該其次被移除,等等。
如果在步驟520存儲分配器144確定空閑存儲空間190不能容納該新用戶文件(在步驟520中示出為“否”),則存儲分配器144在步驟530中確定空閑存儲空間190和由可丟棄文件消耗的存儲空間當(dāng)組合時(shí)是否足夠用于存儲該新用戶文件。如果組合的存儲空間不夠(在步驟530中示出為“否”),這意味著不管將刪除多少可丟棄文件,新用戶文件由于其較大的大小都不能被存儲在“非用戶的”儲存區(qū)域。如果組合的存儲空間足夠(在步驟530中示出為“是”),存儲分配器144在步驟540中在所存儲的可丟棄文件中搜索哪個(gè)可丟棄文件可以被刪除以便釋放用于新用戶文件的足夠存儲空間。存儲分配器144通過使用存儲設(shè)備100的文件系統(tǒng)來搜索這些可丟棄文件,因?yàn)槿缟纤龅模鎯Ψ峙淦?44在存儲設(shè)備的文件系統(tǒng)中標(biāo)記文件為不可丟棄的或可丟棄的。另外,由存儲分配器144向標(biāo)記的文件分配的丟棄級別也被嵌入到存儲設(shè)備的文件系統(tǒng)中,以便每個(gè)丟棄級別與對應(yīng)的標(biāo)記的文件相關(guān)聯(lián)。
在找到應(yīng)該首先被丟棄的可丟棄文件(“DF”)(該文件以下被稱為“DF1”)時(shí),存儲分配器144刪除文件DFl以便添加或返回其存儲空間(該存儲空間以下被稱為“SP1”)到存儲空間190。
然后,在步驟550中,存儲分配器144檢查擴(kuò)展的空閑存儲空間190(S卩,空閑存儲空間190加上最后返回的存儲空間,或f+SPl)是否能夠容納該新用戶文件。如果擴(kuò)展的空閑存儲空間190 (即,f+SPl)仍然不能容納新用戶文件(在步驟550中示出為“否”),則存儲分配器144迭代地重復(fù)步驟550 (該迭代在555處示出)以便返回附加的存儲空間到空閑存儲空間190 (即,通過找到并刪除應(yīng)該被刪除的下一可丟棄文件)。
在找到具有次高的丟棄優(yōu)先級的下一可丟棄文件(該下一可丟棄文件以下被稱為“DF2”)時(shí),存儲分配器144移除文件DF2以便釋放并添加附加的存儲空間(該附加的存儲空間以下稱為“SP2”)來釋放存儲空間190。然后,在步驟550中,存儲分配器144再次檢查擴(kuò)展的空閑存儲空間190 (即,空閑存儲空間190加上兩個(gè)最后釋放的存儲空間,或f+SPl+SP2)是否能夠容納該新文件。如果擴(kuò)展空閑存儲空間190 (即f+SPl+SP2)仍然不能容納該新文件(在步驟550中示出為“N”),則存儲分配器144重復(fù)步驟540再一次以便找到應(yīng)該被移除的下一可丟棄文件。存儲分配器144迭代步驟540和550直到累積的空閑存儲空間190能夠容納該新用戶文件(在步驟550中示出為“是”)。然后,在步驟560中,存儲分配器144在存儲區(qū)域110中存儲該新用戶文件。
如上所述,如果實(shí)際的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變得比期望的存儲使用安全余量更小,步驟560可以包括附加的步驟,其中,存儲分配器144確定哪個(gè)所存儲的可丟棄文件應(yīng)該首先被移除,哪個(gè)可丟棄文件應(yīng)該其次被移除,等等,以便恢復(fù)期望的存儲使用安全余量。
如果新文件是發(fā)行商文件,只有空閑存儲空間190能夠容納該新發(fā)行商文件而不縮窄期望的存儲使用安全余量時(shí),存儲分配器144才在存儲區(qū)域I中存儲(在步驟560中)該新發(fā)行商文件。也就是說,如果存儲新發(fā)行商文件將導(dǎo)致縮窄期望的存儲使用安全余量,則存儲分配器144可以決定不在存儲區(qū)域110中存儲該新發(fā)行商文件。在這種情況下,存儲分配器144可以抑制對該文件采取任何動作,且不從存儲設(shè)備中移除文件來釋放用于新發(fā)行商文件的存儲空間?;蛘?,存儲分配器144可以在步驟540中刪除一個(gè)或多個(gè)更高優(yōu)先級的可丟棄文件以便為具有較低丟棄優(yōu)先級的可丟棄文件釋放存儲空間。如上所述,文件被標(biāo)記到且丟棄級別被嵌入到存儲設(shè)備100的文件系統(tǒng)中,且文件被標(biāo)記的方式和被嵌入到文件系統(tǒng)中的丟棄級別取決于或可以適用于所使用的文件系統(tǒng)。
圖6是用于根據(jù)一個(gè)示例實(shí)施例的用于在FAT32結(jié)構(gòu)的文件系統(tǒng)標(biāo)記主動提供的文件的方法。FAT32結(jié)構(gòu)的文件系統(tǒng)使用簇。如上結(jié)合FAT32結(jié)構(gòu)的文件系統(tǒng)所述,用于標(biāo)識FAT32簇的位的數(shù)量是32。圖6將與圖1相關(guān)聯(lián)地描述。
在步驟610中,F(xiàn)AT32的每個(gè)簇的32位中的m個(gè)最高位(其中m〈4)被分配或?qū)S糜趯⑽募?biāo)記為不可丟棄的或?yàn)榭蓙G棄的(視情況而定)以及用于為每個(gè)可丟棄文件保持對應(yīng)的丟棄級別。向文件分配丟棄級別是通過對對應(yīng)于標(biāo)記的文件的所分配的m位設(shè)置對應(yīng)值來進(jìn)行的。
在步驟620中,存儲分配器144評估存儲設(shè)備100的用戶將使用諸如主動提供的文件的可丟棄文件的概率(likelihood)水平。使用該文件的概率的評估可以以寄售文件領(lǐng)域的技術(shù)人員已知的各種方式來實(shí)現(xiàn)。例如,使用該文件的概率的評估可以基于監(jiān)視使用存儲設(shè)備的人的位置,和/或所監(jiān)視的用戶的先前體驗(yàn)和偏好。使用該文件的概率的評估還可以基于例如在FAT表或NTFS表內(nèi)存儲的內(nèi)容的類型(例如,“廣告內(nèi)容”,“獎勵(lì)內(nèi)容”,“促銷(免費(fèi))內(nèi)容”等)。存儲分配器144可以使用替換的或附加的標(biāo)準(zhǔn)來評估該文件將被使用的概率。例如,它可以使用文件的屬性或特性,這可以是、或關(guān)聯(lián)于最后訪問的文件、文件大小、文件類型等。
在存儲分配器144評估用戶將使用可丟棄文件的概率的級別之后,存儲分配器144在步驟630中分配與該可丟棄文件的使用的評估的概率級別對應(yīng)的丟棄優(yōu)先等級。可丟棄文件由存儲設(shè)備100的用戶使用的概率越大,丟棄級別越低。
如果m等于四位,這意味著丟棄范圍提供從I (即0001)到15 (即1111的15個(gè)丟棄級別。也就是說,向每個(gè)不可丟棄的文件分配丟棄級別0,向具有最低丟棄優(yōu)先級的可丟棄文件分配優(yōu)先等級1,且向具有最高丟棄優(yōu)先級的可丟棄文件分配丟棄級別15。在存儲分配器144向可丟棄文件分配對應(yīng)的丟棄級別之后,存儲分配器144在步驟640中向與可丟棄文件相關(guān)聯(lián)的簇的四個(gè)最高位分配在I和15之間的對應(yīng)值。如果可丟棄文件具有與其相關(guān)聯(lián)的兩個(gè)或多個(gè)簇,在每個(gè)簇中的四個(gè)最高位被設(shè)置為相同值。
在步驟650中,檢查可丟棄文件是否是需要評估的最后的文件。如果可丟棄文件不是需要評估的最后的文件(在步驟650中示出為“否”),以上述方式評估另一文件。如果可丟棄文件是需要評估的最后的文件(在步驟650中示出為“是”),可丟棄文件被發(fā)送到存儲設(shè)備,其中在步驟640中設(shè)置了 m位的每個(gè)的值。
圖7是與FAT32表相關(guān)聯(lián)的示例目錄區(qū)域700。目錄表700僅是用于圖示的部分表,且如此,表700并未示出FAT目錄條目的所有字段。目錄區(qū)域700保存在相關(guān)文件系統(tǒng)中存儲的文件的細(xì)節(jié),諸如文件名稱、文件大小以及每個(gè)文件在相關(guān)存儲空間中何處開始。文件的細(xì)節(jié)被保存在以下字段中。字段710保存在相關(guān)文件系統(tǒng)中存儲的文件的盤操作系統(tǒng)(“DOS”)文件名,字段720保存文件的擴(kuò)展名,字段730保存文件的各種屬性,字段740保存文件的第一簇號(“FCN”)的高16位字(bitword),字段750保存文件的第一簇號(“FCN”)的低部分,且字段760保存文件的大小。每個(gè)FCN號指示文件可以從哪里被找到的第一邏輯簇。
目錄區(qū)域700的第一條目保持用于稱為“REALFILE”的示例文件的信息(在770處示出)。REALFILE770具有文件擴(kuò)展名“DAT”,其FCN是“0000 0002”(在755處示出)且其大小是“0000 24E4”。在表700中的數(shù)字以十六進(jìn)制值示出。作為標(biāo)準(zhǔn)的一部分,屬性值“00”(在780處示出)和“20” (未在圖7中示出)指的是“常規(guī)”文件,而屬性值“02”指的是在文件系統(tǒng)中隱藏的文件。文件名“ \xE5Cons i gn ”指示刪除的文件,而“ \xE5 ”意味著文件名的第一字節(jié)的值在十六進(jìn)制中是E5。通過示例,F(xiàn)CN號0000 0002 (在755處示出)指定文件REALFILE的第一簇。
圖8是根據(jù)示例實(shí)施例的示例性部分FAT32表800。FAT32表800被示出為雙字(“DWORD”)陣列,且值是十六進(jìn)制的值。參考數(shù)字810指示保存FAT32表800的設(shè)備的類型,其中“F8”指的是硬盤。FAT32表800包括被指定為簇#1 (在820處示出)、簇#2 (在825處示出),...、和簇#23 (在830處示出)的23個(gè)簇。圖8將與圖7相關(guān)聯(lián)地描述。FAT32表800中的簇可以是文件的第一簇,或其可以指向文件的下一鏈接的簇,或其可以是文件末尾(“EOF”)指示。
再次參考目錄區(qū)域700,文件REALFILE (在770處示出)的第一 FCN是“00000002”(在755處示出),其指向在圖8的表800中的簇#2處。如圖8所示,簇#2的值(SP,值“000 0003”)指向(在840處示出)簇 #3處,其是下一文件的簇。類似地,簇#3的值(SP“0000 0004”)指向簇#4處,其是下一文件的簇。簇#4具有值“OFFF FFFF" (“F”是表示十進(jìn)制值“15”的十六進(jìn)制數(shù)字),其中“OFFF FFFF”(在850處示出)表示文件的EOF指示,且零值(在860處示出)表示丟棄級別O。因此,文件REALFILE與三個(gè)簇(即,簇#2、簇#3、和簇#4)相關(guān)聯(lián)。
如上所述,丟棄級別O被分配給不可丟棄文件。注意,具體文件的每個(gè)簇的最高有效十六進(jìn)制數(shù)字被設(shè)置為所分配給該文件的相同丟棄優(yōu)先等級。例如,文件REALFILE已經(jīng)被分配了丟棄級別“0”,且因此,簇#2、#3和#4的最高有效十六進(jìn)制數(shù)字具有該值(即,值“ O ”,“ O ”值被加了下劃線)。根據(jù)另一例子,其FCN是“ 0000 0005 ”的文件“E5Consign ”(如在圖7中示出的)被分配了丟棄優(yōu)先等級“I”。因此,屬于該文件的簇#5到12的每個(gè)的最高有效十六進(jìn)制數(shù)字具有值“I”(例如在870處示出)。換句話說,根據(jù)本公開,最高有效十六進(jìn)制數(shù)字(或,等同地,與具體可丟棄文件相關(guān)聯(lián)的簇的四個(gè)最高位)被設(shè)置為與所分配給該具體文件的丟棄優(yōu)先等級對應(yīng)的相同值。如上所述,用于指示丟棄優(yōu)先等級的最高位的數(shù)量m可以不同于四(S卩,m彡4)。
圖9是根據(jù)示例實(shí)施例的NTFS表900。NTFS表900保存文件的細(xì)節(jié),諸如文件名稱、文件大小等。NTFS表900包括用于保存根據(jù)“正?!睌?shù)據(jù)流而改變的文件的“常規(guī)”數(shù)據(jù)(例如數(shù)據(jù)920)的數(shù)據(jù)字段910。根據(jù)本公開,NTFS表900還包括“丟棄信息”字段915用于保存每個(gè)評估的文件的丟棄信息(例如,丟棄信息930)。丟棄信息字段915還可以包括除了丟棄優(yōu)先等級以外的信息。例如,丟棄信息字段915可以包括關(guān)于供應(yīng)該文件的服務(wù)器的信息和其后文件必須被丟棄的過期時(shí)間。不像基于FAT的文件系統(tǒng),在基于NTFS的文件系統(tǒng)中,所分配給可丟棄文件 的丟棄值不限于由一組位規(guī)定的最大值。這意味著丟棄值的范圍可以自由地選擇。例如,丟棄值的范圍可以從I到25。NTFS是示例的非FAT文件系統(tǒng)。通常,可以將對應(yīng)的丟棄值設(shè)置至對應(yīng)于標(biāo)記的文件的基于非FAT的文件系統(tǒng)條目中的數(shù)據(jù)字段。
圖10是根據(jù)示例實(shí)施例的存儲設(shè)備的文件系統(tǒng)1000的邏輯布置。存儲分配器(例如,圖1的存儲分配器144)可以保存與其一起操作的存儲設(shè)備的文件系統(tǒng)1000或文件系統(tǒng)1000的映像,或者存儲分配器可以具有對文件系統(tǒng)1000的訪問。
文件系統(tǒng)1000包括引導(dǎo)部分1010、與文件系統(tǒng)1000相關(guān)聯(lián)的FAT1020、目錄表1030、文件區(qū)域1040和可丟棄文件區(qū)域1050。FAT1020包括可丟棄文件分配區(qū)域1025,可丟棄文件分配區(qū)域1025包含可丟棄文件的丟棄優(yōu)先等級。目錄表1030包括用于訪問在存儲設(shè)備中存儲的任何文件(即,可丟棄文件和/或不可丟棄文件)的訪問信息。文件區(qū)域1040包含不可丟棄文件。索引和數(shù)據(jù)庫區(qū)域1045保存可丟棄文件的索引、以及還保存與可丟棄文件相關(guān)聯(lián)的元數(shù)據(jù)。在索引和數(shù)據(jù)庫區(qū)域1045中保存的索引和元數(shù)據(jù)用于計(jì)算丟棄級別,但是在實(shí)際的丟棄處理期間不需要它們。可丟棄文件區(qū)域1050保存可丟棄文件。
圖11示范了根據(jù)本公開的文件管理方法。圖11將與圖1相關(guān)聯(lián)地描述。假設(shè),在時(shí)間TO處,兩個(gè)用戶文件(B卩,文件“F1”和“F2”)初始地存儲在存儲區(qū)域110中。因?yàn)槲募癋1”和“F2”是用戶文件,因此它們被存儲在用戶區(qū)域170中,且由存儲分配器144向它們分配的丟棄級別是零。因?yàn)榇鎯^(qū)域110的總存儲容量是T (在1110處示出),且文件Fl和F2被存儲在存儲設(shè)備100中,剩余空閑存儲空間190 (見圖1)的大小是f (在1120處示出)。假設(shè)發(fā)行商想要在存儲區(qū)域110中存儲三個(gè)主動提供的文件。如上所述,存儲分配器14評估在存儲設(shè)備100中的空閑存儲空間190的大小(或在1120處的f)以便確定在存儲區(qū)域110中存儲發(fā)行商的三個(gè)主動提供的文件是否將不會縮窄為未來的用戶文件預(yù)留的期望存儲使用安全余量(在1130處示出)。如果存儲發(fā)行商的三個(gè)主動提供的文件將縮窄存儲使用安全余量1130 (即,期望的存儲使用安全余量),則存儲分配器144將抑制存儲這些文件。
在該例子中,存儲分配器144確定發(fā)行商的三個(gè)主動提供的文件可以被存儲在存儲區(qū)域110中而不減少存儲使用安全余量1130。因此,在時(shí)間Tl處,存儲分配器144允許存儲控制器120在存儲區(qū)域I中存儲發(fā)行商的三個(gè)主動提供的文件。這三個(gè)發(fā)行商的主動提供的文件被指定為“PI”,“P2”,和“P3”。存儲分配器144還確定文件P1、P2和P3將被存儲設(shè)備100的用戶使用的概率,且向這些文件中的每個(gè)分配對應(yīng)的丟棄級別。然后,存儲分配器144在FAT表,如在圖8中示范的,或在NTFS表中,如在圖9中示范的,存儲所分配給文件的丟棄級別。
在時(shí)間T2處,存儲設(shè)備100的用戶想要在存儲區(qū)域110中存儲另外兩個(gè)文件(即,文件“F3”和“F4”)。存儲分配器144重新評估在存儲設(shè)備中的空閑存儲空間190的大小(或在1120處的f),以便確定在存儲區(qū)域110中是否存在足夠的存儲空間來存儲這些另外的文件(即,文件F3和F4)。在該例子中,存儲分配器144確定當(dāng)前的空閑存儲空間能夠容納文件F3和F4。因此,在時(shí)間T2處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲文件F3和F4。
因?yàn)槲募﨔3和F4是用戶文件,因此文件F3和F4將由存儲設(shè)備100的用戶使用的概率是不相關(guān)的,這是因?yàn)橛脩粑募哂斜劝l(fā)行商文件高的存儲優(yōu)先級,而不管用戶使用文件F3和F4多少次,甚至即使用戶從未使用文件F3和F4。因此,存儲分配器144向文件F3和F4分配丟棄級別“O”,且在FAT表,如在圖8中示范的,或在NTFS表中,如在圖9中示范的,存儲所分配的丟棄級別。
在時(shí)間T3處,存儲設(shè)備100的用戶想要在存儲區(qū)域110中存儲另外一個(gè)文件(即,文件“F5”)。存儲分配器144重新評估在存儲設(shè)備100中的空閑存儲卡190的大小(或在1120處的f ),以便確定在存儲區(qū)域110中是否存在足夠的存儲空間來存儲該另一文件(即,文件F5)。
在該例子中,存儲分配器144確定當(dāng)前的空閑存儲空間能夠容納文件F5。因此,在時(shí)間T3處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲文件F5。如圖11所示,存儲用戶文件F5縮小了存儲使用安全余量。也就是說,在文件Fl到F5和Pl到P3被存儲在存儲區(qū)域110中之后剩余的在存儲區(qū)域110中的空閑存儲空間f小于存儲使用安全余量1130。因此,存儲分配器144通過移除發(fā)行商的文件(即,P1、P2和P3)之一來復(fù)原(reinstate)或恢復(fù)存儲使用安全余量。通過移除(即刪除或上傳到外部位置)諸如發(fā)行商文件的一個(gè)或多個(gè)可丟棄文件來復(fù)原或恢復(fù)存儲使用安全余量是因?yàn)椋缟纤?,用戶文件具有最大的存儲?yōu)先級。
如上所述,由存儲分配器144基于存儲分配器144分配給每個(gè)存儲的可丟棄文件的丟棄優(yōu)先等級,來作出應(yīng)該從存儲區(qū)域110移除哪些可丟棄文件的決定。
返回到圖11,假設(shè)在存儲的發(fā)行商文件Pl到P3中,發(fā)行商文件P3被分配了最高丟棄優(yōu)先級(例如,13)。因此,在時(shí)間T4處,從存儲區(qū)域I移除文件P3,因此擴(kuò)大空閑存儲空間190。因?yàn)樵跁r(shí)間T4處的空閑存儲空間190的大小(在1120處的f)大于存儲使用安全余量1130,因此不需要移除任何更多的發(fā)行商文件。
存儲設(shè)備100的用戶可能想要移除一個(gè)或多個(gè)用戶文件。在時(shí)間T5處,用戶移除了他的兩個(gè)文件(即,文件F4和F5),因此進(jìn)一步擴(kuò)大空閑存儲空間190。文件F4和F5的移除與空閑存儲空間190的大小或存儲使用安全余量無關(guān),這是因?yàn)槿缭诖岁愂龅?,重新獲得空閑存儲空間或恢復(fù)存儲使用安全余量是通過移除需要的數(shù)量的可丟棄文件來進(jìn)行的。假設(shè),發(fā)行商想要在存儲區(qū)域110中存儲另一主動提供的文件。如上所述,存儲分配器144評估空閑存儲空間190的大小(在1120處的f)以便確定在存儲區(qū)域110中存儲發(fā)行商的主動提供的文件是否將不縮小存儲使用安全余量1130。如果存儲發(fā)行商的新主動提供的文件將縮窄存儲使用安全余量1130,則存儲分配器144將抑制存儲該文件。
在該例子中,存儲分配器144確定發(fā)行商的新主動提供的文件(B卩,文件“P4”)可以被存儲在存儲區(qū)域Iio中而不減少存儲使用安全余量1130。因此,在時(shí)間T6處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲發(fā)行商的文件P4。存儲分配器144還確定文件P4將被存儲設(shè)備100的用戶使用的概率,并向該文件分配對應(yīng)的丟棄級別。然后,存儲分配器144在FAT表(如在圖8中示范的)或在NTFS表中(如在圖9中示范的)存儲所分配給文件P4的丟棄級別。存儲新發(fā)行商的文件和新用戶文件和移除所存儲的文件的處理可以繼續(xù),同時(shí)每次向存儲設(shè)備110添加新文件時(shí),存儲分配器144即評估空閑存儲空間190的當(dāng)前大小,并確定必須從存儲區(qū)域110移除哪個(gè)可丟棄文件或哪些可丟棄文件(如果移除的話)。
假設(shè)向可丟棄文件分配丟棄級別可以基于例如是否預(yù)籌備文件以找機(jī)會上傳到遠(yuǎn)程位置、用戶體驗(yàn)或偏好、基于用戶的全球定位系統(tǒng)(“GPS”)位置和/或其他標(biāo)準(zhǔn)。例如,如果存儲設(shè)備的用戶好像(基于先前的用戶體驗(yàn))喜歡特定類型的音樂,則如果發(fā)行商的文件包含用戶最喜歡的音樂類型之一的音樂,存儲分配器可以向該文件分配相對低的丟棄優(yōu)先等級(例如,在I到15的范圍內(nèi)的3)。但是,如果用戶(即,基于先前用戶體驗(yàn))不喜歡發(fā)行商的音樂,存儲分配器可以向相關(guān)發(fā)行商的文件分配較高的丟棄優(yōu)先等級(例如,在I到15的范圍內(nèi)的12)。用于向可丟棄文件分配丟棄級別的標(biāo)準(zhǔn)可以包括文件的預(yù)期使用、與使用該文件相關(guān)聯(lián)的預(yù)期收益、文件的類型、文件的大小、文件在存儲設(shè)備中的位置、文件的年代和在此指定的其他標(biāo)準(zhǔn)或參數(shù)。其他標(biāo)準(zhǔn)、無論單獨(dú)或結(jié)合在此描述的任意標(biāo)準(zhǔn),可以類似地使用,且可以使用一個(gè)或多個(gè)標(biāo)準(zhǔn)來進(jìn)行丟棄級別的分配。另外,可以使用不同標(biāo)準(zhǔn)來向不同可丟棄文件分配丟棄級別。
在另一例子中,如果發(fā)行商想要向用戶發(fā)送與位置有關(guān)的廣告(即,與具體位置內(nèi)呈現(xiàn)的產(chǎn)品或服務(wù)相關(guān)的廣告),則存儲分配器可以向發(fā)行商的廣告分配根據(jù)用戶的改變的位置而改變的丟棄優(yōu)先等級。也就是說,用戶離具體位置越遠(yuǎn),丟棄級別將越高,這是因?yàn)橐罁?jù)變得遠(yuǎn)離該具體位置,可假設(shè)用戶對于消費(fèi)在該具體位置處呈現(xiàn)的產(chǎn)品或服務(wù)不感興趣。
h傳管理
在上傳管理中使用用于管理數(shù)據(jù)的智能高速緩存方法,如以下更詳細(xì)描述的。用于管理文件向外部位置的上傳和用于在系統(tǒng)中預(yù)籌備用于上傳文件的智能高速緩存技術(shù)包括在高速緩存中存儲一個(gè)或多個(gè)主動提供的文件和一個(gè)或多個(gè)預(yù)籌備的文件。通常,在一些實(shí)施方式中可以是上述存儲分配器的一部分的上傳管理器確定是否可以在存儲設(shè)備的高速緩存中預(yù)籌備文件來用于上傳到外部位置。如上所述,存儲設(shè)備的高速緩存可以是存儲設(shè)備的存儲替換文件系統(tǒng)的文件的區(qū)域。當(dāng)在高速緩存中存儲文件時(shí)預(yù)籌備該文件,以便可以找機(jī)會上傳該文件到外部位置。例如,可以在高速緩存中存儲文件用于在非高峰時(shí)段期間上傳到外部位置,或可以上傳預(yù)籌備的文件到一個(gè)或多個(gè)外部位置來釋放高速緩存中的空間。非高峰時(shí)段的例子可以包括夜晚時(shí)間、諸如在8:00p.m.之后、當(dāng)網(wǎng)絡(luò)可能不擁塞時(shí)、或在周末期間的白天。在其他實(shí)施方式中,上傳管理器可以基于從網(wǎng)絡(luò)接收的網(wǎng)絡(luò)擁塞信息來動態(tài)地確定非高峰時(shí)段。
上傳管理器可以基于上傳策略中的因素來確定是否可以在高速緩存中預(yù)籌備文件。該上傳策略可以包括諸如在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳的所述文件;是否可以從高速緩存中移除在高速緩存中具有高于該文件的丟棄標(biāo)準(zhǔn)的一個(gè)或多個(gè)可丟棄文件以便收回高速緩存中的足夠空間用于預(yù)籌備要上傳的文件;在高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置以在所述高速緩存中釋放足夠的空間以預(yù)籌備用于上傳的文件;以及/或者該文件是否可以被立即上傳到外部位置。該上傳管理器還可以在確定是否可以在高速緩存中預(yù)籌備文件以上傳到外部位置時(shí)考慮如下因素:諸如可用于上傳文件到外部位置的帶寬量;可用于上傳文件到外部位置的網(wǎng)絡(luò)的類型;與主機(jī)設(shè)備和/或存儲設(shè)備相關(guān)聯(lián)的電力情況;與存儲設(shè)備相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量、和/或?qū)懭氲臄?shù)量或任何其他閃存耐久性參數(shù);與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù);一次訪問存儲設(shè)備的存儲區(qū)域的應(yīng)用的數(shù)量;外部位置是否當(dāng)前是可訪問的;以及/或者是否授權(quán)用戶來訪問外部位置。
例如,當(dāng)外部位置由于網(wǎng)絡(luò)連接不可用于與外部位置通信、不可經(jīng)由當(dāng)前與主機(jī)設(shè)備一起建立的網(wǎng)絡(luò)使用該外部位置、或外部位置掉線的原因而不可訪問時(shí),上傳管理器可以確定延遲向外部資源上傳文件。上傳管理器還可以當(dāng)外部資源指示不授權(quán)用戶來訪問外部位置時(shí)、當(dāng)用戶提供不正確的證書信息時(shí)、或當(dāng)必須在上傳文件到外部資源之前授權(quán)用戶時(shí),確定延遲向外部資源上傳文件。另外,上傳管理器可以確定延遲上傳任何文件到外部位置,直到無線保真(WiFi)網(wǎng)絡(luò)和/或蜂窩網(wǎng)絡(luò)可用于上傳該文件。類似地,當(dāng)存儲設(shè)備和/或主機(jī)設(shè)備耦合于電源,或與存儲設(shè)備和/或主機(jī)設(shè)備相關(guān)聯(lián)的電池的電力水平高于預(yù)定水平時(shí),上傳管理器可以確定上傳文件到外部位置。但是,當(dāng)與存儲設(shè)備和/或主機(jī)設(shè)備相關(guān)聯(lián)的電池正在充電,和/或同時(shí)與存儲設(shè)備和/或主機(jī)設(shè)備相關(guān)聯(lián)的電池的電力水平低于預(yù)定水平時(shí),上傳管理器可以確定延遲上傳任何文件到外部位置。另外,上傳管理器可以確定延遲在網(wǎng)絡(luò)擁塞可能高時(shí)的商業(yè)時(shí)間期間請求的文件到外部位置的上傳,直到網(wǎng)絡(luò)可能不擁塞時(shí)的夜晚時(shí)間,諸如在8:00p.m.之后;該上傳管理器可以確定延遲在工作星期期間一天請求的文件到外部位置的上傳,直到周末期間的一天;或上傳管理器可以確定延遲文件到外部位置的上傳直到上傳管理器接收到網(wǎng)絡(luò)中的流量水平小于預(yù)定水平的指示。
圖12是用于在系統(tǒng)中管理文件的上傳的方法的流程圖,該系統(tǒng)包括存儲諸如一個(gè)或多個(gè)主動提供的文件和/或一個(gè)或多個(gè)預(yù)籌備的文件的一個(gè)或多個(gè)可丟棄文件的高速緩存。在步驟1202,識別要被上傳到外部位置的文件。將理解,當(dāng)主機(jī)設(shè)備進(jìn)行諸如捕獲圖片或視頻的操作時(shí),主機(jī)設(shè)備可以初始地創(chuàng)建所識別的文件,或者當(dāng)主機(jī)設(shè)備進(jìn)行諸如從諸如遠(yuǎn)程服務(wù)器或網(wǎng)站的外部源下載文件、或從存儲設(shè)備復(fù)制該文件的操作時(shí),主機(jī)設(shè)備可以創(chuàng)建所識別的文件。在一些實(shí)施方式中,在步驟1203,可以作為存儲分配器的一部分的上傳管理器將接收預(yù)籌備(prestage)該文件以上傳到外部位置的請求。該外部位置可以是例如,諸如其中用戶期望發(fā)布視頻或圖片的社交網(wǎng)絡(luò)網(wǎng)站的網(wǎng)站,或該外部資源可以是遠(yuǎn)程服務(wù)器、家庭個(gè)人計(jì)算機(jī)、路由器附接的存儲設(shè)備、或其中用戶期望發(fā)送一個(gè)或多個(gè)文件的對等網(wǎng)絡(luò)。
在步驟1204,上傳管理器將諸如優(yōu)先等級的丟棄標(biāo)準(zhǔn)與該文件相關(guān)聯(lián)。在一些實(shí)施方式中,與預(yù)籌備的文件相關(guān)聯(lián)的丟棄標(biāo)準(zhǔn)可以不同于與主動提供的文件相關(guān)聯(lián)的丟棄標(biāo)準(zhǔn),以便基于一組標(biāo)準(zhǔn)來從高速緩存移除預(yù)籌備的文件,且基于另一組標(biāo)準(zhǔn)從高速緩存移除主動提供的文件。但是,在其他實(shí)施方式中,與預(yù)籌備的文件和主動提供的文件相關(guān)聯(lián)的丟棄標(biāo)準(zhǔn)是相同的類型、諸如丟棄優(yōu)先等級。在其中存儲分配器基于不同標(biāo)準(zhǔn)、從高速緩存移除預(yù)籌備的文件和主動提供的文件(也已知為丟棄文件)的實(shí)施方式中,存儲分配器可以例如在不首先上傳預(yù)籌備的文件到外部資源的情況下從不從高速緩存中移除預(yù)籌備的文件,而是從高速緩存中移除主動提供的文件,存儲分配器可以簡單地刪除該文件。換句話說,該高速緩存可以包括諸如預(yù)籌備的文件和主動提供的文件的可丟棄文件,其中,能夠在不通知的情況下從高速緩存中移除(丟棄)所有可丟棄文件,但是預(yù)籌備的文件僅在被上傳到外部資源之后才從高速緩存移除(丟棄)。上傳管理器可以將小于主動提供的文件的丟棄標(biāo)準(zhǔn)但高于用戶文件的丟棄標(biāo)準(zhǔn)的丟棄標(biāo)準(zhǔn)與要預(yù)籌備的文件相關(guān)聯(lián),以便要在高速緩存中預(yù)籌備的文件具有比主動提供的文件更高的優(yōu)先級,但比用戶文件更低的優(yōu)先級。
在步驟1206,上傳管理器確定在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。如果在高速緩存中存在足夠的空閑空間(分支1208),則該上傳管理器在步驟1210中在所述高速緩存中存儲該文件以預(yù)籌備用于上傳到外部位置的文件。
但是,如果在高速緩存中不存在足夠的控制空間以預(yù)籌備用于上傳到外部位置的文件(分支1212),則上傳管理器在步驟1214中識別在高速緩存中存儲的與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件、諸如主動提供的文件。將理解,如上所述,當(dāng)可丟棄文件具有比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)時(shí),可以從高速緩存中移除可丟棄文件以在高速緩存中創(chuàng)建空閑空間以預(yù)籌備用于上傳到外部位置的文件。在步驟1216中,上傳管理器移除與比該文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的所識別的可丟棄文件中的至少一個(gè),以與最高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件開始,且順序地以與次高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件繼續(xù)。在一些實(shí)施方式中,上傳管理器從高速緩存中不移除比釋放高速緩存中的空間用于要預(yù)籌備的文件所需的更多的可丟棄文件。
在步驟1218,上傳管理器確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后,在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。如果上傳管理器確定存在足夠的空閑空間(分支1220),該上傳管理器在步驟1210中在所述高速緩存中存儲文件以預(yù)籌備用于上傳到外部位置的文件。
但是,如果上傳管理器確定不存在足夠的空閑空間(分支1222),該上傳管理器在步驟1224中確定在高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置以在高速緩存中創(chuàng)建用于預(yù)籌備用于上傳到外部位置的文件的足夠空閑空間。在一些實(shí)施方式中,上傳管理器可以基于諸如以下的上傳策略中的因素,確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置:可用于上傳文件到外部位置的帶寬量;可用于上傳文件到外部位置的網(wǎng)絡(luò)類型;與主機(jī)設(shè)備和/或存儲設(shè)備相關(guān)聯(lián)的電力情況;與存儲設(shè)備相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量、和/或?qū)懭氲臄?shù)量、或任何其他快閃耐久性參數(shù);與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù);在主機(jī)設(shè)備上一次訪問存儲設(shè)備的存儲區(qū)域的應(yīng)用的數(shù)量;外部位置當(dāng)前是否可訪問;和/或是否授權(quán)用戶來訪問外部位置。在一些實(shí)施方式中,上傳管理器可以查詢存儲設(shè)備以確定與存儲設(shè)備相關(guān)聯(lián)的度量:諸如與存儲設(shè)備相關(guān)聯(lián)的電力情況;與存儲設(shè)備相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量、和/或?qū)懭氲臄?shù)量、或任何其他閃存耐久性參數(shù);與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù);和/或當(dāng)前訪問存儲設(shè)備的存儲區(qū)域的主機(jī)應(yīng)用的數(shù)量。
如果上傳管理器確定可以上傳高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件到外部位置以在高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件(分支1226),則在步驟1228中,上傳該一個(gè)或多個(gè)預(yù)籌備的文件到外部位置,以在高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。然后,在步驟1210中,上傳管理器在高速緩存中存儲文件以預(yù)籌備該文件用于上傳到外部位置。
但是,如果上傳管理器確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件不可上傳到外部位置以在高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件(分支1230),則該上傳管理器在步驟1232中確定該文件是否能夠立即上傳到外部位置。在一些實(shí)施方式中,上傳管理器可以基于諸如以下的上傳策略中的因素,確定該文件是否能夠立即上傳到外部位置:可用于上傳文件到外部位置的帶寬量;可用于上傳文件到外部位置的網(wǎng)絡(luò)類型;與主機(jī)設(shè)備和/或存儲設(shè)備相關(guān)聯(lián)的電力情況;與存儲設(shè)備相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量、和/或?qū)懭氲臄?shù)量、或任何其他快閃耐久性參數(shù);與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù);一次訪問存儲設(shè)備的存儲區(qū)域的應(yīng)用的數(shù)量;外部位置當(dāng)前是否可訪問;和/或是否授權(quán)用戶來訪問外部位置。
如果上傳管理器確定該文件能夠立即被上傳到外部位置(分支1234),則在步驟1236中,文件被立即上傳到外部位置。但是,如果上傳管理器確定該文件不可立即上傳到外部位置(分支1238),上傳管理器在步驟1240中生成失敗上傳指示符。
如上所述,在一個(gè)方面中,提供用于管理存儲設(shè)備中的文件的方法。可以由上傳管理器執(zhí)行該方法,該上傳管理器在一些實(shí)施方式中可以是存儲分配器的一部分,存儲分配器存在于操作性地耦合于存儲設(shè)備的主機(jī)中。該存儲設(shè)備包括用于存儲一個(gè)或多個(gè)可丟棄文件的高速緩存。
上傳管理器識別要上傳到外部位置的文件,且確定在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。該上傳管理器可以在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備文件用于根據(jù)上傳策略找機(jī)會上傳這種文件。該上傳策略可以包括當(dāng)與外部位置的通信是非高峰時(shí)上傳預(yù)籌備的文件,或上傳預(yù)籌備的文件以釋放高速緩存中的空間。高速緩存中的該可丟棄文件可以包括預(yù)籌備的文件和主動提供的文件,其中,上傳管理器可以在不通知的情況下從高速緩存移除所有可丟棄文件(已知為丟棄文件),但上傳管理器僅在將預(yù)籌備的文件上傳到外部資源之后才從該高速緩存移除預(yù)籌備的文件。
上傳管理器可以確定預(yù)籌備用于上傳到外部的文件需要在所述高速緩存中存在比空閑空間更多的空間。上傳管理器可以將丟棄標(biāo)準(zhǔn)與該文件相關(guān)聯(lián),且確定在所述高速緩存中是否存儲有與比要被預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件。該上傳管理器可以從所述高速緩存中移除與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件,以釋放高速緩存中的空間用于預(yù)籌備用于上傳的所述文件,從與最高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件開始,順序地以與次高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件繼續(xù),不從高速緩存中移除比釋放高速緩存中的空間用于要預(yù)籌備的文件所需的更多的可丟棄文件。在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,上傳管理器可以在所述高速緩存中存儲該文件。與該文件相關(guān)聯(lián)的丟棄標(biāo)準(zhǔn)可以包括優(yōu)先等級。
上傳管理器可以確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后,在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。在確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件時(shí),該上傳管理器在存儲設(shè)備的高速緩存中存儲這些文件。
但是,在確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后在高速緩存中不存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件時(shí),該上傳管理器可以確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置以在高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。在確定所述一個(gè)或多個(gè)預(yù)籌備的文件能夠被上傳到外部位置以在所述高速緩存中創(chuàng)建足夠空閑空間以預(yù)籌備用于上傳到外部位置的文件的情況下,該上傳管理器可以上傳在所述高速緩存中已經(jīng)存儲的所述一個(gè)或多個(gè)預(yù)籌備的文件,且在上傳一個(gè)或多個(gè)預(yù)籌備的文件到外部位置之后在高速緩存中存儲該文件。
當(dāng)在所述高速緩存中沒有存儲能夠被上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的預(yù)籌備的文件時(shí),該上傳管理器可以確定所述文件是否能夠立即被上傳到外部位置。該上傳管理器可以在確定該文件可以被理解上傳時(shí)向外部位置上傳該文件,或者,該上傳管理器可以在確定不能立即上傳該文件時(shí)生成失敗上傳指示符。
為了確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置,該上傳管理器可以基于可用于上傳一個(gè)或多個(gè)預(yù)籌備的文件到外部位置的網(wǎng)絡(luò)帶寬量,確定一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;基于與主機(jī)設(shè)備相關(guān)聯(lián)的電力水平來確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;基于與所述存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè),確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;基于與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù)來確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;或基于當(dāng)前訪問該存儲設(shè)備的存儲區(qū)域的主機(jī)應(yīng)用的數(shù)量來確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置。
為了確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置,該上傳管理器可以針對與存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的一個(gè)或多個(gè)度量查詢存儲設(shè)備,且基于該一個(gè)或多個(gè)度量,確定一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置。所述一個(gè)或多個(gè)度量可以包括與存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的媒體讀取的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè)。
在另一方面中,如上所述,提供一種存儲系統(tǒng)。該存儲系統(tǒng)包括通信接口和用于管理存儲設(shè)備的高速緩存的處理器,其中,所述高速緩存被配置以存儲一個(gè)或多個(gè)可丟棄文件。該處理器被配置以識別要通過通信接口上傳到外部位置的文件。該處理器被配置以確定在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件。該處理器可以另外被配置以在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備文件用于根據(jù)上傳策略找機(jī)會上傳這種文件。該上傳策略可以包括當(dāng)與外部位置的通信是非高峰時(shí)上傳預(yù)籌備的文件,或上傳預(yù)籌備的文件以釋放高速緩存中的空間。高速緩存中的可丟棄文件可以包括預(yù)籌備的文件和主動提供的文件,且該處理器可以被配置以在不通知的情況下從高速緩存中移除所有可丟棄文件(已知為丟棄文件)。但是,該處理器可以被配置以僅在將預(yù)籌備的文件上傳到外部資源之后才從高速緩存中移除預(yù)籌備的文件。
該處理器可以被配置以確定預(yù)籌備用于上傳到外部的文件需要在所述高速緩存中存在比空閑空間更多的空間。該處理器可以另外被配置以將丟棄標(biāo)準(zhǔn)與該文件相關(guān)聯(lián),且確定在所述高速緩存中是否存儲有與比要被預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件。該處理器可以被配置以從所述高速緩存中移除與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件,以釋放高速緩存中的空間用于預(yù)籌備用于上傳的所述文件,從與最高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件開始,順序地以與次高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件繼續(xù)。該處理器可以被配置以不從高速緩存中移除比釋放高速緩存中的空間用于要預(yù)籌備的文件所需的更多的可丟棄文件。該處理器可以被配置以在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲該文件。與該文件相關(guān)聯(lián)的丟棄標(biāo)準(zhǔn)可以包括優(yōu)先等級。
該處理器可以進(jìn)一步被配置以確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后,在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。在確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件時(shí),該處理器可以被配置以在高速緩存中存儲該文件。
但是,在確定在從高速緩存移除一個(gè)或多個(gè)可丟棄文件之后在高速緩存中不存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件時(shí),該處理器可以被配置以確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置以在高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件。在確定所述一個(gè)或多個(gè)預(yù)籌備的文件能夠被上傳到外部位置以在所述高速緩存中創(chuàng)建用于預(yù)籌備用于上傳到外部位置的文件的足夠空閑空間的情況下,該處理器可以被配置以上傳在所述高速緩存中已經(jīng)存儲的所述一個(gè)或多個(gè)預(yù)籌備的文件,且在上傳一個(gè)或多個(gè)預(yù)籌備的文件到外部位置之后在高速緩存中存儲該文件。
當(dāng)在所述高速緩存中沒有存儲能夠被上傳到外部位置以在所述存儲區(qū)域中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的預(yù)籌備的文件時(shí),該處理器可以被配置以確定所述文件是否能夠立即被上傳到外部位置。在確定該文件可以被立即上傳時(shí)該處理器可以被配置以向外部位置上傳該文件,且該處理器可以被配置以在確定不能立即上傳該文件時(shí)生成失敗上傳指示符。
為了確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置,該處理器可以被配置以基于可用于上傳一個(gè)或多個(gè)預(yù)籌備的文件到外部位置的網(wǎng)絡(luò)帶寬量,確定一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;基于與主機(jī)設(shè)備相關(guān)聯(lián)的電力水平,確定一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置?;谂c所述存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè),確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;基于與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù)來確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置;和/或基于當(dāng)前訪問該存儲設(shè)備的存儲區(qū)域的主機(jī)應(yīng)用的數(shù)量來確定所述一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置。
為了確定高速緩存中已經(jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件是否可以被上傳到外部位置,該處理器可以被配置以針對與存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的一個(gè)或多個(gè)度量查詢存儲設(shè)備,且基于該一個(gè)或多個(gè)度量,確定一個(gè)或多個(gè)預(yù)籌備的文件是否能夠被上傳到外部位置。所述一個(gè)或多個(gè)度量可以包括與存儲設(shè)備的存儲區(qū)域相關(guān)聯(lián)的媒體播放的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè)。
將理解,在一些實(shí)施方式中,可以配置一個(gè)或多個(gè)處理器來基于在諸如計(jì)算機(jī)可讀非暫時(shí)存儲介質(zhì)的存儲器上存儲的指令來進(jìn)行參考圖12上述的動作。一個(gè)或多個(gè)處理器可以位于主機(jī)上、存儲設(shè)備上、或兩者的組合上。
注意,在此公開的在相關(guān)文件系統(tǒng)中標(biāo)記文件并向它們分配丟棄級別的方法可以具有許多有用的應(yīng)用,其中之一是恢復(fù)存儲使用安全余量來保證用戶文件的足夠存儲空間。例如,分配給文件的丟棄級別可以用于將文件簇重新映射到較低性能的閃存模塊,或用于在請求時(shí)清除這些簇。
冠詞“一個(gè)(a)”和“一(an)”在此用于指的是一個(gè)或多于一個(gè)(S卩,至少一個(gè))冠詞的語法主體,這取決于上下文。舉例而言,取決于上下文,“一個(gè)元件”意味著一個(gè)元件或多于一個(gè)元件。術(shù)語“包括”在此用于意味著短語“包括但不限于”且與其可互換地使用。除非上下文另外明確指示,術(shù)語“或”和“和”在此用于意味著術(shù)語“和/或”且可與其互換地使用。術(shù)語“諸如”在此用于意味著短語“諸如但不限于”且與其可互換地使用。
已經(jīng)描述了本發(fā)明的示例的實(shí)施例,本領(lǐng)域技術(shù)人員將明了本公開的實(shí)施例的修改將在本發(fā)明的范圍內(nèi)。因此,替換的實(shí)施例可以包括更多模塊、更少模塊和/或功能上相同的模塊。本公開涉及各種類型的大容量存儲設(shè)備,諸如SD驅(qū)動的閃存卡、閃存器件、非閃存器件、配備有通用串行總線(“USB”)接口的“鑰匙盤(Disk-on-Key)”器件、USB閃存盤(“UFDs”),多媒體卡(“MMC”),安全數(shù)字(“SD,,),miniSD,和microSD等的。在此,以下權(quán)利要求的范圍不由在此的公開限制。因此,意圖前述詳細(xì)的描述被視為例示性的而非限制,且理解,隨后的權(quán)利要求、包括其等同物意圖定義本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用存儲設(shè)備管理文件的方法,該方法包括: 在存儲設(shè)備操作性地耦合到其的主機(jī)中,其中,所述存儲設(shè)備包括用于存儲一個(gè)或多個(gè)可丟棄文件的高速緩存: 識別要上傳到外部位置的文件; 確定在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件;以及 在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備文件以用于根據(jù)上傳策略找機(jī)會上傳這種文件。
2.根據(jù)權(quán)利要求1所述的方法,其中,在所述高速緩存中的可丟棄文件包括預(yù)籌備的文件和主動提供的文件,其中,能夠在不通知的情況下丟棄所有可丟棄文件,但是僅在將預(yù)籌備的文件上傳到外部位置之后才丟棄預(yù)籌備的文件。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述上傳策略包括當(dāng)與外部位置的通信是非高峰時(shí)上傳。
4.根據(jù)權(quán)利要求1所述的方法,其中,預(yù)籌備的文件的上傳釋放高速緩存中的空間。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 確定預(yù)籌備用于上傳到外部位置的所述文件需要在所述高速緩存中存在比空閑空間更多的空間; 將丟棄標(biāo)準(zhǔn)與所述文件相關(guān)聯(lián); 確定在所述高速緩存中是否存儲了與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件; 從所述高速緩存中移除與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件,以釋放高速緩存中的空間用于要預(yù)籌備用于上傳的所述文件,從與最高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的 可丟棄文件開始,且順序地對與次高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件繼續(xù),其中,不從高速緩存中移除比釋放高速緩存中的空間用于要預(yù)籌備的文件所需的更多的可丟棄文件;以及 在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲該文件。
6.根據(jù)權(quán)利要求5所述的方法,其中所述丟棄標(biāo)準(zhǔn)包括優(yōu)先級。
7.根據(jù)權(quán)利要求5所述的方法,還包括: 在從所述高速緩存中移除一個(gè)或多個(gè)可丟棄文件之后,確定在高速緩存中不存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件; 確定是否能夠?qū)⒃诟咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件; 在確定能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的情況下,上傳在所述高速緩存中已經(jīng)存儲的所述一個(gè)或多個(gè)預(yù)籌備的文件; 在上傳所述一個(gè)或多個(gè)預(yù)籌備的文件到外部位置之后,在所述高速緩存中存儲所述文件。
8.根據(jù)權(quán)利要求7所述的方法,還包括: 當(dāng)在所述高速緩存中沒有存儲能夠被上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的預(yù)籌備的文件時(shí),確定是否能夠?qū)⑺鑫募⒓瓷蟼鞯酵獠课恢茫? 在確定能夠?qū)⑺鑫募⒓瓷蟼鞯那闆r下,上傳所述文件到外部位置;以及 在確定不能夠立即上傳所述文件的情況下,生成失敗上傳指示符。
9.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 基于可用于上傳所述一個(gè)或多個(gè)預(yù)籌備的文件到外部位置的網(wǎng)絡(luò)帶寬量,確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
10.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 基于與主機(jī)設(shè)備相關(guān)聯(lián)的電力水平來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
11.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 基于與所述高速緩存相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè),確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
12.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 基于與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù)來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
13.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 基于當(dāng)前訪問所述高速緩存的主機(jī)應(yīng)用的數(shù)量來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到 外部位置。
14.根據(jù)權(quán)利要求7所述的方法,其中,確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置包括: 針對與所述高速緩存相關(guān)聯(lián)的一個(gè)或多個(gè)度量查詢所述存儲設(shè)備高速緩存;以及 基于所述一個(gè)或多個(gè)度量來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
15.根據(jù)權(quán)利要求14所述的方法,其中所述一個(gè)或多個(gè)度量包括與所述高速緩存相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè)。
16.—種存儲系統(tǒng),包括: 通信接口 ; 用于管理存儲設(shè)備的高速緩存的處理器,其中,所述高速緩存被配置以存儲一個(gè)或多個(gè)可丟棄文件,且其中,所述處理器被配置以: 識別要通過通信接口上傳到外部位置的文件; 確定在高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件;以及 在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備文件用于根據(jù)上傳策略找機(jī)會上傳這種文件。
17.根據(jù)權(quán)利要求16所述的存儲系統(tǒng),其中,在所述高速緩存中的可丟棄文件包括預(yù)籌備的文件和主動提供的文件,其中,能夠在不通知的情況下丟棄所有可丟棄文件,但是僅在將預(yù)籌備的文件上傳到外部位置之后才丟棄預(yù)籌備的文件。
18.根據(jù)權(quán)利要求16所述的存儲系統(tǒng),其中,所述上傳策略包括當(dāng)與外部位置的通信是非高峰時(shí)上傳。
19.根據(jù)權(quán)利要求16所述的存儲系統(tǒng),其中,預(yù)籌備的文件的上傳釋放了高速緩存中的空間。
20.根據(jù)權(quán)利要求16的存儲系統(tǒng),其中,所述處理器進(jìn)一步被配置以: 確定預(yù)籌備用于上傳到外部位置的所述文件需要在所述高速緩存中存在比空閑空間更多的空間; 將丟棄標(biāo)準(zhǔn)與所述文件相關(guān)聯(lián); 確定在所述高速緩存中是否存儲了比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件; 從所述高速緩存中移除與比要預(yù)籌備的文件的丟棄標(biāo)準(zhǔn)更高的丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的一個(gè)或多個(gè)可丟棄文件,以釋放高速緩存中的空間用于預(yù)籌備用于上傳的所述文件,從與最高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件開始,且順序地對與次高丟棄標(biāo)準(zhǔn)相關(guān)聯(lián)的可丟棄文件繼續(xù),其中,不從高速緩存中移除比釋放高速緩存中的空間用于要預(yù)籌備的文件所需的更多的可丟棄文件;以及 在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件的情況下,在所述高速緩存中存儲該文件。
21.根據(jù)權(quán)利要求20所述的存儲系統(tǒng),其中所述丟棄標(biāo)準(zhǔn)包括優(yōu)先級。
22.根據(jù)權(quán)利要求20的存儲系統(tǒng),其中,所述處理器進(jìn)一步被配置以: 在從所述高速緩存中移除一個(gè)或多個(gè)可丟棄文件之后,確定在高速緩存中不存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的所述文件; 確定是否能夠?qū)⒃诟咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件; 在確定能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的情況下,上傳在所述高速緩存中已經(jīng)存儲的所述一個(gè)或多個(gè)預(yù)籌備的文件;以及 在上傳所述一個(gè)或多個(gè)預(yù)籌備的文件到外部位置之后,在所述高速緩存中存儲所述文件。
23.根據(jù)權(quán)利要求22的存儲系統(tǒng),其中,所述處理器進(jìn)一步被配置以: 當(dāng)在所述高速緩 存中沒有存儲能夠被上傳到外部位置以在所述高速緩存中創(chuàng)建足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的預(yù)籌備的文件時(shí),確定是否能夠?qū)⑺鑫募⒓瓷蟼鞯酵獠课恢茫辉诖_定能夠?qū)⑺鑫募⒓瓷蟼鞯那闆r下,上傳所述文件到外部位置;以及 在確定不能夠?qū)⑺鑫募⒓瓷蟼鞯那闆r下,生成失敗上傳指示符。
24.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 基于可用于上傳所述一個(gè)或多個(gè)預(yù)籌備的文件到外部位置的網(wǎng)絡(luò)帶寬量,確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
25.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 基于與主機(jī)設(shè)備相關(guān)聯(lián)的電力水平來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
26.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 基于與所述高速緩存相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè),確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
27.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 基于與存儲設(shè)備相關(guān)聯(lián)的安全參數(shù)來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
28.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 基于當(dāng)前訪問所述高速緩存的主機(jī)應(yīng)用的數(shù)量來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
29.根據(jù)權(quán)利要求22所述的存儲系統(tǒng),其中,為了確定是否能夠?qū)⒃谒龈咚倬彺嬷幸呀?jīng)存儲的一個(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置,所述處理器進(jìn)一步被配置以: 針對與所述高速緩存相關(guān)聯(lián)的一個(gè)或多個(gè)度量查詢所述存儲設(shè)備高速緩存;以及 基于所述一個(gè)或多個(gè)度量來確定是否能夠?qū)⑺鲆粋€(gè)或多個(gè)預(yù)籌備的文件上傳到外部位置。
30.根據(jù)權(quán)利要求29所述的存儲系統(tǒng),其 中所述一個(gè)或多個(gè)度量包括與所述高速緩存相關(guān)聯(lián)的讀取請求的數(shù)量、擦除的數(shù)量或?qū)懭氲臄?shù)量中的至少一個(gè)。
全文摘要
本發(fā)明公開了用于管理存儲設(shè)備的系統(tǒng)和方法。通常,在存儲設(shè)備操作性地耦合的主機(jī)中,其中,所述存儲設(shè)備包括用于存儲一個(gè)或多個(gè)可丟棄文件的高速緩存,識別要被上傳到外部位置的文件。確定高速緩存中是否存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件,且在確定在高速緩存中存在足夠的空閑空間以預(yù)籌備用于上傳到外部位置的文件的情況下,在所述高速緩存中存儲所述文件,其中,所述預(yù)籌備準(zhǔn)備了文件用于根據(jù)上傳策略找機(jī)會上傳這種文件。
文檔編號G06F17/30GK103154911SQ201180048966
公開日2013年6月12日 申請日期2011年8月9日 優(yōu)先權(quán)日2010年8月19日
發(fā)明者J.R.梅扎, J.G.哈恩, H.赫頓, L.謝里 申請人:桑迪士克以色列有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
肇州县| 秦皇岛市| 万盛区| 海兴县| 丰台区| 海南省| 历史| 汝南县| 白银市| 无极县| 双牌县| 景泰县| 南郑县| 河北区| 绍兴市| 沂水县| 宾阳县| 日土县| 共和县| 合水县| 乳源| 酒泉市| 夏河县| 渝中区| 宾川县| 九龙县| 长宁县| 金沙县| 龙里县| 凭祥市| 光山县| 浙江省| 诸暨市| 易门县| 尉氏县| 涿州市| 黄陵县| 郧西县| 东丰县| 观塘区| 汉寿县|