issues
search
f-lab-edu
/
my-pay
0
stars
1
forks
source link
부하 테스트에서 발견된 동시성 문제 해결
#26
Closed
ieunji2
closed
4 months ago
ieunji2
commented
5 months ago
관련 이슈 내용입니다.
20 - 여러 트랜잭션이 기존에 동작하고 있는 영속성 컨텍스트를 공유해서 발생하는 문제로 osiv를 false로 설정해서 해결했습니다.
21 - 머니 송금 엣지케이스(A -> B, B->A 서로 간에 동시 요청) 데드락 문제는 레디슨의 멀티락 획득이 원자적이지 않아서 생기는 문제로, 락 획득 요청을 지갑 아이디 순으로 정렬해서 해결했습니다.
수정 전: Thread 1 - [LOCK:1, LOCK:2], Thread 2 - [LOCK:2, LOCK1]
수정 후: Thread 1 - [LOCK:1, LOCK:2], Thread 2 - [LOCK:1, LOCK2]
22 - 락의 범위를 잔액 조회 및 업데이트로 줄이고 락의 범위를 트랙잭션 경계로 잡았습니다.
관련 이슈 내용입니다.
20 - 여러 트랜잭션이 기존에 동작하고 있는 영속성 컨텍스트를 공유해서 발생하는 문제로 osiv를 false로 설정해서 해결했습니다.
21 - 머니 송금 엣지케이스(A -> B, B->A 서로 간에 동시 요청) 데드락 문제는 레디슨의 멀티락 획득이 원자적이지 않아서 생기는 문제로, 락 획득 요청을 지갑 아이디 순으로 정렬해서 해결했습니다.
22 - 락의 범위를 잔액 조회 및 업데이트로 줄이고 락의 범위를 트랙잭션 경계로 잡았습니다.