Deadlock Case 4분 45초 질문
안녕하세요.
Deadlock Case 4분 45초 예제가 어떤 상황을 말씀하시는건지 잘 이해가 안돼 질문남깁니다.
다음과 같이 설명해 주셨는데요
```
1. 테이블 A/B, 트랜잭션 X/Y가 존재
2. 트랜잭션 X는 A테이블을 수정, 트랜잭션 Y는 B테이블을 수정
3. 2번의 두 요청은 멀티스레드 환경에서 거의 동시에 요청이 들어옴
4. 이후 A테이블에서는 세션으로서 전송이 되어서 한 번에 처리를 하려 함
5. X트랜잭션은 A테이블을 수정한 다음 B테이블을 수정하려 함
...
```
5. X트랜잭션은 A테이블만 수정한다 했던거 같은데 B테이블은 왜 수정하나요?
4. 세션으로서 전송이 되어서 한 번에 처리를 하려한다는게 어떤 얘기일까요? 5번과 연관지어 생각했을 때 하나의 트랜잭션에 여러 요청이 들어오는 걸 세션으로 전송된다고 말씀하신건가요? 그래서 하나의 세션에 A테이블을 수정하는 작업과 B테이블을 수정하는 작업 두개가 들어온거일까요?
답변 1
1
안녕하세요!! 확인이 많이 늦었네요 ㅠㅠ
금일내로 확인 후에 답변드리도록 하겠습니다.
0
발생 가능한 상황을 좀 더 자세히 설명을 드리도록 할게요
이는 세션을 각각 열어서 Tx를 한번에 모아서 전송을 한다는 것을 가정합니다.
테이블 : A, B
트랜잭션 X, Y
--- 가정 ---
X 트랜잭션은 A 테이블을 수정 후에, B 테이블을 수정합니다.
Y 트랜잭션은 B 테이블을 수정한 후에, A 테이블을 수정합니다.
두 트랜잭션은 각각의 테이블에 대해서 같은 Raw를 수정합니다.
--- 상황 ---
두 트랜잭션이 멀티쓰레드 환경에서 동시에 전송을 하게 됩니다.
X 트랜잭션이 A 테이블의 Raw에 대해서 Lock을 획득합니다.
- 좀 더 자세하게 말씀드리면 Exclusive lock을 획득합니다.
Y 트랜잭션이 같은 시간대에 B 테이블의 Raw에 대한 Exclusive lock을 획득합니다.
이 후 X 트랜잭션의 A 테이블에 대한 작업이 끝난 후,
B 테이블에 접근을 하려고 하지만,
현재 B 테이블에 대해서 Y 트랜잭션이 Lock을 반환하지 않은 상태이기 떄문에 대기합니다.
이후 Y트랜잭션이 B테이블에 작업 후, A에 접근합니다.
하지만 아직 X 트랜잭션의 작업이 마무리가 되어 있지 않아서
Y가 X가 끝나기를 대기합니다.
서로 이렇게 대기상태가 지속되다가 DeadLock이 발생합니다.
이 케이스를 참고해보시면 좋을 꺼 같습니다.
설명이 부족했다고 느끼시면 추가적인 질문 부탁드립니다! 감사합니다 :)
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
43
1
스크립트에 대해 질문 있습니다.
1
36
1
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
32
1
리뷰
0
28
2
조건 검색 질문
0
30
1
upload_file_id가 1,3,4 순서인 건에 대해
0
29
1
p.created_at vs u.name 인덱스 문의
0
38
2
콘솔 로그가 깨져나오는데 혹시 방법이 있을까요?
0
41
2
이진 트리 노드
0
41
1
조인의 특징
0
40
2
댓글 삭제 로직에서 동시성 문제 발생 가능성
0
34
1
통계정보 갱신 질문
0
62
2
PK 관련하여 궁금한 점이 있어서 질문 드립니다.
0
65
2
탐색을 한번 더 하지 않게 하는 방식 중 어댑티브 해시 방식도 맞는지 궁금 합니다.
0
70
2
차트시트 발송이 안되는 이유는 무엇일까요?
0
39
2
컬럼 크기가 대용량인 경우 DB 버퍼 풀에 전부 올라오는지 궁금합니다
0
60
2
실습데이터 ORDERS 생성 시간 질문요...
0
92
3
MySQL 서버구조 쿼리파서 질문 있습니다 !
0
66
1
상태 기반 데이터관리에서 특정 시점에 대한 정보는 어떻게 관리할 수 있나요?
0
37
1
Order BY 강의 12분 질문
0
112
2
lock의 순서를 지켜주자는 말의 뜻
0
163
1
[Skip Locked For Session] 12:14초 내용 관련 질문
1
349
1
안녕하세요, 멀티컬럼인덱스 개념 후반부 내용이 이해가 가지 않아 질문 드립니다.
2
448
2
안녕하세요 좋은 강의 감사합니다. 혹시 실습 코드는 따로 제공 안되나요??
2
302
1





