아 쿠폰 지급은 나중에 해도 된다고 할게요 쿠폰 1000명 선착순이 문제가 아니라 update count가 문제입니다ㅠ - dc App
댓글 26
90퍼센트 할인 (최대 1000원) 인가요? - dc
익명(visiting1206)2026-02-22 00:13
답글
딘퐁(film1341)2026-02-22 00:13
comment_count 칼럼 그냥 없애고 created_at(밀리초까지 나오게)으로 정렬해서 나중에 상위 1000개 지급하고 싶어요
산업기능요원(monitor9152)2026-02-22 00:20
답글
요구사항을 위배하는 건 안돼요
게시글엔 댓글 수 칼럼은 있어야 합니다
쿠폰은 댓글 달면 바로 지급되어야해요 - dc App
딘퐁(film1341)2026-02-22 00:21
타임아웃을 짧게 건다?
백갤러 1(117.110)2026-02-22 00:22
답글
으음.. 댓글 달았는데 타임아웃되면 댓글 등록에 실패했습니다가 떠서
사용자의 경험이 좋진 않을듯 - dc App
딘퐁(film1341)2026-02-22 00:26
답글
댓글이 타임아웃 나는게 좀 어색해서 안 될 것 같네요...
버퍼에 모아놨다가 배치 insert??
백갤러 1(117.110)2026-02-22 00:26
답글
@딘퐁
흠 그러게요 뭐 콘서트 좌석예약 이런건 괜찮다고 생각하는데, 생각해보니 댓글 등록은 좀 어색하네요
백갤러 1(117.110)2026-02-22 00:27
답글
@백갤러1(117.110)
버퍼에 담는게 가장 정석인 방법인데
댓글 달고 다시 댓글 조회하면 댓글이 안보일 수 있어요 부작용등을 잘 고려햐아할거같습니다 - dc App
딘퐁(film1341)2026-02-22 00:29
답글
@딘퐁
* 댓글을 버퍼에 담는 경우 - dc App
딘퐁(film1341)2026-02-22 00:29
답글
@딘퐁
음 갑자기 요청이 몰리는 경우라 생각하고 얘기한거였는데, 구체적으로 얘기해보면
1) 100개 단위로 버퍼에서 batch insert
2) 100개 안 채워지면 1초 단위로 버퍼 전부 insert
이런식으로 접근하는건 별로일까요??
백갤러 1(117.110)2026-02-22 00:41
돈많으면 무지성레디스 도입? 하면? 되지않을까???
사실 큐같은거 생각해봤는데 고작 이벤트 하나하자고 큐 도입하기보다는 DB내에서 병목을 최소화하는게 가장 이상적이라고 생각하는데
트랜잭션 내 기타로직을 중요하지않은경우라면 빼고 insert와 update만 수행하고 바로 커밋해서 lock유지시간 줄이기?
야타코이(lkh2926)2026-02-22 00:26
답글
그래도 update쪽에서 한계가 있을듯 합니다 - dc App
딘퐁(film1341)2026-02-22 00:32
답글
@딘퐁
아니면 update를 트랜잭션 제일 마지막에 배치해서 lock 쥐는 시간 줄이는 건???
야타코이(lkh2926)2026-02-22 00:38
답글
@야타코이
줄어들 여지는 있습니다 그래도 업데이트 ~ 커밋 락해제까지는 독점적 점유를 합니다 - dc App
딘퐁(film1341)2026-02-22 00:39
답글
@딘퐁
그러면 update말고 차라리 insert로 선착순 제어하는건 어떤가요? 쿠폰 테이블 만들고 postId랑 sequence 조합해서 유니크 인덱스 걸어놓으면 동시에 여러명이 시도해도 한명만 성공될테고 실패된 얘들은 다음번호로 재시도하는 형태로 진행하게 두고 sequence가 1000이 넘어가면 마감하는 형태?
야타코이(lkh2926)2026-02-22 00:44
답글
@야타코이
아 쿠폰 지급은 나중에 해도 된다고 할게요 쿠폰 1000명 선착순이 문제가 아니라 update count가 문제입니다ㅠ - dc App
딘퐁(film1341)2026-02-22 00:46
답글
@딘퐁
아 그러면 조금 무식한 방법인거같긴한데 트랜잭션에서 update 쿼리를 빼버리고 insert만 실행하도록하고 스케줄러를 둬서 5~10초 간격으로 돌게해서 추가된 댓글수 카운트해서 묶어서 update치는건요? 그럼 DB 트래픽은 문제없긴할텐데 새로고침같은거하면 댓글 수 안 보이는 문제가 있긴할텐데 어찌됐든 해결은 되려나?
야타코이(lkh2926)2026-02-22 00:51
답글
@야타코이
222.119 의견과 동일 - dc App
딘퐁(film1341)2026-02-22 00:52
답글
@딘퐁
이미 고수가 맞춰버렸네
야타코이(lkh2926)2026-02-22 00:53
기타로직도 요구사항인가여 - dc
익명(visiting1206)2026-02-22 00:28
답글
@딘퐁
흠 이것도 좀 문제가 있긴한데
그냥 기타로직은 그냥 없다고 생각하세요 - dc App
딘퐁(film1341)2026-02-22 00:32
답글
@딘퐁
문제 처음 풀어보는데 디비적관점으로 해결해야함?
서버에서 cas연산분기태워서 쿠폰발급 할꺼같은데 - dc
익명(visiting1206)2026-02-22 00:34
답글
@ㅇㅇ
DB만으로 하라는 그런 제약은 없음
필요한 것을 적절히 배치해도됨 - dc App
딘퐁(film1341)2026-02-22 00:36
실시간 댓글 수가 중요한거 아니지 않나
그럼 append only로 이벤트 모아놨다가 특정 주기로 update 쿼리 날리면 락 경쟁이 덜하지 않을까
90퍼센트 할인 (최대 1000원) 인가요? - dc
comment_count 칼럼 그냥 없애고 created_at(밀리초까지 나오게)으로 정렬해서 나중에 상위 1000개 지급하고 싶어요
요구사항을 위배하는 건 안돼요 게시글엔 댓글 수 칼럼은 있어야 합니다 쿠폰은 댓글 달면 바로 지급되어야해요 - dc App
타임아웃을 짧게 건다?
으음.. 댓글 달았는데 타임아웃되면 댓글 등록에 실패했습니다가 떠서 사용자의 경험이 좋진 않을듯 - dc App
댓글이 타임아웃 나는게 좀 어색해서 안 될 것 같네요... 버퍼에 모아놨다가 배치 insert??
@딘퐁 흠 그러게요 뭐 콘서트 좌석예약 이런건 괜찮다고 생각하는데, 생각해보니 댓글 등록은 좀 어색하네요
@백갤러1(117.110) 버퍼에 담는게 가장 정석인 방법인데 댓글 달고 다시 댓글 조회하면 댓글이 안보일 수 있어요 부작용등을 잘 고려햐아할거같습니다 - dc App
@딘퐁 * 댓글을 버퍼에 담는 경우 - dc App
@딘퐁 음 갑자기 요청이 몰리는 경우라 생각하고 얘기한거였는데, 구체적으로 얘기해보면 1) 100개 단위로 버퍼에서 batch insert 2) 100개 안 채워지면 1초 단위로 버퍼 전부 insert 이런식으로 접근하는건 별로일까요??
돈많으면 무지성레디스 도입? 하면? 되지않을까??? 사실 큐같은거 생각해봤는데 고작 이벤트 하나하자고 큐 도입하기보다는 DB내에서 병목을 최소화하는게 가장 이상적이라고 생각하는데 트랜잭션 내 기타로직을 중요하지않은경우라면 빼고 insert와 update만 수행하고 바로 커밋해서 lock유지시간 줄이기?
그래도 update쪽에서 한계가 있을듯 합니다 - dc App
@딘퐁 아니면 update를 트랜잭션 제일 마지막에 배치해서 lock 쥐는 시간 줄이는 건???
@야타코이 줄어들 여지는 있습니다 그래도 업데이트 ~ 커밋 락해제까지는 독점적 점유를 합니다 - dc App
@딘퐁 그러면 update말고 차라리 insert로 선착순 제어하는건 어떤가요? 쿠폰 테이블 만들고 postId랑 sequence 조합해서 유니크 인덱스 걸어놓으면 동시에 여러명이 시도해도 한명만 성공될테고 실패된 얘들은 다음번호로 재시도하는 형태로 진행하게 두고 sequence가 1000이 넘어가면 마감하는 형태?
@야타코이 아 쿠폰 지급은 나중에 해도 된다고 할게요 쿠폰 1000명 선착순이 문제가 아니라 update count가 문제입니다ㅠ - dc App
@딘퐁 아 그러면 조금 무식한 방법인거같긴한데 트랜잭션에서 update 쿼리를 빼버리고 insert만 실행하도록하고 스케줄러를 둬서 5~10초 간격으로 돌게해서 추가된 댓글수 카운트해서 묶어서 update치는건요? 그럼 DB 트래픽은 문제없긴할텐데 새로고침같은거하면 댓글 수 안 보이는 문제가 있긴할텐데 어찌됐든 해결은 되려나?
@야타코이 222.119 의견과 동일 - dc App
@딘퐁 이미 고수가 맞춰버렸네
기타로직도 요구사항인가여 - dc
@딘퐁 흠 이것도 좀 문제가 있긴한데 그냥 기타로직은 그냥 없다고 생각하세요 - dc App
@딘퐁 문제 처음 풀어보는데 디비적관점으로 해결해야함? 서버에서 cas연산분기태워서 쿠폰발급 할꺼같은데 - dc
@ㅇㅇ DB만으로 하라는 그런 제약은 없음 필요한 것을 적절히 배치해도됨 - dc App
실시간 댓글 수가 중요한거 아니지 않나 그럼 append only로 이벤트 모아놨다가 특정 주기로 update 쿼리 날리면 락 경쟁이 덜하지 않을까
제 의견과 동일합니다 - dc App