WMS 재고 이관을 위한 분산 락 사용기 #우아콘2024 #우아한형제들
우아콘 2024 우아한형제들 · YouTube
AI 핵심 요약
WMS에서 하나의 재고 이관 요청서에 할당과 취소가 동시에 들어오면, 재고는 할당됐지만 요청서는 취소 상태가 되는 동시성 문제가 발생했습니다. 기존에는 할당 상태 변경에만 분산 락을 사용하고 취소에는 락을 적용하지 않아 두 작업이 충돌할 수 있었습니다. 두 작업에 같은 락을 적용하자 일괄 할당이 막히고, 락 획득을 대기시키자 상품 수가 많을수록 처리 시간이 길어지는 문제가 생겼습니다. 이를 개선하기 위해 요청 유형과 진행 상태를 별도 상태 키로 관리하고, 짧은 상태 갱신만 분산 락 안에서 처리해 상반된 요청은 차단하면서 같은 유형의 재고 할당은 병렬로 수행하도록 바꿨습니다.
- 락 키를 이관 요청서 ID로 잡으면 요청서 단위의 상태 변경을 직렬화할 수 있지만, 상품별 할당까지 같은 락으로 묶으면 일괄 처리가 막힐 수 있습니다.
- 락 획득을 대기시키면 일괄 할당은 가능해지지만, 상품 수가 많을수록 처리 시간이 늘어나는 병목이 생깁니다.
- 요청 유형과 진행 상태를 별도 상태 키로 관리하면 할당과 취소의 충돌을 막으면서 같은 유형의 할당은 병렬로 처리할 수 있습니다.
- 분산 락 안에서는 상태 확인·갱신처럼 짧은 작업만 수행하고, 오래 걸리는 재고 할당은 락 밖에서 처리하는 방식이 유효합니다.
소개
[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 물류플랫폼실의 WMS에 대해 소개하고, WMS에서 발생한 동시성 이슈와 그 해결 과정을 공유합니다. 본 세션을 통해 우아한형제들의 물류 프로덕트에 대해 알아갈 수 있기를 기대합니다. ㅤ 👉 발표자 소개ㅤ 김준홍, 서버 개발자
비슷한 학습 자료
컨퍼런스 우아콘 2024
WOOWACON2024오프닝노트 #우아콘2024 #우아한형제들
컨퍼런스 우아콘 2024
[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 배달의 민족은 전국 식당들의 메뉴와 주문 뿐만아니라 커머스 대형 셀러들과 연동하여 실시간 배달 서비스를 제공하고 있습니다. 제공하는 서비스에서 발생하는 하루 평균 200억 건의 데이터가 흘러가는 시스템을 안정적으로 구축하고 운영한 사례를 공유드립니다. 1부: 시스템 아키텍처 편 대용량 데이터 처리 시스템을 도입하는 과정에서의 고민과 적용한 기술 그리고 아키텍처를 설명합니다. 2부: 음식 배달, 물건 배달 서비스 구축 편 데이터 정합성과 재처리 복원 등을 고려한 가장 안정적이고 지속가능한 시스템 구조를 만들기 위한 고민과 해결사례를 공유합니다. ㅤ 👉 발표자 소개ㅤ 김민중, 서버 개발자 장재주, 서버 개발자 윤보민, 서버 개발자 김병화, 서버 개발자
백엔드 데이터베이스
컨퍼런스 우아콘 2024