本發(fā)明的實施方式涉及數(shù)據(jù)庫領(lǐng)域,更具體地,本發(fā)明的實施方式涉及一種用于數(shù)據(jù)庫二級緩存的方法、裝置及數(shù)據(jù)庫存儲系統(tǒng)。
背景技術(shù):本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述可包括可以探究的概念,但不一定是之前已經(jīng)想到或者已經(jīng)探究的概念。因此,除非在此指出,否則在本部分中描述的內(nèi)容對于本申請的說明書和權(quán)利要求書而言不是現(xiàn)有技術(shù),并且并不因為包括在本部分中就承認是現(xiàn)有技術(shù)。在緩存領(lǐng)域,具有高隨機IO(輸入輸出)特性的固態(tài)硬盤目前正逐漸在緩存解決方案中使用。例如,在現(xiàn)有的一種緩存解決方案中,將固態(tài)硬盤作為數(shù)據(jù)庫的緩存。在該方案中,從數(shù)據(jù)庫緩沖池(位于內(nèi)存)中刪除的數(shù)據(jù)頁不會放入緩存(固態(tài)硬盤)。該緩存用于保存讀取操作讀取出的數(shù)據(jù)頁,即,只要讀取出數(shù)據(jù)頁,就將數(shù)據(jù)頁寫入緩存,下次再讀取該數(shù)據(jù)頁時,可在緩存中讀取出該數(shù)據(jù)頁以提高數(shù)據(jù)庫讀取速度。再例如,在現(xiàn)有的另一種緩存解決方案中,同樣將固態(tài)硬盤作為數(shù)據(jù)庫的緩存。在該方案中,在需要刷新數(shù)據(jù)頁時,先擦除固態(tài)硬盤中需要刷新的數(shù)據(jù)頁之前被寫入的版本,再寫入刷新的數(shù)據(jù)頁。為了避免部分寫失敗而導(dǎo)致數(shù)據(jù)頁丟失,每次被刷新的數(shù)據(jù)頁,不僅寫入固態(tài)硬盤,還必須寫入磁盤中的數(shù)據(jù)庫。
技術(shù)實現(xiàn)要素:但是,由于從數(shù)據(jù)庫緩沖池中刪除的數(shù)據(jù)頁無法從緩存中獲得,影響了數(shù)據(jù)庫的讀取性能。另外,現(xiàn)有技術(shù)在需要刷新數(shù)據(jù)頁時,為了解決部分寫失敗需將每次刷新的數(shù)據(jù)頁不僅寫入固態(tài)硬盤,還要寫入磁盤,導(dǎo)致寫的開銷增加了一倍,影響了數(shù)據(jù)庫性能。因此,在現(xiàn)有技術(shù)中,基于固態(tài)硬盤的數(shù)據(jù)庫二級緩存的讀取以及刷新并沒有與數(shù)據(jù)庫的性能需求相適應(yīng)。為此,非常需要一種改進的數(shù)據(jù)庫二級緩存方法,以使基于固態(tài)硬盤的數(shù)據(jù)庫二級緩存的讀取以及刷新能夠滿足數(shù)據(jù)庫的性能需求。在本上下文中,本發(fā)明的實施方式期望提供一種用于數(shù)據(jù)庫二級緩存的方法、裝置及數(shù)據(jù)庫存儲系統(tǒng)。在本發(fā)明實施方式的第一方面中,提供了一種用于數(shù)據(jù)庫二級緩存的方法,例如,可以包括:響應(yīng)于從數(shù)據(jù)庫緩沖池中刪除數(shù)據(jù)頁,將該需要刪除的數(shù)據(jù)頁寫入固態(tài)硬盤;和/或者,響應(yīng)于從數(shù)據(jù)庫緩沖池中刷新數(shù)據(jù)頁,保留固態(tài)硬盤中該需要刷新的數(shù)據(jù)頁之前被刷新的版本,將該需要刷新的數(shù)據(jù)頁寫入固態(tài)硬盤;當需將固態(tài)硬盤中的數(shù)據(jù)頁刷新到磁盤時,將固態(tài)硬盤中相同數(shù)據(jù)頁中最近被刷新的版本刷新到磁盤的數(shù)據(jù)庫文件中。在本發(fā)明實施方式的第二方面中,提供了一種用于數(shù)據(jù)庫二級緩存的裝置,例如,可以包括:第一寫入緩存單元:可以配置用于響應(yīng)于從數(shù)據(jù)庫緩沖池中刪除數(shù)據(jù)頁,將該需要刪除的數(shù)據(jù)頁寫入固態(tài)硬盤;和/或者,第二寫入緩存單元:可以配置用于響應(yīng)于從數(shù)據(jù)庫緩沖池中刷新數(shù)據(jù)頁,保留固態(tài)硬盤中該需要刷新的數(shù)據(jù)頁之前被刷新的版本,將該需要刷新的數(shù)據(jù)頁寫入固態(tài)硬盤;寫入磁盤單元:配置用于當需將固態(tài)硬盤中的數(shù)據(jù)頁刷新到磁盤時,將固態(tài)硬盤中相同數(shù)據(jù)頁中最近被刷新的版本刷新到磁盤的數(shù)據(jù)庫文件中。在本發(fā)明實施方式的第三方面中,提供了一種數(shù)據(jù)庫存儲系統(tǒng),例如,可以包括:磁盤:可以用于保存數(shù)據(jù)庫文件;固態(tài)硬盤:可以用于保存從數(shù)據(jù)庫緩沖池中被刪除的數(shù)據(jù)頁,和/或者,被刷新的數(shù)據(jù)頁;數(shù)據(jù)庫二級緩存裝置:可以響應(yīng)于從數(shù)據(jù)庫緩沖池中刪除數(shù)據(jù)頁,將該需要刪除的數(shù)據(jù)頁寫入固態(tài)硬盤;和/或者,響應(yīng)于從數(shù)據(jù)庫緩沖池中刷新數(shù)據(jù)頁,保留固態(tài)硬盤中該需要刷新的數(shù)據(jù)頁之前被刷新的版本,將該需要刷新的數(shù)據(jù)頁寫入固態(tài)硬盤;當需將固態(tài)硬盤中的數(shù)據(jù)頁刷新到磁盤時,將固態(tài)硬盤中相同數(shù)據(jù)頁中最近被刷新的版本刷新到磁盤的數(shù)據(jù)庫文件中。根據(jù)本發(fā)明實施方式的用于數(shù)據(jù)庫二級緩存的方法、裝置及數(shù)據(jù)庫存儲系統(tǒng),可以當需要從數(shù)據(jù)庫緩沖池中刪除數(shù)據(jù)頁時,將該需要刪除的數(shù)據(jù)頁寫入固態(tài)硬盤,因此,該固態(tài)硬盤可以作為緩沖池的有效緩存,當后續(xù)需要讀取數(shù)據(jù)頁時,可以從固態(tài)硬盤中讀取出這些已從緩沖池中刪除的數(shù)據(jù)頁,提高數(shù)據(jù)庫的讀取性能。另外,本發(fā)明實施方式的方法在讀取數(shù)據(jù)頁時,如果固定硬盤及緩沖池中均不存在相應(yīng)數(shù)據(jù)頁,從磁盤的數(shù)據(jù)庫文件中讀取出相應(yīng)數(shù)據(jù)頁,并且從磁盤的數(shù)據(jù)庫文件中讀取出相應(yīng)數(shù)據(jù)頁之后,就放入數(shù)據(jù)庫緩沖池并禁止將所述數(shù)據(jù)頁寫入所述固態(tài)硬盤,因此,被讀取出的數(shù)據(jù)頁將不再寫入固態(tài)硬盤,因此,不會因為讀取操作而增加緩存寫操作,從而提高讀取速度,提高了數(shù)據(jù)庫的性能;另外,當需要刷新數(shù)據(jù)頁時,由于保留了固態(tài)硬盤中該數(shù)據(jù)頁之前被刷新的版本,將需要刷新的數(shù)據(jù)頁寫入固態(tài)硬盤,因此,在固態(tài)硬盤中可以保留同一數(shù)據(jù)頁之前被刷新的版本及當次最近被刷新的版本,即使發(fā)生部分寫失敗,也可以利用同一數(shù)據(jù)頁之前被刷新的版本恢復(fù)數(shù)據(jù)頁,因此,無需將每次刷新的數(shù)據(jù)頁均寫入磁盤,而可以按實際需要,當需將固態(tài)硬盤中的數(shù)據(jù)頁刷新到磁盤時,將固態(tài)硬盤中相同數(shù)據(jù)頁中最近被刷新的版本刷新到磁盤的數(shù)據(jù)庫文件中,從而可以減少寫的開銷,提高數(shù)據(jù)庫性能??梢?,應(yīng)用本發(fā)明的實施例可以在實際應(yīng)用環(huán)境中減少數(shù)據(jù)庫的總體使用成本。例如,現(xiàn)有技術(shù)中云閱讀環(huán)境下的存儲設(shè)備可能需要SAS600G,而應(yīng)用本發(fā)明的實施例的云閱讀環(huán)境,存儲設(shè)備可以調(diào)整為了磁盤SATA2T+固態(tài)硬盤SSD120G,磁盤IO負載從高峰時期的90%下降為了20%,平均響應(yīng)時間從50ms下降為了1ms,顯著提高了數(shù)據(jù)庫的性能。附圖說明通過參考附圖閱讀下文的詳細描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:圖1示意性地示出了適于實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖;圖2示意性地示出了根據(jù)本發(fā)明實施例的應(yīng)用場景;圖3示意性地示出了根據(jù)本發(fā)明實施例的方法流程示意圖;圖4示意性地示出了根據(jù)本發(fā)明實施例的裝置結(jié)構(gòu)示意圖;圖5示意性地示出了根據(jù)本發(fā)明實施例的系統(tǒng)結(jié)構(gòu)示意圖;在附圖中,相同或?qū)?yīng)的標號表示相同或?qū)?yīng)的部分。具體實施方式下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。圖1示出了適于實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。如圖1所示,計算系統(tǒng)100可以包括:中央處理單元(CPU)101、隨機存取存儲器(RAM)102、只讀存儲器(ROM)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU101、RAM102、ROM103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當理解,圖1所述的結(jié)構(gòu)框圖僅僅是為了示例的目的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況增加或減少某些設(shè)備。本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是,但不限于,電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉示例)例如可以包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序...