欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

控制分布式數(shù)據(jù)的高速緩存操作的方法和系統(tǒng)的制作方法

文檔序號:6398379閱讀:113來源:國知局
專利名稱:控制分布式數(shù)據(jù)的高速緩存操作的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及分布式數(shù)據(jù),具體涉及分布式數(shù)據(jù)的高速緩存操作。
背景技術(shù)
高速緩存操作是運(yùn)行在應(yīng)用服務(wù)器上的應(yīng)用中所使用的一種常用技術(shù),用于在獲得性能和規(guī)模的同時(shí)減少擁有成本。由于高速緩存操作具有較高的讀寫比(read to write ratio),所以非常適合于典型的基于Web的事務(wù)性應(yīng)用。例如,在一個(gè)聯(lián)機(jī)交易應(yīng)用中,與買入或賣出股票(寫入)相比,花費(fèi)在觀察(讀取)股票價(jià)格上的時(shí)間要多得多。當(dāng)在一個(gè)電子商務(wù)應(yīng)用中有效地采用高速緩存操作時(shí),可以減少到昂貴的后端服務(wù)器(例如數(shù)據(jù)庫服務(wù)器)的流量或運(yùn)行在主機(jī)上的遺留代碼(legacy code)。因此,可以只需較低容量的此類后端服務(wù)器,這可以降低擁有該系統(tǒng)的總成本。
大量的Web應(yīng)用通常使用大型應(yīng)用服務(wù)器群集以適應(yīng)客戶的響應(yīng)時(shí)間要求。在大型群集化的環(huán)境中,高速緩存操作在保持緩存數(shù)據(jù)一致性方面存在挑戰(zhàn)。圖1中示出了應(yīng)用服務(wù)器所采用的一種常用方法。如圖1所示,應(yīng)用服務(wù)器10具有相應(yīng)的高速緩存12。利用面向消息的中間件(MOM)(message oriented middleware)14在應(yīng)用服務(wù)器群集中的應(yīng)用服務(wù)器實(shí)例10之間復(fù)制高速緩存的數(shù)據(jù)和/或數(shù)據(jù)無效通知。因此,可以在應(yīng)用服務(wù)器10的高速緩存12中復(fù)制來自數(shù)據(jù)庫16的數(shù)據(jù)。該復(fù)制可以由MOM 14利用一個(gè)消息網(wǎng)絡(luò)來控制。
如果已知復(fù)制數(shù)據(jù)的成本(通常以等待時(shí)間來衡量)比從原始數(shù)據(jù)源重新創(chuàng)建該數(shù)據(jù)更低,則在高速緩存12中進(jìn)行的數(shù)據(jù)復(fù)制成本低、效益高。例如,如果完全復(fù)制一個(gè)包含一個(gè)公司的資產(chǎn)凈值的對象費(fèi)時(shí)250ms,而通過與后端數(shù)據(jù)管理系統(tǒng)交互來計(jì)算該公司的資產(chǎn)凈值費(fèi)時(shí)2500ms,則首選復(fù)制該資產(chǎn)凈值對象,而不是重新計(jì)算該對象。但是,在高峰時(shí)間期間,當(dāng)應(yīng)用服務(wù)器非常繁忙時(shí),繁忙的CPU和擁塞的網(wǎng)絡(luò)可能會導(dǎo)致延遲,可能使該資產(chǎn)凈值對象總的復(fù)制時(shí)間超過2500ms。但是,通常是復(fù)制(高速緩存)該資產(chǎn)凈值對象還是重新計(jì)算該資產(chǎn)凈值對象的決定是一種靜態(tài)決定,并不取決于復(fù)制的特定情況。因此,通常高速緩存或重新計(jì)算該資產(chǎn)凈值對象與用于復(fù)制和/或重新計(jì)算的特定計(jì)時(shí)無關(guān)。
圖2中示出了高速緩存分布的另一變形。圖2示出了將高速緩沖存儲器的數(shù)據(jù)卸載(off-loading)至一盤高速緩存。因此,如圖2所示,應(yīng)用服務(wù)器10的高速緩存12可以向文件系統(tǒng)20寫入高速緩存數(shù)據(jù)以將數(shù)據(jù)卸載至盤高速緩存。將高速緩存數(shù)據(jù)卸載至盤可以是一種確?;诖鎯ζ鞯母咚倬彺娌粫谋M存儲器的有效方法。如果盤文件存儲在一個(gè)網(wǎng)絡(luò)文件系統(tǒng)上,還可以使用盤卸載而在應(yīng)用服務(wù)器群集的服務(wù)器10之間分配高速緩存數(shù)據(jù)。就上述復(fù)制而言,通常,是否將高速緩存數(shù)據(jù)卸載至盤的決定是一種靜態(tài)決定,并不依賴于數(shù)據(jù)卸載的特定情況。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例基于數(shù)據(jù)的特性、數(shù)據(jù)源的特性以及高速緩存的特性,通過動態(tài)地確定是否和/或在何處高速緩存分布式數(shù)據(jù)而提供了對分布式數(shù)據(jù)的高速緩存的控制,以便提供是否和/或在何處高速緩存該數(shù)據(jù)的指示?;谠撝甘究梢赃x擇性地高速緩存該數(shù)據(jù)。此外,基于該指示,可以將該數(shù)據(jù)高速緩存至存儲器、盤,在群集內(nèi)復(fù)制和/或在其它設(shè)備/存儲單元中進(jìn)行高速緩存。
在本發(fā)明的特定實(shí)施例中,數(shù)據(jù)的特性包括數(shù)據(jù)被存取的頻繁程度。數(shù)據(jù)源的特性可以包括重新計(jì)算數(shù)據(jù)需要多長時(shí)間和/或復(fù)制數(shù)據(jù)需要多長時(shí)間。高速緩存的特性可以包括檢索一個(gè)高速緩存項(xiàng)需要多長時(shí)間。
在本發(fā)明的進(jìn)一步的實(shí)施例中,動態(tài)地確定是否和/或在何處高速緩存分布式數(shù)據(jù)包括確定一個(gè)預(yù)測的最大高速緩存存取數(shù)、確定預(yù)測的由處理對應(yīng)于分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間、確定復(fù)制分布式數(shù)據(jù)的時(shí)間(r)和確定生成分布式數(shù)據(jù)的時(shí)間(c)。如果生成分布式數(shù)據(jù)的時(shí)間、復(fù)制分布式數(shù)據(jù)的時(shí)間以及預(yù)測的由處理高速緩存命中所消耗的最大時(shí)間的和小于預(yù)測的最大高速緩存存取數(shù)與生成分布式數(shù)據(jù)的時(shí)間的乘積,則所述指示被設(shè)置為表示高速緩存該分布式數(shù)據(jù)。
此外,還確定對應(yīng)于分布式數(shù)據(jù)的高速緩存項(xiàng)的生存時(shí)間(TTL)、處理對應(yīng)于分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h)以及對應(yīng)于分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存存取的預(yù)測頻率(f)。在這種情況下,可以通過確定TTL*f來確定預(yù)測的最大高速緩存存取數(shù)。還可以通過確定h*(TTL*f)-1來確定預(yù)測的由處理對應(yīng)于分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間。
在本發(fā)明的進(jìn)一步的實(shí)施例中,所述高速緩存包括盤高速緩存,所述高速緩存數(shù)據(jù)包括將高速緩存的存儲器內(nèi)容卸載至所述盤高速緩存。
在本發(fā)明的其它實(shí)施例中,確定預(yù)測的最大高速緩存存取數(shù)包括監(jiān)視高速緩存存取以確定對應(yīng)于分布式數(shù)據(jù)的高速緩存項(xiàng)的更新速率。確定處理對應(yīng)于分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h)可以包括監(jiān)視高速緩存存取以確定該時(shí)間(h)。確定復(fù)制分布式數(shù)據(jù)的時(shí)間(r)可以包括監(jiān)視數(shù)據(jù)復(fù)制操作以確定該時(shí)間(r)。最后,確定生成分布式數(shù)據(jù)的時(shí)間(c)可以包括監(jiān)視分布式數(shù)據(jù)的生成以確定該時(shí)間(c)。
而且,正如本領(lǐng)域的普通技術(shù)人員將理解的那樣,雖然以上主要參考方法方面進(jìn)行了描述,但是,本發(fā)明可以作為方法、裝置/系統(tǒng)和/或計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn)。


