마스터/스탠바이 복제
목적 : 데이터의 고가용성 및 데이터 손실 방지, 성능 향상, 재해 복구
하나의 데이터베이스 인스턴스(마스터)가 주로 쓰기 작업을 담당하며, 하나 이상의 스탠바이 데이터베이스가 마스터 데이터베이스의 변경 사항을 복제하여 유지한다. 스탠바이 데이터베이스는 주로 읽기 작업을 수행하며, 마스터에 장애가 발생할 경우 스탠바이 데이터베이스가 마스터 역할을 대신한다.
다중 마스터 복제
충돌 해결 및 그에 대한 작업이 필요하다. 때문에 대부분 원본 단일 복제 방식을 사용한다.
동기 vs 비동기 복제
•
동기 복제
마스터 데이터베이스에서 발생한 변경 사항이 스탠바이 데이터베이스에 성공적으로 기록될 때까지 트랜잭션이 커밋되지 않는 복제 방식이다. 이 방식은 데이터 일관성과 무결성을 보장하지만, 성능 저하가 발생할 수 있다.
•
비동기 복제
마스터 데이터베이스가 트랜잭션을 커밋할 때 스탠바이 데이터베이스의 응답을 기다리지 않는 복제 방식이다. 이 방식은 성능이 뛰어나지만, 데이터 일관성과 신뢰성 면에서 동기 복제보다 낮을 수 있다.
Pros
•
Horizontal Scaling
•
Region based queries - DB per region
◦
각 지역별로 데이터베이스를 분리하여 운영할 수 있다. → 지연 줄이고 성능 향상
Cons
•
Eventual Consistency
◦
데이터베이스 시스템이 항상 즉각적으로 일관성을 보장하지 않는다. 결국에는 동일한 상태가 되겠지만, 일시적인 불일치가 발생할 수도 있다.
•
Slow Writes (synchronous)
◦
동기 복제 방식에서 쓰기 작업이 느려질 수 있다.
•
Complex to Implement (multi-master)
◦
위에서 말했듯 다중 마스터 복제를 구현하는건 너무 복잡하다.