1 서론
- 본 글에서는 대규모 예약 시스템 설계 시 발생하는 동시성 문제와 해결 방안에 대해 설명합니다.
- 항공권 예약, 공연 티켓팅, 숙박 예약 등 다양한 도메인에서 적용할 수 있는 내용을 다룹니다.
- 실제 시스템 구현에 필요한 구체적인 기술과 패턴을 소개합니다.
2 시스템 요구사항 및 규모 설정
- 일일 사용자 수: 100만 명
- 피크 시간대 동시 접속자: 10만 명
- QPS (Query Per Second): 5,000
- TPS (Transaction Per Second): 1,000
- 데이터 특성:
- 예약 가능 객실 수: 10만 개
- 일일 예약 건수: 5만 건
- 데이터 저장 기간: 1년
3 데이터베이스 선택
- 예약 시스템의 특성상 데이터의 정합성이 매우 중요합니다.
- ACID 특성이 보장되어야 하므로 관계형 데이터베이스(RDBMS)를 선택합니다.
- NoSQL과 RDBMS 비교:
- RDBMS 장점:
- 트랜잭션 지원
- 데이터 정합성 보장
- 복잡한 쿼리 처리 가능
- RDBMS 단점:
- NoSQL 장점:
- NoSQL 단점:
- 제한적인 트랜잭션 지원
- 일관성 보장이 상대적으로 약함
4 동시성 문제 해결