본문 바로가기
Spring/JPA

[Lock] 동시성 제어를 위한 JPA Lock 1. 격리수준과 잠금(락)

by 행운의나무 2022. 12. 6.
728x90
반응형

참고

https://hackernoon.com/optimistic-and-pessimistic-locking-in-jpa
[Real MySQL 8.0] https://link.coupang.com/a/GW7Yc
https://zzang9ha.tistory.com/381
https://www.baeldung.com/jpa-optimistic-locking
https://www.baeldung.com/jpa-pessimistic-locking
https://www.baeldung.com/java-jpa-transaction-locks

 

Real MySQL 8.0 1

COUPANG

www.coupang.com

잠금(락)과 트랜잭션, 격리수준

동시성에 영향을 미치는 요소에는 잠금과 트랜잭션, 트랜잭션의 격리 수준이 있습니다.
트랜잭션: 작업의 완전성을 보장해주는 일련의 처리과정
잠금(락): 여러 커넥션에서 동일한 자원에 접근 및 변경 시 순차적으로 처리하도록 제어하는 기능
격리수준: 트랜잭션 간의 작업내용을 어떻게 공유하고 차단할지 결정하는 레벨

728x90

데이터베이스의 격리 수준

데이터베이스의 부정합 세 가지

정합성 : 어떤 데이터들의 값이 일치하는지의 성질

데이터베이스에서는 대표적으로 세 가지 부정합이 존재합니다.

- Dirty Read : 아직 커밋되지 않은 수정중인 데이터를 다른 트랜잭션이 읽는 경우 발생하며 데이터베이스에 저장된 값과 읽은 값이 다른 부정합이 발생합니다.
- Non-Repeatable Read : 한 트랜잭션 내에서 같은 쿼리를 두번 실행했을 때, 그 사이에 다른 트랜잭션이 값을 수정 또는 삭제하는 경우 첫 번째 쿼리와 두 번째 쿼리의 결과값이 다른 비일관적인 상태를 말합니다.
- Phantom Read : 한 트랜잭션안에서 일정범위의 레코드를 두번 이상 읽거나, 첫 번째 쿼리에서 없던 유령 레코드가 두 번째 쿼리에 나나는 현상을 말합니다.

반응형

MySQL 격리 수준

MySQL의 InnoDB 스토리지 엔진에서는 기본적으로 'Repeatable Read' 격리수준을 사용합니다.

격리 수준 Read Uncommited Read Commited Repeatable Read Serializable
특징 아직 커밋되지 않은 데이터를 다른 트랜잭션에서 읽는 것을 허용 대부분의 DBMS가 채택하는 격리 수준으로 커밋이 완료된 데이터만 읽을 수 있도록 허용 선행 트랜잭션이 읽은 데이터는 다른 트랜잭션이 갱신하는 동작을 방지 선행 트랜잭션이 읽은 데이터를 다른 트랜잭션이 갱신, 삽입등을 모두 방지
발생할 수 있는 부정합 Dirty Read
Non-Repeatable Read
Phantom Read
Non-Repeatable Read
Phantom Read
Phantom Read  

잠금(락)을 사용하는 이유

동시성을 제어하는 방법으로 락과 격리수준 설정이 있습니다. 
격리 수준은 데이터베이스 연결 시에 셋팅 된 격리수준으로 연결 된 모든 명령문(SQL)에 영향을 끼칩니다.
동시성 제어가 필요 없는 다른 명령문(SQL)에 배타적을 데이터를 접근할 수 있는 방법으로 잠금(락)을 이용합니다.

잠금(락)의 종류

낙관적 락(Optimistic Lock)

2022.12.07 - [Spring/JPA] - [Lock] 동시성 제어를 위한 JPA Lock 2. 낙관적 락(Optimistic Lock)

 

[Lock] 동시성 제어를 위한 JPA Lock 2. 낙관적 락(Optimistic Lock)

격리수준과 잠금 2022.12.06 - [Spring/JPA] - [Lock] 동시성 제어를 위한 JPA Lock 1. 격리수준과 잠금(락) [Lock] 동시성 제어를 위한 JPA Lock 1. 격리수준과 잠금(락) 참고 https://hackernoon.com/optimistic-and-pessimistic-

twer.tistory.com

비관적 락(Pessimistic Lock)

 

쿠팡으로 연결 클릭

 

제주삼다수 그린 무라벨

COUPANG

www.coupang.com

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

반응형