Mongo 鎖的理解

2022-06-10 21:57:17 字數 514 閱讀 9823

global (mongod 例項) – 所有的資料庫上加鎖

database – 鎖定某個資料庫

collection – 鎖定某個集合

document – 鎖定某個文件

mongo的資源層級結構:global ->db -> collection -> doc

意向鎖加在高層級的,當需要對doc1加x鎖,需要對db和collection加ix,ix,此時如果對doc2加x鎖,就需要獲取db和collection的ix鎖,ix是可以被多個事務獲取的,再獲取doc2的x鎖,這樣就實現了併發修改,此時如果foreground建立索引(庫級別的寫鎖),那個db的ix鎖如果沒有釋放完,是無法無獲取db的x鎖的。

意向鎖為了高層級資源的隔離。

is ixsx

is yes

yesyes 

noix

yesyes

nono

syes

noyes

nox 

nono

nono

各種鎖的理解

區別 是否可以插隊 預設都是非公平鎖 設定公平鎖 new reentrantlock ture 可以理解為 拿到外面的鎖就會獲得裡面的鎖 synchronized public class demo1 a start new thread b start class phone public syn...

悲觀鎖和樂觀鎖的理解

查了一下悲觀鎖和樂觀鎖的目的主要是為了避免髒讀,看起來和oracle的預設隔離級別read commited是衝突的。因為read commited是可以避免髒讀的。細想一下,果然有問題。請看髒讀的定義 t1修改了記錄,還沒有提交,t2讀取了該記錄,t1回滾了修改。read commited能夠防止...

理解mysql鎖(1)鎖的概述

相對其他資料庫而言,mysql的鎖機制比較簡單 其最顯著的特點是不同的儲存引擎支援不同的鎖機制 但總的來說,mysql各種儲存引擎使用了三種型別的鎖定機制 行級鎖定 頁級鎖定和表級鎖定 其中,myisam主要使用表級鎖定,而使用行級鎖定的主要是innodb。表級鎖 開銷小,加鎖快 不會出現死鎖 鎖定...