inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Các khái niệm và phương pháp điều chỉnh được xem xét khi di chuyển 20 tỷ mẩu dữ liệu sang MySQL

Deadlock Case 4분 45초 질문

Đã giải quyết

163

qwerty1434

6 câu hỏi đã được viết

1

안녕하세요.
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테이블을 수정하는 작업 두개가 들어온거일까요?

mysql mongodb mysql-workbench mysql-query

Câu trả lời 1

1

July

안녕하세요!! 확인이 많이 늦었네요 ㅠㅠ

금일내로 확인 후에 답변드리도록 하겠습니다.

0

July

발생 가능한 상황을 좀 더 자세히 설명을 드리도록 할게요

  • 이는 세션을 각각 열어서 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이 발생합니다.


이 케이스를 참고해보시면 좋을 꺼 같습니다.

  • 설명이 부족했다고 느끼시면 추가적인 질문 부탁드립니다! 감사합니다 :)

0

qwerty1434

아하 어떤 상황인지 이해했습니다. 답변 감사합니다~!

관리자 페이지 질문

0

14

1

드랍 테이블로 지운 ordes에 대해서 질문

0

23

1

문제 풀이 1번 질문

0

29

1

twitterdb 연결이 안돼요

1

30

2

Kafka Cluster 구성도 질문

0

23

1

아주 작은 정오표 전달드립니다.

0

52

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

44

1

실제로 작은 기업에서 기획 롤

1

27

1

이제 인프런에서 강의 더 안산다. 후져....

0

42

1

order_product 까마귀발

0

44

2

소스코드 어디서 다운받아요?

0

58

5

답을언제쯤받아볼수있나요

0

49

2

공통 코드 , 계층 구조 질문

1

40

1

프로젝트가 없어요..

0

56

2

소스코드 빈 파일 문의드려요

0

45

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

53

1

자연키 vs 대리키 실무질문

0

28

1

SQL 기본 문법

0

47

2

프로젝트 의존 관계

0

53

2

Order BY 강의 12분 질문

0

93

2

lock의 순서를 지켜주자는 말의 뜻

0

150

1

[Skip Locked For Session] 12:14초 내용 관련 질문

1

333

1

안녕하세요, 멀티컬럼인덱스 개념 후반부 내용이 이해가 가지 않아 질문 드립니다.

2

438

2

안녕하세요 좋은 강의 감사합니다. 혹시 실습 코드는 따로 제공 안되나요??

2

298

1