카테고리 없음
Radiata 4주차 WIL 분산락 제거와 Lua Script 로 TPS 높이기
wonow_
2024. 10. 21. 10:49
레디스를 통한 동시성 제어 방법에 분산락을 이용했었다.
근데 문제점! 너무 느리다
TPS 200~250 이 나온다.
여기어때 네고왕 당시 최대 TPS 가 3600+ 이 나왔다고 한다.
오케이 TPS 높여야되는 근거가 있으니, 높여야겠다.
왜 어플리케이션 단에 분산락을 적용하면 TPS 가 이렇게 낮을까?
아래의 사진을 보자
각 모듈마다 할당 쓰레드가 존재 한다. 분산락을 쓰지 않으면 멀티 쓰레드로 병렬적으로 작업들 처리한다.
사진이 예시로 딱 들어 맞는 것은 아니지만
로직 상 분산락을 걸게 되면 해당 로직은 단 한 쓰레드에서만 돌아갈 수 있게 된다.
그래서 분산락을 쓰면 TPS 가 낮은 것이다.
그래서 분산락을 없애는 방법을 선택했다.
그럼 어떻게 높이는데?
레디스의 Lua Script 를 이용해서 동시성 제어를 하고
추후에 쿠폰 발급을 해주는 로직을 구성한다.