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

緩存數(shù)據(jù)管理方法和裝置的制作方法

文檔序號(hào):6340816閱讀:199來(lái)源:國(guó)知局
專利名稱:緩存數(shù)據(jù)管理方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及緩存維護(hù)技術(shù),具體而言,涉及一種緩存數(shù)據(jù)管理方法和裝置。
背景技術(shù)
緩存在分布式系統(tǒng)中被廣泛的使用,用于提高分布式環(huán)境下節(jié)點(diǎn)之間的交互效 率,減少了網(wǎng)絡(luò)交互的次數(shù),降低對(duì)網(wǎng)絡(luò)帶寬的要求,從而使系統(tǒng)具有更好的響應(yīng)能力和伸 縮能力。根據(jù)分布式節(jié)點(diǎn)的職責(zé)不同,不同節(jié)點(diǎn)對(duì)緩存有不同的要求。常見的緩存有頁(yè)面 緩存、數(shù)據(jù)緩存、對(duì)象緩存等。頁(yè)面緩存經(jīng)常在負(fù)責(zé)UI展現(xiàn)的節(jié)點(diǎn)中被使用到,通過(guò)靜態(tài)數(shù) 據(jù)或者模板數(shù)據(jù)的緩存,提高界面的展現(xiàn)效率。數(shù)據(jù)緩存在負(fù)責(zé)持久化或查詢的節(jié)點(diǎn)上廣 泛使用,一般對(duì)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)進(jìn)行緩存,從而減少數(shù)據(jù)庫(kù)交互的次數(shù),降低數(shù)據(jù)庫(kù)的 壓力。在負(fù)責(zé)業(yè)務(wù)服務(wù)的節(jié)點(diǎn)上,對(duì)象緩存用于業(yè)務(wù)模型的緩存,從而使業(yè)務(wù)模型能夠更快 的得到構(gòu)建和使用,避免不必要的數(shù)據(jù)獲取和模型構(gòu)建運(yùn)算。無(wú)論是哪種緩存,都會(huì)涉及到 緩存數(shù)據(jù)的過(guò)期和更新,如果無(wú)法解決則會(huì)出現(xiàn)數(shù)據(jù)一致性問(wèn)題。例如,數(shù)據(jù)緩存的數(shù)據(jù)在 數(shù)據(jù)庫(kù)中發(fā)生了變化,必須更新數(shù)據(jù)緩存,使其與數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持一致。在分布式環(huán)境中,緩存被廣泛的使用,緩存一般以(鍵,值)對(duì)的形式進(jìn)行組織。緩 存中的數(shù)據(jù)都大多數(shù)都具有一定的時(shí)效性,隨著系統(tǒng)業(yè)務(wù)的推進(jìn),鍵對(duì)應(yīng)的目標(biāo)數(shù)據(jù)值可 能發(fā)生變化,這就需要一種機(jī)制進(jìn)行緩存中數(shù)據(jù)的更新和維護(hù)。傳統(tǒng)的緩存數(shù)據(jù)維護(hù)方法 主要有1、設(shè)置緩存的超時(shí),緩存使用了一段時(shí)間后,再次使用該緩存中的數(shù)據(jù)時(shí),強(qiáng)制進(jìn) 行緩存刷新;2、通過(guò)數(shù)據(jù)緩存端提供主動(dòng)清除緩存或者主動(dòng)請(qǐng)求緩存刷新的動(dòng)作,通過(guò)人為交 互保持緩存的同步,例如每次用戶登錄時(shí)同步;3、數(shù)據(jù)緩存端對(duì)緩存數(shù)據(jù)的變化進(jìn)行輪詢,判斷緩存數(shù)據(jù)是否變化,如果變化進(jìn) 行緩存的數(shù)據(jù)同步。第一種和第二種方法,刷新緩存時(shí)粒度太粗,網(wǎng)絡(luò)流量開銷大,第三種方式,因?yàn)?判斷緩存中的數(shù)據(jù)是否變化的操作本身就是一次分布式的交互動(dòng)作,隨著緩存類型和緩存 數(shù)據(jù)的增加,可能帶來(lái)大量的細(xì)小網(wǎng)絡(luò)交互動(dòng)作,網(wǎng)絡(luò)交互次數(shù)多。它們都無(wú)法保證數(shù)據(jù)的 實(shí)時(shí)一致性,容易使系統(tǒng)阻塞,出現(xiàn)系統(tǒng)響應(yīng)時(shí)間不穩(wěn)定的現(xiàn)象。另外由于緩存數(shù)據(jù)量一般 比較大,直接采用刷新數(shù)據(jù)的方式,對(duì)與服務(wù)器也會(huì)造成較大的壓力。因此,需要一種新的用于緩存數(shù)據(jù)更新的方式,既能夠及時(shí)地保證緩存數(shù)據(jù)與目 標(biāo)數(shù)據(jù)的一致性,又能保證減輕更新緩存數(shù)據(jù)是的網(wǎng)絡(luò)壓力。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于,提供一種新的用于緩存數(shù)據(jù)更新的方式,既能 夠及時(shí)地保證緩存數(shù)據(jù)與目標(biāo)數(shù)據(jù)的一致性,又能保證減輕更新緩存數(shù)據(jù)是的網(wǎng)絡(luò)壓力。有鑒于此,本發(fā)明提供一種緩存數(shù)據(jù)管理方法,包括步驟102,為目標(biāo)數(shù)據(jù)生成版本信息;步驟104,在緩存中設(shè)置緩存區(qū)域,將所述目標(biāo)數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的版本信 息存儲(chǔ)在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù)的版本信息,根據(jù)所述緩存數(shù)據(jù)的 版本信息設(shè)置所述緩存區(qū)域的版本信息;步驟106,在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo) 數(shù)據(jù)的版本信息;以及步驟108,在確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本 信息不相同時(shí),根據(jù)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及更 新所述緩存數(shù)據(jù)的版本信息。通過(guò)該技術(shù)方案,通過(guò)版本管理,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù)據(jù) 進(jìn)行更新。在上述技術(shù)方案中,優(yōu)選地,在所述步驟108中,還通過(guò)對(duì)所述目標(biāo)數(shù)據(jù)的版本信 息做鏡像,并通過(guò)所述鏡像取來(lái)取得所述目標(biāo)數(shù)據(jù)的版本信息,以用于與所述緩存數(shù)據(jù)的 版本信息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息是否相同。在上述技術(shù)方案中,優(yōu)選地,其特征在于,在所述步驟106中,還包括對(duì)所述目標(biāo) 數(shù)據(jù)的版本信息進(jìn)行監(jiān)聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí),對(duì)所述目標(biāo) 數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,優(yōu)選地,在所述步驟106中,還包括定時(shí)、和/或在所述緩存 數(shù)據(jù)被調(diào)用時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,優(yōu)選地,所述緩存區(qū)域的版本信息為所述緩存區(qū)域中所有緩 存數(shù)據(jù)的版本信息中的最新版本信息。本發(fā)明還提供一種緩存數(shù)據(jù)管理裝置,包括版本服務(wù)模塊,為目標(biāo)數(shù)據(jù)生成版本 信息;緩存區(qū)域模塊,在緩存中設(shè)置緩存區(qū)域,以用于將所述目標(biāo)數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的 版本信息存儲(chǔ)在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù)的版本信息,緩存端模塊根 據(jù)所述緩存數(shù)據(jù)的版本信息設(shè)置所述緩存區(qū)域的版本信息;所述緩存端模塊,所述版本服 務(wù)模塊在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo)數(shù)據(jù)的版本信息,所述緩存端模塊在確定所 述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息不相同時(shí),根據(jù)所述目標(biāo)數(shù)據(jù)和所述目 標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及更新所述緩存數(shù)據(jù)的版本信息。通過(guò)該技術(shù)方 案,通過(guò)版本管理,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù)據(jù)進(jìn)行更新。在上述技術(shù)方案中,優(yōu)選地,還包括版本代理模塊,通過(guò)對(duì)所述目標(biāo)數(shù)據(jù)的版本 信息做鏡像,并通過(guò)所述鏡像取得所述目標(biāo)數(shù)據(jù)的版本信息,以用于與所述緩存數(shù)據(jù)的版 本信息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息是否相同。在上述技術(shù)方案中,優(yōu)選地,所述版本代理模塊還對(duì)所述目標(biāo)數(shù)據(jù)的版本信息進(jìn) 行監(jiān)聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做 鏡像。在上述技術(shù)方案中,優(yōu)選地,所述版本代理模塊定時(shí)、和/或在所述緩存數(shù)據(jù)被調(diào) 用時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,優(yōu)選地,所述緩存區(qū)域的版本信息為所述緩存區(qū)域中所有緩 存數(shù)據(jù)的版本信息中的最新版本信息。通過(guò)上述技術(shù)方案,可以實(shí)現(xiàn)一種緩存數(shù)據(jù)管理方法和裝置,能夠通過(guò)該技術(shù)方 案,通過(guò)鏡像技術(shù)和版本管理,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù)據(jù)進(jìn)行更新,既能夠保證緩存數(shù)據(jù) 的有效性,又能避免造成過(guò)大的網(wǎng)絡(luò)壓力。


圖1是根據(jù)本發(fā)明的--個(gè)實(shí)施例的緩存斐_f理方法的流程圖2是根據(jù)本發(fā)明的--個(gè)實(shí)施例的緩存斐_f理裝置的框圖3是根據(jù)本發(fā)明的--個(gè)實(shí)施例的緩存斐_f理裝置的示意圖4是根據(jù)本發(fā)明的--個(gè)實(shí)施例的緩存斐_f理裝置的工作流程圖5是根據(jù)本發(fā)明的--個(gè)實(shí)施例的緩存斐f理裝置的工作示意圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明并不限于下面公開的具體實(shí) 施例的限制。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的緩存數(shù)據(jù)管理方法的流程圖。如圖1所示,本發(fā)明提供一種緩存數(shù)據(jù)管理方法,包括步驟102,為目標(biāo)數(shù)據(jù)生成 版本信息;步驟104,在緩存中設(shè)置緩存區(qū)域,將所述目標(biāo)數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的版本信 息存儲(chǔ)在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù)的版本信息,根據(jù)所述緩存數(shù)據(jù)的 版本信息設(shè)置所述緩存區(qū)域的版本信息;步驟106,在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo) 數(shù)據(jù)的版本信息;以及步驟108,在確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本 信息不相同時(shí),根據(jù)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及更 新所述緩存數(shù)據(jù)的版本信息。通過(guò)該技術(shù)方案,通過(guò)版本管理,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù)據(jù) 進(jìn)行更新。在上述技術(shù)方案中,在所述步驟108中,還通過(guò)對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡 像,并通過(guò)所述鏡像取來(lái)取得所述目標(biāo)數(shù)據(jù)的版本信息,以用于與所述緩存數(shù)據(jù)的版本信 息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息是否相同。在上述技術(shù)方案中,其特征在于,在所述步驟106中,還包括對(duì)所述目標(biāo)數(shù)據(jù)的 版本信息進(jìn)行監(jiān)聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的 版本信息做鏡像。在上述技術(shù)方案中,在所述步驟106中,還包括定時(shí)、和/或在所述緩存數(shù)據(jù)被調(diào) 用時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,所述緩存區(qū)域的版本信息為所述緩存區(qū)域中所有緩存數(shù)據(jù)的 版本信息中的最新版本信息。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的緩存數(shù)據(jù)管理裝置的框圖。如圖2所示,本發(fā)明還提供一種緩存數(shù)據(jù)管理裝置200,包括版本服務(wù)模塊202, 為目標(biāo)數(shù)據(jù)生成版本信息;緩存區(qū)域模塊204,在緩存中設(shè)置緩存區(qū)域,以用于將所述目標(biāo) 數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的版本信息存儲(chǔ)在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù) 的版本信息,緩存端模塊206根據(jù)所述緩存數(shù)據(jù)的版本信息設(shè)置所述緩存區(qū)域的版本信 息;所述緩存端模塊206,所述版本服務(wù)模塊202在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo)數(shù) 據(jù)的版本信息,所述緩存端模塊206在確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息不相同時(shí),根據(jù)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及 更新所述緩存數(shù)據(jù)的版本信息。通過(guò)該技術(shù)方案,通過(guò)版本管理,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù) 據(jù)進(jìn)行更新。在上述技術(shù)方案中,還包括版本代理模塊208,通過(guò)對(duì)所述目標(biāo)數(shù)據(jù)的版本信息 做鏡像,并通過(guò)所述鏡像取得所述目標(biāo)數(shù)據(jù)的版本信息,以用于與所述緩存數(shù)據(jù)的版本信 息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息是否相同。在上述技術(shù)方案中,所述版本代理模塊208還對(duì)所述目標(biāo)數(shù)據(jù)的版本信息進(jìn)行監(jiān) 聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,所述版本代理模塊208定時(shí)、和/或在所述緩存數(shù)據(jù)被調(diào)用 時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。在上述技術(shù)方案中,所述緩存區(qū)域的版本信息為所述緩存區(qū)域中所有緩存數(shù)據(jù)的 版本信息中的最新版本信息。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的緩存數(shù)據(jù)管理裝置的示意圖。如圖3所示,本發(fā)明的技術(shù)方案是通過(guò)緩存的版本化和版本鏡像技術(shù)解決傳統(tǒng)的 緩存維護(hù)中面臨的問(wèn)題,在本實(shí)施例的緩存數(shù)據(jù)管理裝置中主要包括如下的一些功能部 件緩存區(qū)域存儲(chǔ)緩存數(shù)據(jù),以(鍵,值)的方式存儲(chǔ)數(shù)據(jù),應(yīng)用程序通過(guò)緩存區(qū)域直 接使用緩存中的數(shù)據(jù)版本服務(wù)器306(版本服務(wù)模塊)在分布式環(huán)境中的一臺(tái)獨(dú)立的服務(wù)器,用于維 護(hù)數(shù)據(jù)的版本,它的數(shù)據(jù)形式是(鍵,版本),并按照緩存區(qū)域?qū)?shù)據(jù)進(jìn)行組織版本服務(wù)代理304 (版本代理模塊)負(fù)責(zé)監(jiān)測(cè)緩存版本的變化,在緩存端本地或 者緩存端附近的網(wǎng)絡(luò)中以(鍵,版本)的方式對(duì)版本服務(wù)器中維護(hù)的版本信息做鏡像緩存端302 (緩存端模塊)負(fù)責(zé)維護(hù)緩存區(qū)域,并在版本服務(wù)代理304中注冊(cè)其 所關(guān)注的緩存區(qū)域的版本情況。緩存的版本信息分為兩個(gè)部分a.鍵對(duì)應(yīng)的目標(biāo)數(shù)據(jù)自身的版本,我們記為Vb.緩存區(qū)域的總的版本標(biāo)識(shí)區(qū)域版本,我們記為RV(Region Version)雖然緩存區(qū)域?qū)ν馓峁┑臄?shù)據(jù)結(jié)構(gòu)是(鍵,值)對(duì)的形式,但還是可以根據(jù)它對(duì)當(dāng) 前緩存數(shù)據(jù)所處的版本進(jìn)行維護(hù),通過(guò)緩存區(qū)域的版本信息與版本服務(wù)代理304的版本鏡 像,可以知道當(dāng)前數(shù)據(jù)是否發(fā)生變化。版本服務(wù)器306對(duì)版本的維護(hù),采用遞增的方式進(jìn)行維護(hù),也就是說(shuō)每次鍵對(duì)應(yīng) 的值發(fā)生變化,版本值V會(huì)遞增。區(qū)域版本是當(dāng)前區(qū)域中所有版本值中的最大值。由于版 本的單調(diào)遞增的性質(zhì),可以利用這個(gè)性質(zhì)進(jìn)行增量的版本刷新。例如,應(yīng)用程序在從緩存區(qū) 域按鍵取數(shù)據(jù)的時(shí)候,首先檢查數(shù)據(jù)的有效性,如果數(shù)據(jù)有效,立即使用,如果數(shù)據(jù)無(wú)效,則 請(qǐng)求能夠提供目標(biāo)數(shù)據(jù)的節(jié)點(diǎn),裝載數(shù)據(jù)。在檢查數(shù)據(jù)的有效性時(shí),一般有個(gè)超時(shí)設(shè)置,只 有對(duì)超時(shí)的數(shù)據(jù)才進(jìn)行有效性的檢查??蛇x的,對(duì)于熱點(diǎn)數(shù)據(jù),本實(shí)施的緩存數(shù)據(jù)管理裝置可以周期性的檢查數(shù)據(jù)的有 效性,并把無(wú)效數(shù)據(jù)以批的方式刷新,減少每次請(qǐng)求數(shù)據(jù)時(shí)由于數(shù)據(jù)裝載造成對(duì)效率的影 響。
通過(guò)以上可知,緩存區(qū)域的使用方式,決定了大部分?jǐn)?shù)據(jù)是在其真實(shí)發(fā)生使用,并 且發(fā)生變化才會(huì)重新裝載,避免了對(duì)沒(méi)有用到的數(shù)據(jù)同步,造成帶寬和存儲(chǔ)的浪費(fèi),也避免 了由于大量數(shù)據(jù)變化或者初始化時(shí)發(fā)生巨量的網(wǎng)絡(luò)請(qǐng)求。緩存端302的工作流程可以如圖4所示。緩存端302在啟動(dòng)時(shí),首先進(jìn)行步驟402, 緩存區(qū)域的初始化,加載持久化到本地的緩存數(shù)據(jù)。然后進(jìn)行步驟404,向版本代理304注 冊(cè)其所關(guān)心的緩存區(qū)域,最后進(jìn)行步驟406向版本代理304發(fā)起請(qǐng)求,對(duì)比當(dāng)前緩存數(shù)據(jù)的 有效性,如果版本變化,把數(shù)據(jù)置為失效。其中,版本代理304在啟動(dòng)時(shí),首先裝載保存在本地的版本鏡像,然后向版本服務(wù) 器306注冊(cè)其所關(guān)心的版本區(qū)域,最后請(qǐng)求把最新的版本信息同步下來(lái),形成最新的版本 鏡像。可選的,版本代理304還試圖建立與版本服務(wù)器306的長(zhǎng)連接通道,進(jìn)行版本變化的 監(jiān)聽。通過(guò)該通道,版本服務(wù)器306能夠把緩存區(qū)域的版本變化信息通知到版本代理304。一般情況下,版本服務(wù)代理304和緩存端302都在同一個(gè)物理的進(jìn)程中,對(duì)于一些 網(wǎng)絡(luò)帶寬特別低的環(huán)境,可以通過(guò)分離版本代理304和緩存端302,讓很多緩存端302使用 同一版本服務(wù)代理304的方式,減少同一網(wǎng)絡(luò)環(huán)境下,不同的緩存端302對(duì)版本服務(wù)器306 的壓力和請(qǐng)求,但是要求緩存端302和版本服務(wù)代理304能夠直接的高效的通信。緩存端302向版本服務(wù)代理304、版本服務(wù)代理304向版本服務(wù)器306注冊(cè)的其所 關(guān)心的緩存區(qū)域或區(qū)域的過(guò)程,會(huì)隨著緩存區(qū)域的使用發(fā)生變化,例如新加入使用一個(gè)緩 存區(qū)域,就會(huì)新注冊(cè)一個(gè)關(guān)系的版本變化的緩存區(qū)域。除了版本服務(wù)代理304初始化時(shí),主動(dòng)請(qǐng)求版本服務(wù)器306同步緩存版本信息外, 版本代理304還可以周期性的向版本服務(wù)器306進(jìn)行請(qǐng)求,同步緩存版本信息,以用于把緩 存端302的過(guò)期數(shù)據(jù)置為無(wú)效。緩存數(shù)據(jù)發(fā)生變化時(shí),在版本服務(wù)器306和版本代理304之間發(fā)生的動(dòng)作如圖5 所示首先是步驟502,分布式環(huán)境中的目標(biāo)數(shù)據(jù)提供節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行了變化后;步驟504,版本服務(wù)器306得到通知,得知數(shù)據(jù)已經(jīng)變化;步驟506,版本服務(wù)器306根據(jù)所變化數(shù)據(jù)的區(qū)域和數(shù)據(jù)的鍵產(chǎn)生新的版本信息;步驟508,版本服務(wù)器306通知版本服務(wù)代理304,告知特定緩存區(qū)域的數(shù)據(jù)的版 本發(fā)生了變化。其中,版本服務(wù)代理304在每次請(qǐng)求版本服務(wù)器306同步版本時(shí),版本服務(wù)器306 會(huì)為該版本服務(wù)代理304所同步每個(gè)的緩存區(qū)域,記錄一個(gè)標(biāo)志,表示版本服務(wù)代理304已 經(jīng)對(duì)該緩存區(qū)域進(jìn)行了一次最新的同步。當(dāng)緩存區(qū)域數(shù)據(jù)版本發(fā)生變化時(shí),版本服務(wù)器306檢查這些標(biāo)志信息,如果標(biāo)志 信息已經(jīng)被復(fù)位,版本服務(wù)器306對(duì)對(duì)應(yīng)的緩存版本代理什么也不做;如果標(biāo)志被設(shè)置,版 本服務(wù)器306把標(biāo)志信息復(fù)位。如果具有長(zhǎng)連接通道,版本服務(wù)器306將會(huì)通過(guò)該長(zhǎng)連接 通道,告知版本服務(wù)代理304該緩存區(qū)域數(shù)據(jù)版本發(fā)生了變化,這種方法避免了不必要的 通信負(fù)荷??蛇x的,對(duì)于一些變化很少的緩存區(qū)域,版本服務(wù)器306對(duì)標(biāo)志信息不進(jìn)行復(fù)位, 而是通過(guò)長(zhǎng)連接通道直接把該緩存區(qū)域變化的版本數(shù)據(jù)和緩存區(qū)域自身的版本信息同步 到緩存區(qū)域。
對(duì)于大部分情況下,變化的版本并不主動(dòng)同步到版本服務(wù)代理304,而是版本服務(wù) 代理304發(fā)現(xiàn)其關(guān)心的緩存區(qū)域發(fā)生版本變化后,選擇一個(gè)時(shí)機(jī),如該緩存區(qū)域再次被使 用時(shí)或者刷新周期到達(dá)時(shí),主動(dòng)的請(qǐng)求同步緩存版本信息。通過(guò)以上技術(shù)方案,可以實(shí)現(xiàn)一種緩存數(shù)據(jù)管理方法和裝置,可以通過(guò)獨(dú)立的版 本服務(wù)器和版本服務(wù)代理的配合,實(shí)現(xiàn)了緩存區(qū)域中數(shù)據(jù)的自動(dòng)刷新,保障了數(shù)據(jù)的實(shí)時(shí) 有效性。這使得由于緩存變化更新的需要產(chǎn)生的遠(yuǎn)程交互次數(shù)減少了數(shù)十倍,減低了服務(wù) 器的壓力,數(shù)據(jù)刷新具有良好的效果。本發(fā)明的技術(shù)方案也適用于網(wǎng)絡(luò)環(huán)境特別差的系統(tǒng), 這時(shí)候一般不采用長(zhǎng)連接監(jiān)聽緩存版本的變化,而是回歸周期性的刷新,事實(shí)證明對(duì)于大 部分變化不是很頻繁的數(shù)據(jù),實(shí)時(shí)性能夠具有良好的保障。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩存數(shù)據(jù)管理方法,其特征在于,包括步驟102,為目標(biāo)數(shù)據(jù)生成版本信息;步驟104,在緩存中設(shè)置緩存區(qū)域,將所述目標(biāo)數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的版本信息存儲(chǔ) 在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù)的版本信息,根據(jù)所述緩存數(shù)據(jù)的版本信 息設(shè)置所述緩存區(qū)域的版本信息;步驟106,在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo)數(shù)據(jù)的版本信息;以及步驟108,在確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息不相同時(shí),根據(jù) 所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及更新所述緩存數(shù)據(jù)的 版本信息。
2.根據(jù)權(quán)利要求1所述的緩存數(shù)據(jù)管理方法,其特征在于,在所述步驟108中,還通過(guò) 對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像,并通過(guò)所述鏡像取來(lái)取得所述目標(biāo)數(shù)據(jù)的版本信息, 以用于與所述緩存數(shù)據(jù)的版本信息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存 區(qū)域的版本信息是否相同。
3.根據(jù)權(quán)利要求2所述的緩存數(shù)據(jù)管理方法,其特征在于,在所述步驟106中,還包括 對(duì)所述目標(biāo)數(shù)據(jù)的版本信息進(jìn)行監(jiān)聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí), 對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。
4.根據(jù)權(quán)利要求2所述的緩存數(shù)據(jù)管理方法,其特征在于,在所述步驟106中,還包括 定時(shí)、和/或在所述緩存數(shù)據(jù)被調(diào)用時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的緩存數(shù)據(jù)管理方法,其特征在于,所述緩存區(qū)域 的版本信息為所述緩存區(qū)域中所有緩存數(shù)據(jù)的版本信息中的最新版本信息。
6.一種緩存數(shù)據(jù)管理裝置,其特征在于,包括版本服務(wù)模塊,為目標(biāo)數(shù)據(jù)生成版本信息;緩存區(qū)域模塊,在緩存中設(shè)置緩存區(qū)域,以用于將所述目標(biāo)數(shù)據(jù)連同所述目標(biāo)數(shù)據(jù)的 版本信息存儲(chǔ)在所述緩存區(qū)域中作為緩存數(shù)據(jù)和所述緩存數(shù)據(jù)的版本信息,緩存端模塊根 據(jù)所述緩存數(shù)據(jù)的版本信息設(shè)置所述緩存區(qū)域的版本信息;所述緩存端模塊,所述版本服務(wù)模塊在所述目標(biāo)數(shù)據(jù)改變時(shí),更新所述目標(biāo)數(shù)據(jù)的版 本信息,所述緩存端模塊在確定所述目標(biāo)數(shù)據(jù)的版本信息和所述緩存區(qū)域的版本信息不相 同時(shí),根據(jù)所述目標(biāo)數(shù)據(jù)和所述目標(biāo)數(shù)據(jù)的版本信息來(lái)更新所述緩存數(shù)據(jù)以及更新所述緩 存數(shù)據(jù)的版本信息。
7.根據(jù)權(quán)利要求6所述的緩存數(shù)據(jù)管理裝置,其特征在于,還包括版本代理模塊,通過(guò)對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像,并通過(guò)所述鏡像取得所述目 標(biāo)數(shù)據(jù)的版本信息,以用于與所述緩存數(shù)據(jù)的版本信息進(jìn)行比較來(lái)確定所述目標(biāo)數(shù)據(jù)的版 本信息和所述緩存區(qū)域的版本信息是否相同。
8.根據(jù)權(quán)利要求7所述的緩存數(shù)據(jù)管理裝置,其特征在于,所述版本代理模塊還對(duì)所 述目標(biāo)數(shù)據(jù)的版本信息進(jìn)行監(jiān)聽,并在監(jiān)聽到所述目標(biāo)數(shù)據(jù)的版本信息發(fā)生變化時(shí),對(duì)所 述目標(biāo)數(shù)據(jù)的版本信息做鏡像。
9.根據(jù)權(quán)利要求7所述的緩存數(shù)據(jù)管理裝置,其特征在于,所述版本代理模塊定時(shí)、和 /或在所述緩存數(shù)據(jù)被調(diào)用時(shí),對(duì)所述目標(biāo)數(shù)據(jù)的版本信息做鏡像。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的緩存數(shù)據(jù)管理裝置,其特征在于,所述緩存區(qū)域的版本信息為所述緩存區(qū)域中所有緩存數(shù)據(jù)的版本信息中的最新版本信息。
全文摘要
本發(fā)明提供一種緩存數(shù)據(jù)管理方法,包括步驟102,為目標(biāo)數(shù)據(jù)生成版本信息;步驟104,在緩存中設(shè)置緩存區(qū)域,將目標(biāo)數(shù)據(jù)連同目標(biāo)數(shù)據(jù)的版本信息存儲(chǔ)在緩存區(qū)域中作為緩存數(shù)據(jù)和緩存數(shù)據(jù)的版本信息,根據(jù)緩存數(shù)據(jù)的版本信息設(shè)置緩存區(qū)域的版本信息;步驟106,在目標(biāo)數(shù)據(jù)改變時(shí),更新目標(biāo)數(shù)據(jù)的版本信息;以及步驟108,在確定目標(biāo)數(shù)據(jù)的版本信息和緩存區(qū)域的版本信息不相同時(shí),根據(jù)目標(biāo)數(shù)據(jù)和目標(biāo)數(shù)據(jù)的版本信息來(lái)更新緩存數(shù)據(jù)以及更新緩存數(shù)據(jù)的版本信息。本發(fā)明還提供一種緩存數(shù)據(jù)管理裝置。通過(guò)本發(fā)明,通過(guò)版本管理、版本鏡像化,可實(shí)現(xiàn)僅對(duì)過(guò)期的緩存數(shù)據(jù)進(jìn)行更新。
文檔編號(hào)G06F9/44GK102073494SQ201010616439
公開日2011年5月25日 申請(qǐng)日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者何冠宇 申請(qǐng)人:用友軟件股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
澳门| 怀远县| 新竹市| 罗甸县| 沂南县| 富宁县| 秦皇岛市| 阳高县| 桑植县| 襄垣县| 航空| 连山| 三穗县| 上高县| 吐鲁番市| 洮南市| 清丰县| 南宁市| 麻城市| 威信县| 桓台县| 大理市| 西充县| 青铜峡市| 吉木萨尔县| 永济市| 华宁县| 乐都县| 上高县| 娄烦县| 清流县| 嘉禾县| 保定市| 德州市| 舞阳县| 新巴尔虎左旗| 巴林左旗| 陕西省| 临猗县| 汶川县| 安徽省|