inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

재고시스템으로 알아보는 동시성이슈 해결방법

redis lock과 mysql lock 성능 질문입니다.

1050

mirr

작성한 질문수 1

0

강의를 보면 redis의 redisson과 mysql db lock 중 redisson을 이용한 방식이 더 성능이 좋다고 설명 해주셨는데요.

강의의 테스트 코드 수행시간을 보면 mysql의 비관락이 약 2초, redisson을 이용한 방식이 약 5초 정도 걸리는 것을 보아 비관락의 성능이 더 빠른 것처럼 보이는데..

이럼에도 불구하고 redisson의 성능이 더 좋다고 하시는 이유가 궁금합니다.

java spring 동시성

답변 1

0

최상용

mirr 님 안녕하세요.

우선 intellij 를 통한 테스트코드의 수행시간은 컴퓨터환경같이 외부환경에 따라 달라질 수 있기때문에 테스트코드의 수행시간으로 비교하면 안될것 같습니다.

redisson 과 mysql 의 db lock 을 비교하기보다는 redis 와 mysql 을 비교하는 것이 조금 더 나을 것 같습니다.

redis 의 경우 inmemory database 이기때문에 굉장히 빠르게 동작하기때문에 mysql 보다 성능이 좋다고 말씀을 드렸습니다.
또한 mysql 의 비관적락을 사용하게 된다면 독점 사용을 위해 레코드에 lock 을 걸게되고 이는 비용이 비싼 작업입니다.
예제와 같이 로직이 간단할 때는 괜찮을 수 있겠으나, 여러 테이블의 데이터를 접근할 때 데드락이 발생할 수 있는 위험도 가지게 됩니다.

하지만, 모든 상황에서 redis 가 성능이 좋을수는 없습니다.
예를들어 충돌이 빈번하지 않은 (예를들어 1년에 1번) 경우에는 lock 을 사용하는것이 낭비일 수 있습니다.
이런 경우에는 낙관적락을 사용하는것이 조금 더 성능이 좋을 수 있습니다.

감사합니다.

0

mirr

답변 감사합니다.

컴퓨터환경에 따라 수행시간이 변동될 수 있으나, 같은 컴퓨터 환경에서 테스트 코드를 수행했기때문에 테스트 코드의 속도가 성능의 지표가 될 수 있을 거라고 생각하였습니다. 혹시 이 생각이 틀린 걸까요?

0

최상용

개인적인 의견으로는 강의에서 만든 테스트코드의 속도가 성능의 지표가 될수는 없을 것 같습니다.

테스트데이터가 적기때문에 제대로 된 테스트라고 할 수 없기때문입니다.

정확한 테스트는 데이터를 적재한 후 성능테스트를 수행하는것이 좋아보입니다.

감사합니다 :)

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

45

2

낙관적 락을 사용할 떄 차이점

0

125

2

동시성 검증 코드에 관한 문의

0

96

2

단일연산

0

70

2

낙관적락vs. 레디스락

0

108

2

안녕하세요. 레디슨 질문있습니다..!!

0

67

2

@Lock(OPTIMISTIC)이 필요한 이유

0

90

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

132

2

DataSource Hikari 사용 이유

0

148

2

saveAndFlush 사용 이유 문의

0

113

3

비관적 락 VS 네임드 락

0

161

3

application.yaml 에 redis 정보

0

101

2

왜 클래스 이름에 Facade 가 붙나요?

0

185

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

220

2

@modifying 이용한 동시성 제어

0

168

2

DB락과 분산락

0

262

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

174

2

optimistic Lock 재시도 질문입니다.

0

233

2

낙관적 락 테스트 실패

0

242

2

오류?

0

1630

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

268

2

Pessimistic Lock 전체 테스트 오류 문의

0

362

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

462

2