동시성 제어를 위한 쿠폰 프로젝트에서 공부한 내용 정리
-패스트 캠퍼스: 9개 프로젝트로 경험하는 대용량 트래픽 & 데이터 처리 초격차 패키지 Online.-
- 프로젝트3. 네고왕 이벤트 선착순 쿠폰 시스템의 일부
1. List vs Set vs Sorted Set
<aside>
👨💻 List로 구현
</aside>
- 선착순에 대한 조건은 Queue를 구현하여 처리할 수 있다. RPUSH로 요청 추가
- 쿠폰 발급 수량에 대한 관리는 쉽지 않을것으로 보인다. LLEN으로 조회할수는 있지만 중복 요청이 존재할수도 있음(발급 수량 비교를 정확하게 할 수가 없다.)
- LPOS로 해당 원소의 위치를 알 수 있음 그러나 이렇게 중복 발급 검증을 한다면 O(N) 탐색을 지속적으로 해야한다. (계속 탐색하는 구조는 부담스럽다.)
요약
- 선착순 요청에 따라 Queue를 구현하는 과정은 간단하다.
- 발급 수량에 대한 검증 과정이 어렵다.