亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于實(shí)現(xiàn)基于ssd的i/o高速緩存的系統(tǒng)和方法

文檔序號:10557126閱讀:286來源:國知局
用于實(shí)現(xiàn)基于ssd的i/o高速緩存的系統(tǒng)和方法
【專利摘要】用于將存儲在第一存儲裝置上的數(shù)據(jù)塊高速緩存到第二存儲裝置上的方法包括:確定請求的數(shù)據(jù)塊是否包含第一類型的數(shù)據(jù);在數(shù)據(jù)塊包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊寫入第二存儲裝置;以及在數(shù)據(jù)塊不包含第一類型的數(shù)據(jù)的條件下,確定第二存儲裝置上的對應(yīng)映射塊是否包含第一類型的數(shù)據(jù),并且僅在對應(yīng)映射塊不包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊寫入第二存儲裝置。
【專利說明】
用于實(shí)現(xiàn)基于SSD的I/O高速緩存的系統(tǒng)和方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及用于提高數(shù)據(jù)存儲系統(tǒng)的輸入/輸出性能的現(xiàn)場方法和系統(tǒng),并且更 特定地涉及用于提高數(shù)據(jù)存儲系統(tǒng)的輸入/輸出性能的基于固態(tài)驅(qū)動器的高速緩存的實(shí) 現(xiàn)。
【背景技術(shù)】
[0002] 使用當(dāng)代NAND-閃存固態(tài)驅(qū)動器(SSD)用于加速需要服務(wù)器工作負(fù)載(例如文件和 郵件服務(wù)器、商業(yè)和科學(xué)數(shù)據(jù)分析)以及用于在線事務(wù)處理數(shù)據(jù)庫正變得更尋常,因?yàn)橛伤?們的成本和性能特性所產(chǎn)生的優(yōu)于典型硬盤驅(qū)動器(HDD)的那些的優(yōu)勢取得成效。表1示出 HDD vs. SSD的性能度量中的差異:
SSD通過提供優(yōu)于HDD的性能而具有減輕輸入/輸出(I/O)懲罰的可能性,即使以每千兆 字節(jié)(GB)較高的成本也如此。另外,SSD承載復(fù)雜性警告,其與它們的內(nèi)部組織和操作性質(zhì) 有關(guān)。因此,當(dāng)前在數(shù)據(jù)存儲系統(tǒng)中優(yōu)選混合裝置系統(tǒng)架構(gòu)。在一個示例中,混合裝置系統(tǒng) 包括SSD作為HDD頂部上的高速緩存層,其中SSD的成本從吞吐量和訪問速率兩方面預(yù)期在 增加的I/O性能上被攤銷。
[0003] 近來,SSD作為HDD頂部上的高速緩存層的現(xiàn)有技術(shù)實(shí)現(xiàn)聚焦在如何使用SSD高速 緩存來提高I/O性能上,其包括例如下列出版物。
[0004] T.Kgil和T.Mudge在CASES'06. ACM pp.103-112中的 "FlashCache: a NAND flash memory file cache for low power web servers"公開了使用閃速存儲器作為對 于web服務(wù)器的二次文件高速緩存。
[0005] S.-W.Lee.Moon、C.Park、J.-M.Kim和S.-W.Kim在SIGM0D'08 ACM pp. 1075-1086 中的"A case for flash memory ssd in enterprise database applications"公開了在 事務(wù)處理中使用SSD的影響的分析。
[0006] X.0uyang、S.Marcarelli 和 D.K.Panda 在 IEEE SNAPI'10 pp. 13-20 中的 "Enhancing Checkpoint Performance with Staging 10 and SSD"公開了SSD如何在高效 檢查點(diǎn)中使用。
[0007] H.J.Lee、K.H.Lee和S.H.Noh在HotPower'08. USENIXAssociation pp. 12-12中的 "Augmenting RAID with an SSD for energy relief"公開了SSD如何可以用作RAID設(shè)置 頂部上的大的高速緩存來節(jié)省能量。
[0008] 這些現(xiàn)有技術(shù)方法的問題之一是它們是應(yīng)用特定的并且需要應(yīng)用知識、干預(yù)和調(diào) 諧。另外,由這樣的混合裝置系統(tǒng)中的SSD與HDD之間的界面和關(guān)系產(chǎn)生的I/O瓶頸在試圖實(shí) 現(xiàn)通用方案時是個問題。這推動了現(xiàn)有技術(shù)領(lǐng)域中目前已知的應(yīng)用特定方案。因此,在現(xiàn)有 技術(shù)中對解決上文標(biāo)識的現(xiàn)有技術(shù)的問題中的一個或多個的高速緩存系統(tǒng)需要有改進(jìn)。

【發(fā)明內(nèi)容】

