快取融合(Cache Fusion)介紹

2022-04-30 16:27:11 字數 2432 閱讀 5604

概念

簡單地說,快取融合就是把oracle rac資料庫中所有資料庫快取作為乙個共享的資料庫快取,並被rac中的所有節點共享。它是實現rac的基本技術。

快取融合主要有如下四個功能:

(1) 提供擴充套件性的傳輸。

(2) 在例項間傳輸資料庫的對映。

(3) 跟蹤資源的當前位置和狀態。

(4) 在每個例項的sga的目錄結構中儲存資源資訊。

圖中描述了兩節點rac資料庫的運**況。每個節點都執行乙個資料庫例項,每個例項包含一組oracle程序和用於快取的系統全域性區(sga)。除了這些集群中的每個節點都還執行著一組特殊的程序:全域性快取服務程序(global cache service ,gcs)和全域性佇列服務程序(global enqueue service,ges),ges主要負責維護字典快取和庫快取內的一致性,gcs主要負責協調不同例項間對資料塊的訪問,它們通過global resource directory(grd)來維護和記錄每個資料塊的狀態,使其在群集中的各個節點之間同步和序列處理對資料的訪問。同時,每個資料區塊又隸屬於某乙個節點,對於這個資料區塊來說,這個節點稱為主節點(master)。為了在伺服器之間均衡工作負載,群集中所有伺服器都可以成為部分資料塊的主節點,gcs 是oracle 用來實施快取融合的機制。

快取融合工作原理

我們知道,oracle rac是採用共享磁碟方式實現資料庫的群集。群集環境中所有節點共享且併發地對磁碟上的資料庫進行更新,另外還要額外地需要同其它節點進行同步和序列機制,以避免兩個或多個節點同時更新同一資料頁上的記錄,那麼oracle rac是如何利用快取融合處理資料同步的?下面通過幾種情況模擬分析下快取的同步原理。

(1) 節點a讀取乙個全新的資料塊,該資料塊沒有被任何節點讀入

①節點a的請求發給gcs,gcs把這個請求**給這個資料塊的主節點,這裡假定是節點b。因為這個資料塊沒有在任何節點的記憶體中,gcs標記這個資料塊狀態為s(shared,共享狀態),並記錄到grd中。

②接著b告訴節點a狀態修改了,準備工作都完成了。然後節點a記錄共享狀態在自己的例項中,並讀入該資料塊。這時,節點a持有了該資料塊,並在grd中進行記錄,標記持有該資料塊。此時,整個過程發生了一次io操作。

(2) 節點c要修改剛才節點a讀入的資料塊,這裡假定節點a剛才讀入的資料塊scn是100。

①節點c找到該資料塊的主節點,也就是節點b,要求能加乙個x標記(exclusive,獨佔狀態),表明要修改資料。但是這個資料塊可能已經存在於多個節點的例項中,每個例項都有個s標記。

②gcs會告訴所有持有該資料塊的例項,把狀態s標記轉換為n標記(null,空狀態)。

③最後乙個從s標記轉換為n標記的例項把資料塊傳送到需要對其進行修改的節點如節點c上。

④這時節點c的例項就可以對該資料塊加上x標記,並通知該資料塊的主節點,也就是節點b的gcs,gcs將最新的標記與位置記錄到grd,並關閉以前節點的資源記錄。這時節點c就可以修改該資料塊了,假定把scn從100修改成了101,這個時候磁碟上的資料塊scn還是100,整個過程是通過內部互聯進行資料交換,沒有磁碟io產生。

(3) 節點d也要修改該資料塊

①與節點c修改該資料塊類似,節點d也會找到該資料塊的主節點,也就是節點b,要求加乙個x(exclusive,獨佔狀態)的鎖,表示要修改該資料塊。

②這時gcs會告訴上一次修改成功的節點c,放棄它加上的x標記,因為別的節點也要修改這個資料塊。

③節點c會確保這個資料塊的改變,已經記入聯機日誌中,然後轉換x標記為n標記,並把這個資料塊拷貝到節點d。

④節點d加上x標記,並通知該資料塊的主節點,也就是節點b的gcs,gcs將最新的標記與位置揭露到grd,並關閉以前節點上的資源記錄。這時節點d就可以修改該資料塊了,假定把該資料塊的scn從101又修改成102,但是磁碟的資料塊上的scn還是100。可以發現rac在這個過程中,也沒有任何磁碟操作,同樣是通過內部互聯來完成的。

(4) 節點a要重新讀取該資料塊

節點a還是一樣,首先找到該資料塊的主節點,也就是節點b,希望能讀取最新的資料塊,也就是scn為102的內容。

gcs根據grd得知最新的資料塊在節點d上,於是gcs通知節點d。節點d需要確保剛才修改過的資料塊已經記錄在聯機日誌中,如果已經確定記錄過,則把原來的x標記轉換為s標記。

節點d拷貝資料塊到節點a的例項,這時節點a獲得該資料塊,並獲得s標記。

最後再告訴該資料塊的主節點,也就是節點b,gcs記錄最新的標記與位置到grd,這個時候,節點a與節點d同時持有s標記的相同的資料塊,資料塊的scn為102,但是磁碟中的資料塊scn還是100,最後如果發生寫操作,只要最新的乙個節點發生寫操作即可,所以該資料塊雖然在不同節點、不同例項中發生了多次改變,最終卻只有一次寫io操作。

結語

通過對快取融合工作原理的介紹,我們就大致知道了快取融合在rac環境下是如何工作的,也為我們以後有針對性的對其就行優化提供了依據。

融合2 0 軟體定義的融合

從軟體定義的網路 sdn 到軟體定義的資料中心,資料中心基礎架構的融合正在逐步走向深入。在這個過程中,無論是儲存 伺服器還是網路廠商,都面臨著相同的挑戰,那就是如何實現硬體平台與軟體的進一步整合,從而簡化資料中心的基礎架構,並且讓其變得更加智慧型。emulex總裁兼首席運營官jeff bench表示...

融合之路 厚積薄發

語言的融合 工具的融合 不同抽象層次的思想的融合 稼說 送張琥 蘇軾曷嘗觀於富人之稼乎?其田美而多,其食足而有餘。其田美而多,則可以更休,而地方得完。其食足而有餘,則種之常不後時,而斂之常及其熟。故富人之稼常美,少秕而多實,久藏而不腐。今吾十口之家,而共百畝之田,寸寸而取之,日夜以望之,鋤耰銍艾,相...

XML 資料融合

xml規範既不是一套語法 也不是一組標籤,它只是提供了一種定義標籤和資料結構之間的關係的方法。它的出現是為了滿足通過 web或其它機制進行資料交換的需要。xml的價值在於提供了一種在應用之間進行資料交換的標準手段,xml是一種儲存結構化和半結構化資訊的理想資料格式 這些被格式化的資訊可以在不同的 介...