문제
- 트랜잭션의 격리 수준을 나누는 것으로 락의 역할을 할 수 있는가?
시도
- 트랙잭션의 격리 수준 (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE)으로 락의 역할을 할 수 있는가?
- 트랜잭션의 격리 레벨을 올리면 락의 역할을 할 수 있다면 낙관적 락이나 비관적 락을 사용하지 않고도 할 수 있을까라는 의문이 들었다.
해결
- 해결할 수 없는 이유
- 예를 들어 한 테이블에서 2명의 회원이 서로의 컬럼을 수정할때, 이 두 트랜잭션은 서로 다른 로우를 수정한다. 애초에 양 트랜잭션이 서로 간섭하지 않는 상황이므로 (REPEATABLE READ 이하의) 트랜잭션 격리 수준으로 이 문제는 해결할 수 없다.
출처
https://hudi.blog/troubleshooting-of-category-role-concurrency-issue/