Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

좌석 정보 예약 기능 RDB 분산락 구현 #18

Open
2 tasks done
hyejungg opened this issue Oct 7, 2021 · 1 comment · Fixed by #17 or #19
Open
2 tasks done

좌석 정보 예약 기능 RDB 분산락 구현 #18

hyejungg opened this issue Oct 7, 2021 · 1 comment · Fixed by #17 or #19
Assignees
Labels
feature 기능 구현

Comments

@hyejungg
Copy link
Collaborator

hyejungg commented Oct 7, 2021

  • RDB 분산락 구현하여 동시성 해결하기
  • redis를 이용할 때와 RDB level에서 분산락 구현한 거 비교해보기
@hyejungg hyejungg added the feature 기능 구현 label Oct 7, 2021
@hyejungg hyejungg added this to the 예약 관련 기능 구현 milestone Oct 7, 2021
@hyejungg hyejungg self-assigned this Oct 7, 2021
@hyejungg
Copy link
Collaborator Author

hyejungg commented Oct 16, 2021

MySQL user-level

장점

  1. redisson을 이용할 때보다 MySQL user-level의 분산락을 이용하는게 빌드 속도가 더 빠름
  2. 추가 DB에 대한 비용 발생 X
  3. 선언적 트랜잭션 사용 가능(@Transcational)

단점

  1. 별도로 스레드를 생성해서 락을 걸어줘야 하는 단점

Redisson

장점

  1. 구현이 편리
  2. 가독성 좋은 코드

단점

  1. 빌드 시 지연 발생(MySQL user-level의 분산락이 더 빠름)
  2. 추가 DB이므로 비용 발생. (캐싱 등 redis의 기능을 적극 활용한다면 비용이 아깝지 않겠지만, 분산락만 이용한다면 아깝지 않을까)
  3. 선언적 트랜잭션 사용 불가하여 TranscationManager를 이용해서 별도의 트랜잭션 작업 처리 해줘야 함

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment