Coherence企業級快取 四 資料管理模式

2021-08-22 20:07:07 字數 1810 閱讀 3264

coherence提供了四種cache資料管理模式:

read-through,

write-through,

refresh-ahead

write-behind

資料管理模式體現在cachestore 介面的功能上。

cachestore負責直接和資料來源互動,進行增刪改查操作;並也負責和coherence cache互動,向其中寫資料(put),讀資料(get)和刪除資料(remove)。cachestore相當於 資料來源和cache間的橋梁。

對於不同的應用,由於資料來源不同,如:db,webservice ,filesystem等, cachestore有不同的實現。它一般作為應用的一部分。coherence也為 hibernate,toplink等實現了乙個cachestore。

read-through 的基本特點是同步讀取。步驟為:

1)應用呼叫 cachestore 查詢資料x;

2)cachestore 去cache中查詢,未發現資料時,向資料庫執行查詢操作,並將查詢結果放到 cache中, 並將結果返回給應用;

3)如果發現cache中有資料,則直接從cache讀取,並返回給應用。

其特點體現在第二步,cachestore呼叫 cache.get(x) 到 cachestore 給應用返回資料,是同步操作。 也就是要在乙個同步過程中先等待資料查詢,cache被填充,才能獲得資料。 這種模式的效能比較低,不及 refresh-ahead。

[b]5.2 write-through[/b]

write-through 對應於資料修改操作,如 update,也具有同步的特點。

1)應用呼叫 cachestore update資料x;

2)cachestore 先update cache中的資料,然後再向資料庫執行update操作;

這種模式在乙個同步過程中,先改cache,再改資料庫。因此效能也不是最理想的。

[b]5.2 refresh-ahead[/b]

與read-through相對,它是非同步的。

coherence在cache資料過期前,有cachestore自動重新從資料庫載入資料。而前台應用在查詢資料時,cachestore 僅呼叫cache.get(x)。因此這種模式的效率明顯高於read-through。 自動過載資料的時間可以設定。

[b]5.2 write-behind[/b]

與write-through相對,它是非同步的。

應用呼叫cachestore進行update時,cachestore不去運算元據庫,直接返回結果。而coherence集群自動對操作進行排隊(queue),在間隔一段時間後(interval), cachestore在執行佇列中的 update 操作。 這樣,減少的同步運算元據庫的時間被節省,修改類功能的效能就能得到大幅提高。這也是coherence的一大特色。

[url=企業級快取(一) 特點[/url]

[url=企業級快取(二) quickstart和程式設計[/url]

[url=企業級快取(三) 四種快取型別[/url]

[url=企業級快取(四) 資料管理模式 [/url]

[url=企業級快取(五)與hibernate整合(1)[/url]

[url=企業級快取(五)與hibernate整合(2) [/url]

[url=企業級快取(六) jmx 管理和監控[/url]

[url=企業級快取(七) 效能調優[/url]

企業級快取系統varnish應用

隨著公司業務快速發展,公司的電子商務平台已經聚集了很多的忠實粉絲,公司也拿到了投資,這時老闆想通過一場類似雙十一的活動,進行一場大的 屆時會有非常多的粉絲訪問 你的總監與市場部門開完會後,確定活動期間會有平常10倍以上的訪問請求,總監要求大幅增加 容量,除了去擴容伺服器之外,還有沒有其他辦法呢?如今...

使用EF構建企業級應用 四

本系列目錄 使用ef構建企業級應用 一 主要講資料庫訪問基類irepository及repository 的實現 使用ef構建企業級應用 二 主要講動態排序擴充套件的實現 使用ef構建企業級應用 三 主要講靈活的構建查詢條件表示式expression 使用ef構建企業級應用 四 主要講下在mvc環境...

企業級API設計

最近對service的api設計,在team內有些討論,主要集中在api是足夠抽象 通用好呢,還是具體 易用好?其實這個是要折衷的,通用的好處是以後更改api的可能性小,但壞處是想要通用,裡面的字段就不能定義太死,不定義死,極端的例子是全部用name value pair,最通用,但client面對...