lock의 순서를 지켜주자는 말의 뜻
143
작성자 없음
작성한 질문수 0
안녕하세요? 질문이 있습니다.
6분 20초쯤 "여러 데이터를 수정할 때는 발생하는 lock의 순서를 지켜주자" 라는 말을 이해하지 못했습니다.
좀 더 자세히 설명 가능하실까요?
트랜잭션 X에서는 A -> B 를 수정한다.
트랜잭션 Y에서는 B -> A 를 수정한다.
Deadlock 발생할 가능성이 있음은 이해했습니다.
여기서 lock의 순서를 지킨다는 것이 무슨 뜻일까요?
트랜잭션 Y도 A -> B 흐름으로 수정하도록 만들라는 뜻인가요?
그렇다면 이해는 되지만, 트랜잭션 Y가 B -> A 로만 수정해야하는 상황이라면 어떻게 해소해야 하는지 궁금합니다.
감사합니다 :)
답변 1
0
일단 Lock에 대한 부분은 일반적인 서비스를 개발하시는데에 있어서 큰 문제가 발생하지 않습니다.
그러기 떄문에 사실 실무에서도 이러한 Lock에 대한 제어를 신경쓰고 쿼리를 작성하지는 않습니다.
하지만 특수한 케이스에 대해서 Lock을 얻고 처리를 해야 하는 경우도 있습니다.
예를들면 모든 데이터 수정이 Atmoic하게 동작을 해야 하는 부분이 있는것이죠
예를들면 티켓팅 서비스 정도가 생각이 드네요
이렇게 Lock을 획득하고 제어를 해야 하는 상황에 대해서 표현을 하고 싶어서 저렇게 설명을 드렸는데 조금 혼동이 오실 수 있는 부분인거 같네요 ㅠㅠ 혼동을 드리게 되어서 죄송합니다.
Lock을 따로 제어하지 않는다면 일반적인 쿼리에 대해서 큰 문제없이 작성하셔도 됩니다. 그래서 막 심각하게 모든 부분을 고려하시지는 않아도 됩니다.
모든것은 MySQL의 옵티마이저에게 책임을 떠넘기기로 하죠 ㅎㅎ
어느정도 도움이 되셨을까요?? 질문 감사합니다 :)
간단한 오타 제보입니다.
0
3
0
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
0
19
1
실제 FK제약조건을 설정하지 않는이유
0
19
1
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
21
2
라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항
0
29
2
JPA Repository 질문이 있습니다!
1
32
2
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
35
1
비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항
0
33
1
수강기간 연장
0
25
1
Build 관련 문제 (테스트 관련 문제)
0
41
2
BCNF 질문
0
46
2
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
35
2
게시글 테스트 데이터 삽입
0
43
2
Orchestration SAGA 패턴 보상에 대한 질문입니다.
0
49
2
연관 엔티티 네이밍 규칙
0
39
1
히스토리 관련 질문
0
55
2
강의가 검은 화면으로 나옵니다.
0
45
1
자료가 남지않은 프로젝트는 어떻게 적어야 할까요?
0
38
2
진짜 강의 듣는거 너무 고문
0
108
1
Order BY 강의 12분 질문
0
78
2
Deadlock Case 4분 45초 질문
1
155
1
[Skip Locked For Session] 12:14초 내용 관련 질문
1
308
1
안녕하세요, 멀티컬럼인덱스 개념 후반부 내용이 이해가 가지 않아 질문 드립니다.
2
432
2
안녕하세요 좋은 강의 감사합니다. 혹시 실습 코드는 따로 제공 안되나요??
2
291
1





