溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

DMRAC緩存交換

發(fā)布時間:2020-08-10 22:58:40 來源:ITPUB博客 閱讀:214 作者:eric0435 欄目:數(shù)據(jù)庫

緩存交換
根據(jù)目前的硬件發(fā)展?fàn)顩r來看,網(wǎng)絡(luò)的傳輸速度比磁盤的讀、寫速度更快,因此,DMRAC集群引入了緩存交換(Buffer Swap)技術(shù),節(jié)點間的數(shù)據(jù)頁盡可能通過網(wǎng)絡(luò)傳遞,避免通過磁盤的寫入、再讀出方式在節(jié)點間傳遞數(shù)據(jù),從而減少數(shù)據(jù)庫的IO等待時間,提升系統(tǒng)的響應(yīng)速度。

緩存交換的實現(xiàn)基礎(chǔ)是GBS/LBS服務(wù),在GBS/LBS中維護了Buffer數(shù)據(jù)頁的相關(guān)信息。包括:1. 閂的封鎖權(quán)限(LATCH);2. 哪些站點訪問過此數(shù)據(jù)頁(Access MAP);3. 最新數(shù)據(jù)保存在哪一個節(jié)點(Fresh EP)中;4. 以及最新數(shù)據(jù)頁的LSN值(Fresh LSN)等信息。這些信息作為LBS封鎖、GBS授權(quán)和GBS權(quán)限回收請求的附加信息進行傳遞,因此并不會帶來額外的通訊開銷。

下面,以兩節(jié)點DMRAC集群(EP0/EP1)訪問數(shù)據(jù)頁P1為例子。初始頁P1位于共享存儲上,P1的GBS控制結(jié)構(gòu)位于節(jié)點EP1上。初始頁P1還沒有被任何一個節(jié)點訪問過,初始頁P1的LSN為10000。通過幾種常見場景分析,逐步深入,解析緩存交換的原理。
場景1
節(jié)點EP0訪問數(shù)據(jù)頁P1。
1. 節(jié)點EP0的本地LBS向EP1的GBS請求數(shù)據(jù)頁P1的S LATCH權(quán)限
2. 節(jié)點EP1的GBS修改P1控制結(jié)構(gòu),記錄訪問節(jié)點EP0的封鎖模式為S LATCH(數(shù)據(jù)分布節(jié)點為EP0),并響應(yīng)EP0的LBS請求
3. 節(jié)點EP0的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是S_LATCH,P1數(shù)據(jù)不在其他節(jié)點的Buffer中,發(fā)起本地IO請求,從磁盤讀取數(shù)據(jù)。
IO完成后,修改LBS控制結(jié)構(gòu),記錄數(shù)據(jù)頁上的LSN信息
DMRAC緩存交換

場景2
節(jié)點EP1訪問數(shù)據(jù)頁P1。
1. 節(jié)點EP1本地LBS向EP1的GBS請求數(shù)據(jù)頁P1的S LATCH權(quán)限
2. 節(jié)點EP1的GBS修改控制結(jié)構(gòu),記錄訪問節(jié)點EP1的封鎖模式為S LATCH(數(shù)據(jù)分布節(jié)點為EP0/EP1),并響應(yīng)EP1的LBS請求
3. 節(jié)點EP1的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是S LATCH,根據(jù)數(shù)據(jù)分布情況,EP1向EP0發(fā)起P1的讀請求,通過內(nèi)部網(wǎng)絡(luò)從EP0獲取
數(shù)據(jù),而不是重新從磁盤讀取P1數(shù)據(jù)
DMRAC緩存交換
場景3
節(jié)點EP0修改數(shù)據(jù)頁P1。
1. 節(jié)點EP0本地LBS向EP1的GBS請求數(shù)據(jù)頁P1的X LATCH權(quán)限(附加LSN信息)
2. 節(jié)點EP1的GBS修改控制結(jié)構(gòu)的LSN值,從EP1的LBS回收P1的權(quán)限
3. 修改訪問節(jié)點EP0的封鎖模式為S + X LATCH,并響應(yīng)EP0的LBS請求
4. 節(jié)點EP0的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是S + X LATCH
5. 節(jié)點EP0修改數(shù)據(jù)頁P1,LSN修改為11000
這個過程中,只有全局Latch請求,數(shù)據(jù)頁并沒有在節(jié)點間傳遞。
DMRAC緩存交換
修改之后,數(shù)據(jù)頁P1的LSN修改為11000。如下所示:
DMRAC緩存交換

場景4
節(jié)點EP1修改數(shù)據(jù)頁P1。
1.節(jié)點EP1本地LBS向EP1的GBS請求數(shù)據(jù)頁P1的X LATCH權(quán)限
2.節(jié)點EP1的GBS發(fā)現(xiàn)P1被EP0以S + X方式封鎖,向EP0發(fā)起回收P1權(quán)限的請求
3.節(jié)點EP0釋放P1的全局LATCH,響應(yīng)GBS,并且在響應(yīng)消息中附加了最新的PAGE LSN值
4.節(jié)點EP1的GBS收到EP0的響應(yīng)后,修改GBS控制結(jié)構(gòu),記錄最新數(shù)據(jù)保存在EP0,最新的LSN值信息,記錄EP0獲得的授權(quán)模式是S + X LATCH
(此時,數(shù)據(jù)分布節(jié)點仍然是EP0/EP1),并授權(quán)EP1的LBS
5.節(jié)點EP1的LBS收到授權(quán)信息后,記錄獲得的授權(quán)模式是S + X LATCH,并根據(jù)數(shù)據(jù)分布情況,向節(jié)點EP0發(fā)起數(shù)據(jù)頁P1的讀請求
6.節(jié)點EP1修改數(shù)據(jù)頁P1,LSN修改為12000
DMRAC緩存交換

修改之后,數(shù)據(jù)頁P1的LSN修改為12000。如下所示:
DMRAC緩存交換

這個過程中,數(shù)據(jù)頁P1的最新數(shù)據(jù)從EP0傳遞到了EP1,但并沒有產(chǎn)生磁盤IO。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI