카테고리 없음

선착순 댓글 이벤트 문제

gw1 2026. 2. 22. 00:04

어느 쇼핑몰에서 이벤트 게시글이 올라오고

선착순 1000명 댓글 남겨주신 분에게(나중에)

자동으로 90프로 할인 쿠폰을 제공합니다.

이 정보가 사전에 외부 커뮤니티에 공유되어

수 많은 사람이 동시에 댓글을 달려고 대기하고 있습니다.

Post 에는 comment_count 칼럼이 있고

댓글 작성 시 마다 +1이 증가 됩니다.

트랜잭션 시작

insert 댓글 테이블 values ~~
update 게시글 set comment_count = comment_count + 1 where id = ?;

기타로직 진행 중 ...

커밋;

사람이 몰리니

웹서버는 로드밸런서의 스케일 아웃으로 큰 이상은 없지만,
DB 서버에 과부하가 생기고
댓글을 달아도 오랜시간 동안 응답이 없는 문제가 생겼습니다.

show processlist
커넥션 수백개가 Waiting for a Row level lock 메시지가 발생.

해당 시나리오에서 DB서버의 부담을 줄이기 위한 방안을 구상하세요.

-----------------------------------------
부족한 상황 설명은 본인이 추가적인 가정을 넣어도 좋습니다.

해결 방법의 제한은 없습니다. 본인이 생각한게 답입니다.
다만, 복잡성, 비용, 부작용 등을 고려할 것

이거 선착순 쿠폰 1000명 정합성 짜르기 맞추는게 아니라 update count +1 병목을 해소하는게 문제에요 ㅠ