카테고리 없음

Radiata 4주차 WIL 분산락 제거와 Lua Script 로 TPS 높이기

wonow_ 2024. 10. 21. 10:49

 

레디스를 통한 동시성 제어 방법에 분산락을 이용했었다.

 

근데 문제점! 너무 느리다

 

TPS 200~250 이 나온다.

 

여기어때 네고왕 당시 최대 TPS 가 3600+ 이 나왔다고 한다.

오케이 TPS 높여야되는 근거가 있으니, 높여야겠다.

 

왜 어플리케이션 단에 분산락을 적용하면 TPS 가 이렇게 낮을까?

 

아래의 사진을 보자

각 모듈마다 할당 쓰레드가 존재 한다. 분산락을 쓰지 않으면 멀티 쓰레드로 병렬적으로 작업들 처리한다.

 

사진이 예시로 딱 들어 맞는 것은 아니지만

로직 상 분산락을 걸게 되면 해당 로직은 단 한 쓰레드에서만 돌아갈 수 있게 된다.

그래서 분산락을 쓰면 TPS 가 낮은 것이다.

 

그래서 분산락을 없애는 방법을 선택했다.

 

그럼 어떻게 높이는데?

레디스의 Lua Script 를 이용해서 동시성 제어를 하고

추후에 쿠폰 발급을 해주는 로직을 구성한다.

 

이 아키텍처로 구현한다.