7장 2

7장. 호텔 예약 시스템

1단계: 설계 범위1. 기능 요구사항호텔 정보 페이지 표시객실 정보 페이지 표시객실 예약 지원호텔이나 객실 정보를 추가/삭제/갱신하는 관리자 페이지 지원초과 예약 지원2. 비기능 요구 사항높은 수준의 동시성적절한 지연 시간3. 개략적 규모 추정총 5,000개 호텔, 100만개의 객실평균 객실의 70%가 사용 중이고, 평균 투숙 기간은 3일이라고 가정일일 예상 예약 건수: 233,333초당 예약 건수  ~3., 그다지 높지 않다.2단계: 개략적 설계안1. API 설계reservationID는 이중 예약을 방지하고자 동일한 예약은 단 한 번만 이루어지도록 보증하는 멱등 키(idempotent key)다.이중 예약은 같은 날 같은 객실에 예약이 중복으로 이루어지는 것을 말한다.(동시성 문제)호텔 관련 APIA..

7장. 분산 시스템을 위한 유일 ID 생성기 설계

분산 시스템에서 'auto_increment' 속성이 설정된 관계형 데이터베이스의 키는 사용이 어렵다.=> 데이터베이스 서버 한 대로는 감당이 불가능하고, 지연 시간을 낮추기가 힘들다. 문제 이해 및 설계 범위면접관에게 질문해서 파악한 설계 요구사항ID는 유일해야한다.ID는 숫자로만 구성되어야 한다.ID는 64비트로 표현될 수 있는 값이어야 한다.ID는 발급 날짜에 따라 정렬 가능해야한다.ID 초당 10,000개의 ID를 만들 수 있어야 한다. 유일 ID 생성분산 시스템에서 유일성이 보장되는 ID를 만드는 방법다중 마스터 복제(multi-master replication)UUID(Universally Unique Identifier)티켓 서버트위터 스노플레이크(twitter snowflake) 접근법 다..