primary-replicaread-scalingconsistency-lag

Database replication을 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

동기 복제와 비동기 복제의 차이는 무엇인가요?

부가 설명

서비스가 커지면 모든 읽기와 쓰기를 한 DB에 몰아넣는 구조가 먼저 한계에 닿습니다. replication을 두면 쓰기는 primary가 받고, 조회는 replica가 나눠 처리할 수 있습니다. 또 primary에 장애가 생겼을 때 replica를 승격해 복구 시간을 줄이는 데도 도움이 됩니다.

다만 복제본이 있다는 말이 항상 완전히 같은 시점의 데이터를 본다는 뜻은 아닙니다. 비동기 복제에서는 primary에 commit된 내용이 replica에 반영되기까지 시간이 걸릴 수 있습니다. 그래서 주문 직후 주문 상세를 조회하는 요청처럼 read-after-write가 중요한 경로는 primary에서 읽거나 세션 단위 라우팅을 고려합니다.

한 줄 정리

Replication은 읽기 확장과 장애 대응을 돕지만, 복제 지연까지 함께 설계해야 합니다.