결제 과정의 재고 중복 판매를 막는 예약 시스템을 Redis에서 MySQL로 이전해 2025년 피크 트래픽에서도 처리량과 정확성 목표를 달성함 MySQL 8의 SKIP LOCKED 와 재고 1개당 1행 구조를 사용하되, 품목·위치별 행을 최대 1,000개로 제한하고 부족할 때 원장에서 보충해 잠금 경합과 테이블 크기를 통제함 복합 기본 키로 행당 잠금을 2개에서 1개로 줄이고, READ COMMITTED 로 갭 잠금을 피했으며, 일관된 잠금 순서와 UNION ALL 배치로 교착 상태와 왕복 비용을 낮춤 실제 처리량을 제한한 원인은 쿼리나 CPU가 아니라 다른 결제 프로세스의 DB 연결 점유 시간이었으며, SQL 태그와 ProxySQL 추적으로 이를 찾아 기본 DB 읽기의 50%와 트랜잭션의 33%를 제거함 Redis와 MySQL에 동시에 기록하는 섀도 모드와 kill switch로 점진 전환했으며, 고부하 플래시 세일에서도 writer CPU 50% 미만, reader CPU 16% 미만을 유지해 기존 데이터베이스만으로 고처리량 상호 배제를 구현함 재고 예약에 필요한 정확성과 처리 규모 구매자가 결제를 완료할 때 재고가 실제로 남아 있는지 보장해야 함 같은 마지막 재고를 두 구매자에게 판매하면 주문 취소, 사과 이메일, 지원 비용이 발생함 실제 재고가 있는데 품절로 판단하면 판매자가 성사될 매출을 잃음 재고 초과 판매 방지는 두 단계로 동작함 Reserve: 결제 시작 시 수분 동안 재고를 임시 예약함 Claim: 결제가 성공하면 기준 데이터인 재고 원장에서 수량을 영구 차감함 예약이 느리면 스로틀링과 구매 경험 저하가 발생하며, 잘못 처리하면 초과 판매 또는 과소 판매로 이어짐 Shopify는 미국 전자상거래의 14% 이상을 처리하며, 2025년 블랙 프라이데이 피크에는 분당 510만 달러의 판매액을 기록함 전년보다 피크 분당 판매액이 11% 증가함 재고를 사용하는 모든 결제가 예약 시스템을 거치므로 순간적인 트래픽 증가에도 요청을 누락하지 않고 일관성을 유지해야 함 시스템은 피크 처리량, 다중 위치별 출고 가능 재고, 예약과 원장 사이의 ACID 보장, 초과 판매와 예약 손실 방지를 모두 충족해야 했음 Redis 모델의 한계 기존 시스템은 품목별 수량을 Redis 키로 저장하고 예약 시 DECR, 해제 시 INCR을 수행해 동시성을 처리함 결제 후 재고를 확정하려면 MySQL 원장 갱신과 Redis 정리가 ...
Shopify가 재고 예약 시스템을 Redis에서 MySQL로 교체해 대규모 트래픽을 처리한 방법
1 day ago
3
Related
프랑스, 사전 동의 없는 텔레마케팅 전화 금지
23 minutes ago
0
GitHub Actions에 OIDC audience 제약이 필요한 이유
1 hour ago
0
H3-metal - Apple Silicon용 네이티브 MiniMax-H3 추론
2 hours ago
1
AI가 웹을 잠식하면서 인터넷의 집단 기억이 사라지고 있음
3 hours ago
1
Rails는 DHH 없이도 Rails일 수 있을까
4 hours ago
1
LLM은 PCB 배선을 어디까지 할 수 있을까? 숙련자와 Net 단위로 비교해봤습니다
5 hours ago
1
Hanami - Rails를 대체하는 Ruby 프레임워크
6 hours ago
2
Show GN: 프리터뷰 - 가입 없이 포트폴리오부터 채점해보는 AI 모의면접
6 hours ago
2
Tips
click
Popular
What's New in SAP S/4HANA Cloud Public Edition 2608 | Releas...
3 weeks ago
209
Codex 사용량 한도 리셋 추적
3 weeks ago
88
NVIDIA·CoreWeave·Nebius가 만든 GPU 붐의 순환 금융 구조
4 weeks ago
62
'킬러들의 쇼핑몰2' 감독 "시즌3 고민 중"⋯이동욱 "시키면 ...
3 weeks ago
57
© Clint IT 2026. All rights are reserved









English (US) ·