圖1是利用數(shù)據(jù)復(fù)制的常規(guī)應(yīng)用服務(wù)器群集的框圖;圖2是利用盤高速緩存的常規(guī)應(yīng)用服務(wù)器群集的框圖;圖3是適合于根據(jù)本發(fā)明的實(shí)施例的高速緩存控制系統(tǒng)中的數(shù)據(jù)處理系統(tǒng)的框圖;圖4是結(jié)合了根據(jù)本發(fā)明的實(shí)施例的高速緩存控制的系統(tǒng)的更詳細(xì)的框圖;圖5是一個(gè)示出了根據(jù)本發(fā)明的實(shí)施例的用于高速緩存控制的操作的流程圖;以及圖6是一個(gè)示出了根據(jù)本發(fā)明的另外的實(shí)施例的用于高速緩存控制的操作的流程圖。
具體實(shí)施例方式
以下將參考其中示出了本發(fā)明示例性實(shí)施例的附圖對本發(fā)明進(jìn)行更加完整的說明。但是,本發(fā)明可以以多種形式實(shí)現(xiàn)并且不應(yīng)被理解為限于本文中公開的實(shí)施例,相反,這些實(shí)施例的提供是為了使本公開徹底而完整,并向本領(lǐng)域的普通技術(shù)人員完整表達(dá)本發(fā)明的范圍。在全文中,相同的標(biāo)號指相同的部分。
正如本領(lǐng)域的普通技術(shù)人員將理解的那樣,本發(fā)明可以作為方法、數(shù)據(jù)處理系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品實(shí)現(xiàn)。因此,本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或組合軟件和硬件方面的實(shí)施例的形式,所有三種形式在本文中總稱為“電路”或“模塊”。此外,本發(fā)明可以采取在其中包含計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品的形式??梢岳萌魏芜m合的計(jì)算機(jī)可讀介質(zhì),包括硬盤、CD-ROM、光存儲設(shè)備、傳輸介質(zhì)(例如支持因特網(wǎng)或內(nèi)部網(wǎng)的那些介質(zhì))或磁性存儲設(shè)備。
用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼可以用面向?qū)ο蟮木幊陶Z言(例如Java、Smalltalk或C++)編寫。但是,用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼還可以用常規(guī)過程化編程語言(例如“C”編程語言)編寫。該程序代碼可以完全地在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上、作為獨(dú)立的軟件包、部分地在用戶的計(jì)算機(jī)上和部分地在遠(yuǎn)程計(jì)算機(jī)上或完全在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行。在后者的情況下,該遠(yuǎn)程計(jì)算機(jī)可以經(jīng)由局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)連接到用戶的計(jì)算機(jī),或與外部計(jì)算機(jī)建立連接(例如,使用因特網(wǎng)服務(wù)提供商經(jīng)由因特網(wǎng)建立連接)。
以下將參考根據(jù)本發(fā)明的實(shí)施例的流程圖的示例性描述和/或方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的框圖對本發(fā)明進(jìn)行說明。應(yīng)當(dāng)理解,流程圖的示例性描述和/或框圖中的每個(gè)框以及流程圖的示例性描述和/或框圖中的各個(gè)框的組合可以由計(jì)算機(jī)指令實(shí)現(xiàn)。這些計(jì)算機(jī)指令可以提供給通用計(jì)算機(jī)的處理器、專用計(jì)算機(jī)的處理器或其它可編程數(shù)據(jù)處理裝置以產(chǎn)生一種機(jī)器,以使得通過計(jì)算機(jī)的處理器或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令創(chuàng)建用于實(shí)現(xiàn)流程圖和/或框圖的一個(gè)或多個(gè)框中指定的功能/動作的裝置。
這些計(jì)算機(jī)程序指令還可以存儲在計(jì)算機(jī)可讀存儲器中,所述計(jì)算機(jī)可讀存儲器可以指導(dǎo)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定的方式運(yùn)行,以使得存儲在計(jì)算機(jī)可讀存儲器中的所述指令產(chǎn)生一件產(chǎn)品,該產(chǎn)品包括實(shí)現(xiàn)流程圖和/或框圖的一個(gè)或多個(gè)框中指定的功能/動作的指令單元。
所述計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,引起一系列操作步驟在計(jì)算機(jī)或其它可編程裝置上執(zhí)行,以產(chǎn)生一計(jì)算機(jī)實(shí)現(xiàn)的過程,以使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的所述指令提供用于實(shí)現(xiàn)流程圖和/或框圖的一個(gè)或多個(gè)框中指定的功能/動作的步驟。
現(xiàn)在將參考附圖對本發(fā)明的各種實(shí)施例進(jìn)行說明。本發(fā)明的實(shí)施例可以被結(jié)合到上述參考圖1和2討論的用于復(fù)制和/或卸載數(shù)據(jù)的常規(guī)系統(tǒng)中。但是,本發(fā)明的實(shí)施例還可以用于其它系統(tǒng)中并具有其它配置,其中是否高速緩存數(shù)據(jù)的判定可以基于對高速緩存該數(shù)據(jù)的效率的估計(jì)而作出。因此,本發(fā)明不應(yīng)被理解為限定用于例如圖1和2中示出的那些系統(tǒng)中,而是可以用于任何利用分布式數(shù)據(jù)的系統(tǒng)中。在本文中,分布式數(shù)據(jù)是可以被高速緩存以供將來使用或被重新生成以用于將來的數(shù)據(jù)。本發(fā)明的實(shí)施例可以動態(tài)地確定高速緩存或重新生成是否更高效,并且由此控制是否和/或在何處(在存儲器高速緩存和/或盤高速緩存中)高速緩存數(shù)據(jù)。
圖3中示出了一個(gè)根據(jù)本發(fā)明的實(shí)施例的適于提供高速緩存控制的數(shù)據(jù)處理系統(tǒng)130的示例性實(shí)施例。這樣的數(shù)據(jù)處理系統(tǒng)可以作為例如圖1和2的MOM 14和/或應(yīng)用服務(wù)器10提供。因此,圖3的數(shù)據(jù)處理系統(tǒng)130是示例性的可以提供高速緩存控制的數(shù)據(jù)處理系統(tǒng),但是,本發(fā)明的實(shí)施例可以由任何類型的能夠執(zhí)行本文中描述的操作的數(shù)據(jù)處理系統(tǒng)提供。
數(shù)據(jù)處理系統(tǒng)130可以包括與處理器138通信的輸入設(shè)備132(例如鍵盤或數(shù)字小鍵盤)、顯示器134和存儲器136。數(shù)據(jù)處理系統(tǒng)130還可以包括也與處理器138通信的揚(yáng)聲器144和(多個(gè))I/O數(shù)據(jù)端口146。I/O數(shù)據(jù)端口146可用于在數(shù)據(jù)處理系統(tǒng)130和另一計(jì)算機(jī)系統(tǒng)或網(wǎng)絡(luò)之間傳輸信息。這些組件可以是常規(guī)的組件,例如那些用于許多常規(guī)數(shù)據(jù)處理系統(tǒng)中的組件,所述常規(guī)組件可以被配置成按照本文中描述的來運(yùn)行。
圖4是示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的數(shù)據(jù)處理系統(tǒng)的框圖。處理器138經(jīng)由地址/數(shù)據(jù)總線248與存儲器136通信。處理器138可以是任何可從市面上購買的或定制的微處理器。存儲器136代表存儲器設(shè)備的總體分層結(jié)構(gòu),其中包含用于實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)130的功能的軟件和數(shù)據(jù)。存儲器136可以包括,但不限于,以下類型的裝置高速緩存、ROM、PROM、EPROM、EEPROM、閃存、SRAM和DRAM。
如圖4所示,存儲器136可以包括數(shù)據(jù)處理系統(tǒng)130中使用的若干種類的軟件和數(shù)據(jù)操作系統(tǒng)252、應(yīng)用程序254、輸入/輸出(I/O)設(shè)備驅(qū)動程序258和數(shù)據(jù)256。正如本領(lǐng)域的普通技術(shù)人員將理解的那樣,操作系統(tǒng)252可以是任何適合與數(shù)據(jù)處理系統(tǒng)一起使用的操作系統(tǒng),例如紐約州阿蒙克(Armonk)的國際商業(yè)機(jī)器公司的OS/2、AIX或390系統(tǒng),華盛頓州雷蒙德(Redmond)的微軟公司的Windows95、Windows98、Windows2000或Windows XP,以及Unix或Linux。I/O設(shè)備驅(qū)動程序258通常包括由應(yīng)用程序254通過操作系統(tǒng)252訪問的軟件例程,用于與諸如I/O數(shù)據(jù)端口146和某些存儲器136組件之類的設(shè)備進(jìn)行通信。應(yīng)用程序254是實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)130的各種功能的示例性程序并且優(yōu)選地包括至少一個(gè)支持根據(jù)本發(fā)明的實(shí)施例的操作的應(yīng)用程序。最后,數(shù)據(jù)256代表由應(yīng)用程序254、操作系統(tǒng)252、I/O設(shè)備驅(qū)動程序258和其它可以駐留在存儲器136中的軟件程序所使用的靜態(tài)和動態(tài)數(shù)據(jù)。
如圖4進(jìn)一步所見,應(yīng)用程序254可以包括一個(gè)高速緩存控制模塊260。該高速緩存控制模塊260可以執(zhí)行本文中描述的操作,用于確定是否高速緩存數(shù)據(jù)和/或在何處進(jìn)行高速緩存。存儲器136的數(shù)據(jù)部分256,如圖4的實(shí)施例中所示,可以可選地包括高速緩存控制數(shù)據(jù)262。該高速緩存控制數(shù)據(jù)262可以由高速緩存控制模塊260利用,以用于確定是高速緩存還是重新生成該數(shù)據(jù)更有效率,并由此動態(tài)地控制高速緩存判定。該高速緩存控制數(shù)據(jù)262還可以由所述高速緩存控制模塊260利用,以用于確定在何處進(jìn)行高速緩存(例如,存儲器、磁盤或在所述群集中復(fù)制)。
盡管本發(fā)明是參考例如圖4中作為應(yīng)用程序的高速緩存控制模塊260進(jìn)行說明的,但本領(lǐng)域的普通技術(shù)人員將理解,還可以利用其它配置,該配置仍然得益于本發(fā)明的指導(dǎo)。例如,該高速緩存控制模塊260還可以被結(jié)合到操作系統(tǒng)252、I/O設(shè)備驅(qū)動程序258或數(shù)據(jù)處理系統(tǒng)130的其它此類邏輯部分中。因此,本發(fā)明不應(yīng)被理解為僅限于圖4中的配置,而是旨在包括任何能夠執(zhí)行本文中描述的操作的配置。
現(xiàn)在將參考圖5和6的流程圖對根據(jù)本發(fā)明的實(shí)施例的操作進(jìn)行說明。圖5和/或6的操作可以由例如圖4的高速緩存控制模塊260執(zhí)行。如圖5所示,確定要被高速緩存的數(shù)據(jù)的特性(框500)。此類特性可以包括,例如,數(shù)據(jù)的生存時(shí)間(TTL)和數(shù)據(jù)被存取的頻率(f)。此類特性可以被動態(tài)地確定或被預(yù)先建立。在本發(fā)明的特定實(shí)施例中,TTL信息可以基于用戶輸入直接進(jìn)行計(jì)算和/或通過觀察和記錄(監(jiān)視)特定高速緩存項(xiàng)的更新速率來確定。高速緩存存取的頻率可以基于特定項(xiàng)的存取模式或高速緩存數(shù)據(jù)的類型進(jìn)行計(jì)算和/或采樣。
還確定要被高速緩存的數(shù)據(jù)源的特性(框502)。此類特性可以包括,例如,重新計(jì)算該數(shù)據(jù)要花費(fèi)多長時(shí)間。此類確定可以基于對數(shù)據(jù)生成的監(jiān)視而動態(tài)地做出。還確定高速緩存的特性(框504)。此類特性可以包括,例如,復(fù)制/卸載該數(shù)據(jù)要花費(fèi)多長時(shí)間和/或檢索一個(gè)高速緩存項(xiàng)要花費(fèi)多長時(shí)間。這些特性可以例如通過在執(zhí)行復(fù)制/卸載數(shù)據(jù)和/或高速緩存檢索時(shí)采樣或以其它方式監(jiān)視系統(tǒng)來確定,以便這些特性可以在條件變化時(shí)被更新。
估計(jì)被確定的特性(框506)以確定高速緩存該數(shù)據(jù)是否比重新生成該數(shù)據(jù)更高效,并且如果是更高效的話,確定在何處高速緩存該數(shù)據(jù)。例如,高速緩存或不高速緩存的判定可以利用系統(tǒng)負(fù)載統(tǒng)計(jì)數(shù)據(jù)、頻率和響應(yīng)時(shí)間來確定分布式高速緩存的配置?;趯ι鲜鲂畔⒌墓烙?jì)可以做出判定。例如,如果該數(shù)據(jù)可以由所述群集中的單個(gè)節(jié)點(diǎn)迅速計(jì)算出來,則不分布該數(shù)據(jù)可能更高效。如果系統(tǒng)正在高峰負(fù)載期間或如果要復(fù)制的數(shù)據(jù)量很大,造成復(fù)制中的延遲,則復(fù)制可能不是處理該數(shù)據(jù)的最高效的方法。對于將數(shù)據(jù)卸載至盤高速緩存,可以做出類似的確定。還有,如果數(shù)據(jù)更新頻繁,則重新生成該數(shù)據(jù)可能比分布該數(shù)據(jù)更高效。因此,復(fù)制可能效率不高。最后,從高速緩存中檢索數(shù)據(jù)通常需要花費(fèi)時(shí)間計(jì)算高速緩存關(guān)鍵字以及物理地從該高速緩存中檢索該項(xiàng)。因此,如果高速緩存等待時(shí)間過長,則通過高速緩存分布該數(shù)據(jù)可能不會更高效。
如果高速緩存更高效(框508),則高速緩存該數(shù)據(jù)(框510),例如,通過設(shè)置應(yīng)該高速緩存該數(shù)據(jù)的指示并利用該指示使用常規(guī)技術(shù)高速緩存該數(shù)據(jù)。如果高速緩存并不高效(框508),則不高速緩存該數(shù)據(jù)(框512),例如,通過設(shè)置不應(yīng)該高速緩存該數(shù)據(jù)的指示并利用該指示使用常規(guī)技術(shù)不對該數(shù)據(jù)進(jìn)行高速緩存。
圖6示出了可以由例如圖4的高速緩存控制模塊260執(zhí)行的根據(jù)本發(fā)明的另外的實(shí)施例的用于控制高速緩存的操作。如圖6所示,將確定一個(gè)預(yù)測的生成要被高速緩存的數(shù)據(jù)要花費(fèi)的時(shí)間(c)(框600)。這樣的預(yù)測可以例如通過監(jiān)視數(shù)據(jù)的生成并利用該信息確定預(yù)測時(shí)間(c)來做出。也可以利用其它用于確定時(shí)間(c)的技術(shù)。此數(shù)據(jù)可以,例如,作為圖4的高速緩存控制數(shù)據(jù)262來存儲。
還確定復(fù)制和/或?qū)?shù)據(jù)卸載至盤的預(yù)測時(shí)間(r)(框602)。這樣的預(yù)測可以例如通過監(jiān)視復(fù)制和/或卸載數(shù)據(jù)并利用該信息確定預(yù)測時(shí)間(r)來做出。也可以利用其它用于確定時(shí)間(r)的技術(shù)。此數(shù)據(jù)可以,例如,作為圖4的高速緩存控制數(shù)據(jù)262來存儲。據(jù)此,可以做出是否和/或在何處高速緩存的決定。
還確定數(shù)據(jù)的生存時(shí)間(TTL)(框604)。這樣的確定可以例如通過基于用戶輸入直接計(jì)算TTL和/或通過監(jiān)視特定高速緩存項(xiàng)的更新速率來做出。因此,可以例如利用對應(yīng)于該數(shù)據(jù)的高速緩存項(xiàng)的平均更新計(jì)時(shí)確定預(yù)計(jì)的TTL。也可以利用其它用于確定高速緩存項(xiàng)的TTL的技術(shù)。此數(shù)據(jù)可以,例如,作為圖4的高速緩存控制數(shù)據(jù)262來存儲。
還確定處理高速緩存命中的時(shí)間(h)(框606)。這樣的確定可以例如通過監(jiān)視高速緩存存取時(shí)間來做出。被監(jiān)視的高速緩存存取時(shí)間可以是總的存取時(shí)間或?qū)?yīng)于該數(shù)據(jù)的高速緩存項(xiàng)的存取時(shí)間。因此,可以例如利用平均高速緩存存取時(shí)間或?qū)?yīng)于該數(shù)據(jù)的高速緩存項(xiàng)的實(shí)際或平均高速緩存存取時(shí)間確定預(yù)計(jì)的時(shí)間(h)。也可以利用其它用于確定時(shí)間(h)的技術(shù)。此數(shù)據(jù)可以,例如,作為圖4的高速緩存控制數(shù)據(jù)262來存儲。
還確定處理高速緩存存取的頻率(f)(框608)。這樣的確定可以例如通過基于對特定項(xiàng)的存取模式或被高速緩存的數(shù)據(jù)的類型進(jìn)行計(jì)算和/或采樣來做出。也可以利用其它用于確定時(shí)間(f)的技術(shù)。此數(shù)據(jù)可以,例如,作為圖4的高速緩存控制數(shù)據(jù)262來存儲。
以上確定的值被用于確定是高速緩存該數(shù)據(jù)、在所述群集中復(fù)制該被高速緩存的數(shù)據(jù),還是將該被高速緩存的數(shù)據(jù)存儲到盤上。特別地,將判定c+r+(h*((TTL*f)-1))是否小于c*(TTL*f)(框610)??梢允褂胷的值重復(fù)地做出判定(r的值等于從本地高速緩存檢索該數(shù)據(jù)的時(shí)間、在所述群集中復(fù)制該數(shù)據(jù)的時(shí)間或?qū)⒃摳咚倬彺骓?xiàng)卸載到盤上的時(shí)間),用于由此確定是否和/或在何處進(jìn)行高速緩存。如果小于,則高速緩存該數(shù)據(jù)(框612),如果不小于,則不高速緩存該數(shù)據(jù)(框614)。如進(jìn)一步說明的那樣,存取頻率與高速緩存項(xiàng)的生存時(shí)間的乘積(TTL*f)確定了在高速緩存項(xiàng)生存期間預(yù)測的高速緩存存取數(shù)。處理高速緩存命中的總時(shí)間由h*((TTL*f)-1)給出。因此,從高速緩存獲取內(nèi)容的總時(shí)間由生成數(shù)據(jù)的時(shí)間、復(fù)制數(shù)據(jù)的時(shí)間和處理高速緩存命中時(shí)間的和給出,其可以表示為c+r+(h*((TTL*f)-1))。
如果數(shù)據(jù)沒有被高速緩存,重新生成該數(shù)據(jù)的總時(shí)間等于生成該數(shù)據(jù)的時(shí)間與所述預(yù)測的數(shù)據(jù)的存取數(shù)的乘積,即c*(TTL*f)。如果重新生成該數(shù)據(jù)的總時(shí)間大于從高速緩存獲取內(nèi)容的總時(shí)間,則數(shù)據(jù)被高速緩存可能更高效,否則,重新生成該數(shù)據(jù)可能更高效。
作為實(shí)例,如果數(shù)據(jù)的TTL為10秒鐘,生成該數(shù)據(jù)的時(shí)間(c)為0.3秒鐘,存取頻率(f)為每秒鐘3次命中,復(fù)制或卸載該數(shù)據(jù)的時(shí)間(r)為1秒鐘,處理一次高速緩存命中的時(shí)間(h)為0.1秒鐘,則c+r+(h*((TTL*f)-1))為4.2,c*(TTL*f)的值為9。因此,該數(shù)據(jù)將被高速緩存。
圖1至6的流程圖和框圖示出了根據(jù)本發(fā)明的各種實(shí)施例的用于自主高速緩存控制的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能的實(shí)施方式的體系結(jié)構(gòu)、功能和操作。在這一點(diǎn)上,流程圖或框圖中的每個(gè)框可以代表一個(gè)模塊、程序段或部分代碼,它們包含一條或多條用于實(shí)現(xiàn)指定邏輯功能的可執(zhí)行指令。還應(yīng)注意,在某些替代實(shí)施方式中,框中標(biāo)注的功能可能與圖中標(biāo)注的功能的順序不同。例如,取決于所涉及的功能,連續(xù)示出的兩個(gè)框可能實(shí)際上被基本同時(shí)執(zhí)行,或者所述的框有時(shí)可能以相反的順序被執(zhí)行。還應(yīng)理解,框圖和/或流程圖的示例性描述的每個(gè)框,以及框圖和/或流程圖的示例性描述中的各框的組合可以由專用的基于硬件的系統(tǒng)實(shí)現(xiàn),該系統(tǒng)執(zhí)行專用硬件和計(jì)算機(jī)指令的指定功能、動作或其組合。
在附圖和說明書中,公開了本發(fā)明的典型示例性實(shí)施例,盡管采用了特定術(shù)語,但這些術(shù)語僅在一般和說明的意義上使用,并非旨在進(jìn)行限定,在附帶的權(quán)利要求書中闡明了本發(fā)明的范圍。
權(quán)利要求
1.一種控制分布式數(shù)據(jù)的高速緩存的方法,所述方法包括基于數(shù)據(jù)的特性、數(shù)據(jù)源的特性以及高速緩存的特性,動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù),以便提供一個(gè)是否高速緩存該數(shù)據(jù)的指示;以及基于該指示選擇性地高速緩存該數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)的特性包括該數(shù)據(jù)被存取的頻繁程度。
3.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)源的特性包括重新計(jì)算該數(shù)據(jù)要花費(fèi)多長時(shí)間和/或復(fù)制該數(shù)據(jù)要花費(fèi)多長時(shí)間。
4.如權(quán)利要求1所述的方法,其特征在于,所述高速緩存的特性包括檢索一個(gè)高速緩存項(xiàng)要花費(fèi)多長時(shí)間。
5.如權(quán)利要求1所述的方法,其中動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù),包括確定預(yù)測的最大高速緩存存取數(shù);確定預(yù)測的由處理對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間;確定復(fù)制該分布式數(shù)據(jù)的時(shí)間(r);確定生成該分布式數(shù)據(jù)的時(shí)間(c);以及如果生成該分布式數(shù)據(jù)的時(shí)間、復(fù)制該分布式數(shù)據(jù)的時(shí)間以及預(yù)測的由處理高速緩存命中所消耗的最大時(shí)間的和小于預(yù)測的最大高速緩存存取數(shù)與生成該分布式數(shù)據(jù)的時(shí)間的乘積,則設(shè)置所述指示,以指示高速緩存該分布式數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其特征在于,相對于時(shí)間(t)重復(fù)地執(zhí)行設(shè)置所述指示,該時(shí)間(r)等于從本地高速緩存檢索該分布式數(shù)據(jù)的時(shí)間、在群集中復(fù)制該分布式數(shù)據(jù)的時(shí)間和將該分布式數(shù)據(jù)卸載到盤上的時(shí)間,以便由此確定是否和/或在何處高速緩存該分布式數(shù)據(jù)。
7.如權(quán)利要求5所述的方法,進(jìn)一步包括確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的生存時(shí)間(TTL);確定處理一個(gè)對應(yīng)于該分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h);確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的預(yù)測的高速緩存存取頻率(f);其中確定預(yù)測的最大高速緩存存取數(shù)包括確定TTL*f;以及其中確定預(yù)測的由處理對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間包括確定h*(TTL*f)-1。
8.如權(quán)利要求1所述的方法,其特征在于,所述高速緩存包括一盤高速緩存,并且其中,高速緩存該數(shù)據(jù)包括將高速緩存的存儲器內(nèi)容卸載到該盤高速緩存。
9.如權(quán)利要求5所述的方法,其特征在于,確定預(yù)測的最大高速緩存存取數(shù)包括監(jiān)視高速緩存存取以確定對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的更新速率。
10.如權(quán)利要求7所述的方法,其特征在于,確定處理一個(gè)對應(yīng)于該分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h)包括監(jiān)視高速緩存存取以確定該時(shí)間(h)。
11.如權(quán)利要求5所述的方法,其特征在于,確定復(fù)制該分布式數(shù)據(jù)的時(shí)間(r)包括監(jiān)視數(shù)據(jù)復(fù)制操作以確定該時(shí)間(r)。
12.如權(quán)利要求5所述的方法,其特征在于,確定生成該分布式數(shù)據(jù)的時(shí)間(c)包括監(jiān)視該分布式數(shù)據(jù)的生成以確定該時(shí)間(c)。
13.一種用于控制分布式數(shù)據(jù)的高速緩存的系統(tǒng),所述系統(tǒng)包括用于基于數(shù)據(jù)的特性、數(shù)據(jù)源的特性以及高速緩存的特性動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù),以便提供一個(gè)是否高速緩存該數(shù)據(jù)的指示的裝置;以及用于基于該指示選擇性地高速緩存該數(shù)據(jù)的裝置。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,用于動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù)的裝置,包括用于確定預(yù)測的最大高速緩存存取數(shù)的裝置;用于確定預(yù)測的由處理對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間的裝置;用于確定復(fù)制該分布式數(shù)據(jù)的時(shí)間(r)的裝置;用于確定生成該分布式數(shù)據(jù)的時(shí)間(c)的裝置;以及用于如果生成該分布式數(shù)據(jù)的時(shí)間、復(fù)制該分布式數(shù)據(jù)的時(shí)間以及預(yù)測的由處理高速緩存命中所消耗的最大時(shí)間的和小于預(yù)測的最大高速緩存存取數(shù)與生成該分布式數(shù)據(jù)的時(shí)間的乘積,則設(shè)置所述指示,以指示高速緩存該分布式數(shù)據(jù)的裝置。
15.如權(quán)利要求14所述的系統(tǒng),進(jìn)一步包括用于確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的生存時(shí)間(TTL)的裝置;用于確定處理一個(gè)對應(yīng)于該分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h)的裝置;用于確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的預(yù)測的高速緩存存取頻率(f)的裝置;其中用于確定預(yù)測的最大高速緩存存取數(shù)的裝置包括用于確定TTL*f的裝置;以及其中用于確定預(yù)測的處理對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間的裝置包括用于確定h*(TTL*f)-1的裝置。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述高速緩存包括一盤高速緩存,并且其中,用于選擇性地高速緩存該數(shù)據(jù)的裝置包括用于將高速緩存的存儲器內(nèi)容卸載到該盤高速緩存的裝置。
17.一種用于控制分布式數(shù)據(jù)的高速緩存的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括其中包含計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可讀程序代碼包括配置成基于數(shù)據(jù)的特性、數(shù)據(jù)源的特性以及高速緩存的特性動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù),以便提供一個(gè)是否高速緩存該數(shù)據(jù)的指示的計(jì)算機(jī)可讀程序代碼;以及配置成基于該指示選擇性地高速緩存該數(shù)據(jù)的計(jì)算機(jī)可讀程序代碼。
18.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述配置成動態(tài)地確定是否和/或在何處高速緩存該分布式數(shù)據(jù)的計(jì)算機(jī)可讀程序代碼,包括配置成確定預(yù)測的最大高速緩存存取數(shù)的計(jì)算機(jī)可讀程序代碼;配置成確定預(yù)測的由處理對應(yīng)相應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間的計(jì)算機(jī)可讀程序代碼;配置成確定復(fù)制該分布式數(shù)據(jù)的時(shí)間(r)的計(jì)算機(jī)可讀程序代碼;配置成確定生成該分布式數(shù)據(jù)的時(shí)間(c)的計(jì)算機(jī)可讀程序代碼;以及配置成如果生成該分布式數(shù)據(jù)的時(shí)間、復(fù)制該分布式數(shù)據(jù)的時(shí)間以及預(yù)測的由處理高速緩存命中所消耗的最大時(shí)間的和小于預(yù)測的最大高速緩存存取數(shù)與生成該分布式數(shù)據(jù)的時(shí)間的乘積,則設(shè)置所述指示,以指示高速緩存該分布式數(shù)據(jù)的計(jì)算機(jī)可讀程序代碼。
19.如權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括配置成確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的生存時(shí)間(TTL)的計(jì)算機(jī)可讀程序代碼;配置成確定處理一個(gè)對應(yīng)于該分布式數(shù)據(jù)的高速緩存命中的時(shí)間(h)的計(jì)算機(jī)可讀程序代碼;配置成確定對應(yīng)于該分布式數(shù)據(jù)的所述高速緩存項(xiàng)的預(yù)測的高速緩存存取頻率(f)的計(jì)算機(jī)可讀程序代碼;其中配置成確定預(yù)測的最大高速緩存存取數(shù)的計(jì)算機(jī)可讀程序代碼包括配置成確定TTL*f的計(jì)算機(jī)可讀程序代碼;以及其中配置成確定預(yù)測的由處理對應(yīng)于該分布式數(shù)據(jù)的高速緩存項(xiàng)的高速緩存命中所消耗的最大時(shí)間的計(jì)算機(jī)可讀程序代碼包括配置成確定h*(TTL*f)-1的計(jì)算機(jī)可讀程序代碼。
20.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述高速緩存包括一盤高速緩存,并且其中,配置成選擇性地高速緩存該數(shù)據(jù)的計(jì)算機(jī)可讀程序代碼包括配置成將高速緩存的存儲器內(nèi)容卸載到該盤高速緩存的計(jì)算機(jī)可讀程序代碼。
全文摘要
基于數(shù)據(jù)的特性、數(shù)據(jù)源的特性以及高速緩存的特性,通過動態(tài)地確定是否和/或在何處高速緩存分布式數(shù)據(jù)來控制該分布式數(shù)據(jù)的高速緩存,以便提供一個(gè)是否高速緩存該數(shù)據(jù)的指示??梢曰谠撝甘具x擇性地高速緩存該數(shù)據(jù)。
文檔編號G06F9/46GK1577276SQ200410034138
公開日2005年2月9日 申請日期2004年4月22日 優(yōu)先權(quán)日2003年7月11日
發(fā)明者G·A·科莫, B·K·馬丁 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
龙口市| 仁寿县| 九龙县| 牡丹江市| 武山县| 沭阳县| 平舆县| 阿鲁科尔沁旗| 那坡县| 穆棱市| 东安县| 区。| 称多县| 卢氏县| 崇信县| 西和县| 沈丘县| 观塘区| 调兵山市| 嘉兴市| 环江| 鹤庆县| 龙井市| 九龙县| 罗甸县| 城市| 论坛| 江陵县| 灌南县| 老河口市| 饶平县| 杭州市| 大余县| 章丘市| 陵水| 绥江县| 双桥区| 达日县| 左贡县| 团风县| 兴和县|