增強數(shù)據(jù)緩存性能的制作方法
【專利摘要】針對多個頻繁訪問的數(shù)據(jù)段被臨時存儲在其中的高速緩存,結(jié)合最近最少使用(LRU)信息,使用多個數(shù)據(jù)段的引用計數(shù)信息來根據(jù)預(yù)定權(quán)重確定將多個數(shù)據(jù)段保持在高速緩存中的時間長度,其中不管LRU信息如何,多個數(shù)據(jù)段中的具有較高引用計數(shù)的那些數(shù)據(jù)段比具有較低引用計數(shù)的那些數(shù)據(jù)段被保持更長的時間。
【專利說明】增強數(shù)據(jù)緩存性能
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般地涉及計算機,并且更具體地涉及用于增強計算存儲環(huán)境中的數(shù)據(jù)緩 存性能的方法、系統(tǒng)和計算機程序產(chǎn)品。
【背景技術(shù)】
[0002] 在當(dāng)今社會中計算機和計算機系統(tǒng)在各種場景中被發(fā)現(xiàn)。在家中、在工作中、在學(xué) 校中、在政府中以及在其它場景中都可以發(fā)現(xiàn)計算環(huán)境和網(wǎng)絡(luò)。計算環(huán)境越來越多地將數(shù) 據(jù)存儲在一個或多個存儲環(huán)境中,在許多情況下,存儲環(huán)境遠離呈現(xiàn)給用戶的本地接口。
[0003] 這些計算存儲環(huán)境可使用諸如磁盤驅(qū)動之類的、常常一致工作的許多存儲設(shè)備以 存儲、檢索和更新大量數(shù)據(jù),然后可以將這些數(shù)據(jù)提供給請求或發(fā)送數(shù)據(jù)的主機計算機。在 一些情況下,一些數(shù)據(jù)存儲子系統(tǒng)被集體管理為單個數(shù)據(jù)存儲系統(tǒng)。這些子系統(tǒng)可以通過 組合若干處理單元或處理單元的集群的主機"sysplex"(系統(tǒng)綜合體)配置來進行管理。 用這種方式,常常包括多種類型的存儲設(shè)備的多層/多系統(tǒng)計算環(huán)境可以用于組織和處理 大量數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 許多多層/多系統(tǒng)計算環(huán)境實現(xiàn)數(shù)據(jù)去重復(fù)技術(shù),以通過減少跨存儲設(shè)備的重復(fù) 存儲的量來改善存儲性能。數(shù)據(jù)去重復(fù)系統(tǒng)越來越多地被利用,因為它們有助于減少存儲 數(shù)據(jù)所要求的物理存儲的總量。這種減小是通過確保重復(fù)數(shù)據(jù)不被存儲多次來實現(xiàn)的。替 代地,例如,如果數(shù)據(jù)塊與已存儲的數(shù)據(jù)塊匹配,則指向原始數(shù)據(jù)的指針被存儲在虛擬存儲 映射中,而不是為新數(shù)據(jù)塊分配新物理存儲空間。因此,數(shù)據(jù)去重系統(tǒng)中的每個數(shù)據(jù)塊與指 示多少虛擬映射元素指向給定數(shù)據(jù)塊的"引用計數(shù)器"關(guān)聯(lián)。
[0005] 內(nèi)聯(lián)(inline)數(shù)據(jù)去重復(fù)系統(tǒng)必須將前面提到的虛擬存儲映射信息(包括引用 計數(shù)器信息)保持在存儲器中,以用于快速訪問數(shù)據(jù)。否則,在從物理存儲取得映射信息 時,引起額外的映射錯誤損失,從而顯著增加存儲延遲。這些存儲映射信息是容易得到的, 以用于由存儲控制器內(nèi)的其它存儲部件使用。
[0006] 傳統(tǒng)的數(shù)據(jù)緩存算法(指示頻繁使用的文件被保持在高速緩存中而不是被調(diào)出 (page out)到磁盤多長時間的機制)可以實現(xiàn)所謂的"最近最少使用"(LRU)方法,其中最 近最少使用的文件被首先丟棄(調(diào)出)。這些方法要求跟蹤什么時候什么被使用,如果人們 希望確保算法總是丟棄最近最少使用的項,這可能是大量占用資源的,并且這可能仍然不 總是準(zhǔn)確地表示在特定集合的情況下在高速緩存中保持的最佳文件以及哪些文件被保持。 存在對頻繁使用的數(shù)據(jù)段的高速緩存管理的更有效的方式的需要。
[0007] 鑒于前述需要以更好地管理這些數(shù)據(jù)的緩存,提供了用于通過處理器改善計算 環(huán)境中的緩存性能的各種實施例。在一個實施例中,僅通過示例的方式,對于多個頻繁訪 問的數(shù)據(jù)段被臨時存儲在其中的高速緩存,多個數(shù)據(jù)段的引用計數(shù)信息連同最近最少使用 (LRU)信息一起被用于根據(jù)預(yù)定權(quán)重確定在高速緩存中保持多個數(shù)據(jù)段的時間長度,其中 不管LRU信息如何,多個數(shù)據(jù)段中的具有較高引用計數(shù)的那些數(shù)據(jù)段比具有較低引用計數(shù) 的那些數(shù)據(jù)段被保持更長的時間。
[0008] 除了前述示例性實施例之外,提供了各種系統(tǒng)和計算機程序?qū)嵤├?,并且提供?相關(guān)優(yōu)點。
【專利附圖】
【附圖說明】
[0009] 為了使本發(fā)明的優(yōu)點容易地被理解,將參照圖示在附圖中的特定實施例給出上面 簡要描述的本發(fā)明的更具體的描述。理解了這些附圖僅描繪了本發(fā)明的典型實施例并且因 此不被認(rèn)為是對其范圍的限制,將通過使用附圖來更具體和更詳細(xì)地描述和解釋本發(fā)明, 其中:
[0010] 圖1是圖示可以實現(xiàn)本發(fā)明的方面的示例性計算環(huán)境的框圖;
[0011] 圖2是示出數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的框圖,再次本發(fā)明的方面可以被實現(xiàn)在其 中;
[0012] 圖3是圖示用于改善緩存性能的高速緩存管理模塊與數(shù)據(jù)去重復(fù)系統(tǒng)之間的關(guān) 系的本發(fā)明的高速緩存系統(tǒng)實施例的框圖;
[0013] 圖4是用于增強數(shù)據(jù)緩存性能、本發(fā)明的方面可以被實現(xiàn)在其中的示例性實施例 的流程圖;
[0014] 圖5是用于增強數(shù)據(jù)緩存性能的另外的示例性實施例的流程圖,再次本發(fā)明的方 面可以被實現(xiàn)在其中;以及
[0015] 圖6是用于數(shù)據(jù)段的緩存管理的示例性實施例的流程圖,再次本發(fā)明的方面可以 被實現(xiàn)在其中。
【具體實施方式】
[0016] 如先前提到的,各種數(shù)據(jù)緩存算法實現(xiàn)LRU方法的各種方案,其中被標(biāo)識為最近 最少使用的文件被標(biāo)記以從高速緩存中調(diào)出到硬存儲(例如,磁盤或磁帶)。然而,在具有 數(shù)據(jù)去重復(fù)功能的數(shù)據(jù)存儲環(huán)境(諸如,集成的數(shù)據(jù)去重復(fù)引擎)中,每個基于LRU的方法 均沒有考慮容易得到的引用計數(shù)信息,引用計數(shù)信息指示(除其他外)指向給定的物理存 儲的數(shù)據(jù)塊的數(shù)據(jù)塊的虛擬實例的數(shù)目。
[0017] 最高效的數(shù)據(jù)緩存算法將總是丟棄未來將不再需要的時間最長的信息。傳統(tǒng)的數(shù) 據(jù)緩存算法試圖達到這個理想化的狀態(tài),但總是達不到。因此,總是存在對改善信息被保持 在高速緩存中或被丟棄的機制的當(dāng)前需要。為了解決和改善現(xiàn)有技術(shù)的當(dāng)前狀態(tài),所示的 實施例描述了如下機制:利用先前描述為由數(shù)據(jù)去重復(fù)子系統(tǒng)提供的引用計數(shù)信息,以通 過至少部分地向這些算法給予關(guān)于高速緩存中的數(shù)據(jù)狀態(tài)的更好描繪來增強(例如,在結(jié) 合LRU信息使用時)數(shù)據(jù)緩存算法,并且由此改善存儲環(huán)境的整體性能。
[0018] 并入數(shù)據(jù)去重復(fù)功能的存儲系統(tǒng)實現(xiàn)針對每段數(shù)據(jù)的引用計數(shù),其指示例如多少 段虛擬存儲映射到物理存儲的單個段上。引用計數(shù)信息一般是容易得到的,因此引用計數(shù) 功能被發(fā)現(xiàn)在大多數(shù)(如果不是全部)內(nèi)聯(lián)數(shù)據(jù)去重復(fù)系統(tǒng)中。通過改善在以數(shù)據(jù)去重復(fù) 子系統(tǒng)為特征的存儲配置中的數(shù)據(jù)塊的緩存性能,總體上可以大幅降低存儲環(huán)境中的輸入 /輸出(I/O)操作的平均延遲。
[0019] 在以下描述中,參照形成其一部分并且圖示本發(fā)明的若干實施例的附圖。要理解 的是,在不脫離本發(fā)明的范圍的情況下,可以利用其它實施例并且可以做出結(jié)構(gòu)和操作上 的改變。
[0020] 轉(zhuǎn)到圖1,描繪了本發(fā)明的方面可以被實現(xiàn)在其中的示例計算機系統(tǒng)10。計算機 系統(tǒng)10包括連接到大容量存儲設(shè)備14和存儲器設(shè)備16的中央處理單元(CPU) 12。大容量 存儲設(shè)備可以包括硬盤驅(qū)動(HDD)設(shè)備,其可以被配置在獨立盤冗余陣列(RAID)中。進一 步描述的高速緩存管理操作可以在位于系統(tǒng)10或其它地方的設(shè)備14上執(zhí)行。存儲器設(shè)備 16可以包括諸如電可擦除可編程只讀存儲器(EEPR0M)這樣的存儲器或許多相關(guān)設(shè)備。存 儲器設(shè)備16和大容量存儲設(shè)備14經(jīng)由信號承載介質(zhì)連接到CPU 12。此外,CPU 12通過通 信端口 18連接到具有附接的多個另外的計算機系統(tǒng)22和24的通信網(wǎng)絡(luò)20。計算機系統(tǒng) 10可以包括一個或多個處理器設(shè)備(例如CPU 12)和針對計算機系統(tǒng)10的每個單獨部件 的另外的存儲器設(shè)備16以執(zhí)行并完成本文中描述的每個操作以實現(xiàn)本發(fā)明的目的。
[0021] 圖2是示出根據(jù)本發(fā)明的計算機系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的示例性框 圖200。各自充當(dāng)用于執(zhí)行數(shù)據(jù)處理的中央處理單元的主機計算機210、220、225被示出為 數(shù)據(jù)存儲系統(tǒng)200的一部分。主機(物理或虛擬設(shè)備)210、220和225可以是一個或多個 新物理設(shè)備或邏輯設(shè)備,以在數(shù)據(jù)存儲系統(tǒng)200中實現(xiàn)本發(fā)明的目的。在一個實施例中,僅 通過示例的方式,數(shù)據(jù)存儲系統(tǒng)200可以被實現(xiàn)為丨BM?Sy Stem St〇rageTMDS8000TM。網(wǎng) 絡(luò)連接260可以是光纖通道結(jié)構(gòu)(fabric)、光纖通道點到點鏈路、通過以太網(wǎng)結(jié)構(gòu)的光纖 通道或點到點鏈路、FIC0N或ESC0N I/0接口、任何其它I/0接口類型、無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)、 LAN、WAN、異構(gòu)的、同構(gòu)的、公共的(即因特網(wǎng))、私有的或它們的任意組合。主機210、220 和225可以是本地的或者分布在一個或多個位置之間,并且可以配備有到存儲控制器240 的任何類型的結(jié)構(gòu)(或結(jié)構(gòu)通道)(圖2中未示出)或者網(wǎng)絡(luò)適配器260,諸如光纖通道、 FIC0N、ESC0N、以太網(wǎng)、光纖、無線或同軸適配器。據(jù)此數(shù)據(jù)存儲系統(tǒng)200配備有合適的結(jié)構(gòu) (圖2中未示出)或者網(wǎng)絡(luò)適配器260以進行通信。在圖2中描繪的數(shù)據(jù)存儲系統(tǒng)200包 括存儲控制器240和存儲裝置230。
[0022] 為了便于更清楚地理解本文中描述的方法,在圖2中存儲控制器240被示出為包 括微處理器242、系統(tǒng)存儲器243和非易失性存儲("NVS") 216的單個處理單元,這將在下 面更詳細(xì)地描述。要注意的是,在一些實施例中,存儲控制器240包括多個處理單元,每個 處理單元具有其自己的處理器綜合體和系統(tǒng)存儲器,并且通過數(shù)據(jù)存儲系統(tǒng)200內(nèi)的專用 網(wǎng)絡(luò)互連。存儲裝置230可以包括諸如存儲陣列之類的、通過存儲網(wǎng)絡(luò)連接到存儲控制器 240的一個或多個存儲設(shè)備。
[0023] 在一些實施例中,被包括在存儲裝置230中的設(shè)備可以以環(huán)架構(gòu)連接。存儲控制 器240管理存儲裝置230,并且有助于處理旨在針對存儲230的寫請求和讀請求。存儲控 制器240的系統(tǒng)存儲器243存儲處理器242可以訪問以用于執(zhí)行與管理存儲裝置230關(guān)聯(lián) 的功能的程序指令和數(shù)據(jù)。在一個實施例中,系統(tǒng)存儲器243包括操作軟件250、與之關(guān)聯(lián) 或通信,并且部分地被配置用于實現(xiàn)本發(fā)明的功能。如在圖2中示出的,系統(tǒng)存儲器243還 可以包括針對存儲裝置230的高速緩存245 (本文中還被稱為"高速緩存存儲器")或者與 之通信,以用于緩沖分別指的是寫/讀請求及它們關(guān)聯(lián)的數(shù)據(jù)的"寫數(shù)據(jù)"和"讀數(shù)據(jù)"。在 一個實施例中,高速緩存245被分配在系統(tǒng)存儲器243外部的設(shè)備中,但依然可由微處理器 242訪問并且除了執(zhí)行如在本文中描述的操作之外,可以用于提供防止數(shù)據(jù)丟失的另外的 安全性。
[0024] 在一些實施例中,高速緩存245是通過易失性存儲器和非易失性存儲器實現(xiàn)的, 并且經(jīng)由本地總線(圖2中未示出)耦合到微處理器242,以用于增強數(shù)據(jù)存儲系統(tǒng)200的 性能。被包括在數(shù)據(jù)存儲控制器中的NVS 216可由微處理器242訪問,并且用于為如在其 它圖中描述的本發(fā)明的操作和執(zhí)行提供另外的支持。NVS 216還可以被稱為"永久"高速緩 存或者"高速緩存存儲器",并且通過其可以或可以不利用外部電源來保持存儲在其中的數(shù) 據(jù)的非易失性存儲器來實現(xiàn)。NVS可以被存儲在高速緩存245中且利用高速緩存245來存 儲,以用于適合于實現(xiàn)本發(fā)明的目標(biāo)的任何目的。在一些實施例中,在數(shù)據(jù)存儲系統(tǒng)200有 功率損失的情況下,諸如電池之類的備用電源(圖2中未示出)向NVS 216供應(yīng)足夠的功 率,以保持存儲在其中的數(shù)據(jù)。在某些實施例中,NVS 216的容量小于或等于高速緩存245 的總?cè)萘俊?br>
[0025] 存儲裝置230物理上可以包括諸如存儲陣列之類的一個或多個存儲設(shè)備。存儲 陣列是諸如硬盤之類的單獨存儲設(shè)備的邏輯分組。在某些實施例中,存儲裝置230包括 JB0D (簡單磁盤捆綁)陣列或RAID (獨立盤冗余陣列)陣列。物理存儲陣列的集合可以被 進一步組合以形成級(rank),其從邏輯配置中解離物理存儲。級中的存儲空間可被分配成 定義寫/讀請求中指定的存儲位置的邏輯卷。
[0026] 在一個實施例中,僅通過示例的方式,如圖2中示出的存儲系統(tǒng)可以包括邏輯卷, 或者簡單地,"卷"可以具有不同種類的分配。在數(shù)據(jù)存儲系統(tǒng)200中存儲裝置230a、230b 和230η被示為級,并且本文中被稱為級230a、230b和230η。級可以對于數(shù)據(jù)存儲系統(tǒng)200 是本地的,或者可以位于物理上的遠程位置。換言之,本地存儲控制器可以與遠程存儲控制 器連接,并且管理在遠程位置處的存儲。級230a被示出為配置有兩個整卷(234和236)以 及一個部分卷232a。級230b被示出為具有另一個部分卷232b。從而卷232跨級230a和 230b被分配。級230η被示為完全分配給卷238-也就是說,級230η指的是針對卷238的 整個物理存儲。根據(jù)上面的示例,將理解的是,級可以被配置為包括一個或多個部分卷和/ 或整卷。卷和級可以進一步被劃分成所謂的"軌道",其表示固定的存儲塊。因此,軌道與給 定的卷關(guān)聯(lián),并且可以被給予給定的級。
[0027] 如將進一步描述的,存儲控制器240可以包括數(shù)據(jù)去重復(fù)引擎255、高速緩存管理 模塊257和存儲映射/數(shù)據(jù)頻率索引映射(DFM) 259。高速緩存管理模塊257可以與存儲 控制器240的每一個部件、主機210、220、225以及存儲設(shè)備230協(xié)同工作。如本領(lǐng)域普通 技術(shù)人員將理解的,高速緩存管理模塊257在結(jié)構(gòu)上可以是一個完整的模塊,或者可以與 其它單獨模塊關(guān)聯(lián)和/或被包括在其它單獨模塊中。高速緩存管理模塊257和/或存儲映 射/DFM 259還可以位于高速緩存245或其它部件中。高速緩存245被示出為包括許多頻 繁使用的數(shù)據(jù)段261,其被保持在高速緩存中以用于快速訪問并且對其管理由高速緩存管 理模塊257以及其他部件來執(zhí)行。
[0028] 存儲控制器240包括用于控制光纖通道協(xié)議到主機計算機210、220、225的控制開 關(guān)241、用于控制所有存儲控制器240的微處理器242、用于存儲用于控制存儲控制器240 的操作的微程序(操作軟件)250、用于控制的數(shù)據(jù)和隨后描述的每個表的非易失性控制存 儲器243、用于臨時存儲(緩沖)數(shù)據(jù)的高速緩存245以及用于輔助高速緩存245讀取和寫 入數(shù)據(jù)的緩沖器244、用于控制協(xié)議的控制開關(guān)241以控制向或從存儲設(shè)備230轉(zhuǎn)移數(shù)據(jù)、 以及信息可被設(shè)置在其中的壓縮操作模塊255和壓縮操作列表模塊257。通過本發(fā)明可以 實現(xiàn)多個緩沖器244以協(xié)助如本文中描述的操作。
[0029] 在一個實施例中,主機計算機或一個或多個物理或虛擬設(shè)備210、220、225以及存 儲控制器240通過作為接口的網(wǎng)絡(luò)適配器(這可以是光纖通道)260 (即經(jīng)由稱為"結(jié)構(gòu)"的 至少一個開關(guān))連接。在一個實施例中,將描述在圖2中示出的系統(tǒng)的操作。微處理器242 可以控制存儲器243,以存儲來自主機設(shè)備(物理或虛擬)210的命令信息和用于標(biāo)識主機 設(shè)備(物理或虛擬)210的信息。控制開關(guān)241、緩沖器244、高速緩存245、操作軟件250、 微處理器242、存儲器243、NVS 216、壓縮操作模塊255和壓縮操作列表模塊257彼此通信, 并且可以是分離的或者是一個單獨的部件。同時,諸如操作軟件250之類的若干(如果不 是所有)部件可以被包括在存儲器243中。為了適合于本發(fā)明的目的,所示設(shè)備內(nèi)的每個 部件均可以被鏈接在一起,并且可以彼此通信。
[0030] 存儲控制器240被示出為包括數(shù)據(jù)去重復(fù)引擎255、存儲映射/數(shù)據(jù)頻率索引映射 (DFM) 259 ("存儲映射"259)以及高速緩存管理模塊257。數(shù)據(jù)去重復(fù)引擎255、高速緩存 管理模塊257和DFIM259可以與存儲控制器240的每一個部件、主機210、220、225以及存 儲設(shè)備230協(xié)同操作,以實現(xiàn)根據(jù)本發(fā)明的功能。數(shù)據(jù)去重復(fù)引擎255、高速緩存管理模塊 257和DFIM 259在構(gòu)造上可以是一個完整的模塊,或者可以與其它單獨模塊關(guān)聯(lián)和/或并 入其它單獨模塊中。高速緩存管理模塊257和DFM 259還可以并入高速緩存245或其它 部件。
[0031] 結(jié)合諸如微處理器242之類的存儲控制器240的其它部件,數(shù)據(jù)去重復(fù)引擎255 被配置用于執(zhí)行對通過存儲控制器240傳送到存儲裝置230的寫數(shù)據(jù)的數(shù)據(jù)去重復(fù)操作。
[0032] 如先前指出的,存儲控制器240包括數(shù)據(jù)頻率索引映射(DFM) 259或者簡稱為存 儲映射259。高速緩存245 (或者可被整體地稱為高速緩存系統(tǒng)245,其可以并入高速緩存 管理模塊257、存儲映射259或者甚至數(shù)據(jù)去重復(fù)引擎255)接受來自主機210、220和225 或者類似設(shè)備的寫數(shù)據(jù),然后寫數(shù)據(jù)被放置在高速緩存存儲器245中。然后,數(shù)據(jù)去重復(fù)引 擎255針對高速緩存存儲器245中的重復(fù)測試寫數(shù)據(jù),并且將針對高速緩存存儲器245中 的重復(fù)的索引和頻率寫在存儲映射259中。
[0033] 現(xiàn)在轉(zhuǎn)到圖3,本發(fā)明的各種功能方面的框圖被描繪為示例性流程。具體地,高速 緩存系統(tǒng)245被示為接受寫數(shù)據(jù)302,以通過數(shù)據(jù)去重復(fù)引擎255處理為針對高速緩存245 的寫操作304。因為寫數(shù)據(jù)302是通過數(shù)據(jù)去重復(fù)引擎255處理的,并且如先前描述的,針 對與現(xiàn)有存儲的重復(fù)測試寫數(shù)據(jù)302,并且去重復(fù)引擎255將頻率和索引信息306傳送到存 儲/數(shù)據(jù)頻率索引映射(DFIM) 259。如在圖3中示出的并入數(shù)據(jù)去重復(fù)功能的存儲系統(tǒng)包 括針對每個數(shù)據(jù)塊的引用計數(shù),除了其它指示,其指示虛擬存儲的多少個塊映射到物理存 儲的單個塊上。
[0034] 當(dāng)數(shù)據(jù)從高速緩存245被讀出308時,存儲映射259被更新。包含在存儲映射259 中的信息(包括引用計數(shù)信息310)被提供給高速緩存管理模塊260,其還處于高速緩存 245與存儲控制器240 (圖2)之間的雙向通信314中,并且由此作為讀數(shù)據(jù)312被提供給主 機210、220和225。根據(jù)本發(fā)明的方面,如將進一步說明的,至少部分地基于這樣的活動,高 速緩存管理模塊260可以確定寫數(shù)據(jù)302的哪些部分要被放置在高速緩存系統(tǒng)245中以及 多長時間合適。
[0035] 現(xiàn)在轉(zhuǎn)到圖4,用于改善存儲環(huán)境中的高速緩存性能的方法的流程圖被示出在一 個示例性實施例中。方法400開始(步驟402),通過使用前面提到的引用計數(shù)信息連同LRU 信息(以及,在其它實施例中,對于本領(lǐng)域普通技術(shù)人員來說顯而易見的其它統(tǒng)計信息)以 確定將具體的頻繁訪問的數(shù)據(jù)段261 (圖2)保持在高速緩存245中適當(dāng)長度的時間(步驟 404)。方法400結(jié)束(步驟406)。
[0036] 接著,圖5是在進一步的示例性實施例中用于實現(xiàn)諸如先前在圖4中示出的這樣 的對引用計數(shù)信息利用的方法的流程圖。這里,方法500開始(步驟502),通過在如先前描 述的去重復(fù)操作的過程中檢查從去重復(fù)引擎獲得的引用計數(shù)數(shù)據(jù)(步驟504)。在一個實 施例中,針對特定數(shù)據(jù)塊的引用計數(shù)信息可以與針對該所選數(shù)據(jù)塊的去重復(fù)操作的執(zhí)行近 似同步地被獲得/檢查?;谝糜嫈?shù)信息(和/或通過特定存儲策略的實施),建立針 對高速緩存中的特定段或者許多段的保持持續(xù)時間(步驟506)。這里再次,在一個實施例 中,引用計數(shù)信息的獲得、引用計數(shù)信息的更新、引用計數(shù)信息的檢查和/或引用計數(shù)信息 的分析來確定特定的保持持續(xù)時間可以與前面提到的去重復(fù)操作的執(zhí)行近似同步地發(fā)生。
[0037] 繼續(xù)圖5,然后方法500詢問是否針對引用的數(shù)據(jù)段的引用計數(shù)信息已經(jīng)被更新 (例如,依據(jù)去重復(fù)操作遞增),或者例如是否預(yù)定時間間隔已經(jīng)到期(步驟508)。如果是 這種情況,先前在步驟506中建立的保持持續(xù)時間被重新訪問,以重新確定在高速緩存中 的新的適當(dāng)?shù)谋3殖掷m(xù)時間(步驟510)。在一個實施例中,這可以通過最初為關(guān)聯(lián)到引用 計數(shù)信息的數(shù)據(jù)段分配預(yù)定權(quán)重來執(zhí)行,在預(yù)定時間段的期滿之后,如果引用計數(shù)信息不 遞增,那么權(quán)重減小。除了其它考慮,分配權(quán)重旨在于允許具有高引用計數(shù)的那些數(shù)據(jù)段最 終從高速緩存中被丟棄,即使數(shù)據(jù)段長時間不被訪問。
[0038] 返回到步驟508,如果引用計數(shù)信息未被更新或者預(yù)定時間間隔沒有期滿,隨著時 間的經(jīng)過,方法500返回到步驟508,以再次詢問是否已經(jīng)滿足這些條件的任一個或兩者。
[0039] 如本領(lǐng)域普通技術(shù)人員將理解的,各種各樣的存儲策略(例如,其可以通過管理 員/用戶的輔助來建立)可以被拿來以基于針對該條目或條目集的當(dāng)前的引用計數(shù)信息, 承擔(dān)是否特定段或數(shù)據(jù)集應(yīng)當(dāng)被保持一定的持續(xù)時間。因為針對給定的數(shù)據(jù)段,引用計數(shù) 信息指示正被訪問的特定條目的可能性,該相同信息可以由這些策略或者映射緩存機制中 的其它方式(諸如可以由先前描述的高速緩存管理模塊實現(xiàn)的映射緩存算法)智能地使 用,以便確定存儲在存儲映射中的應(yīng)當(dāng)從高速緩存存儲器調(diào)出的那些候選條目。
[0040] 鑒于前述情況,考慮以下示例。十個(10)映射表條目(數(shù)據(jù)段)被建立作為候選 以被調(diào)出。那十個映射表條目中,包含較高引用計數(shù)的那些(在一個實施例中,針對所有數(shù) 據(jù)段一起)將比具有較低引用計數(shù)的那些更晚地被調(diào)出。以這種方式,在預(yù)期它們將再次 被重新使用的情況下,具有對應(yīng)較高引用計數(shù)的存儲映射部分被保持得更長,并且在這種 情況發(fā)生時,將在高速緩存中找到特定條目以用于快速訪問。
[0041] 接著,圖6圖示了用于使用引用計數(shù)值管理數(shù)據(jù)在高速緩存中的保持的示例性方 法的流程圖,本發(fā)明的方面可以被實現(xiàn)在其中。方法600開始(步驟602),并且詢問關(guān)于是 否高速緩存是滿的,并且不管是否要從磁盤取得新數(shù)據(jù)段的這一事實(由此要求調(diào)出其他 映射條目)(步驟604)。如果是這種情況,數(shù)據(jù)段被集體檢查,以確定這些段中的哪些要從 高速緩存中調(diào)出(步驟606)。作為該檢查過程的一部分,方法600然后詢問是否特定經(jīng)檢 查的條目具有高的(例如在一個實施例中,高于由策略設(shè)置的特定閾值)引用計數(shù)值,或/ 和具有或/和繼續(xù)具有對應(yīng)重的分配權(quán)重(步驟608)。如果是這種情況,條目被保持在高 速緩存中(步驟610)。如果條目被確定為不具有在預(yù)定義閾值之上的高的值和/或權(quán)重, 則指定該數(shù)據(jù)段從高速緩存中調(diào)出(步驟612)并且新的段可以被調(diào)入高速緩存在其位置 中。然后,方法600繼續(xù)/返回到如先前描述的步驟604。
[0042] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算 機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、 完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方 式,這里可以統(tǒng)稱為"模塊"、"流程"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明的各個方面 還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介 質(zhì)中包含計算機可讀的程序代碼。
[0043] 可以采用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算 機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是--但不限 于--電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便 攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器 (EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者 上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的 有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0044] 計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括--但不限 于--無線、有線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè) 計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括 面向?qū)ο蟮某绦蛟O(shè)計語目一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計 語言一諸如"C"語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、 部分地在用戶計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機 的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN) - 連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因 特網(wǎng)連接)。
[0045] 下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖 和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖 中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計 算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計 算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程 圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0046] 這些計算機程序指令還可以被存儲在可以引導(dǎo)計算機、其它可編程數(shù)據(jù)處理裝置 或者其它設(shè)備以特定方式起作用的計算機可讀介質(zhì)中,使得存儲在計算機可讀介質(zhì)中的指 令產(chǎn)生包括實現(xiàn)在流程圖和/或框圖框或多個框中指定的功能/動作的指令的制造品件。 計算機程序指令還可以被加載到計算機、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,以使 得在計算機、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上完成一系列操作步驟,以產(chǎn)生計算 機實現(xiàn)的過程,使得在計算機或其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/ 或框圖框或多個框中指定的功能/動作的過程。
[0047] 上面附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算 機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可 以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多 個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中 所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可 以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意 的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí) 行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令 的組合來實現(xiàn)。
[0048] 雖然已經(jīng)詳細(xì)說明了本發(fā)明的一個或多個實施例,本領(lǐng)域普通技術(shù)人員將理解, 可以做出對那些實施例的修改和改寫,而不脫離如在所附權(quán)利要求中闡述的本發(fā)明的范 圍。
【權(quán)利要求】
1. 一種用于通過處理器改善計算環(huán)境中的緩存性能的方法,包括: 針對多個頻繁訪問的數(shù)據(jù)段被臨時存儲在其中的高速緩存,結(jié)合使用最近最少使用 (LRU)信息,使用所述多個數(shù)據(jù)段的引用計數(shù)信息以根據(jù)預(yù)定權(quán)重確定將所述多個數(shù)據(jù)段 保持在所述高速緩存中的時間長度,其中不管所述LRU信息如何,所述多個數(shù)據(jù)段中的具 有較高引用計數(shù)的那些數(shù)據(jù)段比具有較低引用計數(shù)的那些數(shù)據(jù)段被保持更長的時間。
2. 根據(jù)權(quán)利要求1所述的方法,進一步包括從數(shù)據(jù)去重復(fù)引擎獲得所述引用計數(shù)信 息。
3. 根據(jù)權(quán)利要求1所述的方法,進一步包括基于對所述引用計數(shù)信息的更新來重新確 定所述時間長度,其中所述預(yù)定權(quán)重根據(jù)所述引用計數(shù)的減小而減小,并且根據(jù)所述引用 計數(shù)的增加而增加。
4. 根據(jù)權(quán)利要求1所述的方法,進一步包括在預(yù)定時間間隔期滿之后重新確定所述時 間長度,其中所述預(yù)定權(quán)重根據(jù)所述預(yù)定時間間隔的經(jīng)過而減小。
5. 根據(jù)權(quán)利要求1所述的方法,其中確定將所述多個數(shù)據(jù)段保持在高速緩存中的所述 時間長度包括實現(xiàn)與以下各項中的一項對應(yīng)的至少一個策略:所述時間長度、所述多個數(shù) 據(jù)段的至少一個數(shù)據(jù)段和所述預(yù)定權(quán)重。
6. 根據(jù)權(quán)利要求1所述的方法,其中確定將所述多個數(shù)據(jù)段保持在高速緩存中的所述 時間長度包括與所述確定近似同步地執(zhí)行針對所述多個數(shù)據(jù)段中的被保持在所述高速緩 存中的那些數(shù)據(jù)段的去重復(fù)操作。
7. -種用于改善計算環(huán)境中的緩存性能的系統(tǒng),包括: 去重復(fù)引擎; 由所述去重復(fù)引擎處理的多個頻繁訪問的數(shù)據(jù)段; 被配置用于至少臨時存儲所述多個頻繁訪問的數(shù)據(jù)段的高速緩存;以及 與所述高速緩存可操作地通信的高速緩存管理模塊; 其中所述高速緩存管理模塊被配置為,結(jié)合使用最近最少使用(LRU)信息,使用所述 多個數(shù)據(jù)段的引用計數(shù)信息以根據(jù)預(yù)定權(quán)重確定將所述多個數(shù)據(jù)段保持在所述高速緩存 中的時間長度,其中不管所述LRU信息如何,所述多個數(shù)據(jù)段中的具有較高引用計數(shù)的那 些數(shù)據(jù)段比具有較低引用計數(shù)的那些數(shù)據(jù)段被保持更長的時間。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中從所述去重復(fù)引擎獲得所述引用計數(shù)信息。
9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述高速緩存管理模塊被進一步配置為基于對所 述引用計數(shù)信息的更新重新確定所述時間長度,其中所述預(yù)定權(quán)重根據(jù)所述引用計數(shù)的減 小而減小,并且根據(jù)所述引用計數(shù)的增加而增加。
10. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述高速緩存管理模塊進一步被配置為在預(yù)定 時間間隔的期滿之后重新確定所述時間長度,其中所述預(yù)定權(quán)重根據(jù)所述預(yù)定時間間隔的 經(jīng)過而減小。
11. 根據(jù)權(quán)利要求7所述的系統(tǒng),進一步包括與所述高速緩存管理模塊可操作地通信 的策略模塊,其中所述策略模塊被配置為,依據(jù)確定了將所述多個數(shù)據(jù)段保持在高速緩存 中的所述時間長度,而實現(xiàn)與以下各項中的一項對應(yīng)的至少一個策略:所述時間長度、所述 多個數(shù)據(jù)段的至少一個和所述預(yù)定權(quán)重。
12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述策略模塊進一步被配置用于選擇可用于實 現(xiàn)的多個策略中的一個。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中可用的所述多個策略中的每一個策略都與所述 多個數(shù)據(jù)段中的預(yù)定數(shù)目的數(shù)據(jù)段和保持所述多個條目中的一些條目的預(yù)定時間中的至 少一項對應(yīng)。
14. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述去重復(fù)引擎被配置為,結(jié)合確定將所述多個 數(shù)據(jù)段保持在高速緩存中的所述時間長度,與所述確定近似同步地執(zhí)行針對所述多個數(shù)據(jù) 段中的被保持在所述高速緩存中的那些數(shù)據(jù)段的去重復(fù)操作。
15. -種用于通過處理器改善計算環(huán)境中的緩存性能的計算機程序產(chǎn)品,所述計算機 程序產(chǎn)品包括存儲在其中的具有計算機可讀程序代碼部分的計算機可讀存儲介質(zhì),所述計 算機可讀程序代碼部分包括 : 第一可執(zhí)行部分,用于針對多個頻繁訪問的數(shù)據(jù)段被臨時存儲在其中的高速緩存,結(jié) 合使用最近最少使用(LRU)信息,使用所述多個數(shù)據(jù)段的引用計數(shù)信息以根據(jù)預(yù)定權(quán)重確 定將所述多個數(shù)據(jù)段保持在所述高速緩存中的時間長度,其中不管所述LRU信息如何,所 述多個數(shù)據(jù)段中的具有較高引用計數(shù)的那些數(shù)據(jù)段比具有較低引用計數(shù)的那些數(shù)據(jù)段被 保持更長的時間。
16. 根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于從數(shù) 據(jù)去重復(fù)引擎獲得所述引用計數(shù)信息。
17. 根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于基于 對所述引用計數(shù)信息的更新而重新確定所述時間長度,其中所述預(yù)定權(quán)重根據(jù)所述引用計 數(shù)的減小而減小,并且根據(jù)所述引用計數(shù)的增加而增加。
18. 根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于在預(yù) 定時間間隔的期滿之后重新確定所述時間長度,其中所述預(yù)定權(quán)重根據(jù)所述預(yù)定時間間隔 的經(jīng)過而減小。
19. 根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于依據(jù) 確定了將所述多個數(shù)據(jù)段保持在高速緩存中的所述時間長度,而實現(xiàn)與下述各項中的一項 對應(yīng)的至少一個策略:所述時間長度、所述多個數(shù)據(jù)段中的至少一個數(shù)據(jù)段和所述預(yù)定權(quán) 重。
20. 根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,進一步包括第二可執(zhí)行部分,用于依據(jù) 確定了將所述多個數(shù)據(jù)段保持在高速緩存中的所述時間長度,而與所述確定近似同步地執(zhí) 行針對所述多個數(shù)據(jù)段中的被保持在所述高速緩存中的那些數(shù)據(jù)段的去重復(fù)操作。
【文檔編號】G06F12/02GK104272275SQ201380022647
【公開日】2015年1月7日 申請日期:2013年5月6日 優(yōu)先權(quán)日:2012年5月7日
【發(fā)明者】J·S·海德, S·羅伊 申請人:國際商業(yè)機器公司