oracle的單例項併發控制:Latch(二)
Latch是oracle使用的另一種併發控制機制,Latch是一種“低階”鎖,這種鎖主要用於保護資料結構。
oracle的記憶體使用都是以GB為單位的,在這麼大的空間中尋找一個資料,必須要以高效的方式組織記憶體才能保證效率。oracle採用的雜湊演算法來組織記憶體的。
在遍歷連結串列的過程中,連結串列這個資料結構本身也可能被其他程式併發修改,因此對連結串列資料結構也需要進行併發控制,這中控制就是使用的Latch。
latch和lock對比:
Latch和Lock的作用是相同的,都是為了保護資源,防止併發訪問造成的破壞。但是Latch的實現機制和Lock有很大差異:
1、Latch請求、獲得、釋放等操作是原子操作,使用時間非常短;
2、程式請求Latch卻不能得到時,程式不會釋放cpu資源,而是不斷嘗試請求,只有嘗試一定次數之後還不能獲得時,才釋放cpu,這就是Latch的Spin機制。這時的表現就是cpu利用率非常高,但是吞吐量卻很低。
3、Latch使用的是搶佔機制,Lock使用的是排隊機制。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-694415/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的單例項併發控制:Lock(一)Oracle單例
- Oracle單例項+ASM新增控制檔案Oracle單例ASM
- 單例項和RAC打造的ORACLE STREAM(二)單例Oracle
- oracle併發控制Oracle
- ASM單例項(Oracle 11.2.0.4)環境(二)ASM單例Oracle
- ORACLE 觸發器語法及例項 二Oracle觸發器
- oracle單例項轉RACOracle單例
- Thread 併發執行例項thread
- oracle 觸發器的例項Oracle觸發器
- oracle 11g latch之v$latch系列二Oracle
- td單元格合併程式碼例項
- Oracle DataBase單例項遷移到Oracle RACOracleDatabase單例
- 淺析Java併發中的單例模式Java單例模式
- javascript 物件合併程式碼例項簡單分析JavaScript物件
- table表格單元格合併程式碼例項
- 單例項和RAC打造的ORACLE STREAM(完)單例Oracle
- 單例項和RAC打造的ORACLE STREAM(四)單例Oracle
- 單例項和RAC打造的ORACLE STREAM(三)單例Oracle
- 單例項和RAC打造的ORACLE STREAM(一)單例Oracle
- oracle單例項12.2.0.1安裝Oracle單例
- 歸併排序例項排序
- Hibernate(二):Hibernate搭建開發環境+簡單例項開發環境單例
- JEECG 簡單例項講解許可權控制單例
- 「分散式技術專題」併發系列二:基於時間的併發控制分散式
- 併發控制
- css二級下拉選單程式碼例項CSS
- oracle之 單例項監聽修改埠Oracle單例
- oracle 11g 單例項安裝Oracle單例
- Oracle11g 搭建單例項DataGuardOracle單例
- Oracle 11g RAC跨例項控制並行Oracle並行
- Oracle 10g RAC跨例項控制並行Oracle 10g並行
- 單例項刪除ASM例項單例ASM
- 【原創】Oracle 事務探索與例項(二)Oracle
- RAC環境下單例項啟動Oracle資料庫重建控制檔案案例單例Oracle資料庫
- Guava併發:使用Monitor控制併發Guava
- css合併減少重複程式碼簡單例項CSS單例
- 單例與單例項之爭單例
- OC開發例項變數的訪問控制詳解變數