專利名稱:對存儲在存儲器上的文件的訪問時間最優(yōu)化的制作方法
對存儲在存儲器上的文件的訪問時間最優(yōu)化
背景技術:
在計算環(huán)境語境中的文件是表示一個或多個不同事物的計算機可讀數據的集合。 例如,一個文件可以是表示能夠使用字處理計算機程序來瀏覽和編輯的文本的字處理文件。作為另一個示例,一個文件可以是表示能夠使用電子數據表計算機程序來瀏覽和編輯的電子數據表的電子數據表文件。作為第三個示例,一個文件可以是表示能夠被執(zhí)行或運行的計算機程序的計算機程序文件。文件存儲在存儲器裝置上,比如硬盤驅動器上。
圖1是根據本公開一個實施例的對存儲在存儲器裝置上的文件的訪問時間最優(yōu)化并且對整個系統性能最優(yōu)化的方法的流程圖。圖2A、圖2B和圖2C是根據本公開一個實施例的可以在實現圖1方法的各部分時采用的表格的示圖。圖3是根據本公開一個實施例的典型計算裝置或計算系統的示圖。
具體實施例方式問題描述和技術方案概述在計算環(huán)境語境中的文件具有歸屬位置(home location)。歸屬位置指定了將不確定地存儲該文件的非易失性存儲器裝置,直到由用戶手動移動到另一存儲器裝置或直到該文件被刪除。通常,當初始創(chuàng)建一個文件時,就指定了它的歸屬位置——將不確定地存儲該文件的非易失性存儲器裝置。此后,計算裝置從該位置訪問該文件。注意,一些類型的計算裝置可以將文件高速緩存在可以更容易地訪問該文件的地方,比如將文件從硬盤驅動器臨時復制到易失性半導體隨機存取存儲器,但這種移動僅僅是臨時的,并且沒有改變歸屬位置。還要注意,公知為碎片整理程序的實用計算機程序可以將特定存儲器裝置(比如特定硬盤驅動器)的文件在該特定存儲器裝置中實際存儲的方式最優(yōu)化。然而,碎片整理程序不將文件從一個存儲器裝置移動到另一個存儲器裝置。本公開的發(fā)明人提供的一個創(chuàng)造性見解是,假設現代計算裝置可自由支配各種各樣不同的存儲器裝置,那么可以在這些不同存儲器裝置之間移動文件,以使得文件被存儲在提供了被頻繁訪問文件的最優(yōu)或接近最優(yōu)訪問時間的存儲器裝置上。即,初始存儲給定文件的存儲器裝置可能不是能夠改善該文件的訪問時間并從而改善系統整體性能的最優(yōu)存儲器裝置。然而,本發(fā)明人已經創(chuàng)造性地確定應當周期性地在可用于計算裝置的不同存儲器裝置之間移動文件,以確保最優(yōu)文件訪問時間。周期性地在計算裝置可自由支配的不同存儲器裝置之間移動文件意味著文件的歸屬位置發(fā)生改變。換句話說,這種移動不僅僅是簡單地將文件高速緩存在較快的存儲器裝置上。文件訪問時間是計算裝置訪問(比如讀或寫)文件所耗費的時間長度。文件訪問時間很大程度上取決于存儲該文件的存儲器裝置的存儲特性。這樣的存儲特性包括順序訪問速度以及隨機訪問速度。順序訪問速度是指從存儲器裝置中數據被順序存儲在該裝置上的地方取出數據的速度,也可以稱為持續(xù)吞吐速度。比較起來,隨機訪問速度是指數據初始定位到存儲器裝置上的速度,也可以稱為查找時間速度。不同類型的存儲器裝置具有不同的存儲特性。本地存在于計算裝置中的現代硬盤驅動器例如通常具有相對較快的順序訪問速度,但是具有相對較慢的隨機訪問速度。比較起來,閃存驅動器(其為非易失性半導體存儲器裝置)與最快的現代硬盤驅動器相比通常具有相對較快的隨機訪問速度,但具有相對較慢的順序訪問速度。網絡驅動器(其通常是可由計算裝置通過網絡遠程訪問的硬盤驅動器)相比之下通常具有最慢的順序訪問速度以及最慢的隨機訪問速度。就存儲空間而言,本地硬盤驅動器通常比閃存驅動器具有更多存儲空間,并且網絡驅動器通常比本地硬盤驅動器具有更多存儲空間。因此,本公開的實施例在可用于計算裝置的不同存儲器裝置之間周期性地移動文件,以最優(yōu)化文件的訪問時間并最優(yōu)化系統整體性能。一般地,訪問最多的文件被移動來使得它們的歸屬位置從較慢存儲器裝置改變到較快存儲器裝置。較小的頻繁訪問文件可以移動到提供相對較快的隨機訪問速度的閃存驅動器。較大的頻繁訪問文件可以移動到提供相對較快的順序訪問速度的本地硬盤驅動器。不常訪問的文件可以移動到本地硬盤驅動器, 或者甚至移動到網絡驅動器。最終結果是改善了系統性能,因為訪問頻繁的文件被存儲在更快的存儲器裝置中并因而從更快的存儲器裝置來訪問。換句話說,本發(fā)明人面對的問題是如何在不必改善給定計算裝置的各個硬件部件的情況下改善系統性能。改善系統性能的容易方式是將計算裝置的現有硬件部件替換為更快的硬件部件。可以將現有的處理器替換為更快的處理器,可以將現有的硬盤驅動器替換為更快的硬盤驅動器,等等。然而,將計算裝置的現有部件替換為更快的部件是一種昂貴的嘗試,并且在大規(guī)模、企業(yè)環(huán)境下常常難以證明是有效的。因而,本發(fā)明人的將文件移動到存儲器裝置以改善系統整體性能的技術方案尤為巧妙。不需要新硬件,從而本發(fā)明人的技術方案比采用更快硬件部件替代相應部件更節(jié)省成本。對本公開的各種實施例的描述圖1示出根據本公開一個實施例將存儲在存儲器裝置上的文件的訪問時間進行最優(yōu)化并從而將計算裝置的整體性能最優(yōu)化的方法100??梢酝ㄟ^存儲在計算機可讀介質 (比如半導體或磁數據存儲介質之類的有形計算機可讀介質)上的并且由計算裝置(比如臺式或便攜式計算機)的一個或多個處理器執(zhí)行的計算機程序來實現方法100。在這個示例中,處理器從計算機可讀介質執(zhí)行計算機程序使得該計算機程序執(zhí)行該方法100。方法100保持可用于計算裝置的每個存儲器裝置的存儲特性(10 。例如,針對每個存儲器裝置,這些存儲特性可以包括存儲器裝置的順序讀速度、存儲器裝置的順序寫速度、存儲器裝置的隨機訪問速度、存儲器裝置的順序讀速度、以及存儲器裝置的大小。在一個實施例中,方法100質詢每個存儲器裝置,并響應于該質詢來從存儲器裝置接收該存儲器裝置的存儲特性。在另一個實施例中,方法100測試每個存儲器裝置來自己確定存儲特性。例如,方法100可以從/向存儲器裝置讀/寫非常小的文件來確定該存儲器裝置的讀或寫隨機訪問速度,并且可以從/向存儲器裝置讀/寫非常大的文件來確定該存儲器裝置的讀或寫順序訪問速度。存儲器裝置的順序寫速度是將數據寫入存儲器裝置的速度,也可以稱為持續(xù)寫吞吐速度。類似地,存儲器裝置的順序讀速度是從存儲器裝置讀出數據的速度,也可以稱為持續(xù)讀吞吐速度。對于許多類型的存儲器裝置,順序寫速度通常低于順序讀速度。存儲器裝置的寫隨機訪問速度是數據初始定位到存儲器裝置上的用于寫目的的速度,并且讀隨機訪問速度是數據初始定位到存儲器裝置上的用于讀目的的速度。對于許多類型的存儲器裝置, 寫和讀隨機訪問速度至少是實質相等的,并且也可以統稱為查找時間速度。當訪問給定文件時,方法100至少知悉該文件已被訪問的次數(104)。多個文件中的每一個存儲在可用于所討論的計算裝置的多個存儲器裝置中的給定存儲器裝置上。例如,可用于計算裝置的存儲器裝置可以包括本地安裝的硬盤驅動器,其被稱為本地硬盤驅動器;本地安裝的閃存驅動器,其被簡稱為閃存驅動器;和網絡驅動器,其通常是硬盤驅動器并且計算裝置可通過網絡進行訪問。方法100還可以在部分104中知悉當訪問該文件 (即讀或寫該文件)時該文件的其它特性。這些其它特性可以包括每個文件的大小,以及文件已被寫的具體次數和文件已被讀的次數。在這個方面,注意文件已被訪問的次數等于文件已被寫的次數加上文件已被讀的次數。在一個實施例中,方法100可以通過依靠操作系統跟蹤功能來執(zhí)行部分104。例如,一些類型的操作系統可以自動跟蹤文件已被訪問的次數。這樣的操作系統可以包括 LINUX 操作系統的多個版本,其中LINUX 是Linus "Torvalds的商標。這樣的操作系統還可以包括 Microsoft Windows 操作系統,其中 Microsoft 和 Windows 是 Redmond,Wash 的微軟公司的商標。在另一個實施例中,方法100可以通過對已經訪問了給定文件進行檢測并且響應于這種檢測來將該文件已被訪問的次數進行增量來執(zhí)行部分104。因此,可以存在對文件已被讀的次數和文件已被寫的次數計數的計數器。對已經訪問了給定文件進行檢測本身可以通過許多不同方式來執(zhí)行。例如,在一個實施例中,可以將計算機可執(zhí)行代碼插入操作系統中,當使得操作系統訪問文件時,通過該代碼本身或者通過與操作系統相關地運行的計算機程序來觸發(fā)該計算機可執(zhí)行代碼。作為另一個示例,在另一個實施例中,計算機可執(zhí)行代碼可以總是在后臺運行,以檢測文件被訪問的時刻。另外,在一個實施例中,方法100還在部分104中跟蹤關于每個文件的高速緩存特性。這些高速緩存特性例如可以包括已經高速緩存了每個文件、是否每個文件當前正被高速緩存、每個文件已被高速緩存的次數、和/或每個文件已被高速緩存的時間長度。當將文件從其不確定地所處的非易失性存儲器裝置(即該文件的歸屬位置)臨時復制到另一個更快的存儲器裝置(比如動態(tài)隨機存取存儲器(DRAM)之類的易失性存儲器裝置)時,對該文件進行了高速緩存,在進行高速緩存的同時實際是對該易失性存儲器裝置進行訪問,以改善系統性能。在某些時候,對文件的高速緩存版本的改變被寫回存儲在其歸屬位置處的文件。在給定計算裝置內可用的高速緩存空間量通常小于為文件提供歸屬位置的存儲器裝置上的空間量。因此,可以周期性地從高速緩存刷新高速緩存文件以便在高速緩存內為其它文件騰出空間。方法100至少基于每個文件已被訪問的次數來在存儲器裝置之間周期性地移動至少一個文件,以將這些移動的文件的后續(xù)訪問時間最優(yōu)化,并從而最優(yōu)化系統整體性能 (106)——即,最優(yōu)化計算裝置本身的整體性能。因此,例如,可以將給定文件從第一存儲器裝置上移動到第二存儲器裝置上進行存儲。這意味著給定文件的歸屬位置從第一存儲器裝置變?yōu)榈诙鎯ζ餮b置。
在各種實施例中,在存儲器裝置之間移動至少一個文件還基于每個存儲器裝置的存儲特性、已被訪問的每個文件的大小、每個文件已被具體讀出的次數、和/或每個文件已被具體寫入的次數。S卩,當確定應當將哪些文件從一個存儲器裝置移動到另一個存儲器裝置時,要考慮這些參數中的一個或多個。然而,總的來說,確定應當在存儲器裝置之間移動哪些文件,通過將從文件的當前存儲器裝置移動到不同存儲器裝置的文件的后續(xù)訪問時間最優(yōu)化,提供了計算裝置的系統整體性能的最優(yōu)化。例如,在一個實施例中,可以將訪問次數最多的文件移動到一個或多個具有最快訪問速度的存儲器裝置。因此,這些文件的順序訪問更快地發(fā)生,這改善了計算裝置整體的系統性能。在該實施例中,可以將被寫次數最多的文件移動到具有最快(順序和/或隨機訪問)寫速度的存儲器裝置。類似地,可以將被讀次數最多的文件移動到具有最快(順序和/或隨機訪問)讀速度的存儲器裝置。作為另一個示例,在另一實施例中,可以將訪問次數最多的文件移動到具有最快訪問速度的一個或多個存儲器裝置,但也要考慮文件大小和存儲器裝置大小,以使得不會讓一個文件占據了給定存儲器裝置的全部存儲空間。例如,可以針對每個文件確定文件已被訪問的次數與文件大小的比值。該比值較大的文件——對應于被頻繁訪問的較小文件和被更頻繁訪問的較大文件——可以被移動到具有最快訪問速度但可能具有最小存儲容量的存儲器裝置。該比值較小的文件——對應于被頻繁訪問的較大文件和被非常少地訪問的較小文件——可以被移動到具有相對快的訪問速度并且也具有大存儲容量的存儲器裝置。作為第三示例,在另一實施例中,訪問次數最多的較小文件可以移動到具有最快隨機訪問速度的一個或多個存儲器裝置,并且訪問次數最多的較大文件可以移動到具有最快順序訪問速度的一個或多個存儲器裝置。這是因為,文件越小,則文件的訪問時間越取決于在給定存儲器裝置上定位文件的初始查找時間。類似地,這是因為,文件越大,則文件的訪問時間越取決于從給定存儲器裝置讀文件或將文件寫入給定存儲器裝置的順序持續(xù)吞吐速度。因此,一般而言,本公開的實施例不限于應當如何在存儲器裝置之間移動頻繁訪問的文件的具體最優(yōu)化方式。可以在不脫離本公開預期范圍內的情況下例如修改前文提供的示例。一般地,在存儲器裝置之間移動被頻繁訪問的文件來最優(yōu)化這些文件的后續(xù)訪問時間,以便最優(yōu)化計算裝置的整體的系統性能。在一個實施例中,按照預定進度安排在定期安排的時刻處周期性地在存儲器裝置之間移動至少一個文件。該進度安排可以由用戶提前設置,例如使得在由進度安排所指示的定期安排的時刻處無需用戶直接啟動就發(fā)生存儲器裝置之間的順序周期性文件移動。例如,進度安排可以規(guī)定存儲器裝置之間的文件移動應當基于每日、每周或每月發(fā)生。然而, 在另一個實施例中,用戶可以手動啟動存儲器裝置之間的文件移動。例如,用戶可以手動運行控制前文所述的存儲器裝置之間的文件移動的計算機程序。另外,在一個實施例中,一旦已經在存儲器裝置之間移動了文件,則將每個文件的已被訪問次數重置為零。因此,下一次在存儲器裝置之間移動文件時,僅基于自之前最近一次移動文件起文件已被訪問的次數來移動文件。比較起來,在第二實施例中,一旦已經在存儲器裝置之間移動了文件,每個文件已被訪問的次數特別地并不重置為零。因此,下一次在存儲器裝置之間移動文件時,不是僅基于自之前最近一次移動文件起文件已被訪問的次
7數,而是基于文件總共被訪問的次數來移動文件。在第三實施例中,一旦已經在存儲器裝置之間移動了文件,可以通過除以預定常數來減小每個文件已被訪問的次數。于是,在該實施例中,下一次在存儲器裝置之間移動文件時,基于文件總共被訪問的次數以及基于自之前最近一次移動文件起文件已被訪問的次數兩者來移動文件。然而,因為將每個文件已被訪問的次數除以了一個預定常數,所以下一次在存儲器裝置之間移動文件時,更多地基于自之前最近一次移動文件起文件已被訪問的次數來移動文件,而更少地基于文件總共被訪問的次數來移動文件。例如,第一次在存儲器裝置之間移動文件之前給定文件可能被訪問了二十次,并且第二次在存儲器裝置之間移動文件之前該給定文件可能被訪問了十次。在上述第一實施例中,第二次在存儲器裝置之間移動給定文件是基于給定文件已被訪問了十次,而在上述第二實施例中,此二次移動給定文件是基于給定文件已被訪問了二十次加上十次,或者說三十次。與之相比,在上述第三實施例中,第二次在存儲器裝置之間移動給定文件是基于給定文件已被訪問了二十次除以一個常數并加上十次。另外,在一個實施例中,基于或根據關于每個文件的高速緩存特性來在存儲器裝置之間移動文件。例如,頻繁地高速緩存和/或高速緩存了相對長的時間段的文件可以不從它們的歸屬位置移動到新歸屬位置。如果文件被頻繁地高速緩存,那么即使該文件被頻繁地訪問,一般也不能在將文件歸屬位置從較慢存儲器裝置移動到較快存儲器裝置時很大地改善系統性能。這是因為,如果文件被頻繁高速緩存,那么這表明不經常從該文件的非易失性存儲器裝置上的歸屬位置訪問該文件,相反,將會頻繁從高速緩存訪問其高速緩存版本。因此,在該實施例中,對不常被高速緩存的文件最好地保留了最快存儲器裝置上的存儲空間。對本公開的特定實施例的描述圖2A、圖2B和圖2C分別示出了根據本公開特定實施例的可用于分別實現圖1的方法100的部分102、104和106的表格200、210和220。圖2A的表格200用于方法100 的部分102中。圖2B的表格210用于方法100的部分104中。圖2C的表格220用于方法 100的部分106中。注意,在各種實施例中,不是必須使用所有表格200、210和220。例如, 在一個實施例中,僅在方法100的部分102和/或104中采用了表格200和/或表格210, 而在方法100的部分106中可以不采用表格200。在圖2A中,表格200具有總稱為行202的多個行202A、202B、. . .、202M,以及多個列204。行202對應于可用于計算裝置的存儲器裝置。針對每一行202的存儲器裝置,保持了存儲器裝置的各種存儲特性,如在列204中組織起來的那些。這些存儲特性可以包括標識符(比如存儲器裝置的永久唯一標識符(⑶ID,guaranteed unique identifier))、裝置名稱、裝置的存儲容量、裝置的順序讀速度、裝置的順序寫速度、裝置的隨機訪問讀速度、和裝置的隨機訪問寫速度。注意,存儲器裝置的標識符通常不改變,因為它唯一地標識了該存儲器裝置,而不考慮例如存儲器裝置名稱的變化。在圖2B中,表格210具有總稱為行212的多個行212A、212B.....212N,以及多個
列214。行212對應于可用于計算裝置的存儲器裝置上存儲的文件。針對每一行212的文件,保持了文件的各種文件特性,如在列214中組織起來的那些。這些文件特性可以包括標識符(比如文件的GUID)、文件的文件名、文件的文件大小、文件的讀計數、和文件的寫計數。當訪問一個文件時,根據是讀還是寫該文件來適當地對其讀計數或寫計數增量。如果文件名或文件的大小發(fā)生改變,還可以更新文件名和文件大小。文件的標識符通常不改變, 因為它唯一地標識了該文件,而不考慮該文件所存儲的存儲器裝置,以及不考慮文件名。在圖2C中,表格具有總稱為行222的多個行222A、222B.....222L,以及多個列
224。行222對應于管理要將哪些文件移動到哪些存儲器裝置的條件,如在列2 中組織起來的那些。例如,行222A規(guī)定如果給定文件的訪問計數的總數等于在圖2B的表格210中針對該文件存儲的讀計數數量與寫計數數量之和,那么將該文件移動到具有特定標識符的存儲器裝置,其與圖2A表格200中具有該標識符的存儲器裝置相對應。作為另一示例,行 222B規(guī)定如果給定文件的訪問計數的總數小于B (但大于或等于A),那么將該文件移動到具有特定標識符的存儲器裝置。在圖2C的實施例中,一個文件的訪問計數的總數規(guī)定了該文件移動到的存儲器裝置。代表性計算裝置或計算系統圖3示出了根據本公開的一個實施例的計算裝置300。計算裝置300還可以更一般地稱為計算系統。計算裝置300包括硬件301,以及總稱為存儲器裝置302的存儲器裝置302Α、302Β、· · ·、302M,和三個機構304、306、308。硬件301包括除了存儲器裝置302以外的硬件,比如處理器、易失性半導體存儲器、網絡適配器等。機構304、306和308每一個可以由硬件(比如硬件301)、軟件、或硬件與軟件結合來實現。一個或多個存儲器裝置302每一個可以是本地安裝在計算裝置300中的硬盤驅動器。一個或多個其它存儲器裝置302每一個可以是本地安裝在計算裝置300中的閃存驅動器。存儲器裝置302還可以包括一個或多個網絡存儲器裝置,比如不是本地安裝在計算裝置300中但可以由計算裝置300通過網絡遠程訪問的硬盤驅動器。一般而言,存儲器裝置 302存儲了在計算裝置300內訪問或由計算裝置300訪問的多個文件。存儲器裝置302是物理獨立的存儲器裝置。這表明存儲器裝置302每一個是物理獨立于或不同于其它存儲器裝置302的單獨的存儲器裝置。例如,在一個實施例中,每個存儲器裝置物理封裝在其自己的外殼內,而在其它實施例中,多個存儲器裝置每一個可以仍然是物理獨立或不同的,然而卻封裝在同一物理外殼內。在這一點上,兩個或多個存儲器裝置302不包含相同存儲器裝置的不同部分。例如,一個存儲器裝置可以是封裝在它自己外殼內的物理獨立的硬盤驅動器。然而,不能說一個存儲器裝置是該物理獨立的硬盤驅動器的一個部分,而另一個存儲器裝置是該物理獨立的硬盤驅動器的另一個部分。存儲特性保持機構304執(zhí)行圖1的方法100的部分102,并且在一個實施例中可以使用圖2A的表格200。因此,機構304保持存儲器裝置302的存儲特性。文件訪問跟蹤機構306執(zhí)行方法100的部分104,并且在一個實施例中可以使用圖2B的表格210。因此,機構306對存儲在存儲器裝置302上的每個文件被訪問的次數進行跟蹤。文件移動機構308 執(zhí)行方法100的部分106,并且在一個實施例中可以使用圖2C的表格220。因此,機構308 在存儲器裝置302之間移動文件,改變這些文件的歸屬位置,至少基于文件已被訪問的次數來最優(yōu)化所移動文件的后續(xù)訪問時間,從而最優(yōu)化計算裝置300的系統性能。最后要注意,在本公開的一些實施例中,可以通過文件的相同路徑和文件名來訪問文件而不考慮該文件被物理存儲的存儲器裝置。例如,與物理存儲器裝置相對而言的邏輯存儲卷可以由諸如“c ”、“d ”等字母表示。每個邏輯存儲容卷還可以分成目錄或文件
9夾。例如,一個卷的基本目錄或根目錄可以具有目錄“目錄_1 ”和“目錄_2 ”,并且第一個目錄還可以具有子目錄“子目錄_3”和“子目錄_b”。因此,一個文件可以被指示為存儲在由 “c: ”標識的通過路徑“c:direct0ry_0ne\subdirect0ry_a”的邏輯卷的給定目錄的給定子目錄下。 在這一點上要注意,在本公開的一些實施例中,即使給定文件所在的物理獨立的存儲器裝置由于例如圖1的方法100的部分106的執(zhí)行而發(fā)生了改變,包含該文件的邏輯卷也是不變的。例如,文件可以物理地存儲在存儲器裝置302A上,并且可以邏輯地存儲在使用路徑“c:direct0ry_0ne\subdirect0ry_a”的給定邏輯卷的給定目錄下。如果在方法100執(zhí)行以后,該文件被物理地移動以使其物理地存儲在存儲器裝置302B上,在這樣的實施例中,仍然說該文件邏輯存儲在使用路徑“c direct0ry_0ne\subdirect0ry_a”的給定邏輯卷的給定目錄下。因此,從用戶角度而言,用戶仍然使用相同路徑“c:direct0ry_ 0ne\SUbdirect0ry_a”在邏輯卷“c ”處訪問所討論的該文件,盡管該文件物理存儲的物理存儲器裝置已經發(fā)生了改變。
權利要求
1.一種方法,包括當訪問多個文件中的每個文件時,至少知悉每個文件已被訪問的次數,其中每個文件存儲在多個存儲器中的一個存儲器上;和至少基于每個文件已被訪問的次數來周期性地在所述多個存儲器之間移動多個文件中的至少一個文件,以使得所述至少一個文件從存儲在所述多個存儲器中的第一存儲器上移動為存儲在所述多個存儲器中的第二存儲器上,以最優(yōu)化所述至少一個文件的后續(xù)訪問時間,其中,所述多個存儲器包括物理獨立的多個存儲器裝置,所述多個存儲器裝置中的至少一個與所述多個存儲器裝置中的其它一個或多個相比具有不同的存儲特性。
2.如權利要求1所述的方法,還包括保持所述多個存儲器中的每個存儲器的存儲特性。
3.如權利要求2所述的方法,其中保持所述多個存儲器中的每個存儲器的存儲特性包括針對每個存儲器來存儲如下項中的一個或多個存儲器的順序讀速度; 存儲器的順序寫速度; 存儲器的隨機訪問讀速度; 存儲器的隨機訪問寫速度;和存儲器的大小。
4.如權利要求2或3所述的方法,其中周期性地在所述多個存儲器之間移動多個文件還基于每個存儲器的存儲特性。
5.如權利要求1、2、3或4所述的方法,其中至少知悉每個文件已被訪問的次數還包括知悉已被訪問的每個文件的大小,并且其中周期性地在所述多個存儲器之間移動多個文件還基于已被訪問的每個文件的大
6.如權利要求1、2、3、4或5所述的方法,其中至少知悉每個文件已被訪問的次數還包括依靠至少知悉每個文件已被訪問的次數的操作系統跟蹤功能。
7.如權利要求1、2、3、4、5或6所述的方法,其中至少知悉每個文件已被訪問的次數包括對多個文件中的給定文件已被訪問進行檢測;和響應于對給定文件已被訪問的檢測,將給定文件已被訪問的次數進行增量。
8.如權利要求1、2、3、4、5、6或7所述的方法,其中至少知悉每個文件已被訪問的次數包括知悉每個文件已被讀的次數和知悉每個文件已被寫的次數,并且其中周期性地在所述多個存儲器之間移動多個文件還基于每個文件已被讀的次數和每個文件已被寫的次數。
9.如權利要求1、2、3、4、5、6、7或8所述的方法,其中至少知悉每個文件已被訪問的次數還包括知悉關于每個文件的高速緩存特性,并且其中周期性地在所述多個存儲器之間移動多個文件還基于關于每個文件的高速緩存特性。
10.如權利要求9所述的方法,其中關于每個文件的高速緩存特性包括如下項中的一個或多個是否已經高速緩存了每個文件; 是否當前正在高速緩存每個文件; 每個文件已被高速緩存的次數;和每個文件已被高速緩存的時間長度。
11.如權利要求1、2、3、4、5、6、7、8、9或10所述的方法,其中周期性地在所述多個存儲器之間移動多個文件中的至少一個文件包括將多個文件中已被訪問了最多次數的文件子集移動到一個或多個具有最快訪問速度的存儲器裝置。
12.如權利要求1、2、3、4、5、6、7、8、9、10或11所述的方法,其中周期性地在所述多個存儲器之間移動多個文件中的至少一個文件包括將多個文件中已被訪問了最多次數的文件子集移動到一個或多個具有最快訪問速度的存儲器裝置,并且考慮所述已被訪問了最多次數的文件子集的大小和所述具有最快訪問速度的存儲器裝置的大小,以使得沒有一個文件占據所述多個存儲器的給定存儲器上的全部存儲空間。
13.如權利要求1、2、3、4、5、6、7、8、9、10、11或12所述的方法,其中周期性地在所述多個存儲器之間移動多個文件的至少一個文件包括如下項中的一個或多個按照預定進度安排在定期安排的時刻處周期性地在所述多個存儲器之間移動多個文件中的至少一個文件;和響應于用戶手動啟動來周期性地在所述多個存儲器之間移動多個文件中的至少一個文件。
14.一種計算機可讀介質,其上存儲有由一個或多個處理器執(zhí)行的計算機程序,所述處理器從所述計算機可讀介質執(zhí)行所述計算機程序使得所述計算機程序執(zhí)行一種方法,所述方法包括當訪問多個文件中的每個文件時,至少知悉每個文件已被訪問的次數,其中每個文件存儲在多個存儲器中的一個存儲器上;和至少基于每個文件已被訪問的次數來周期性地在所述多個存儲器之間移動多個文件中的至少一個文件,以使得所述至少一個文件從存儲在所述多個存儲器中的第一存儲器上移動為存儲在所述多個存儲器中的第二存儲器上,以最優(yōu)化所述至少一個文件的后續(xù)訪問時間,其中,所述多個存儲器包括物理獨立的多個存儲器裝置,所述多個存儲器裝置中的至少一個與所述多個存儲器裝置中的其它一個或多個相比具有不同的存儲特性。
15.一種計算系統,包括多個存儲器,包括了物理獨立的多個存儲器裝置,所述多個存儲器裝置中的至少一個與所述多個存儲器裝置中的其它一個或多個相比具有不同的存儲特性,所述多個存儲器存儲了多個被訪問的文件;和移動機構,至少基于每個文件已被訪問的次數來周期性地在所述多個存儲器之間移動多個文件中的至少一個文件,以使得所述至少一個文件從存儲在所述多個存儲器中的第一存儲器上移動為存儲在所述多個存儲器中的第二存儲器上,以最優(yōu)化所述至少一個文件的后續(xù)訪問時間。
全文摘要
當訪問多個文件的每個文件時,至少知悉每個文件已被訪問的次數。每個文件存儲在多個存儲器的一個存儲器上。至少基于每個文件已被訪問的次數來周期性地在多個存儲器之間移動多個文件的至少一個文件。因此,將至少一個文件從多個存儲器的該文件正存儲于其上的第一存儲器上移動來存儲到多個存儲器的第二存儲器上,以最優(yōu)化至少一個文件的后續(xù)訪問時間。多個存儲器是物理獨立的存儲器裝置。存儲器裝置的至少一個與存儲器裝置的其它一個或多個相比具有不同的存儲特性。
文檔編號G06F9/00GK102349055SQ200980158066
公開日2012年2月8日 申請日期2009年3月10日 優(yōu)先權日2009年3月10日
發(fā)明者馬克·K·霍坎森 申請人:惠普研發(fā)有限合伙公司