RAC cache fusion機制實現原理分析

來源:互聯網
上載者:User

在單一實例中,進程要想修改資料區塊,必須在資料區塊的目前的版本(Currentcopy)上進行修改RAC環境也一樣

這便涉及到一系列問題
如何獲得資料區塊的版本在叢集節點間的分布圖?
如何知道哪個節點擁有的是目前的版本?
如何完成傳遞過程?

這一系列問題的解決依靠記憶體融合技術(cachefusion)

cachefusion通過高速的privateinterconnect,在執行個體間進行資料區塊傳遞
這是RAC最核心的工作機制,他把所有執行個體的SGA虛擬成一個大的SGA區
每當不同的執行個體請求相同的資料區塊,這個資料區塊就需要在執行個體間進行傳遞
在Oracle7的OPS中,這種傳遞是通過磁碟完成的,也叫“Disk-BasedPing”
也就是第1個執行個體必須先把這個資料區塊寫回磁碟,然後第2個執行個體再從磁碟上讀取這個資料區塊
這種依靠磁碟來完成資料傳遞極大影響系統效能
在Oracle8i引入“Net-BasedPing”通過PrivateInterconnect來傳遞資料區塊
但是8i只能傳遞沒有修改過的資料區塊,對於“髒塊”還是要通過磁碟來傳遞,這一點和OPS一樣
在Oracle9i的cachefusion,所有的資料區塊,無論修改的或者沒有修改的,都可以通過PrivateInterconnect傳遞

系統系能得到極大的改善
在cachefusion中,每個資料區塊都會被映射成一個cachefusion資源,或者說是一個PCM資源
PCM資源實際上是一個資料結構,資源的名稱就是DBA(資料區塊地址)

每個進程對資料的請求都是分步完成
①把DBA轉換成PCM資源名稱
②把這個PCM資源請求提交給DLM(分布式鎖管理器)
③DLM進行GlobalLock的申請、釋放活動,只有進程獲得了PCMLock,才能繼續下一步
也就是執行個體首先要獲得資料區塊的使用權

整個cachefusion有兩個服務組成:GCS和GES
⑴GCS服務負責資料區塊在執行個體間的傳遞
由後台進程LMSn完成
⑵GES服務負責鎖管理
在多個執行個體之間協調對資料區塊的訪問順序,保證資料的一致性訪問
由後台進程LMD完成

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.