[0009] 本發(fā)明的目標(biāo)是解決上文標(biāo)識的現(xiàn)有技術(shù)的關(guān)于使存儲在HDD上的數(shù)據(jù)高速緩存 到SSD的問題中的一個或多個,然而,本發(fā)明也可適用于其他類型的數(shù)據(jù)存儲,并且優(yōu)選地 適用于其中數(shù)據(jù)存儲的比較性能度量采用與在上文在HDD與SSD之間的比較中描述的類似 的方式而彼此相對可比的其他類型的數(shù)據(jù)存儲。在任何情況下,本發(fā)明的一些優(yōu)勢可能適 用于所有高速緩存方法和系統(tǒng)。
[0010] 根據(jù)本發(fā)明的一個實(shí)施例,提供有用于實(shí)施存儲在第一存儲裝置上并且高速緩存 到第二存儲裝置上的數(shù)據(jù)塊的高速緩存寫操作的方法。該方法包括以下步驟:(a)將第一存 儲裝置的塊映射到第二存儲裝置的塊上;(b)攔截對于存儲在第一存儲裝置上的數(shù)據(jù)塊的 請求;(c)確定請求的數(shù)據(jù)塊是否包含文件系統(tǒng)元數(shù)據(jù);(d)在數(shù)據(jù)塊包含文件系統(tǒng)元數(shù)據(jù) 的條件下,將數(shù)據(jù)塊寫入第二存儲裝置;(e)在數(shù)據(jù)塊不包含文件系統(tǒng)元數(shù)據(jù)的條件下,確 定第二存儲裝置上的對應(yīng)映射塊是否包含文件系統(tǒng)元數(shù)據(jù);(f)在對應(yīng)映射塊包含文件系 統(tǒng)元數(shù)據(jù)的條件下,中止高速緩存寫操作;(g)在對應(yīng)映射塊不包含文件系統(tǒng)元數(shù)據(jù)的條件 下,確定對應(yīng)映射塊是否包含比數(shù)據(jù)塊的數(shù)據(jù)更高頻度地被訪問的數(shù)據(jù);(h)在對應(yīng)映射塊 包含比數(shù)據(jù)塊上的數(shù)據(jù)更高頻度地被訪問的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及, (i)在對應(yīng)映射塊包含比數(shù)據(jù)塊上的數(shù)據(jù)更低頻度地被訪問的數(shù)據(jù)的條件下,將數(shù)據(jù)塊上 的數(shù)據(jù)寫入第二存儲裝置上的對應(yīng)映射塊。
[0011] 根據(jù)本發(fā)明的一個方面,第一存儲裝置是硬盤驅(qū)動器,并且在另一個方面中,第二 存儲裝置是固態(tài)驅(qū)動器。
[0012] 根據(jù)該實(shí)施例的另一個方面,在第一存儲裝置與訪問第一存儲裝置的文件系統(tǒng)之 間的輸入/輸出路徑中實(shí)施攔截步驟。優(yōu)選地,攔截步驟由實(shí)現(xiàn)為文件系統(tǒng)與第一存儲裝置 之間的虛擬塊層的準(zhǔn)入控制模塊實(shí)施。
[0013] 根據(jù)本發(fā)明的另一個實(shí)施例,提供有用于將存儲在第一存儲裝置上的數(shù)據(jù)塊高速 緩存到第二存儲裝置上的方法;該方法包括以下步驟:(a)將第一存儲裝置的塊映射到第二 存儲裝置的塊上;(b)攔截對于存儲在第一存儲裝置上的數(shù)據(jù)塊的請求;(c)確定請求的數(shù) 據(jù)塊是否包含第一類型的數(shù)據(jù);(d)在數(shù)據(jù)塊包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊寫入 第二存儲裝置;(e)在數(shù)據(jù)塊不包含第一類型的數(shù)據(jù)的條件下,確定第二存儲裝置上的對應(yīng) 映射塊是否包含第一類型的數(shù)據(jù);(f)在對應(yīng)映射塊包含第一類型的數(shù)據(jù)的條件下,中止高 速緩存寫操作;(g)在對應(yīng)映射塊不包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊上的數(shù)據(jù)寫入 第二存儲裝置上的對應(yīng)映射塊。為了更清楚起見,在該實(shí)施例的方法中標(biāo)識的步驟不限于 按規(guī)定的順序。例如,映射步驟可在方法期間的任何點(diǎn)處重復(fù)來優(yōu)化性能或重新分配數(shù)據(jù) 高速緩存位點(diǎn)。
[0014] 根據(jù)該第二實(shí)施例的方面,在寫數(shù)據(jù)之前,方法進(jìn)一步包括以下步驟:(h)確定對 應(yīng)映射塊是否包含第二類型的數(shù)據(jù);(i)在對應(yīng)映射塊包含第二類型的數(shù)據(jù)的條件下,中止 高速緩存寫操作;(j)在對應(yīng)映射塊不包含第二類型的數(shù)據(jù)的條件下,執(zhí)行數(shù)據(jù)塊上的數(shù)據(jù) 寫入第二存儲裝置上的對應(yīng)映射塊。
[0015] 根據(jù)該第二實(shí)施例的另一個方面,第一類型的數(shù)據(jù)是文件系統(tǒng)元數(shù)據(jù)。
[0016] 根據(jù)該第二實(shí)施例的另一個方面,第二類型的數(shù)據(jù)是比數(shù)據(jù)塊上的數(shù)據(jù)更高頻度 地被訪問的數(shù)據(jù)。
[0017] 根據(jù)該第二實(shí)施例的另一個方面,第一存儲裝置是硬盤驅(qū)動器。
[0018] 根據(jù)該第二實(shí)施例的另一個方面,第二存儲裝置是固態(tài)驅(qū)動器。
[0019] 根據(jù)該第二實(shí)施例的另一個方面,在第一存儲裝置與訪問第一存儲裝置的文件系 統(tǒng)之間的輸入/輸出路徑中實(shí)施攔截步驟。
[0020] 根據(jù)該第二實(shí)施例的另一個方面,由實(shí)現(xiàn)為文件系統(tǒng)與第一存儲裝置之間的虛擬 塊層的準(zhǔn)入控制模塊實(shí)施攔截步驟。
[0021] 根據(jù)本發(fā)明的第三實(shí)施例,提供有非暫時性計(jì)算機(jī)可讀介質(zhì),其具有存儲在其上 來實(shí)施如本文描述的方法的計(jì)算機(jī)可讀指令。
[0022] 根據(jù)本發(fā)明的第四實(shí)施例,提供有計(jì)算機(jī)系統(tǒng),其包括:經(jīng)由輸入/輸出路徑與第 一存儲裝置通信的文件系統(tǒng);該輸入/輸出路徑中的準(zhǔn)入控制模塊;和與該準(zhǔn)入控制模塊通 信的第二存儲裝置。準(zhǔn)入控制模塊包括指令,用于(a)將第一存儲裝置的塊映射到第二存儲 裝置的塊上;(b)攔截對于存儲在第一存儲裝置上的數(shù)據(jù)塊的請求;(c)確定請求的數(shù)據(jù)塊 是否包含第一類型的數(shù)據(jù);(d)在數(shù)據(jù)塊包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊寫入第二 存儲裝置;(e)在數(shù)據(jù)塊不包含第一類型的數(shù)據(jù)的條件下,確定第二存儲裝置上的對應(yīng)映射 塊是否包含第一類型的數(shù)據(jù);(f)在對應(yīng)映射塊包含第一類型的數(shù)據(jù)的條件下,中止高速緩 存寫操作;以及(g)在對應(yīng)映射塊不包含第一類型的數(shù)據(jù)的條件下,將數(shù)據(jù)塊上的數(shù)據(jù)寫入 第二存儲裝置上的對應(yīng)映射塊。
[0023] 根據(jù)該第四實(shí)施例的方面,準(zhǔn)入控制模塊進(jìn)一步包括用于在寫數(shù)據(jù)之前的以下步 驟的指令:(h)確定對應(yīng)映射塊是否包含第二類型的數(shù)據(jù);(i)在對應(yīng)映射塊包含第二類型 的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及(j)在對應(yīng)映射塊不包含第二類型的數(shù)據(jù)的條 件下,執(zhí)行數(shù)據(jù)塊上的數(shù)據(jù)寫入第二存儲裝置上的對應(yīng)映射塊。
[0024] 根據(jù)第四實(shí)施例的另一個方面,第一類型的數(shù)據(jù)是文件系統(tǒng)元數(shù)據(jù)。
[0025] 根據(jù)第四實(shí)施例的另一個方面,第二類型的數(shù)據(jù)是比數(shù)據(jù)塊上的數(shù)據(jù)更高頻度地 被訪問的數(shù)據(jù)。
[0026] 根據(jù)第四實(shí)施例的另一個方面,第一存儲裝置是硬盤驅(qū)動器。
[0027] 根據(jù)第四實(shí)施例的另一個方面,第二存儲裝置是固態(tài)驅(qū)動器。
【附圖說明】
[0028] 圖1示出在其上可實(shí)現(xiàn)本發(fā)明的實(shí)施例的通用計(jì)算機(jī)系統(tǒng)。
[0029] 圖2示出用于實(shí)現(xiàn)本發(fā)明的實(shí)施例的系統(tǒng)架構(gòu)的一個示例。
[0030] 圖3是示出根據(jù)本發(fā)明的讀/寫過程流的流程圖。
[0031] 圖4是示出根據(jù)本發(fā)明的寫過程流的細(xì)節(jié)的流程圖。
[0032]圖5(a)_(c)示出塊選擇方案對于直接映射和全組關(guān)聯(lián)高速緩存兩者對TPC-H的影 響。
[0033]圖6(a)_(c)示出文件系統(tǒng)元數(shù)據(jù)對性能的影響的SPECsfs2008結(jié)果。
[0034]圖7(a)_(c)示出不同的關(guān)聯(lián)性和高速緩存大小對TPC-H性能的影響。
[0035] 圖8(a)-(c)示出關(guān)聯(lián)性和寫策略對具有128GB高速緩存大小的SPECsfs2008的影 響。
[0036] 圖9(a)-(c)示出關(guān)聯(lián)性和寫策略對具有64GB高速緩存大小的SPECsfs2008的影 響。
【具體實(shí)施方式】
[0037] 本發(fā)明提供這樣的系統(tǒng)和方法,第二類型的存儲裝置(例如SSD)由此可以用作優(yōu) 選地混合裝置設(shè)置(其包括至少一個SSD和至少一個第一類型的存儲裝置(例如HDD))的I/O 路徑中的高速緩存。如下文描述的實(shí)施例特別論述SSD和HDD的實(shí)現(xiàn),因?yàn)檫@些是本發(fā)明的 優(yōu)選實(shí)現(xiàn),然而,不認(rèn)為本發(fā)明局限于此。在如將在下文論述的本發(fā)明的實(shí)現(xiàn)中,當(dāng)數(shù)據(jù)塊 在計(jì)算機(jī)系統(tǒng)的主存儲器和與之關(guān)聯(lián)的HDD之間的I/O路徑中流動時,本發(fā)明透明且動態(tài)地 將這樣的數(shù)據(jù)塊放置在SSD高速緩存中。為了該公開的目的,在SSD和HDD存儲介質(zhì)可串聯(lián)或 并聯(lián)連接來增加需要的存儲容量或裝置性能的意義上,將理解以單數(shù)形式對SSD和/或HDD 的引用同樣適用于以復(fù)數(shù)形式對其的引用,并且反之亦然。不認(rèn)為本發(fā)明受到單數(shù)或復(fù)數(shù) 個HDD和SDD的限制,除非明確規(guī)定。
[0038] 本發(fā)明的各種實(shí)施例可在通用計(jì)算機(jī)系統(tǒng)或在計(jì)算機(jī)系統(tǒng)網(wǎng)絡(luò)(其包括兩個或以 上的通用計(jì)算機(jī)系統(tǒng))中實(shí)現(xiàn)。本發(fā)明一般在計(jì)算機(jī)系統(tǒng)的上下文內(nèi)操作,并且起到提供對 通常已知的計(jì)算機(jī)系統(tǒng)(其的示范性計(jì)算機(jī)系統(tǒng)在圖1中示出)可用的數(shù)據(jù)存儲能力提高的 作用。如示出的,計(jì)算機(jī)系統(tǒng)20具有許多物理和邏輯部件,其包括中央處理單元("CPU")24、 隨機(jī)存取存儲器("RAM")28、輸入/輸出("I/O")接口 32、網(wǎng)絡(luò)接口 36、非易失性存儲40和使 CPU 24能夠與其他部件通信的本地總線44XPU 24執(zhí)行操作系統(tǒng)和許多軟件系統(tǒng)。RAM 28 對CPU 24提供相對響應(yīng)型易失性存儲。I/O接口32允許從一個或多個裝置(例如鍵盤、鼠標(biāo), 等)接收輸入并且將信息輸出到輸出裝置,例如顯示器和/或揚(yáng)聲器。網(wǎng)絡(luò)接口 36允許與其 他系統(tǒng)的通信。非易失性存儲40存儲操作系統(tǒng)和程序。在計(jì)算機(jī)系系統(tǒng)20的操作期間,操作 系統(tǒng)、程序和數(shù)據(jù)可從非易失性存儲40檢索并且放置在RAM 28中以便于執(zhí)行。本發(fā)明一般 是在非易失性存儲40與RAM 28之間的I/O連接中適用。為了說明性目的僅示出通用計(jì)算機(jī) 系統(tǒng),并且將理解本發(fā)明可同樣適用于具有與例如RAM等存儲器通信的非易失性存儲的任 何計(jì)算機(jī)系統(tǒng),其中存在高速緩存某些數(shù)據(jù)用于實(shí)施更快速讀/寫操作的期望。
[0039]在使本發(fā)明實(shí)現(xiàn)為透明且動態(tài)使得一般不需要應(yīng)用特定適應(yīng)中,做出優(yōu)于現(xiàn)有技 術(shù)的許多改進(jìn),其由
【申請人】認(rèn)為在實(shí)現(xiàn)本發(fā)明中相關(guān)的各種問題的認(rèn)識中產(chǎn)生。首先,基于 它們對系統(tǒng)性能的預(yù)期重要性,本發(fā)明使用兩級塊選擇方案并且在準(zhǔn)許第一和第二類型的 HDD塊進(jìn)入SSD高速緩存之前動態(tài)地區(qū)分它們。更具體地,包含文件系統(tǒng)元數(shù)據(jù)的塊與包含 應(yīng)用數(shù)據(jù)的塊區(qū)別開。這是重要的,因?yàn)楦鞣N文件系統(tǒng)研究已經(jīng)示出元數(shù)據(jù)處理對于應(yīng)用 性能是重要的。另外,近來的趨勢示出,文件系統(tǒng)元數(shù)據(jù)訪問的影響已經(jīng)因?yàn)槭褂酶鼜?fù)雜的 應(yīng)用和計(jì)算機(jī)系統(tǒng)而變得更顯著。其次,對于所有HDD塊,本發(fā)明提出隨著滑動時間窗口維 持許多訪問的運(yùn)行估計(jì)。該信息然后用于防止很少被訪問的塊驅(qū)逐較頻繁被訪問的塊。下 文描述的實(shí)現(xiàn)不需要應(yīng)用儀器或靜態(tài)先驗(yàn)工作負(fù)載分析。
[0040]接著,需要用于代表存儲器(例如DRAM)中的SSD高速緩存塊的狀態(tài)的方式。如將在 下文描述的,本發(fā)明的實(shí)現(xiàn)導(dǎo)致元數(shù)據(jù)大小與可用的SSD容量成比例地增長。因此,壓縮元 數(shù)據(jù)以適應(yīng)DRAM是個重要方面。DRAM中的元數(shù)據(jù)占位將隨著SSD裝置容量而增加,由此使得 高關(guān)聯(lián)性組織更低成本效力。如已知的,存在確定元數(shù)據(jù)所需要的DRAM的高速緩存設(shè)計(jì)的 兩個方面:高速緩存關(guān)聯(lián)性和高速緩存行大小。本發(fā)明在不限于高速緩存關(guān)聯(lián)性的兩個備 選方案的情況下提出:(a)直接映射組織,其使對于元數(shù)據(jù)所需要的DRAM的量最小化,以及 (b)全組關(guān)聯(lián)組織,其允許以對它的元數(shù)據(jù)消耗更多DRAM空間為代價的更多通知的塊替換 決定。另外,分析增加高速緩存行大小的性能影響,但更大的高速緩存行使DRAM中需要的元 數(shù)據(jù)空間減小,并且這樣做在許多情況下導(dǎo)致性能下降。
[0041 ] 從通寫(write-through)vs ?寫回(write-back)(其影響系統(tǒng)性能和可靠性兩者)、 寫無效vs.寫更新(在高速緩存寫命中的情況下)和對于高速緩存寫未命中(miss)的寫分配 方面也探究寫處理策略。將在下文示出寫策略的選擇可以使性能有明顯差異。
[0042]維持高度的并發(fā)I/O訪問是重要的并且在本發(fā)明中考慮。任何高速緩存設(shè)計(jì)需要 允許多個未決I /〇請求在任何時間都在進(jìn)行中。本發(fā)明通過跟蹤運(yùn)行中I/O請求之間的依存 性而正確地處理未命中下的命中(hit-under-miss)和亂序完成。上文描述的實(shí)現(xiàn)使訪問為 了該目的所需要的額外狀態(tài)的開銷最小化,因?yàn)閷τ诮?jīng)過高速緩存的所有I/O操作需要該 額外狀態(tài)。用于實(shí)施此的數(shù)據(jù)結(jié)構(gòu)也被壓縮使得它適合有限的DRAM空間。
[0043]盡管SSD高速緩存承載與傳統(tǒng)的基于DRAM的高速緩存的相似性,但也存在明顯差 異,這導(dǎo)致如本文描述的本發(fā)明的實(shí)現(xiàn)。首先,塊映射策略(例如直接映射vs.全組關(guān)聯(lián))的 影響沒有在DRAM高速緩存中那樣清楚。另外,SSD高速緩存明顯更大,從而導(dǎo)致大得多的元 數(shù)據(jù)占位。這對于SSD是獨(dú)特因素,其考慮它們的增加的大小。最后,與DRAM高速緩存不同, SSD高速緩存可以變成持久的,從而避免預(yù)熱開銷。
[0044] 現(xiàn)在參考圖2,示出有系統(tǒng)架構(gòu),其中示出根據(jù)本發(fā)明的一個實(shí)施例的SSD作為I/O 高速緩存的使用。本發(fā)明提供虛擬塊裝置抽象層210(稱為虛擬塊層210),其設(shè)置成攔截I/O 路徑中的請求并且經(jīng)由SSD高速緩存層225透明地將HDD塊215高速緩存到專用SSD分區(qū)220。 準(zhǔn)入控制模塊230如上文描述的那樣控制HDD塊的高速緩存。SSD的地址空間對于更高系統(tǒng) 層(例如在應(yīng)用級的文件系統(tǒng)235和數(shù)據(jù)庫240)不可見。虛擬塊層210優(yōu)選地放置在系統(tǒng)緩 沖高速緩存235下方的I/O路徑中。從而,因?yàn)閿?shù)據(jù)從HDD檢索或?qū)懭際DD,并且與應(yīng)用和/或 文件系統(tǒng)隔離,動態(tài)地做出關(guān)于高速緩存讀/寫操作的所有決定。
[0045] 現(xiàn)在參考圖3,示出有根據(jù)本發(fā)明如何處理I/O請求的代表性描繪。根據(jù)例如高速 緩存關(guān)聯(lián)性,每個HDD塊優(yōu)選地映射305到SSD高速緩存塊。映射步驟可在方法的執(zhí)行期間重 復(fù),并且可進(jìn)一步考慮被攔截的塊中的那類數(shù)據(jù)以及存儲在SSD中的塊。對于讀取,本發(fā)明 檢查高速緩存的塊在310處是否有效,并且如果是這樣的話,在315處將請求轉(zhuǎn)發(fā)到SSD(讀 命中)。否則,在320處從HDD提取數(shù)據(jù)(讀未命中)并且在325處調(diào)度異步SSD寫1/0(高速緩存 填充)。
[0046] 對于寫操作(命中和未命中兩者),本發(fā)明實(shí)現(xiàn)但不限于通寫機(jī)制,其具有優(yōu)于已 經(jīng)在備選實(shí)現(xiàn)中提出的現(xiàn)有技術(shù)方案的若干優(yōu)勢,這些優(yōu)勢包括消除對同步元數(shù)據(jù)更新 (其對延時敏感型工作負(fù)載具有嚴(yán)重的影響)的需要和另外對降低系統(tǒng)對于故障的恢復(fù)的 寫回高速緩存設(shè)計(jì)加以改進(jìn),如果SSD驅(qū)動器失效則這些故障將導(dǎo)致數(shù)據(jù)丟失。通寫設(shè)置提 供寫策略用于將寫請求轉(zhuǎn)發(fā)到HDD和SSD兩者(write-hdd-sdd),或只到HDD。在第二個策略 中,在寫命中期間,本發(fā)明可以更新(write-hdd-upd)對應(yīng)的高速緩存塊或使其無效 (write-hdd-inv)。寫策略的選擇對寫密集型工作負(fù)載具有影響,如將在下文示出的。上文 描述的這些操作和決定可由在圖2中示出的準(zhǔn)入控制模塊230實(shí)現(xiàn)。
[0047]準(zhǔn)入控制模塊230基于HDD塊對系統(tǒng)性能的預(yù)期重要性而區(qū)分它們。為了該目的, 本發(fā)明實(shí)現(xiàn)兩級塊選擇方案,其根據(jù)特定高速緩存塊的重要性來控制它是否應(yīng)被準(zhǔn)入SSD 高速緩存。重要性可部分通過區(qū)分兩個類別的HDD塊(即文件系統(tǒng)元數(shù)據(jù)和文件系統(tǒng)數(shù)據(jù) 塊)而得到。本發(fā)明還預(yù)想得到重要性或區(qū)分類別的其他方式并且它們可以到準(zhǔn)入控制模 塊內(nèi)實(shí)現(xiàn)。
[0048] 文件系統(tǒng)元數(shù)據(jù)I/O由于兩個原因而優(yōu)選地被給予優(yōu)于常規(guī)數(shù)據(jù)I/O的優(yōu)先級。首 先,元數(shù)據(jù)操作代表典型系統(tǒng)中所有請求的中的大百分比。因此,它們對性能的影響是不成 比例的。接著,近年來在文件系統(tǒng)容量中已經(jīng)有顯著的增加,其中平均文件大小仍然是相對 小的。這導(dǎo)致更多的文件,并且從而導(dǎo)致更多的元數(shù)據(jù)。文件系統(tǒng)元數(shù)據(jù)占位因文件系統(tǒng)級 處檢驗(yàn)和的需要以實(shí)現(xiàn)更高的數(shù)據(jù)保護(hù)而進(jìn)一步增加:一種已經(jīng)被現(xiàn)代技術(shù)水平的文件系 統(tǒng)所采用的方法。因此,越來越難以僅依靠 DRAM用于元數(shù)據(jù)高速緩存。
[0049] 準(zhǔn)入控制模塊 準(zhǔn)入控制模塊提供文件系統(tǒng)元數(shù)據(jù)與文件系統(tǒng)之間的區(qū)分,例如通過修改X F S (在 Linux內(nèi)核實(shí)現(xiàn)中)文件系統(tǒng)以通過在I/O請求描述符中設(shè)置專用位或通過使用額外攔截器 并且文件系統(tǒng)下方的標(biāo)記模塊而標(biāo)記元數(shù)據(jù)請求,如在[0093]中論述的。接著,該信息在塊 級使用來對每個HDD塊歸類。該修改不影響文件系統(tǒng)性能并且也可以容易地在其他文件系 統(tǒng)中實(shí)現(xiàn)。還注意到該修改每SSD高速緩存塊僅需要額外的類別位。
[0050] 接著,對于第二級的選擇方案,不是所有的數(shù)據(jù)庫都被同等地對待。例如,在數(shù)據(jù) 庫環(huán)境中,根據(jù)搜索標(biāo)準(zhǔn),索引通過允許對特定記錄的快速訪問而提高查詢性能。索引請求 產(chǎn)生頻繁的小型和隨機(jī)的HDD訪問:一種對HDD性能加壓的模式。此外,給出對數(shù)據(jù)庫的一組 查詢,通常沒有以相同的強(qiáng)度訪問數(shù)據(jù)表。在web服務(wù)器環(huán)境中,web頁面通常展現(xiàn)時間局部 性。從而,預(yù)期從高速緩存最近僅偶爾訪問的web頁面中得到較少的益處。最后,相同的原理 適用于郵件服務(wù)器,因?yàn)檩^新近的電子郵件更可能比其他電子郵件更早地被再次訪問?;?于這些觀察,SSD上的數(shù)據(jù)庫通過根據(jù)它們的訪問頻率區(qū)分它們而高速緩存。
[0051 ]在第二級選擇處,對每個HDD塊的訪問的運(yùn)行估計(jì)在存儲器中保持,使得具有較高 訪問計(jì)數(shù)的那個更可能保持在SSD高速緩存中。HDD塊的該區(qū)分推翻為了驅(qū)逐的"犧牲塊"選 擇,如由在全組關(guān)聯(lián)高速緩存中最近最少使用(LRU)的替換策略所確定的。盡管像TPC-C的 工作負(fù)載趨于具有重復(fù)引用(對于LRU的良好匹配),其他工作負(fù)載(例如TPC-H)依靠廣泛的 一次性連續(xù)掃描,其用預(yù)期不久的任何時間不被重用的塊充填高速緩存。這樣的塊驅(qū)逐不 久再次被訪問的其他塊。如果允許LRU替換不加選擇地驅(qū)逐塊,高速緩存將直到用更常使用 的塊重新填充才有效。這也是自適應(yīng)替換高速緩存(ARC)策略背后的動機(jī),其保持跟蹤頻繁 使用和近來使用的頁面兩者并且繼續(xù)適應(yīng)于參考流中的普遍模式。在本發(fā)明中,這些每塊 引用計(jì)數(shù)器在按HDD塊號編索引的DRAM中形成陣列。對于這些計(jì)數(shù)器所需要的DRAM在本發(fā) 明中連同文件集大小而不是連同底層HDD空間一起增加。因?yàn)閰^(qū)分總體上提高性能,下文呈 現(xiàn)的評價示出該存儲器空間值得權(quán)衡。
[0052]現(xiàn)在參考圖4,示出有由準(zhǔn)入控制模塊實(shí)現(xiàn)的方法的部分的流程圖。值得注意的 是,對HDD的讀命中和寫的控制路徑仍然不受影響。另一方面,對SSD高速緩存的高速緩存填 充和寫命中通過準(zhǔn)入控制模塊(如在圖2中通過圖表描繪的),其決定實(shí)際上是否應(yīng)執(zhí)行寫 操作。實(shí)現(xiàn)的方法包括確定即將到來的請求是否是元數(shù)據(jù)請求的步驟410,并且如果是這樣 的話,因?yàn)槲募到y(tǒng)元數(shù)據(jù)I/O優(yōu)先于常規(guī)數(shù)據(jù)1/0,在步驟420處立即將它寫入高速緩存。 否則,即將到來的請求包含文件系統(tǒng)數(shù)據(jù)并且準(zhǔn)入控制模塊在步驟430處檢查對應(yīng)的高速 緩存塊是否包含文件系統(tǒng)元數(shù)據(jù)。對應(yīng)的塊由高速緩存映射和/或替換策略或變化形式來 確定。例如,在直接映射高速緩存中,映射策略將唯一地規(guī)定對應(yīng)的塊。在使用LRU替換策略 的全組關(guān)聯(lián)高速緩存中,LRU策略將確定對應(yīng)的塊。映射函數(shù)和替換策略的變化形式是可能 的并且不被本發(fā)明所限制或排除。如果是這樣的話,在步驟440處中止高速緩存填充。如果 不是的話,即將到來和現(xiàn)有的高速緩存塊兩者都包含常規(guī)數(shù)據(jù)。在該情況下,實(shí)施步驟450 來確定哪個塊被更多次地訪問,并且執(zhí)行或中止高速緩存填充,使得更多次被訪問的塊寫 入高速緩存或在高速緩存中維持。
[0053]在高速緩存中為了各種操作典型地做出的決定是眾所周知的,但特別地,本發(fā)明 聚焦在與來自盤裝置的讀或?qū)懙臄?shù)據(jù)何時寫入或不寫入高速緩存有關(guān)的策略,并且提出例 如使用既是請求又是高速緩存塊的部分的那類數(shù)據(jù)來決定是否對高速緩存分配這樣的數(shù) 據(jù)。關(guān)于高速緩存是否將使用寫回或通寫的決定在本文僅通過示例提供。本發(fā)明所提出的 特定兩級選擇方案依靠考慮準(zhǔn)入控制模塊將關(guān)于請求的塊和高速緩存中對應(yīng)的塊是否包 含數(shù)據(jù)或元數(shù)據(jù)以及每個塊的頻率計(jì)數(shù)器的信息準(zhǔn)入高速緩存內(nèi)。本發(fā)明還預(yù)想由其他度 量和標(biāo)準(zhǔn)限定的另外類別的塊以及用于對這些類別定優(yōu)先級和對它們加權(quán)的步驟。例如, 通過非限制性示例,可以區(qū)別特定類型的數(shù)據(jù),例如系統(tǒng)vs.數(shù)據(jù)文件。此外,可以基于文件 參數(shù)(其包括但不限于文件大小、上次訪問的日期、文件擴(kuò)展,等)而不是訪問頻率來做出選 擇。
[0054] 尚速緩存關(guān)聯(lián)性 關(guān)聯(lián)性的選擇主要是性能與元數(shù)據(jù)占位之間的權(quán)衡。傳統(tǒng)上,DRAM高速緩存因?yàn)樗鼈?小的大小需要減少容量沖突而使用全組關(guān)聯(lián)策略。然而,SSD高速緩存明顯更大并且從而它 們可使用更簡單的映射策略,而沒有使容量沖突明顯增加。在實(shí)現(xiàn)本發(fā)明中,考慮對于高速 緩存關(guān)聯(lián)性的兩個備選方案。特別地,(a)直接映射,和(b)全組關(guān)聯(lián)尚速緩存設(shè)計(jì)。另一個 方面,直接映射高速緩存需要更少的元數(shù)據(jù),因此與全組關(guān)聯(lián)高速緩存相比有更低的存儲 器占位。這因?yàn)樾枰獢?shù)據(jù)用于代表DRAM中SSD塊的狀態(tài)并且DRAM空間受到限制而是非常 重要的。此外,直接映射高速緩存設(shè)計(jì)未對關(guān)鍵路徑施加映射開銷并且實(shí)現(xiàn)起來相當(dāng)簡單。
[0055] 所有這些優(yōu)勢在考慮對存儲控制器卸載高速緩存時特別重要。然而,現(xiàn)代的文件 系統(tǒng)由于各種目的采用精心設(shè)計(jì)的空間分配技術(shù)。例如,XFS趨于在整個自由空間上使空間 分配展開以便實(shí)現(xiàn)使用所有的盤來備份文件系統(tǒng)。這樣的技術(shù)由于數(shù)據(jù)放置而導(dǎo)致不必要 的沖突未命中(conflict miss)。另一方面,全組關(guān)聯(lián)高速緩存需要明顯更大的元數(shù)據(jù)占位 來允許通過LRU替換策略的更精心設(shè)計(jì)的塊替換決定。然而,這樣的設(shè)計(jì)完全解決數(shù)據(jù)放置 問題,從而減少沖突未命中。除標(biāo)簽和有效/更改位(valid/dirty bit)外,對于該設(shè)計(jì)的元 數(shù)據(jù)要求包括對LRU列表的下一個和之前元素的指針以及對于另一個數(shù)據(jù)結(jié)構(gòu)的額外指針 (在下文解釋)。
[0056] 設(shè)計(jì)全組關(guān)聯(lián)高速緩存看似簡單。然而,經(jīng)驗(yàn)表明實(shí)現(xiàn)這樣的高速緩存非比尋常 并且它需要應(yīng)對下面兩個挑戰(zhàn)。首先,它需要快速確定高速緩存塊的狀態(tài)而不使I/O路徑中 的延時增加的高效機(jī)制。這因?yàn)椴豢赡芟裼布?shí)現(xiàn)將做的那樣對特定標(biāo)簽并行檢查所有高 速緩存塊而是必要的。本發(fā)明使用但不限于將高速緩存塊設(shè)置到像哈希表的數(shù)據(jù)結(jié)構(gòu)內(nèi)。 對于處理的每個HDD塊,通過使用Robert Jenkins的32位整數(shù)哈希函數(shù)(其已經(jīng)被修改來適 應(yīng)本發(fā)明的目標(biāo))來使HDD塊號散列而選擇桶。然后遍歷高速緩存塊列表來尋找匹配。該設(shè) 置使必須對每個即將到來的I/O請求所檢查的高速緩存塊的數(shù)量最小化。其次,存在典型地 在CPU和DRAM高速緩存以及一些SSD緩沖管理方案中使用的很多種替換算法,它們中的全部 從元數(shù)據(jù)大小方面對于SSD高速緩存是極其昂貴的。此外。這些算法中的一些假定已知工作 負(fù)載所展現(xiàn)的I/O模式,而如實(shí)現(xiàn)的本發(fā)明旨在對于應(yīng)用級是透明的。通過經(jīng)驗(yàn)發(fā)現(xiàn),更簡 單的替換算法(例如隨機(jī)替換)導(dǎo)致不可預(yù)測的性能。因此,
【申請人】選擇LRU策略,因?yàn)樗鼮?其他更復(fù)雜的策略提供合理的參考點(diǎn),并且兩級選擇方案可以設(shè)計(jì)為對LRU替換決定的補(bǔ) 充。
[0057] 高速緩存行大小 對于兩個高速緩存關(guān)聯(lián)性的元數(shù)據(jù)要求可以通過使用更大的高速緩存行而降低。因?yàn)?許多塊現(xiàn)在用相同的標(biāo)簽代表,這是減少需要每塊標(biāo)簽的結(jié)果。通過這樣做,元數(shù)據(jù)占位分 別對于直接映射和全組關(guān)聯(lián)高速緩存可以減少到低至1.9分之一和6.9分之一。另外,更大 的高速緩存行可以有益于展現(xiàn)良好空間局部性的工作負(fù)載,而更小的高速緩存行有益于更 隨機(jī)的工作負(fù)載。不太明顯的隱含問題是更大的高速緩存行也有益于SSD的閃存轉(zhuǎn)換層 (FTL)。因?yàn)檎业较鄬瞻椎捻撁鎭韺懽兊迷絹碓嚼щy,大量的小數(shù)據(jù)請求可以快速淹沒大 部分FTL。最后,使用更大的高速緩存行具有延時隱含問題,如稍后論述的。
[0058] I/O并發(fā) 現(xiàn)代的存儲系統(tǒng)展現(xiàn)高度I/O并發(fā),從而具有多個顯著的I/O請求。這允許I/O與計(jì)算重 疊,從而高效地隱藏I/O延時。為了維持高度異步性,本發(fā)明提供回調(diào)處理程序而不是阻止, 來等待I/O完成。另外,與緩沖-高速緩存機(jī)制相似,通過使用讀寫鎖的形式而在相同的高速 緩存上允許并發(fā)訪問。因?yàn)閷γ總€高速緩存行使用鎖使元數(shù)據(jù)存儲器占位過分增加,僅跟 蹤未決I/O請求。使HDD塊高速緩存到SSD具有對于I/O響應(yīng)時間的另一個隱含問題:在執(zhí)行 高速緩存填充時,讀未命中招致對SSD的額外寫I/O。一旦未命中的高速緩存行從HDD讀入 DRAM內(nèi),初始請求的緩沖區(qū)(buffer)被填充并且準(zhǔn)入控制模塊可以通過(a)對于寫I/O重新 使用初始應(yīng)用I/O緩沖區(qū)或(b)通過創(chuàng)建新的請求并且從初始請求復(fù)制填充的緩沖區(qū)而執(zhí) 行高速緩存填充。盡管第一個方法實(shí)現(xiàn)起來更簡單,但它因?yàn)榘l(fā)出者必須等待SSD寫完成而 使有效I/O延時增加。另一方面,因?yàn)樵诰彌_區(qū)復(fù)制之后完成初始請求并且然后高速緩存填 充寫請求異步地發(fā)給SSD,第二個方法完全去除額外高速緩存填充I/O的開銷。然而,這在1/ 0路徑中引入存儲器復(fù)制,并且需要維持對于每個未決高速緩存寫的狀態(tài)。優(yōu)選地,因?yàn)楸?發(fā)明的架構(gòu)中的存儲器吞吐量是高于所維持的I/O吞吐量的數(shù)量級,采用第二個方法。然 而,其他SSD高速緩存實(shí)現(xiàn)(例如在存儲控制器中)可基于它們的可用硬件資源而做出不同 的決定。
[0059] 在僅修改高速緩存行的部分時,處理寫未命中在更大的高速緩存行的情況下復(fù)雜 化:高速緩存行的未命中部分必須首先從存儲器中的HDD讀取、與新的部分合并并且然后寫 入SSD。已經(jīng)發(fā)現(xiàn)該方法使寫未命中延時不成比例地增加而未提供明顯的命中率益處。因 此,通過對高速緩存行內(nèi)部的每個塊維持有效和更改位而對部分有效高速緩存行提供支 持。對于轉(zhuǎn)發(fā)到HDD和SSD兩者的寫請求,在HDD結(jié)束I/O時通知發(fā)出者完成。盡管這使延時增 加,但這是不可避免的,因?yàn)楸景l(fā)明的通寫實(shí)現(xiàn)在失效的情況下以冷高速緩存開始并且最 新的塊必須總是定位在HDD上,以防止數(shù)據(jù)損壞。
[0060] 性能評價方法 本文描述的本發(fā)明的優(yōu)選實(shí)施例根據(jù)基于服務(wù)器型x86的系統(tǒng)來評價,其配備有Tyan S5397母板、在2GHz、32GB的DDR-II DRAM處運(yùn)行的兩個四核Intel Xeon 5400 64位處理器、 連接到Areca ARC-1680D-IX-12 SAS/SATA存儲控制器的 12個500GB Western Digital WD5001AALS-00L3B2 SATA-II盤和在母板的SATA-II控制器上連接的四個32GB企業(yè)級Intel X25-E(SLC NAND閃存)。安裝的0S是CentOS 5? 5,具有64位2? 6? 18-194? 32? 1 ? el5內(nèi)核版本。 存儲控制器的高速緩存設(shè)置成通寫模式。HDD和SSD兩者都采用RAID-0配置來設(shè)置,第一個 使用Areca硬件RAID,并且后者使用具有64KB塊大小的MD Linux驅(qū)動器。具有4KB塊大小的 XFS文件系統(tǒng)使用inode64安裝,使用無障礙選項(xiàng)。此外,SSD裝置控制器在固件中實(shí)現(xiàn)這些 文件系統(tǒng)的功能性的相當(dāng)大部分。使用的數(shù)據(jù)庫服務(wù)器是MySQL 5.0.77。
[0061]評價聚焦在I/O綁定操作條件,其中I/O系統(tǒng)必須維持高的請求速率。在一些情況 下,我們限制可用DRAM存儲器,以便對I/O子系統(tǒng)施加更多壓力。對于我們的評價,我們使用 三個I/O密集型基準(zhǔn):TPC-H、SPECsf s2008和Hammerora,接著論述其中的參數(shù)。
[0062] TPC-H:是數(shù)據(jù)庫存基準(zhǔn),其向具有銷售信息的數(shù)據(jù)庫發(fā)出業(yè)務(wù)分析查詢。我們連 續(xù)并且按Q1到Q12、Q14到Q16、Q19和Q22此順序執(zhí)行查詢Q1到Q12、Q14到Q16、Q19和Q22。我們 使用28GB數(shù)據(jù)庫,其中的13GB是數(shù)據(jù)文件,并且改變SSD高速緩存的大小以分別持有數(shù)據(jù)庫 的100%(2868)、50%(1468)和25%(768)。了?(:-11進(jìn)行可忽略數(shù)量的寫,其大部分由對文件訪問 時戳的更新組成。從而,考慮到我們開始執(zhí)行對冷高速緩存的查詢,寫策略的選擇對于TPC-H是不重要的。我們將DRAM大小設(shè)置成4GB,并且檢查SSD高速緩存大小如何影響性能。
[0063] SPECsfs2008仿效NFSv3/CIFS文件服務(wù)器的操作,我們的實(shí)驗(yàn)使用CIFS協(xié)議。在 SPECsfs2008中,設(shè)置一組性能增加的目標(biāo),每一個采用CIFS每秒操作來表達(dá)。文件集大小 與性能目標(biāo)(每操作/秒120MB)成比例。SPECsf s2008報告實(shí)際上實(shí)現(xiàn)的CIFS每秒操作數(shù)量, 以及每操作的平均響應(yīng)時間。對于我們的實(shí)驗(yàn),我們將第一性能目標(biāo)設(shè)置在500 CIFS ops/ sec,并且然后使負(fù)載增加到15000 CIFS ops/secARAM大小設(shè)置成32GB。與TPC-H相反, SPECsfs2008產(chǎn)生相當(dāng)大數(shù)量的寫請求,因此我們檢查寫策略對性能的影響連同關(guān)聯(lián)性。我 們分別使用64和32GB的兩個高速緩存大小。
[0064] TPC-C是0LTP基準(zhǔn),其模擬對于批發(fā)部件供應(yīng)商和它的客戶的訂單處理。該工作負(fù) 載發(fā)出若干并發(fā)短事務(wù)的混合,其既是只讀又是更新密集的。該基準(zhǔn)所報告的性能數(shù)是每 分鐘新訂單事務(wù)(NOTPM)。我們在對應(yīng)于具有3000個庫的TPC-C配置的155-GB數(shù)據(jù)庫上使用 Hammerora負(fù)載發(fā)生器。我們對512個虛擬用戶進(jìn)行實(shí)驗(yàn),每個執(zhí)行1000個事務(wù)。如與TPC-H 一樣,我們將系統(tǒng)存儲器限制為4GB。
[0065] 性能結(jié)果 在該章節(jié)中,我們首先檢查兩級塊選擇機(jī)制(2LBS)如何提高SSD高速緩存的性能,如由 本發(fā)明實(shí)現(xiàn)。然后,我們分析以下四個設(shè)計(jì)參數(shù)如何影響本文描述的系統(tǒng)的性能:1)高速緩 存關(guān)聯(lián)性;2)高速緩存大小;3)寫策略和4)高速緩存行大小。
[0066] 塊選擇方案 對于該案例研究,我們選擇展現(xiàn)相當(dāng)數(shù)量的沖突未命中的案例,因?yàn)槟鞘俏覀冾A(yù)期我 們的兩級塊選擇方案有益于性能的時候。從而,我們未探究尋常案例,例如使整個工作負(fù)載 適配在SSD高速緩存,對其可能無法獲取額外性能益處。我們分析每級我們提出的方案如何 獨(dú)立提高性能,以及通過使它們組合的額外性能增益。我們將使用塊選擇方案的SSD高速緩 存的性能與以下比較:i)本地HDD運(yùn)行,和ii)LRU基礎(chǔ)高速緩存(base cache)。該基礎(chǔ)高速 緩存未使用任一級2LBS方案并且采用write-hdd-upd寫策略。對于兩個設(shè)計(jì)(2LBS和基礎(chǔ)), 我們分析直接映射和基于LRU的全組關(guān)聯(lián)高速緩存兩者的性能。
[0067] 1)TPC-H:因?yàn)樵摶鶞?zhǔn)執(zhí)行可忽略數(shù)量的寫,文件集大小和文件數(shù)量兩者在工作負(fù) 載執(zhí)行期間都未增長。從而,
【申請人】的系統(tǒng)接收最小數(shù)量的文件系統(tǒng)元數(shù)據(jù)I/O。因此,將文 件系統(tǒng)元數(shù)據(jù)固定于SSD高速緩存上對像TPC-H的工作負(fù)載未提供性能益處。
[0068]圖5(a)_(c)示出對于TPC-H使用2LBS方案的結(jié)果。在所有這些實(shí)驗(yàn)中,系統(tǒng)使用 4GB的DRAM以冷高速緩存開始。因?yàn)門PC-H對DRAM非常敏感,對于2LBS方案,我們分配附加 DRAM(和需要的一樣多)。我們使用中等大?。?4GB)的直接映射(DM)和全組關(guān)聯(lián)(FA)高速緩 存作為測試案例。如在圖5(a)中示出的,塊選擇機(jī)制的使用使直接映射和全組關(guān)聯(lián)高速緩 存的性能分別提高至近似1.95倍和1.53倍。同樣值得注意的事實(shí)是,中等大?。?4GB)的直 接映射2LBS高速緩存執(zhí)行起來比大型(28GB)基礎(chǔ)高速緩存對等物更好。這是因?yàn)橹械却笮?的2LBS設(shè)計(jì)比大型高速緩存(對于較低命中率(圖5(b))和對于少1.9%的盤使用(圖5(c))) 高速緩存了更多的重要數(shù)據(jù)。然而,因?yàn)槿M關(guān)聯(lián)高速緩存設(shè)計(jì)采用LRU替換策略(其對較 大的高速緩存提供更好的性能),相同的行為未對該高速緩存再現(xiàn)。
[0069] 2)SPECsfs2008:與TPC-H相反,SPECsfs2008同等地訪問文件系統(tǒng)數(shù)據(jù)塊并且從而 使用塊訪問的運(yùn)行估計(jì)無法進(jìn)一步提高性能。另一方面,由SPECsfs2008產(chǎn)生的文件集在工 作負(fù)載執(zhí)行期間持續(xù)增加,并且從而元數(shù)據(jù)占位也持續(xù)增加。因此,假設(shè)系統(tǒng)性能受到文件 系統(tǒng)元數(shù)據(jù)DRAM命中率的影響。為了驗(yàn)證該假設(shè),我們在本地12HDD設(shè)置上運(yùn)行 SPECsfs2008,同時改變可用DRAM大小。圖6(a)示出在DRAM大小增加時,到達(dá)準(zhǔn)入控制模塊 的元數(shù)據(jù)I/O的數(shù)量明顯減小,從而提供相當(dāng)大的性能增益。這在從4GB移到8GB DRAM時顯 而易見;元數(shù)據(jù)請求中186%的減少導(dǎo)致改善71%的性能。從而,我們通過將文件系統(tǒng)元數(shù)據(jù) 固定于SSD上而獲得對SPECsf s2008的明顯性能提高。
[0070] 對于我們的實(shí)驗(yàn),我們使用最佳寫策略(write-hdd-upd)并且以128GB冷高速緩存 開始來選擇對于4GB DRAM的最壞情形。因?yàn)閷τ谖募到y(tǒng)數(shù)據(jù)高速緩存,SPECsfs2008對 DRAM不太敏感,我們對2LBS方案未分配另外的存儲器。圖6(b)示出甚至本發(fā)明的基礎(chǔ)版本 明顯提高性能,對于直接映射和全組關(guān)聯(lián)高速緩存分別實(shí)現(xiàn)1.71倍和1.85倍的速度增加。 此外,通過將文件系統(tǒng)元數(shù)據(jù)固定于SSD上,性能對于兩個關(guān)聯(lián)性分別進(jìn)一步提高16%和7%。 這些提高伴隨著明顯的延時減小。圖6(c)示出與本地12 HDD運(yùn)行相比,準(zhǔn)入控制模塊對于 相同延時支持每秒大致3000以上的操作。另外,在以最后的可持續(xù)目標(biāo)負(fù)載(7000 ops/ sec)將本發(fā)明的基礎(chǔ)與2LBS版本比較時,對于直接映射和全組關(guān)聯(lián)高速緩存設(shè)計(jì)分別存在 21%和26%的延時減小。然而,這不是命中率(未示出)增加的結(jié)果,而僅僅是將文件系統(tǒng)元數(shù) 據(jù)固定在SSD上的結(jié)果。
[0071] 3)Hammer〇ra:最后,我們檢查兩級塊選擇設(shè)置如何在面臨黑盒工作負(fù)載時執(zhí)行。 由于該目的,我們使用Hammer 〇ra、4GB的DRAM和冷高速緩存,其大到足以保持一半的TPC-C 數(shù)據(jù)庫(77.5GB)。因?yàn)镠ammerora是0LTP工作負(fù)載,我們預(yù)期準(zhǔn)入控制模塊接收明顯數(shù)量的 寫請求,因此我們?yōu)檫@些實(shí)驗(yàn)選擇我們的最佳寫策略(write-hdd-upd)。結(jié)果示出甚至本發(fā) 明的基礎(chǔ)版本使對于直接映射和全組關(guān)聯(lián)高速緩存設(shè)計(jì)的性能分別提高20%和55%。另外, 利用2LBS設(shè)置,性能對于兩個關(guān)聯(lián)性分別進(jìn)一步提高31%和34%。不是兩個級別的2LBS方案 都同樣有益于Hammerora。當(dāng)兩個級別獨(dú)立在全組關(guān)聯(lián)高速緩存上應(yīng)用時,與基礎(chǔ)版本相 比,分別存在9%和24%的性能提高。如與SPECsfs2008-樣,盡管對于兩個關(guān)聯(lián)性在基礎(chǔ)與 2LBS版本之間沒有命中率中的變化,性能益處是高速緩存哪些HDD塊的結(jié)果。對于該工作負(fù) 載,盤使用是至少97%,而高速緩存使用對于所有配置仍然不足7%。這些結(jié)果揭示根據(jù)本發(fā) 明的SSD高速緩存可以大大提高0LTP工作負(fù)載,尤其在大百分比的數(shù)據(jù)庫適配于高速緩存 時。
[0072] 系統(tǒng)設(shè)計(jì)參數(shù) 接著,提供關(guān)于高速緩存關(guān)聯(lián)性、高速緩存大小和寫策略如何影響本發(fā)明的性能的分 析。然后,我們呈現(xiàn)關(guān)于使用較大高速緩存行的觀察。這些實(shí)驗(yàn)在沒有2LBS方案的情況下執(zhí) 行,使得這些參數(shù)的影響變得更明顯。
[0073] 1)TPC-H:圖7(a)_(c)示出與本地HDD相比本發(fā)明的性能增益。在所有實(shí)驗(yàn)中,本發(fā) 明的系統(tǒng)以冷高速緩存開始并且使用4GB的DRAM。圖7(a)示出對于直接映射和全組關(guān)聯(lián)高 速緩存兩者的性能提尚連同更大的尚速緩存大小。
[0074]高速緩存關(guān)聯(lián)性也大大影響性能;當(dāng)工作負(fù)載未完全適配于SSD高速緩存時,中等 大?。?4GB)的全組關(guān)聯(lián)高速緩存通過分別給出近似2.71倍、2.16倍和1.33倍的較高性能而 比直接映射對等物中的全部(7、14和28GB)更好地執(zhí)行。一般,全組關(guān)聯(lián)高速緩存由于較高 的命中率而更好地執(zhí)行(在圖7(b)中示出)。這是因?yàn)槿M關(guān)聯(lián)高速緩存具有比直接映射對 等物(由于后者所展現(xiàn)的展開映射)明顯更少的沖突未命中。然而,該益處隨著高速緩存大 小的減小而縮減,這通過兩個關(guān)聯(lián)性對于最小高速緩存大?。?GB)大致同等執(zhí)行這一事實(shí) 顯而易見的。在該情況下,因?yàn)槊黠@增加數(shù)量的沖突未命中吸取來自使用SSD高速緩存的大 百分比潛在益處,命中率處3.54%的差異導(dǎo)致改善3%的性能。此外,圖7(c)示出甚至HDD使用 中小的減小導(dǎo)致明顯的性能處。例如,全組關(guān)聯(lián)中等大小尚速緩存(14GB)具有比小型 (7GB)對等物少11.89%的HDD使用,從而導(dǎo)致4.23倍的更好加速。一般,因?yàn)檫m配于高速緩存 的工作負(fù)載的百分比增加,HDD使用減少。SSD使用在所有配置中仍然不足7%。此外,與HDD相 比,本地SSD運(yùn)行實(shí)現(xiàn)38.81倍加速。
[0075] 最后,TPC-H對DRAM大小非常敏感。隨著適配于DRAM的工作負(fù)載的百分比增加,性 能呈指數(shù)提高。例如,如果整個工作負(fù)載適配于DRAM,實(shí)現(xiàn)的加速是168.8倍。通過將所有上 文的觀察組合,我們推斷合適的DRAM大小連同足夠的SSD空間的選擇可以對于歸檔數(shù)據(jù)庫 基準(zhǔn)(例如TPC-H)導(dǎo)致最佳性能增益。
[0076] 2)SPECsfs2008:對于該工作負(fù)載,我們使用32GB DRAM并且以冷高速緩存開始來 執(zhí)行所有實(shí)驗(yàn)而將本發(fā)明的性能與本地12 HDD運(yùn)行比較。因?yàn)樵摴ぷ髫?fù)載產(chǎn)生相當(dāng)數(shù)量的 寫請求,我們預(yù)期寫策略的選擇明顯影響性能。此外,因?yàn)镾PECsfs2008在它的執(zhí)行期間產(chǎn) 生很大量的小文件,我們預(yù)期直接映射高速緩存所展現(xiàn)的展開映射的效應(yīng)在該工作負(fù)載中 更顯而易見。圖8(a)呈現(xiàn)使用128GB的SSD高速緩存的結(jié)果。注意根據(jù)選擇的寫策略,本發(fā)明 所獲得的速度中的增加對于直接映射和全組關(guān)聯(lián)高速緩存設(shè)計(jì)分別從11%變到33%和從10% 變到63%。性能增益直接取決于命中率(在圖8(b)中示出),其由每個寫策略實(shí)現(xiàn)。Write-hdd-ssd寫策略實(shí)現(xiàn)最低命中率,因此實(shí)現(xiàn)最低性能提高。這是因?yàn)镾PECsfs2008產(chǎn)生巨大 文件集但僅訪問它之中的30%。從而,驅(qū)逐有用的數(shù)據(jù)塊,其被從未讀取的塊所覆蓋。此外, 因?yàn)镾PECsfs2008展現(xiàn)修改-讀取訪問模式,write-hdd-upd寫策略展現(xiàn)比writehdd-inv更 好的命中率,因?yàn)榈谝粋€將更新在SSD高速緩存中存在的對應(yīng)塊,而后者將基本上驅(qū)逐它 們。
[0077]高速緩存關(guān)聯(lián)性也影響性能:由于增加的命中率,對于全組關(guān)聯(lián)高速緩存的最佳 寫策略(write-hdd-upd)比它的直接映射對等物執(zhí)行起來要改善25%。圖8(c)示出每操作的 響應(yīng)時間也隨著更高命中率而提高:命中率越好,存儲系統(tǒng)被淹沒所花費(fèi)的時間越長,并且 從而,它可以滿足更大的目標(biāo)負(fù)載。此外,CPU使用(未示出)總是保持在25%以下,從而示出 SPECsfs2008所展現(xiàn)的小的隨機(jī)寫使得HDD成為主要性能瓶頸。HDD使用總是100%,而高速緩 存使用對于所有配置保持在25%以下?;谶@些觀察,我們推斷甚至對于產(chǎn)生巨大文件集的 寫密集型基準(zhǔn)(例如SPECsfs2008),根據(jù)本發(fā)明添加 SSD作為HDD高速緩存保持很大的性能 潛力。
[0078] 最后,我們檢查減少高速緩存大小如何影響性能。我們再次進(jìn)行我們的實(shí)驗(yàn),這次 使用64GB的SSD高速緩存。我們注意到,盡管寫策略的行為仍然相同(圖9(a)),本發(fā)明的系 統(tǒng)現(xiàn)在在工作負(fù)載的執(zhí)行中較早變得飽和。這是由于觀察到的增加的延時(圖9(c)),和命 中率(圖9(b))在早期目標(biāo)負(fù)載中開始下降這一事實(shí)。與本地HDD運(yùn)行相比,對于直接映射和 全組關(guān)聯(lián)性高速緩存仍然分別存在22%和38%的性能提高。
[0079] 3)高速緩存行大小對性能的影響:I/O工作負(fù)載一般展現(xiàn)差的空間局部性,因此大 于一個塊(4KB)的高速緩存行導(dǎo)致更低的命中率。從而,上文描述的益處不足以攤銷對該丟 失命中率的性能的影響,因此性能總是下降。然而,由于在SSD的閃存轉(zhuǎn)換層(FTL沖與它的 元數(shù)據(jù)管理技術(shù)的更好交互,從長遠(yuǎn)來看,較大的高速緩存行最終可補(bǔ)償失去的性能。
[0080] 進(jìn)一步的論述 本發(fā)明的實(shí)施例在每個情況下所需要的DRAM空間在表1I中示出。
[0081] 基礎(chǔ)高速緩存設(shè)計(jì)是基于LRU的全組關(guān)聯(lián)高速緩存。2LBS方案對基礎(chǔ)高速緩存提 供額外增益,并且最佳關(guān)聯(lián)性在該情況下用括號示出。我們看到,在一些情況下以消耗相當(dāng) 大數(shù)量的DRAM為代價,本發(fā)明提供明顯的性能提高。此外,需要的DRAM空間用SSD高速緩存 大小的大小而不是用底層HDD的容量來定標(biāo)。從而,我們預(yù)期對于元數(shù)據(jù)的DRAM空間要求以 保持適度。然而,如果DRAM要求對于一些系統(tǒng)是個問題,通過使用如之前描述的較大高速緩 存行,可以對本發(fā)明做出修改以用性能交換DRAM空間。
[0082] 最后,DRAM大小與SSD容量之間的成本/益處權(quán)衡僅影響對DRAM敏感的工作負(fù)載, 例如TPC-H。相反,對于像TPC-C的工作負(fù)載,如我們在實(shí)驗(yàn)中觀察但在這里未報告的,額外 的DRAM具有較少的影響。實(shí)驗(yàn)示出DRAM命中率保持在4.7%以下,即使DRAM大小四倍至16GB 也如此。相似地,對于SPECsfs2008,額外的DRAM僅起到提高對于文件系統(tǒng)元數(shù)據(jù)的命中率 的作用。
[0083]本發(fā)明的2LBS設(shè)置通過將元數(shù)據(jù)標(biāo)志植入從存儲啟動器傳送到存儲目標(biāo)的網(wǎng)絡(luò) 存儲協(xié)議(例如,SCSI)命令包而在盤控制器內(nèi)是可行的。存儲協(xié)議具有未使用的字段/命 令,其可以攜帶該信息。然后,它將通過使用每塊訪問計(jì)數(shù)器而在存儲控制器(聯(lián)網(wǎng)環(huán)境中 的目標(biāo))中實(shí)現(xiàn)。該情況下的主要問題是存儲協(xié)議的標(biāo)準(zhǔn)化,以及將提示從較高層推到較低 是否有意義。如示出的,對于這樣方法存在優(yōu)點(diǎn)。
[0084]將本發(fā)明應(yīng)用于其他文件系統(tǒng)需要修改文件系統(tǒng)實(shí)現(xiàn)。我們修改XFS來標(biāo)記元數(shù) 據(jù)元素。然而,在一些設(shè)置中需要元數(shù)據(jù)的透明檢測,例如在管理程序無法訪問塊身份信息 的虛擬機(jī)中。還開發(fā)用于在沒有對于文件系統(tǒng)自身的任何修改的情況下為了該目的使用元 數(shù)據(jù)幻數(shù)來自動檢測文件系統(tǒng)元數(shù)據(jù)的機(jī)制。在本發(fā)明中使用的基準(zhǔn)的初步結(jié)果示出該機(jī) 制對共用I/O路徑添加低開銷。
[0085]本發(fā)明廣泛地使用元數(shù)據(jù)來保持跟蹤塊放置。系統(tǒng)、像大部分傳統(tǒng)塊級系統(tǒng)一樣, 未更新共用I/O路徑中的元數(shù)據(jù),從而避免必要的額外同步I/O。因此,在失效后不存在元數(shù) 據(jù)一致性的保證:在該情況下,本發(fā)明以冷高速緩存開始。這是可能的,因?yàn)橥▽懖呗源_保 所有數(shù)據(jù)在HDD中具有它最新的副本。如果SSD高速緩存必須擺脫失效,這將需要權(quán)衡更高 性能與一致性以在共用I/O路徑中執(zhí)行需要的同步I/O。然而,在失效后在喪失以冷高速緩 存開始的情況下選擇優(yōu)化共用路徑,這是優(yōu)選的。
[0086] 假定SSD控制器當(dāng)前未暴露任何塊狀態(tài)信息,我們依靠 SSD內(nèi)的閃存轉(zhuǎn)換層(FTL) 實(shí)現(xiàn)用于損耗平衡(wear-leveling)。采用與SSD FTL協(xié)作的方式(其提高損耗平衡并且降 低FTL開銷)設(shè)計(jì)塊級驅(qū)動器和文件系統(tǒng)是重要方向,尤其在對SSD的原始訪問未由供應(yīng)商 提供給系統(tǒng)軟件時如此。
[0087] 預(yù)想對本發(fā)明的各種修改而不偏離在接著的權(quán)利要求中限定的本發(fā)明的精神和 范圍。盡管已經(jīng)在本文使用各種步驟和計(jì)算機(jī)部件,這些必須被給予它們的普通定義,如將 在本領(lǐng)域內(nèi)已知的,除非明確限制或在本文用別的方式限定。上文描述的實(shí)施例規(guī)定為本 發(fā)明的示例并且可由本領(lǐng)域內(nèi)技術(shù)人員實(shí)行對其的更改和修改而不偏離僅僅由附于此的 權(quán)利要求所限定的本發(fā)明的范圍。
【主權(quán)項(xiàng)】
1. 一種用于實(shí)施存儲在第一存儲裝置上并且高速緩存到第二存儲裝置的數(shù)據(jù)塊的高 速緩存寫操作的方法;所述方法包括: (a) 將所述第一存儲裝置的塊映射到所述第二存儲裝置的塊上; (b) 攔截對于存儲在所述第一存儲裝置上的所述數(shù)據(jù)塊的請求; (c) 確定請求的所述數(shù)據(jù)塊是否包含文件系統(tǒng)元數(shù)據(jù); (d) 在所述數(shù)據(jù)塊包含文件系統(tǒng)元數(shù)據(jù)的條件下,將所述數(shù)據(jù)塊寫入所述第二存儲裝 置; (e) 在所述數(shù)據(jù)塊不包含文件系統(tǒng)元數(shù)據(jù)的條件下,確定所述第二存儲裝置上的對應(yīng) 映射塊是否包含文件系統(tǒng)元數(shù)據(jù); (f) 在所述對應(yīng)映射塊包含文件系統(tǒng)元數(shù)據(jù)的條件下,中止高速緩存寫操作; (g) 在所述對應(yīng)映射塊不包含文件系統(tǒng)元數(shù)據(jù)的條件下,確定所述對應(yīng)映射塊是否包 含比所述數(shù)據(jù)塊上的數(shù)據(jù)更高頻度地被訪問的數(shù)據(jù); (h) 在所述對應(yīng)映射塊包含比所述數(shù)據(jù)塊上的數(shù)據(jù)更高頻度地被訪問的數(shù)據(jù)的條件 下,中止高速緩存寫操作; (i) 在所述對應(yīng)映射塊包含比所述數(shù)據(jù)塊上的數(shù)據(jù)更低頻度地被訪問的數(shù)據(jù)的條件 下,將所述數(shù)據(jù)塊上的所述數(shù)據(jù)寫入所述第二存儲裝置上的所述對應(yīng)映射塊。2. 如權(quán)利要求1所述的方法,其中所述第一存儲裝置是硬盤驅(qū)動器。3. 如權(quán)利要求1或權(quán)利要求2所述的方法,其中所述第二存儲裝置是固態(tài)驅(qū)動器。4. 如權(quán)利要求1所述的方法,其中所述攔截步驟在所述第一存儲裝置與訪問所述第一 存儲裝置的文件系統(tǒng)之間的輸入/輸出路徑中實(shí)施。5. 如權(quán)利要求4所述的方法,其中所述攔截步驟由實(shí)現(xiàn)為所述文件系統(tǒng)與所述第一存 儲裝置之間的虛擬塊層的準(zhǔn)入控制模塊實(shí)施。6. -種用于將存儲在第一存儲裝置上的數(shù)據(jù)塊高速緩存到第二存儲裝置上的方法;所 述方法包括以下步驟: (a) 將所述第一存儲裝置的塊映射到所述第二存儲裝置的塊上; (b) 攔截對于存儲在所述第一存儲裝置上的所述數(shù)據(jù)塊的請求; (c) 確定請求的所述數(shù)據(jù)塊是否包含第一類型的數(shù)據(jù); (d) 在所述數(shù)據(jù)塊包含所述第一類型的數(shù)據(jù)的條件下,將所述數(shù)據(jù)塊寫入所述第二存 儲裝置; (e) 在所述數(shù)據(jù)塊不包含所述第一類型的數(shù)據(jù)的條件下,確定所述第二存儲裝置上的 對應(yīng)映射塊是否包含所述第一類型的數(shù)據(jù); (f) 在所述對應(yīng)映射塊包含所述第一類型的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及 (g) 在所述對應(yīng)映射塊不包含所述第一類型的數(shù)據(jù)的條件下,將所述數(shù)據(jù)塊上的所述 數(shù)據(jù)寫入所述第二存儲裝置上的所述對應(yīng)映射塊。7. 如權(quán)利要求6所述的方法,其中在所述寫所述數(shù)據(jù)之前,所述步驟(g)進(jìn)一步包括以 下步驟: (h) 確定所述對應(yīng)映射塊是否包含第二類型的數(shù)據(jù); (i) 在所述對應(yīng)映射塊包含所述第二類型的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及 (j) 在所述對應(yīng)映射塊不包含所述第二類型的數(shù)據(jù)的條件下,執(zhí)行所述數(shù)據(jù)塊上的所 述數(shù)據(jù)到所述第二存儲裝置上的所述對應(yīng)映射塊的所述寫。8. 如權(quán)利要求6所述的方法,其中所述第一類型的數(shù)據(jù)是文件系統(tǒng)元數(shù)據(jù)。9. 如權(quán)利要求7所述的方法,其中所述第二類型的數(shù)據(jù)是比所述數(shù)據(jù)塊上的數(shù)據(jù)更高 頻度地被訪問的數(shù)據(jù)。10. 如權(quán)利要求6所述的方法,其中所述第一存儲裝置是硬盤驅(qū)動器。11. 如權(quán)利要求6或權(quán)利要求7所述的方法,其中所述第二存儲裝置是固態(tài)驅(qū)動器。12. 如權(quán)利要求6所述的方法,其中所述攔截步驟在所述第一存儲裝置與訪問所述第一 存儲裝置的文件系統(tǒng)之間的輸入/輸出路徑中實(shí)施。13. 如權(quán)利要求12所述的方法,其中所述攔截步驟由實(shí)現(xiàn)為所述文件系統(tǒng)與所述第一 存儲裝置之間的虛擬塊層的準(zhǔn)入控制模塊實(shí)施。14. 如權(quán)利要求6所述的方法,其進(jìn)一步包括在步驟(b)至(g)中的一個或多個之后的額 外映射步驟;其中所述額外映射步驟推翻在步驟(a)中實(shí)施的映射。15. 如權(quán)利要求14所述的方法,其中所述額外映射步驟考慮在所述攔截步驟中攔截的 數(shù)據(jù)的類型和存儲在所述第二存儲裝置中的數(shù)據(jù)的類型中的一個或多個。16. 如權(quán)利要求6所述的方法,其中所述確定步驟包括從所述文件系統(tǒng)或從所述存儲值 的庫讀取指示所述第一類型數(shù)據(jù)的存儲值。17. 如權(quán)利要求6所述的方法,其中所述確定步驟由準(zhǔn)入控制模塊實(shí)時執(zhí)行。18. -種非暫時性計(jì)算機(jī)可讀介質(zhì),其上具有計(jì)算機(jī)可讀指令,實(shí)施如權(quán)利要求6至17 中任一項(xiàng)所述的方法。19. 一種計(jì)算機(jī)系統(tǒng),其包括: 文件系統(tǒng),其經(jīng)由輸入/輸出路徑而與第一存儲裝置通信; 所述輸入/輸出路徑中的準(zhǔn)入控制模塊; 第二存儲裝置,其與所述準(zhǔn)入控制模塊通信; 其中所述準(zhǔn)入控制模塊包括指令,用于 (a) 將所述第一存儲裝置的塊映射到所述第二存儲裝置的塊上; (b) 攔截對于存儲在所述第一存儲裝置上的數(shù)據(jù)塊的請求; (c) 確定請求的所述數(shù)據(jù)塊是否包含第一類型的數(shù)據(jù); (d) 在所述數(shù)據(jù)塊包含所述第一類型的數(shù)據(jù)的條件下,將所述數(shù)據(jù)塊寫入所述第二存 儲裝置; (e) 在所述數(shù)據(jù)塊不包含所述第一類型的數(shù)據(jù)的條件下,確定所述第二存儲裝置上的 對應(yīng)映射塊是否包含所述第一類型的數(shù)據(jù); (f) 在所述對應(yīng)映射塊包含所述第一類型的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及 (g) 在所述對應(yīng)映射塊不包含所述第一類型的數(shù)據(jù)的條件下,將所述數(shù)據(jù)塊上的所述 數(shù)據(jù)寫入所述第二存儲裝置上的所述對應(yīng)映射塊。20. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其中所述準(zhǔn)入控制模塊進(jìn)一步包括指令,用于在 所述寫所述數(shù)據(jù)之前: (h) 確定所述對應(yīng)映射塊是否包含第二類型的數(shù)據(jù); (i) 在所述對應(yīng)映射塊包含所述第二類型的數(shù)據(jù)的條件下,中止高速緩存寫操作;以及 (j) 在所述對應(yīng)映射塊不包含所述第二類型的數(shù)據(jù)的條件下,執(zhí)行所述數(shù)據(jù)塊上的所 述數(shù)據(jù)到所述第二存儲裝置上的所述對應(yīng)映射塊的所述寫。21. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其中所述第一類型的數(shù)據(jù)是文件系統(tǒng)元數(shù)據(jù)。22. 如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其中所述第二類型的數(shù)據(jù)是比所述數(shù)據(jù)塊上的 數(shù)據(jù)更高頻度地被訪問的數(shù)據(jù)。23. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其中所述第一存儲裝置是硬盤驅(qū)動器。24. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其中所述第二存儲裝置是固態(tài)驅(qū)動器。
【文檔編號】G06F12/02GK105917318SQ201280074221
【公開日】2016年8月31日
【申請日】2012年7月24日
【發(fā)明人】A.比拉斯, M.D.弗羅里斯, Y.克羅納托斯, T.馬卡托斯, M.馬拉扎基斯
【申請人】英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1