寫緩存的方法和裝置以及磁盤緩存區(qū)的同步方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù),尤其涉及一種寫緩存的方法和裝置以及磁盤緩存區(qū)的同步方法和裝置。
【背景技術(shù)】
[0002]目前,很多新型存儲介質(zhì)具有更好的訪問性能,使用這些新型存儲介質(zhì)作為寫緩存,可以提升寫入速度,合并小1聚合成大的1操作,來提升hdd磁盤(Hard Disk Drive硬盤驅(qū)動器)的每秒小1的的操作個數(shù)。
[0003]但是,由于新型存儲介質(zhì)的成本昂貴,所以使用新型存儲介質(zhì)作為寫緩存時,緩存容量都很小,在應(yīng)付吞吐率較高的應(yīng)用環(huán)境時,寫緩存被迅速寫滿,寫入性能會急速下降。如何提高寫緩存應(yīng)付長時間持續(xù)壓力的寫入,是設(shè)計寫緩存時面對的主要問題。
[0004]非易失性隨機存取存儲器nvram(nonvolatilerandom access memory^Pnvdimm技術(shù)(一種集成了動態(tài)隨機存取存儲器DRAM+非易失性內(nèi)存芯片的內(nèi)存條規(guī)格)的發(fā)展和商用,使得訪問非易失性存儲器的性能達到和主存儲器的性能相當(dāng)。而hdd磁盤在順序?qū)懭氲牧6冗_到IMB時,可以達到120MBps以上,以4KB的1來進行計算,則單個hdd磁盤的1PS(Input/Output Operat1ns Per Second,即每秒進行讀寫)可以達到30K。
[0005]現(xiàn)有的寫緩存實現(xiàn)中,都是將緩存放在更快速的存儲介質(zhì)上,但是越快速的存儲介質(zhì),其成本越高,容量越小。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實施例提供了一種寫緩存的方法和裝置以及磁盤緩存區(qū)的同步方法和裝置,能夠減少大吞吐量應(yīng)用對緩存區(qū)空間的占用率。
[0007]為了實現(xiàn)上述目的,本發(fā)明采取了如下技術(shù)方案。
[0008]—種寫緩存的方法,包括:
[0009]獲取系統(tǒng)的待寫入數(shù)據(jù);
[0010]判斷所述待寫入數(shù)據(jù)的大小:
[0011]當(dāng)所述待寫入數(shù)據(jù)的大小大于第一閾值時,將所述待寫入數(shù)據(jù)寫入磁盤的數(shù)據(jù)區(qū);
[0012]當(dāng)所述待寫入數(shù)據(jù)的大小小于或者等于所述第一閾值時,將所述待寫入數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息寫入非易失性內(nèi)存存儲器的緩存區(qū)中;所述元數(shù)據(jù)信息包括:待寫入數(shù)據(jù)的磁盤地址、數(shù)據(jù)大小和版本號,所述版本號用于表示系統(tǒng)更新待寫入數(shù)據(jù)的序號;
[0013]當(dāng)所述非易失性內(nèi)存存儲器的緩存區(qū)中的數(shù)據(jù)大小大于第二閾值時,將所述非易失性內(nèi)存存儲器的緩存區(qū)中的數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息寫入磁盤的緩存區(qū)中;并移除所述非易失性內(nèi)存存儲器的緩存區(qū)中的數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息;
[0014]當(dāng)所述磁盤的緩存區(qū)中的數(shù)據(jù)大小大于第三閾值時,將所述磁盤的緩存區(qū)中的數(shù)據(jù)寫入到磁盤的數(shù)據(jù)區(qū)中;并移除所述磁盤的緩存區(qū)中的數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息。
[0015]所述當(dāng)所述磁盤的緩存區(qū)中的數(shù)據(jù)大小大于第三閾值時,將所述磁盤的緩存區(qū)中的數(shù)據(jù)寫入到磁盤的數(shù)據(jù)區(qū)中的步驟包括:
[0016]對所述磁盤的緩存區(qū)中的數(shù)據(jù)進行合并,合并成一個數(shù)據(jù)塊;
[0017]判斷所述數(shù)據(jù)塊的大小是否大于第四閾值;
[0018]當(dāng)所述數(shù)據(jù)塊的大小大于第四閾值時,將所述數(shù)據(jù)塊寫入磁盤的數(shù)據(jù)區(qū)中;并將所述數(shù)據(jù)塊和對應(yīng)的元數(shù)據(jù)信息從所述磁盤的緩存區(qū)中移除;
[0019]當(dāng)所述數(shù)據(jù)塊小于或者等于所述第四閾值時,判斷所述數(shù)據(jù)塊中的第一個數(shù)據(jù)頁被合并的時長是否大于或等于設(shè)定時長,所述數(shù)據(jù)頁包括預(yù)訂比特的數(shù)據(jù);
[0020]如果被合并的時長大于或等于設(shè)定時長,將所述數(shù)據(jù)塊的第一個數(shù)據(jù)頁寫入所述磁盤的數(shù)據(jù)區(qū),并將所述第一個數(shù)據(jù)頁和對應(yīng)的元數(shù)據(jù)信息從所述磁盤的緩存區(qū)中移除。[0021 ] —種磁盤緩存區(qū)的同步方法,包括:
[0022]判斷磁盤的緩存區(qū)中的數(shù)據(jù)大小是否大于第三閾值;
[0023]當(dāng)所述磁盤的緩存區(qū)中的數(shù)據(jù)大小大于第三閾值時,將所述磁盤的緩存區(qū)中的數(shù)據(jù)寫入到磁盤的數(shù)據(jù)區(qū)中;并移除所述磁盤的緩存區(qū)中的數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息。
[0024]一種寫緩存的裝置,包括:
[0025]獲取模塊,獲取系統(tǒng)的待寫入數(shù)據(jù);
[0026]第一判斷模塊,判斷所述待寫入數(shù)據(jù)的大小:
[0027]第一寫入模塊,當(dāng)所述待寫入數(shù)據(jù)的大小大于第一閾值時,將所述待寫入數(shù)據(jù)寫入磁盤的數(shù)據(jù)區(qū);
[0028]第二寫入模塊,當(dāng)所述待寫入數(shù)據(jù)的大小小于或者等于所述第一閾值時,將所述待寫入數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)信息寫入非易失性內(nèi)存存儲器的緩存區(qū)中;所述元數(shù)據(jù)信息包括:待寫入數(shù)據(jù)的磁盤地址、數(shù)據(jù)大小和版本號,所述版本號用于表示系統(tǒng)更新待寫入數(shù)據(jù)的序號。
[0029 ] 一種磁盤緩存區(qū)的同步裝置,包括:
[0030]判斷模塊,判斷磁盤的緩存區(qū)中的數(shù)據(jù)大小是否大于第三閾值;
[0031]寫入模塊,當(dāng)所述磁盤的緩存區(qū)中的數(shù)據(jù)大小大于第三閾值時,將所述磁盤的緩存區(qū)中的數(shù)據(jù)寫入到磁盤的數(shù)據(jù)區(qū)中;并移除所述磁盤的緩存區(qū)中的數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)
?目息O
[0032]由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,本發(fā)明實施例中,通過將待寫入數(shù)據(jù)直接寫入到磁盤的數(shù)據(jù)區(qū),讓大吞吐量數(shù)據(jù)不用經(jīng)過磁盤的緩存區(qū)進行緩存,減少大吞吐量應(yīng)用對緩存區(qū)空間的占用率,減少對緩存設(shè)備的壓力。
[0033]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0034]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明實施例一提供的一種寫緩存的方法的處理流程圖;
[0036]圖2為本發(fā)明實施例一提供的一種寫緩存的裝置的連接示意圖;
[0037]圖3為本發(fā)明實施例一提供的一種磁盤緩存區(qū)的同步方法的處理流程圖;
[0038]圖4為本發(fā)明實施例一提供的一種磁盤緩存區(qū)的同步裝置的連接示意圖。
[0039]圖5為本發(fā)明實施例中的數(shù)據(jù)結(jié)構(gòu)圖;
[0040]圖6為本發(fā)明寫緩存的方法的應(yīng)用場景;
[0041]圖7為本發(fā)明寫緩存的方法的另一應(yīng)用場景;
[0042]圖8為本發(fā)明實施例中讀取非易失性內(nèi)存緩存區(qū)中的緩存區(qū)的數(shù)據(jù)的處理流程圖;
[0043]圖9為本發(fā)明實施例中讀取非易失性內(nèi)存緩存區(qū)中的掉電保護區(qū)的數(shù)據(jù)的處理流程圖;
[0044]圖10為本發(fā)明的數(shù)據(jù)頁最新查找樹的流程圖。
【具體實施方式】
[0045]下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0046]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的任一單元和全部組合。
[0047]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語)具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣定義,不會用理想化或過于正式的含義來解釋。
[0048]為便于對本發(fā)明實施例的理解,下面將結(jié)合附圖以幾個具體實施例為例做進一步的解釋說明,且各個實施例并不構(gòu)成對本發(fā)明實施例的限定。
[0049]如圖1所示,為本發(fā)明所述的一種寫緩存的方法,包括:
[0050]步驟11,獲取系統(tǒng)的待寫入數(shù)據(jù);
[0051 ]步驟12,判斷所述待寫入數(shù)據(jù)的大小:
[0052]步驟13,當(dāng)所述待寫入數(shù)據(jù)的大小大于第一閾值時,將所述待寫入數(shù)據(jù)寫入磁盤的數(shù)據(jù)區(qū);
[0053]步驟14,當(dāng)所述待寫入數(shù)據(jù)的大小小于或者