issues
search
happy-developers
/
dev-interview
1
stars
1
forks
source link
[DB] Lock의 종류는 어떤 것들이 있나요?
#29
Open
HYK97
opened
1 year ago
HYK97
commented
1 year ago
[DB] Lock의 종류는 어떤 것들이 있나요?
키워드
intent-lock
,
s-lock
,
x-lock
HYK97
commented
1 year ago
X-Lock
x-lock은 비관적락 중 하나로 write에 대한 lock입니다.
x-lock이 걸린 row는 write read 등 리소스에 접근이 불가능합니다.
S-Lock
s-lock은 비관적락 중 하나로 read에 대한 lock입니다.
s-lock은 같은 s-lock 끼리는 동시 접근이 가능합니다.
Intent-Lock
intent-lock은 테이블 내에 row 중에 대해서 추후에 row-level의 lock을 걸 것이다.라는 의도를 알려주기 위해서 미리 table-level에 걸어두는 lock입니다.
row-level의 s-lock을 걸게 될 경우 intention s-lock (IS) 이 걸린 후에 s-lock이 걸립니다.
x - lock을 걸게 될 경우에는 intention x-lock (IX) 이 걸린 후에 x-lock이 걸립니다.
IS, IX는 서로 접근이 가능합니다. 대신 x-lock이나 s-lock 일 경우에 해당 접근을 제어하게 됩니다.
DDL 같이 table 스키마를 변경하는 경우나 table-level-lock 같은 경우에서도 접근을 제어할 수 있습니다.
table-level의 lock 이 걸린 테이블에서 IX, IS를 획득하려고 하는 경우에는 현재 트랜잭션을 대기하게 만듭니다.
X
IX
S
IS
X
갈등
갈등
갈등
갈등
IX
갈등
호환 가능
갈등
호환 가능
S
갈등
갈등
호환 가능
호환 가능
IS
갈등
호환 가능
호환 가능
호환 가능
[DB] Lock의 종류는 어떤 것들이 있나요?
키워드
intent-lock
,s-lock
,x-lock