primary-replicaread-scalingconsistency-lag
Database replication을 설명해 주세요
- 예상 시간
- 7분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
동기 복제와 비동기 복제의 차이는 무엇인가요?
replica lag는 어떤 문제를 만들 수 있나요?
replication과 backup은 같은 개념인가요?
읽기 분산은 어떻게 구현하나요?
primary 장애 시 주의할 점은 무엇인가요?
부가 설명
서비스가 커지면 모든 읽기와 쓰기를 한 DB에 몰아넣는 구조가 먼저 한계에 닿습니다. replication을 두면 쓰기는 primary가 받고, 조회는 replica가 나눠 처리할 수 있습니다. 또 primary에 장애가 생겼을 때 replica를 승격해 복구 시간을 줄이는 데도 도움이 됩니다.
다만 복제본이 있다는 말이 항상 완전히 같은 시점의 데이터를 본다는 뜻은 아닙니다. 비동기 복제에서는 primary에 commit된 내용이 replica에 반영되기까지 시간이 걸릴 수 있습니다. 그래서 주문 직후 주문 상세를 조회하는 요청처럼 read-after-write가 중요한 경로는 primary에서 읽거나 세션 단위 라우팅을 고려합니다.
한 줄 정리
Replication은 읽기 확장과 장애 대응을 돕지만, 복제 지연까지 함께 설계해야 합니다.