TWI483176B - 儲存於儲存體上之檔案之取用時間的最佳化技術 - Google Patents

儲存於儲存體上之檔案之取用時間的最佳化技術 Download PDF

Info

Publication number
TWI483176B
TWI483176B TW099106752A TW99106752A TWI483176B TW I483176 B TWI483176 B TW I483176B TW 099106752 A TW099106752 A TW 099106752A TW 99106752 A TW99106752 A TW 99106752A TW I483176 B TWI483176 B TW I483176B
Authority
TW
Taiwan
Prior art keywords
file
files
storage
accessed
storages
Prior art date
Application number
TW099106752A
Other languages
English (en)
Other versions
TW201040830A (en
Inventor
Mark K Hokanson
Original Assignee
Hewlett Packard Development Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201040830A publication Critical patent/TW201040830A/zh
Application granted granted Critical
Publication of TWI483176B publication Critical patent/TWI483176B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Description

儲存於儲存體上之檔案之取用時間的最佳化技術 發明的技術領域
本發明係有關儲存於儲存體上之檔案之取用時間的最佳化技術。
發明的技術背景
一運算環境脈絡中的一檔案是代表一或多項不同事物之電腦可讀資料的一集合。例如,一檔案可為一文字處理檔案,其表示可以使用一文字處理電腦程式來觀看並且編輯的文字。舉另一個實例來說,一檔案可為一試算表檔案,其表示可以使用一試算表電腦程式來觀看並且編輯的一試算表。舉第三個實例來說,一檔案可為一電腦程式檔案,其表示可以受到執行或運轉的一電腦程式。係把檔案儲存在儲存裝置上,例如硬碟驅動機。
發明的概要說明
本發明揭露一種方法,其包含下列步驟:當多個檔案中的各個檔案受到取用時,至少追蹤各個檔案已受取用的次數,其中係把各個檔案儲存在多個儲存體中的一儲存體上;以及至少根據各個檔案已受取用的該等次數,週期性地在該等多個儲存體之間移動該等多個檔案中的至少一檔案,如此使該至少一檔案從受儲存在該等多個儲存體之一第一儲存體上移動到受儲存在該等多個儲存體之一第二儲存體上,以最佳化該至少一檔案的後續取用時間,其中該等多個儲存體包含多個實體上不同的儲存裝置,該等儲存裝置中之至少一個裝置的儲存特性不同於該等儲存裝置中之一或多個其他裝置的儲存特性。
圖式的簡要說明
第1圖以流程圖展示出根據本發明一實施例之一種用以最佳化儲存在儲存裝置上之檔案之取用時間以及用以最佳化整體系統效能的方法。
第2A圖、第2B圖、以及第2C圖展示出可用以實行根據本發明一實施例之第1圖之該方法之多個部份的圖表。
第3圖展示出根據本發明一實施例的一種代表性運算裝置或運算系統。
發明的詳細說明 問題的陳述以及解決方案的概觀
一運算環境脈絡中的一檔案具有一本地位置。該本地位置指明了非依電性儲存裝置,該非依電性儲存裝置無限期地儲存有該檔案,直到由一使用者手動地把該檔案移動到另一個儲存裝置或者直到該檔案遭到刪除為止。典型地,當最初產生一檔案時,該檔案的本地位置-即,無限期地儲存有該檔案的該非依電性儲存裝置-便受到指定。在此時之後,一運算裝置可從此位置取用該檔案。
要注意的是,某些類型的運算裝置可快取一檔案,其中該檔案較容易取用,例如把該檔案暫時性地從一硬碟驅動機複製到一依電性半導體隨機存取記憶體,但該種移動動作移動僅是暫時性的,且其本地位置並不會改變。要另外注意的是,稱為重組程式的公用電腦程式可最佳化一特定儲存裝置(例如,一特定硬碟驅動機)的檔案實際上如何受儲存在此特定儲存裝置上。然而,重組程式並不會把檔案從一儲存裝置移動到另一個儲存裝置。
本發明之發明人所提供的發明見解是,有鑑於現代運算裝置可使用多種不同的儲存裝置,可使檔案在該等不同儲存裝置之間移動,以使他們能儲存在提供經常取用檔案之最佳化或近乎最佳化取用時間的儲存裝置上。換言之,上面最初儲存有一給定檔案的儲存裝置可能不是用以改進檔案之取用時間且因此改善整體系統效能的最佳化儲存裝置。反之,本案發明人已經有創造力地判定出應該要週期性地在一運算裝置可得的不同儲存裝置之間移動檔案,以確保最佳化的檔案取用時間。
週期性地在一運算裝置可得的該等不同儲存裝置之間移動檔案係表示該等檔案的本地位置已經改變。換言之,該種移動動作不僅是較快速儲存裝置上進行簡單地快取該等檔案的動作。一檔案的取用時間是一運算裝置用以取用該檔案的時間長度-例如讀取或寫入該檔案。一檔案的取用時間大致上仰賴上面儲存有該檔案之儲存裝置的儲存特性。該等儲存特性包括按序存取速度以及隨機存取速度。按序存取速度係表示可從當中依序地儲存資料的一儲存裝置擷取出該資料的速度,且亦可被稱為持續輸貫速度。比較來說,隨機存取速度則表示資料最初設置於該儲存裝置上的速度,且亦可被稱為搜尋時間速度。
不同類型的儲存裝置具有不同的儲存特性。本地式地駐存在一運算裝置中的一現代硬碟驅動機往往具有相對快的按序存取速度,但具有相對慢的隨機存取速度。比較來說,相較於最快速的現代硬碟驅動機來說,為一種非依電性半導體儲存裝置的一快閃驅動機往往具有相對快的隨機存取速度,但具有相對慢的按序存取速度。比較上來說,一網路驅動機,其往往是一運算裝置可透過一網路而進行遠端存取的一硬碟驅動機,典型地具有最慢的按序存取速度以及最慢的隨機存取速度。以儲存空間來說,一本地硬碟驅動機的儲存空間典型地多於一快閃驅動機的儲存空間,且一網路驅動機的儲存空間典型地多於一本地硬碟驅動機的儲存空間。
因此,本發明的實施例週期性地在一運算裝置可得的不同儲存裝置之間移動檔案,以最佳化該等檔案的取用時間並且最佳化整體系統效能。大致上,將使最常受取用的檔案移動,以使其本地位置從一較慢儲存裝置改變為一較快儲存裝置。可把較小的經常取用檔案移動到快閃驅動機,其提供相對快速的隨機存取速度。可把較大的經常取用檔案移動到本地硬碟驅動機,其提供相對快的按序速度。可把未經常受取用的檔案移動到本地硬碟驅動機,或甚至移動到網路驅動機。最終的結果是,可以使系統效能改善,因為係把經常受取用檔案儲存在較快速的儲存裝置中且因此可從較快速儲存裝置取用該等經常受取用檔案。
換言之,本案發明人面對的問題是如何改善系統效能而不會必然地改善一給定運算裝置的個別硬體部件。改善系統效能的簡易方式是單單地把一運算裝置的現存硬體部件轉換為較快速的部件。可以把一現存處理器置換成一快速處理器來置換、可以把一現存硬碟驅動機置換成一快速硬碟驅動機等等。然而,把一運算裝置的現存部件置換為較快速部件的費用高昂,且常常難以用於大規模的企業環境中。因此,本案發明人的解決方案是把檔案移動到儲存裝置,藉此將可提升整體系統效能。並不需要新的硬體,因此相較於把硬體部件置換成較快速硬體部件的方案來說,本案發明人的解決方案較具成本效益。
本發明較佳實施例的詳細說明
第1圖以流程圖展示出根據本發明一實施例之一種用以最佳化儲存在儲存裝置上之檔案之取用時間並且可因此最佳化一運算裝置之整體系統效能的方法100。方法100可由儲存在一電腦可讀媒體(例如,如一半導體或一磁性資料儲存媒體的一有形電腦可讀媒體)上的一電腦程式來實行,並且可由一運算裝置(例如,一桌上型或一膝上型電腦)的一或多個處理器來實行。在該種事例中,由該等處理器執行來自該電腦可讀媒體之電腦程式的動作將使該電腦程式進行方法100。
方法100可維持一運算裝置可得之各個儲存裝置的儲存特性(部份102)。例如,針對各個儲存裝置,該等儲存特性可包括該儲存裝置的按序讀取速度、該儲存裝置的按序寫入速度、該儲存裝置的隨機存取速度、該儲存裝置的按序讀取速度、以及該儲存裝置的大小。在一實施例中,方法100詢問各個儲存裝置,並且響應於此項詢問,接收來自該儲存裝置之該儲存裝置的該等儲存特性。在另一個實施例中,方法100測試各個儲存裝置,以自我判定該等儲存特性。例如,方法100可把一非常小檔案寫入到一儲存裝置中或從一儲存裝置讀取一非常小檔案,以判定該儲存裝置的寫入或讀取隨機存取速度,並且可把一非常大檔案寫入到一儲存裝置中或從一儲存裝置讀取一非常大檔案,以判定該儲存裝置的寫入或讀取按序存取速度。
一儲存裝置的按序寫入速度為把資料寫入到一儲存裝置的速度,且亦可被稱為持續寫入輸貫速度。相似地,一儲存裝置的按序讀取速度為從一儲存裝置讀取資料的速度,且亦可被稱為持續讀取輸貫速度。針對多種類型的儲存裝置,該按序寫入速度典型地低於該按序讀取速度。一儲存裝置的寫入隨機存取速度為針對寫入目的而使資料最初地設置於該儲存裝置上的速度,且該讀取隨機存取速度為針對讀取目的而使資料最初地設置於該儲存裝置上的速度。針對多種類型的儲存裝置,該等寫入與讀取隨機存取速度至少實質上是相同的,且可大致上被稱為搜尋時間速度。
當一給定檔案受到取用時,方法100至少追蹤此檔案已經受取用的次數(部份104)。多個檔案中的各個檔案係儲存在該運算裝置可得之該等儲存裝置中的一給定儲存裝置上。例如,一運算裝置可得的該等儲存裝置可包括本地式安裝硬碟驅動機,其被稱為本地硬碟驅動機;本地式安裝快閃驅動機,其簡單地被稱為快閃驅動機;以及網路驅動機,其為典型地硬碟驅動機且可由該運算裝置透過一網路來取用。方法100亦可在部份104中追蹤該檔案受取用時(即,當該檔案受讀取或寫入時)的其他特性。該等其他特性可包括各個檔案的大小,以及一檔案已經受到寫入的特定次數以及一檔案已經受到讀取的次數。於此,要注意的是,一檔案已經受到取用的次數等於該檔案已經受到寫入的次數加上該檔案已經受到讀取的次數。
在一實施例中,方法100可藉著仰賴作業系統的追蹤功能來進行部份104。例如,某些類型的作業系統可自動地追蹤一檔案已經受取用的次數。該種作業系統可包括作業系統的多種版本,其中為Linus Torvalds的商標。該種作業系統可另包括 作業系統的多種版本,其中以及為位於美國華盛頓州雷蒙市之Microsoft Corp.的商標。
在另一個實施例中,方法100可藉著檢測一給定檔案已經受到取用來進行部份104,並且響應於該項檢測動作,增加此檔案受取用的次數。因此,可能會有用以計算一檔案已經受讀取之次數以及一檔案已經受寫入之次數的多個計數器。可利用多種不同方式來進行檢測出一給定檔案已經受取用的動作。例如,在一實施例中,可把可執行電腦程式碼插入到該作業系統中,其當使該作業系統取用一檔案時將受到觸發,不管是本身進行取用或由與該作業系統有關而運轉的一電腦程式來取用。舉另一個實例來說,在另一個實施例中,可執行電腦程式碼可永遠在背景中運作,以檢測出一檔案何時受到取用。
再者,在一實施例中,方法100亦在部份104中追蹤有關各個檔案的快取特性。該等快取特性可例如包括各個檔案是否已經受到快取、各個檔案是否目前正受到快取、各個檔案已經受到快取的次數、及/或各個檔案已經受到快取的時間長度。當從一檔案無限期地駐存之該非依電性儲存裝置(即,該檔案的本地位置)把該一檔案暫時性地複製到另一個、較快速的儲存裝置時,該檔案便受到快取,例如一依電性儲存裝置,如動態隨機存取記憶體(DRAM),而可從該依電性裝置取用該檔案,而同時該檔案係針對提升系統效能的目的而受到快取。在某個時點,對該檔案之快取版本進行的改變將被寫回到儲存在其本地位置上的該檔案中。一給定運算裝置中的可得快取空間量典型地小於提供用於檔案之本地位置之該等儲存裝置上的空間量。因此,可週期性地從該快取記憶體中清除經快取檔案,以在該快取記憶體中留下空間供其他檔案使用。
週期性地,方法100至少根據各個檔案已經受到取用的次數,在該等儲存裝置之間移動該等檔案中的至少一個,以最佳化該等經移動檔案的後續取用時間,並且因此最佳化整體系統效能(部份106)-即,最佳化該運算裝置本身的整體效能。因此,例如,可使一給定檔案從受儲存在一第一儲存裝置上移動到受儲存在一第二儲存裝置上。這表示該給定檔案的本地位置會改變,從該第一儲存裝置改變到該第二儲存裝置。
在各種不同實施例中,在該等儲存裝置之間移動該等檔案中之至少一個的動作係另根據各個儲存裝置的儲存特性、已經受到取用之各個檔案的大小、各個檔案已經特別地受到讀取的次數、及/或各個檔案已經特別地受到寫入的次數。換言之,當判定出應該要從一儲存裝置移動哪些檔案到另一個儲存裝置時,將把該等參數中的一或多個列入考量。然而,大致上,判定出應該要在該等儲存裝置中移動哪些檔案的動作可藉著最佳化把該等檔案從其目前儲存裝置移動到不同儲存裝置的後續取用時間,來提供最佳化該運算裝置之整體系統效能的優點。
例如,在一實施例中,可把已經受到取用最多次數的該等檔案移動到具有最快存取速度之該等儲存裝置中的一或多個。因此,後續取用該等檔案的動作將更快速地進行,其可改善該運算裝置的整體系統效能。在此實施例中,可把已受寫入最多次數的該等檔案移動到具有最快(按序及/或隨機存取)寫入速度的儲存裝置。相似地,可把已受讀取最多次數的該等檔案移動到具有最快(按序及/或隨機存取)讀取速度的儲存裝置。
舉另一個實例來說,在另一個實施例中,可把已受取用最多次數的該等檔案移動到具有最快存取速度之該等儲存裝置中的一或多個,但當亦考量到該等檔案的大小以及該等儲存裝置的大小時,並不會有一個檔案會占用一給定儲存裝置的所有儲存空間。例如,可針對各個檔案來判定一檔案已經受到取用之次數比上該檔案之大小的一比例。具有較大比例的該等檔案-對應於經常受到取用的較小檔案以及更常受到取用的較大檔案-可隨後被移動到具有最快存取速度但可能具有最小儲存容量的儲存裝置中。具有較小比例的該等檔案-對應於經常受到取用的較大檔案以及較不常受到取用的較小檔案-可隨後被移動到具有相對快速存取速度且亦具有大儲存容量的儲存裝置中。
舉第三個實例來說,在另一個實施例中,可把已經受到取用最多次數的該等較小檔案移動到具有最快隨機存取速度的一或多個儲存裝置,且可把已經受到取用最多次數的該等較大檔案移動到具有最快按序存取速度的一或多個儲存裝置。這是因為檔案越小,檔案的取用時間便越依據在一給定儲存裝置上找到該檔案的初始搜尋時間。相似地,這是因為檔案越大,檔案的取用時間便越依據從一給定儲存裝置讀取該檔案的後續持續輸貫速度或把該檔案寫入到一給定儲存裝置的後續持續輸貫速度。
因此,大致上,本發明的實施例不限於有關應該如何在該等儲存裝置之間移動經常受到取用檔案的特定最佳化方法。例如,在不脫離本發明闡述範圍的條件下,可以到修改上面段落中提供的該等實例。大致上,將在該等儲存裝置之間移動經常受到取用的檔案,以最佳化該等檔案的後續取用時間,以便最佳化該運算裝置的整體系統效能。
在一實施例中,係根據一預定排程,於規律排程時間,在該等儲存裝置之間週期性地移動該等檔案中的至少一個。此項排程可預先由一使用者設定,例如,以使在該等儲存裝置之間的後續週期性檔案移動能進行,而不會有該排程指定之於規律排程時間的即時使用者開始動作。例如,該排程可指明應該依據每天、每周、或每月的方式在該等儲存裝置之間進行檔案移動動作。然而,在另一個實施例中,該使用者可手動地啟始在該等儲存裝置之間進行的檔案移動動作。例如,該使用者可手動地執行能促成在該等儲存裝置之間進行上述檔案移動動作的一電腦程式。
再者,在一實施例中,一旦已經在該等該等儲存裝置之間移動該等檔案,將把各個檔案已受取用的次數重設為0。因此,下一次在該等儲存裝置之間移動該等檔案時,將根據從該等檔案先前受到移動的最近時間起算之該等檔案已受取用的次數,來移動該等檔案。比較來說,在一第二實施例中,一旦已經在該等儲存裝置之間移動該等檔案,將特別地把各個檔案已經受到取用的次數不重設為0。因此,下一次在該等儲存裝置之間移動該等檔案時,將根據從該等檔案受到取用的總次數來移動該等檔案,而非只是根據從該等檔案先前受到移動的最近時間起算之該等檔案已經受到取用的次數。
在第三實施例中,一旦已經在該等儲存裝置之間移動該等檔案,可以藉著除以一個預定常數來降低各個檔案受到取用的次數。在此實施例中,下一次在該等儲存裝置之間移動該等檔案時,將根據該等檔案已經受到取用的總次數並且根據從該等檔案先前受到移動的最近時間起算之該等檔案已經受到取用的次數,來移動該等檔案。然而,因著把各個檔案受到取用的次數除以一個預定常數,下一次在該等該等儲存裝置之間移動該等檔案時,將較根據從該等檔案先前受到移動的最近時間起算之該等檔案已經受到取用的次數,而較不根據該等檔案已經受到取用的總次數,來移動該等檔案。
例如,在第一次於該等儲存裝置之間移動該等檔案之前,可以取用一給定檔案20次,且在第二次於該等儲存裝置之間移動該等檔案之前,可另取用該給定檔案10次。在上面的第一實施例中,是否在該等儲存裝置之間移動該給定檔案第二次係根據該給定檔案已經受到取用10次而定,而在上面的第二實施例中,是否在該等儲存裝置之間移動該給定檔案第二次則根據該給定檔案已經受到取用20次加上10次,或30次而定。比較來說,在上面的第三實施例中,是否在該等儲存裝置之間移動該給定檔案第二次係根據該給定檔案已經受到取用20次除以一個常數,加上10次而定。
再者,在一實施例中,該等檔案係根據或依據各個檔案的快取特性而在該等儲存裝置之間移動。例如,可能不會把經常受到快取及/或受到快取達相對長時間的檔案從其本地位置移動到新的本地位置。當把一檔案的本地位置從一較慢儲存裝置移動到一較快速儲存裝置時,即使該檔案經常地受到取用,該檔案亦經常地受到快取,系統效能大致上不會改善太多。這是因為如果一檔案經常地受到快取,這表示將不經常地從位於一非依電性儲存裝置上的本地位置取用該檔案,且反之將經常地從該快取記憶體取用其快取版本。因此,在此實施例中,將可最佳地把較快速儲存裝置上的儲存空間保留為未經常受到快取的檔案。
本發明特定實施例的說明
第2A圖、第2B圖、以及第2C圖分別展示出可用以實行根據本發明一實施例之第1圖之該方法之多個部份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中使用表220。
在第2A圖中,表200具有數個列202A、202B至202M,整體地稱為列202,以及數個行204。列202對應於一運算裝置可得的儲存裝置。針對各列202的儲存裝置,可維持該儲存裝置的各種不同儲存特性,如透過行204所組織的。該等儲存特性可包括一識別符,例如該儲存裝置的一保護獨特識別符(GUID)、該裝置的一名稱、該裝置的儲存容量、該裝置的按序讀取速度、該裝置的按序寫入速度、該裝置的隨機存取讀取速度、以及該裝置的隨機存取寫入速度。要注意的是,該儲存裝置的識別符典型地並不會改變,因為它獨特地識別該儲存裝置,不管該儲存裝置的名稱是否改變。
在第2B圖中,表210具有數個列212A、212B至212N,整體地稱為列212,以及數個行214。該等列212對應於儲存在該運算裝置可得之該等儲存裝置上的該等檔案。針對各列212的檔案,可維持該檔案的各種不同儲存特性,如透過行214所組織的。該等檔案特性可包括一識別符,例如該檔案的一GUID、該檔案的一檔案名稱、該檔案的檔案大小、該檔案的一讀取計數、以及該檔案的一寫入計數。當一檔案受到取用時,將依據該檔案是正受讀取或正受寫入,來適當地增加其讀取或寫入計數。如果該檔案名稱或該檔案大小改變,該檔案的檔案名稱與大小亦可受到更新。該檔案的識別符典型地並不會改變,因為它獨特地識別該檔案,不管儲存有該檔案的儲存裝置為何,也不管該檔案的名稱為何。
在第2C圖中,表220具有數個列222A、222B至212L,整體地稱為列222,以及數個行224。該等列222對應於管理要把哪些檔案移動到哪些儲存裝置的狀況,如透過行224所組織的。例如,列222A指明出如果一給定檔案具有小於A的一取用計數總數(等於讀取計數加上寫入計數,如針對第2B圖之表210中的檔案所儲存的),那麼便把該檔案移動到具有一特定識別符的該儲存裝置,對應於具有第2A圖之表200中此識別符的該儲存裝置。舉另一個實例,列222B指明出如果一給定檔案具有小於B的一取用計數總數(但大於或等於A),那麼便把該檔案移動到具有一特定識別符的該儲存裝置中。在第2C圖的實施例中,一檔案之取用計數的總數指出該檔案將移動到的該儲存裝置。
代表性運算裝置或運算系統
第3圖展示出根據本發明的一實施例的一種運算裝置300。運算裝置300亦可被稱為一運算系統。運算裝置300包括硬體301、儲存裝置302A、302B至302M(其整體地稱為儲存裝置302),以及3個機構304、306與308。硬體301包括除了儲存裝置302以外的硬體,例如處理器、依電性半導體記憶體、網路配接器等。機構304、306與308可各實行於硬體(例如硬體301)、軟體、或硬體與軟體的一組合中。
儲存裝置302中的一或多個可各為本地式地安裝在運算裝置300中的一硬碟驅動機。儲存裝置302中的一或多個其他裝置可各為本地式地安裝在運算裝置300中的一快閃驅動機。儲存裝置302亦可包括一或多個網路儲存裝置,例如並未本地式地安裝在運算裝置300中的硬碟驅動機,但反之可由運算裝置300透過一網路來遠端地存取。大致上,儲存裝置302儲存有數個檔案,其可在運算裝置300中受到取用或由運算裝置300取用。
儲存裝置302為實體上不同儲存裝置。這表示儲存裝置302各為一分離儲存裝置,其實體上不同於另一個儲存裝置302或與另一個儲存裝置302有差異。例如,在一實施例中,各個儲存裝置係實體上包覆於其本身的外殼中,雖然在其他實施例中,數個儲存裝置仍可各實體上不同或具有差異,而同時包覆於相同實體外殼中。於此,儲存裝置302中的二或更多個不包含相同儲存裝置的不同部份。例如,一儲存裝置可為包覆在其本身外殼中的一實體上不同硬碟驅動機。然而,並非表示一儲存裝置為該實體上不同硬碟驅動機的一部分,且並不表示另一個儲存裝置為該實體上不同硬碟驅動機的另一個部份。
儲存特性維持機構304進行第1圖之方法100的部份102,且在一實施例中可使用第2A圖的表200。因此,機構304維持儲存裝置302的儲存特性。檔案取用追蹤機構306進行方法100的部份104,且在一實施例中可使用第2B圖的表210。因此,機構306追蹤儲存在儲存裝置302上之各個檔案受到取用的次數。檔案移動機構308進行方法100的部份106,且在一實施例中可使用第2C圖的表220。因此,機構308至少根據該等檔案已經受到取用的次數在儲存裝置302之間移動該等檔案,進而改變該等檔案的本地位置,以最佳化該等經移動檔案的後續取用時間,並且因此最佳化運算裝置300的系統效能。
最後要注意的是,在本發明的某些實施例中,可利用相同路徑與檔案名稱來取用一檔案,不管實體上儲存該檔案的儲存裝置為何。例如,邏輯儲存卷-相較於實體儲存裝置-可由字母來表示,例如〝c:〞、〝d:〞等。可另把各個邏輯儲存卷劃分為多個目錄或資料夾。例如,一儲存卷的主要或根目錄可具有目錄〝directory_one〞以及〝directory_two〞,且第一目錄可另具有子目錄〝subdirectory_a〞以及〝subdirectory_b〞。因此,可把一檔案表示為受儲存在由〝c:〞表示之該邏輯卷之一給定目錄的一給定子目錄中,以路徑〝c:\directory_one\subdirectory_a〞來表示。
於此,要注意的是,在本發明的某些實施例中,即使上面駐存有一給定檔案的實體上不同儲存裝置會因著第1圖之方法100之部份106的效能而改變,包含此檔案的該邏輯卷並不會改變。例如,可把一檔案實體上儲存在儲存裝置302A上,且可利用路徑〝c:\directory_one\subdirectory_a〞把該檔案邏輯性地儲存在一給定邏輯卷的一給定目錄中。如果在進行了方法100之後,該檔案實體上受到移動,因此它實體上受儲存在儲存裝置302B上,在該等實施例中,仍可以說該檔案係利用路徑〝c:\directory_one\subdirectory_a〞而邏輯性地儲存在該給定邏輯卷的該給定目錄中。因此,從使用者的觀點來說,該使用者仍可利用相同路徑〝c:\directory_one\subdirectory_a〞而於該邏輯卷〝c:〞取用該檔案,即使實體地儲存該檔案的該實體儲存裝置已經改變。
100...方法
102~106...部份(步驟)
200...表
202A~202M...列
204...行
210...表
212A~202N...列
214...行
220...表
222A~222L...列
224...行
300...運算裝置
301...硬體
302A~302M...儲存裝置
304‧‧‧儲存特性維持機構
306‧‧‧檔案取用追蹤機構
308‧‧‧檔案移動機構
第1圖以流程圖展示出根據本發明一實施例之一種用以最佳化儲存在儲存裝置上之檔案之取用時間以及用以最佳化整體系統效能的方法。
第2A圖、第2B圖、以及第2C圖展示出可用以實行根據本發明一實施例之第1圖之該方法之多個部份的圖表。
第3圖展示出根據本發明一實施例的一種代表性運算裝置或運算系統。
100...方法
102~106...部份(步驟)

Claims (15)

  1. 一種最佳化檔案存取時間之方法,其包含下列步驟:當多個檔案中的各個檔案受到存取時,追蹤至少各個檔案已受存取的次數,其中係把各個檔案儲存在多個儲存體中的一儲存體上;以及根據一最佳化策略,週期性地在該等多個儲存體之間移動該等多個檔案中的至少一檔案,以最佳化該至少一檔案的後續存取時間,其中該等多個儲存體包含多個實體上不同的儲存裝置,該等儲存裝置中之至少一個裝置相比於該等儲存裝置中之一或多個其他裝置具有不同的儲存特性,其中該最佳化策略係其中經週期性移動的該至少一檔案係基於其受存取的次數對其檔案大小之比率而選擇,並包含一第一檔案及一第二檔案,該第一檔案具有一該第一檔案的存取次數對一該第一檔案的檔案大小之一第一比率,該第二檔案具有一該第二檔案的存取次數對一該第二檔案的檔案大小之一第二比率,該第一比率大於該第二比率,該第一檔案移動到該等多個儲存體之具有一第一存取時間及一第一容量的一第一儲存體,該第二檔案移動到該等多個儲存體之具有一第二存取時間及一第二容量的一第二儲存體,該第一存取時間大於該第二存取時間,該第一容量少於該第二容量。
  2. 如請求項1之方法,其另包含維持該等多個儲存體之各個儲存體的該等儲存特性。
  3. 如請求項2之方法,其中維持該等多個儲存體之各個儲存體的該等儲存特性包含對於各個儲存體儲存一或更多下列特性:該儲存體之一連續讀取速度;該儲存體之一連續寫入速度;該儲存體之一隨機存取讀取速度;該儲存體之一隨機存取寫入速度;以及,該儲存體之一大小。
  4. 如請求項2之方法,其中週期性地在該等多個儲存體之間移動該等多個檔案的步驟係進一步基於各個儲存體的該等儲存特性。
  5. 如請求項1之方法,其中追蹤至少各個檔案已受存取之該等次數的步驟另包含追蹤已受存取之各個檔案的一大小,並且其中週期性地在該等多個儲存體之間移動該等多個檔案的步驟係另根據已受存取之各個檔案的大小。
  6. 如請求項1之方法,其中追蹤至少各個檔案已受存取之該等次數的步驟包含仰賴一作業系統的追蹤功能,該追蹤功能追蹤至少各個檔案已受存取的該等次數。
  7. 如請求項1之方法,其中追蹤至少各個檔案已受存取之該等次數的步驟包含下列步驟:檢測出該等多個檔案中的一給定檔案已受存取;以及響應於檢測出該給定檔案已受存取的步驟,增加該給定檔案已受存取的該等次數。
  8. 如請求項1之方法,其中追蹤至少各個檔案已受存取之該等次數的步驟包含追蹤各個檔案已受讀取的次數以及追蹤各個檔案已受寫入的次數,並且其中週期性地在該等多個儲存體之間移動該等多個檔案的步驟係另根據各個檔案已受讀取的該等次數以及各個檔案已受寫入的該等次數。
  9. 如請求項1之方法,其中追蹤至少各個檔案已受存取之該等次數的步驟包含另追蹤有關各個檔案的快取特性,並且其中週期性地在該等多個儲存體之間移動該等多個檔案的步驟係另根據有關各個檔案的該等快取特性。
  10. 如請求項9之方法,其中有關各個檔案的該等快取特性包含一或更多:各個檔案是否已被快取;各個檔案是否目前正被快取;各個檔案已被快取的一次數;以及,各個檔案已被快取的一時間長度。
  11. 如請求項1之方法,其中週期性地在該等多個儲存體之間移動該等多個檔案中之至少一檔案的步驟包含:把該等檔案中已受存取最多次的次多個檔案移動到該等儲存裝置中具有最快存取速度的一或多個裝置。
  12. 如請求項1之方法,其中週期性地在該等多個儲存體之間移動該等多個檔案中之至少一檔案的步驟包含把該等檔案中已受存取最多次的次多個檔案移動到該等儲 存裝置中具有最快存取速度的一或多個裝置,但考量該等次多個檔案的大小以及該等儲存裝置的大小,因此並不會有一個檔案占用了該等多個儲存體之一給定儲存體上的所有儲存空間。
  13. 如請求項1之方法,其中週期性地在該等多個儲存體之間移動該等多個檔案中之至少一檔案的步驟包含一或多個下列步驟:依據一預定的排程以規律地排程時間週期性地在該等多個儲存體之間移動該等多個檔案中之至少一檔案;以及,響應於手動使用者啟動,週期性地在該等多個儲存體之間移動該等多個檔案中之至少一檔案。
  14. 一種非暫態電腦可讀媒體,具有儲存於其上之一電腦程式,用以由一或更多處理器執行,使得來自該電腦可讀媒體被該處理器執行之該電腦程式實行一方法,其包含下列步驟:當多個檔案中之各個檔案被存取時,追蹤至少各個檔案已受存取的次數,其中各個檔案係儲存於多個儲存體中的一儲存體上;依據一最佳化策略,週期性地在該等多個儲存體之間移動該等多個檔案中的至少一檔案,以最佳化該至少一檔案的後續存取時間,其中該等多個儲存體包含多個實體上不同的儲存裝置,該等儲存裝置中之至少一個者相比於該等儲存裝置 中之一或更多個其他裝置具有不同的儲存特性,其中該最佳化策略係其中經週期性移動的該至少一檔案係基於其受存取的次數對其檔案大小之比率而選擇,並包含一第一檔案及一第二檔案,該第一檔案具有一該第一檔案的存取次數對一該第一檔案的檔案大小之一第一比率,該第二檔案具有一該第二檔案的存取次數對一該第二檔案的檔案大小之一第二比率,該第一比率大於該第二比率,該第一檔案移動到該等多個儲存體之具有一第一存取時間及一第一容量的一第一儲存體,該第二檔案移動到該等多個儲存體之具有一第二存取時間及一第二容量的一第二儲存體,該第一存取時間大於該第二存取時間,該第一容量少於該第二容量。
  15. 一種運算系統,其包含:包含多個實體上不同儲存裝置的多個儲存體,該等儲存裝置中之至少一個裝置的儲存特性不同於該等儲存裝置中之一或多個其他裝置的儲存特性,該等多個儲存體儲存有受存取的多個檔案;以及一機構,其根據一最佳化策略用以週期性地在該等多個儲存體之間移動該等多個檔案中的至少一檔案,以最佳化該至少一檔案的後續存取時間,其中該最佳化策略係其中經週期性移動的該至少一檔案係基於其受存取的次數對其檔案大小之比率而選擇,並包含一第一檔案及一第二檔案,該第一檔案具有一該第一檔案的存取次數對一該第一檔案的檔案大小 之一第一比率,該第二檔案具有一該第二檔案的存取次數對一該第二檔案的檔案大小之一第二比率,該第一比率大於該第二比率,該第一檔案移動到該等多個儲存體之具有一第一存取時間及一第一容量的一第一儲存體,該第二檔案移動到該等多個儲存體之具有一第二存取時間及一第二容量的一第二儲存體,該第一存取時間大於該第二存取時間,該第一容量少於該第二容量。
TW099106752A 2009-03-10 2010-03-09 儲存於儲存體上之檔案之取用時間的最佳化技術 TWI483176B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/036675 WO2010104505A1 (en) 2009-03-10 2009-03-10 Optimizing access time of files stored on storages

Publications (2)

Publication Number Publication Date
TW201040830A TW201040830A (en) 2010-11-16
TWI483176B true TWI483176B (zh) 2015-05-01

Family

ID=42728601

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099106752A TWI483176B (zh) 2009-03-10 2010-03-09 儲存於儲存體上之檔案之取用時間的最佳化技術

Country Status (6)

Country Link
US (1) US8533183B2 (zh)
CN (1) CN102349055B (zh)
DE (1) DE112009004503T5 (zh)
GB (1) GB2480985B (zh)
TW (1) TWI483176B (zh)
WO (1) WO2010104505A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110019240A1 (en) * 2009-07-21 2011-01-27 Harris Technology, Llc Digital control and processing of transferred Information
US9785641B2 (en) * 2011-04-01 2017-10-10 International Business Machines Corporation Reducing a backup time of a backup of data files
DE102011111045B4 (de) * 2011-08-19 2014-02-20 Fujitsu Technology Solutions Intellectual Property Gmbh Arbeitsverfahren für ein Speichersystem, Speichersystem und Computerprogrammprodukt
US8972680B2 (en) 2012-01-23 2015-03-03 International Business Machines Corporation Data staging area
CN103581051B (zh) * 2012-08-02 2018-04-20 深圳市腾讯计算机系统有限公司 一种文件缓存方法、装置和系统
US9355036B2 (en) * 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US8990524B2 (en) * 2012-09-27 2015-03-24 Hewlett-Packard Development Company, Lp. Management of data elements of subgroups
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9805092B1 (en) 2013-02-25 2017-10-31 EMC IP Holding Company LLC Parallel processing database system
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US9311314B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9300692B2 (en) 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US9152346B2 (en) * 2013-10-17 2015-10-06 International Business Machines Corporation Storage and retrieval of high importance pages in an active memory sharing environment
TWI507975B (zh) * 2014-02-27 2015-11-11 Nat Univ Chung Cheng Storage device with multiple threshold and its method
US10133488B2 (en) * 2014-03-17 2018-11-20 Primaryio, Inc. Apparatus and method for cache provisioning, configuration for optimal application performance
US10146437B2 (en) 2014-03-17 2018-12-04 Primaryio, Inc. Tier aware caching solution to increase application performance
CN105700819B (zh) 2014-11-28 2019-04-12 国际商业机器公司 用于网络数据存储的方法和系统
CN105242977B (zh) * 2015-10-20 2018-03-09 广东欧珀移动通信有限公司 一种智能终端的存储访问性能的测试方法及装置
US10452273B2 (en) 2016-09-24 2019-10-22 International Business Machines Corporation Preemptive event-based data migration
CN107426271A (zh) * 2017-03-21 2017-12-01 咪咕文化科技有限公司 一种服务器中数据处理方法及系统
CN109002543A (zh) * 2018-07-24 2018-12-14 北京京东尚科信息技术有限公司 一种文件存储的方法和装置
US20210232946A1 (en) * 2020-01-29 2021-07-29 Samsung Electronics Co., Ltd. Performance optimization of object grouping schema in a network key-value storage device using adaptive regression
US11500555B2 (en) * 2020-09-04 2022-11-15 Micron Technology, Inc. Volatile memory to non-volatile memory interface for power management
CN117215972A (zh) * 2023-11-09 2023-12-12 中央军委政治工作部军事人力资源保障中心 一种基于云原生基础架构的缓存分层方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013087A1 (en) * 1999-12-20 2001-08-09 Ronstrom Ulf Mikael Caching of objects in disk-based databases
US20050044104A1 (en) * 2001-07-02 2005-02-24 Hitachi, Ltd. Information processing system and storage area allocating method
TW200519595A (en) * 2003-12-02 2005-06-16 Hewlett Packard Development Co Data storage system with error correction code and replaceable defective memory
TWI244587B (en) * 2002-11-08 2005-12-01 Intel Corp Interleaved mirrored memory systems
US20060136668A1 (en) * 2004-12-17 2006-06-22 Rudelic John C Allocating code objects between faster and slower memories
US20070136308A1 (en) * 2005-09-30 2007-06-14 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US6148294A (en) * 1996-12-20 2000-11-14 Siemens Information And Communication Networks, Inc. System and method for computer directory updating and presentation based on frequency of access
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
JP4859595B2 (ja) * 2006-09-01 2012-01-25 株式会社日立製作所 記憶システム、そのデータ再配置方法、データ再配置プログラム
US7899987B2 (en) * 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
KR101553532B1 (ko) * 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013087A1 (en) * 1999-12-20 2001-08-09 Ronstrom Ulf Mikael Caching of objects in disk-based databases
US20050044104A1 (en) * 2001-07-02 2005-02-24 Hitachi, Ltd. Information processing system and storage area allocating method
TWI244587B (en) * 2002-11-08 2005-12-01 Intel Corp Interleaved mirrored memory systems
TW200519595A (en) * 2003-12-02 2005-06-16 Hewlett Packard Development Co Data storage system with error correction code and replaceable defective memory
US20060136668A1 (en) * 2004-12-17 2006-06-22 Rudelic John C Allocating code objects between faster and slower memories
US20070136308A1 (en) * 2005-09-30 2007-06-14 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management

Also Published As

Publication number Publication date
US20110320436A1 (en) 2011-12-29
GB2480985B (en) 2014-12-17
WO2010104505A1 (en) 2010-09-16
DE112009004503T5 (de) 2012-05-31
US8533183B2 (en) 2013-09-10
GB201117455D0 (en) 2011-11-23
TW201040830A (en) 2010-11-16
CN102349055B (zh) 2015-08-12
CN102349055A (zh) 2012-02-08
GB2480985A (en) 2011-12-07

Similar Documents

Publication Publication Date Title
TWI483176B (zh) 儲存於儲存體上之檔案之取用時間的最佳化技術
US7966289B2 (en) Systems and methods for reading objects in a file system
US10649910B2 (en) Persistent memory for key-value storage
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
CN109002262B (zh) 数据存储装置的数据管理
US9489297B2 (en) Pregroomer for storage array
US10019451B2 (en) Path lookup in a hierarchical file system
US9052826B2 (en) Selecting storage locations for storing data based on storage location attributes and data usage statistics
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
CN104025059B (zh) 用于数据存储存储器的空间收回的方法和系统
US8849880B2 (en) Providing a shadow directory and virtual files to store metadata
Zhou et al. Spitfire: A three-tier buffer manager for volatile and non-volatile memory
US10956071B2 (en) Container key value store for data storage devices
WO2007138585A1 (en) Predictive data-loader
WO2017025039A1 (zh) 一种面向闪存存储的数据访问方法及其装置
TW201232260A (en) Semiconductor storage device
US8825653B1 (en) Characterizing and modeling virtual synthetic backup workloads
Ma et al. Larger-than-memory data management on modern storage hardware for in-memory OLTP database systems
CN108228088B (zh) 用于管理存储系统的方法和设备
US20120317359A1 (en) Processing a request to restore deduplicated data
TWI569158B (zh) 資料庫批次更新方法、資料還原日誌產生方法與記憶體儲存裝置
US20100281082A1 (en) Subordinate Multiobjects
US10949359B2 (en) Optimizing cache performance with probabilistic model
Jiang et al. Improving Write Performance for LSM-tree-based Key-Value Stores with NV-Cache
Wünsche et al. Intelligent Data Migration Policies in a Write-Optimized Copy-on-Write Tiered Storage Stack

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees