피드로 돌아가기
Dev.toBackend
원문 읽기
Redlock 기반 분산 락 도입을 통한 Distributed Inventory Race Condition 해결
Mitigating Race Conditions in Distributed Inventory Ledgers
AI 요약
Context
다수 엔드포인트에서 고변동성 데이터를 처리하는 환경의 Data Integrity 확보 필요성 대두. 표준 RDB Write Loop 방식의 Read-Verify-Decrement 과정에서 발생하는 동시성 제어 실패로 인한 재고 마이너스 상태 발생 및 Fulfillment 불일치 문제 직면.
Technical Solution
- Application-level Locking의 한계를 극복하기 위한 Redis 기반 Distributed Locking 알고리즘 도입
- SKU별 고유 식별자를 Key로 활용하여 특정 아이템 상태 변경에 대한 Atomic Worker Thread 보장
- Redis
SET NX옵션을 통한 상호 배제(Mutual Exclusion) 메커니즘 구현으로 중복 요청 차단 PX옵션 기반의 TTL 설정을 통해 프로세스 장애 시 발생 가능한 Deadlock 방지- 423 Locked 상태 응답을 통한 클라이언트 측 재시도 유도로 트랜잭션 무결성 유지
실천 포인트
1. 고빈도 업데이트 대상 식별자(SKU 등) 기반의 분산 락 키 설계 검토
2. Redis SET NX 및 TTL 설정을 통한 원자적 락 획득 및 자동 해제 구조 적용
3. 락 획득 실패 시 클라이언트 재시도 전략(Retry Strategy) 및 적절한 HTTP 상태 코드 정의