enqueue, latch的理解及區別

freshairpeng發表於2014-04-03
enqueue, latch的理解:

Enqueue: 可以理解為門外的一把鎖,主要是針對業務應用層面的,用於保證業務操作的完整性,主要特徵表現為佇列性,就是要求所有的程式排隊,不能亂來,  就是你要默默等待,只有輪到你,等待到你需要的資源後,你才能進行相關的操作,要不就只能等待。

Latch: 可以形象的理解為開啟門後,進入門裡後,裡面的一個門閂 ,主要針對資料庫資源層面,保證資源的完整性,當你獲得這個資源後,你就用閂栓上,別人就不能用了。主要目的如下:
1:保證資源的序列訪問 --- 保護SGA的資源訪問,---保護記憶體的分配
2:保證執行的序列化 --保證關鍵資源的串紅執行,--防止記憶體結構損害。

比較形象的比喻如下:

Enqueue:  好像學校裡排隊打飯,大家都要按照順序來打飯,不能隨便亂搶,只有前面的那個打完飯,後面的才能來。
Latch: 好像池塘裡的魚,如果突然有人往裡面丟食品後,就會非常混亂,大家拼命的搶,誰搶到就是誰的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14766526/viewspace-1135126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章