淺談對象存儲分布式緩存

2023-07-03 0 1,713

本文轉自阿里云社區

作者:阿里云存儲

使用緩存可以有效縮短數據的讀取路徑和降低I/O操作頻次,從而提高數據的讀取響應速度。對象存儲在原有的單機緩存的基礎上,在集群范圍內構建分布式緩存,進而優化數據讀取的性能。

對象存儲業務層的數據存儲模型是按照桶(Bucket)、對象(Object)、塊(Block)三個層級來對數據進行存儲管理的。針對一次對象數據讀取,用戶請求會通過負載均衡到業務前端系統,業務前端系統通過計算得到對象的塊列表并進行遍歷,請求鍵值存儲系統獲取塊數據,最后將讀取的塊數據有序地返回給用戶。

下圖是用戶讀取數據的系統路徑圖,紅線部分是鍵值存儲系統直讀飛天盤古優化。隨著鍵值存儲系統直讀飛天盤古功能的上線開通,塊數據的讀取可以繞過鍵值存儲系統,直接請求飛天盤古系統讀取,這在一定程度縮短了數據讀取的路徑,減少了整體對象存儲系統的響應時間,但是同時也使得鍵值存儲系統路徑上對數據讀取的緩存優化失效,導致飛天盤古的請求壓力上升。

淺談對象存儲分布式緩存

用戶讀取數據的系統路徑

另外,對象存儲業務前端系統支持塊數據的單機內存緩存。對于塊數據讀取,會優先去讀取緩存,如果沒有命中,就需要客戶端請求鍵值存儲系統獲取數據。但單機內存緩存會由于業務前端機服務內存大小限制及負載均衡策略造成的流量發散而導致塊數據的緩存命中率降低。

所以,從整體系統的架構上來考慮降低飛天盤古的請求壓力,需要在對象存儲業務前端系統服務層面去優化系統全局緩存,提高緩存的命中率。

典型的緩存架構包含讀穿型緩存和旁路型緩存。讀穿型緩存與旁路型緩存的區別在于請求方請求數據的時候,如果緩存沒有命中,旁路型緩存由緩存客戶端更新緩存,而讀穿型緩存則由緩存服務端更新?;跇I務讀寫數據模式,在業務前端系統的內部實現采用的是旁路型緩存,讀塊數據的時候,會優先去緩存中獲取數據,如果沒有,再調用鍵值存儲系統客戶端獲取數據后更新緩存返回;而寫塊數據的時候,則直接通過鍵值存儲系統客戶端寫入底層的鍵值存儲系統,由鍵值存儲系統寫入飛天盤古,不做緩存更新。

下圖是在現有的業務前端系統的基礎上設計和實現的分布式緩存系統架構圖。分布式緩存主要通過一致性哈希算法來構建全局化緩存,用虛擬化節點來優化集群數據的均衡性。對象存儲的分布式緩存系統架構是去中心化的,在業務前端系統中既實現了緩存服務端功能,也同時實現了基于一致性哈希算法的全局緩存節點管理和流量處理的緩存客戶端功能。

淺談對象存儲分布式緩存

對象存儲分布式緩存架構系統

在對象存儲分布式緩存系統架構中,核心系統功能支撐可以分為三個部分:管控服務、緩存服務和數據監控。

管控服務負責管理集群服務節點的信息,實時收集集群緩存服務節點的心跳,為緩存節點提供集群范圍內所有的緩存節點信息,是一個支持HTTP協議的Web集群服務。

緩存服務是在原有業務前端系統服務中構建的,主要包含三個功能模塊:

(1)緩存服務端

緩存服務端模塊是在LRU緩存功能的基礎上構建的RPC服務,對外提供塊數據讀取功能并且支持慢啟動。

(2)緩存客戶端

緩存客戶端則實現了RPC客戶端功能,基于集群全局節點信息,利用一致性哈希算法構建全局緩存節點的哈希環。當用戶請求獲取數據時,數據的讀取模塊會調用緩存客戶端,緩存客戶端會根據塊的Key信息獲取存儲該塊數據的對應緩存節點,然后發起RPC請求獲取塊的相應數據。

(3)節點信息管理

節點信息管理則負責定時將本節點的信息更新給管控服務端,同時也定時從管控服務端同步全局緩存節點信息。

在數據監控方面,對象存儲分布式緩存實施采集分布式緩存服務端的運行數據,監控分布式緩存服務端的整體狀態。另外,通過數據分析功能獲取熱點數據,實時分析分布式緩存服務端的業務狀態,同時為分布式緩存服務端熱點數據的預熱提供有效的數據支撐。

銀河教育 網絡教程 淺談對象存儲分布式緩存 http://www.purasputas.com/data/tutorial/1555.html

常見問題

相關文章

發表評論
暫無評論
官方客服團隊

為您解決煩憂 - 24小時在線 專業服務

日日狠狠久久偷偷色综合免费_久久人人97超碰国产公开_国产AV大学生第一次破_国产对白影音先锋