레플리카 셋(Repliaca Set)에 대해 먼저 이해해보면
레플리카 셋의 주 목적은 DB의 가용성을 확보하고 장애 복구(Fail Over) 처리하기 위해 구성한다.
하나의 주 서버(Primary)와 하나 이상의 복제본 서버(Secondary)로 구성된다. 주 서버(Primary)는 모든 쓰기와 대부분의 읽기 작업을 처리하며, 복제본 서버(Secondary)는 주 서버의 데이터를 실시간으로 복제하여 읽기 작업을 분담하거나 장애 발생 시 주 서버를 대체하는 메커니즘이다.
어떻게 주 서버의 데이터를 복제본 서버로 Sync하는걸까?
데이터 동기화 하는 방식엔 여러 방식이 있지만, 이번엔 RDB의 처리 프로세싱에 대해서만 다뤄보려한다.
1) 빈 로그 기록 (Binary Log Recording)
primary에서 데이터 변경 사항들이 bin_log에 기록된다.
2) 로그 파일 전송 (Log File Transfer)
replication에서는 primary에 연결하여 bin_log 파일을 요청한다. primary는 replication 서버에 bin_log를 전송한다.
3) 릴레이 로그 기록 (Relay Log Recording)
replication은 primary에서 받은 bin_log를 자신의 relay_log에 기록한다.
(relay_log는 primary bin_log를 그대로 복사한거임.)
4) 릴레이 로그 적용 (Replay Log Application)
replication의 SQL 스레드는 relay_log에 기록된 이벤트를 순차적으로 읽어와서 해당 변경 작업을 자신에게 적용한다. 이를 통해 eventually consistency하게 primary와 동일한 데이터 상태가 유지된다.
읽고 좋았던 아티클.
반응형
'Self-Development > Study' 카테고리의 다른 글
what is a domain services? (0) | 2024.09.28 |
---|---|
CAP 이론 이해하기 (0) | 2024.07.06 |
DDD의 Repository Pattern은 왜 사용할까 (0) | 2024.06.08 |
애그리거트(Aggregate) 디자인하기 (0) | 2024.06.07 |
도메인과 도메인 모델(Domain Model) (0) | 2024.06.05 |
댓글