데이터독(Datadog)이 쿠버네티스(Kubernetes) 환경에서 PostgreSQL 클러스터의 고가용성(High Availability)을 확보하는 과정에서 발견된 구조적 약점을 해결한 방법을 공개했습니다. 기존 아키텍처는 네트워크 장애 시 복제 지연(replication lag)이 누적되어 안전한 페일오버(failover)가 불가능해지는 문제가 있었는데, 이는 가용성(availability)을 내구성(durability)보다 우선시하는 설계 때문이었습니다. 데이터독은 게임데이(Game Day) 시뮬레이션을 통해 이러한 취약점을 발견하고, 이를 해결하기 위한 하이브리드 복제 모델을 도입했습니다.
이 문제의 핵심은 PostgreSQL의 단일 라이터(single-writer) 모델과 비동기식 복제(asynchronous replication) 방식에 있었습니다. 네트워크 지연이 발생하면 프라이머리(primary) 노드가 계속 쓰기를 처리하는 동안 복제본(replica)들이 뒤처지게 되고, 결국 데이터 손실 없이 승격할 수 있는 최신 상태의 복제본이 사라지는 상황이 발생했습니다. 데이터독은 이를 해결하기 위해 리더 풀(leader pool) 내의 스탠바이(standby) 노드에만 동기식 복제(synchronous replication)를 적용하고, 읽기 전용 복제본(read replica)은 기존처럼 비동기식 복제를 유지하는 하이브리드 모델을 채택했습니다. 이를 통해 페일오버 후보의 데이터 일관성을 보장하면서도 전체 시스템의 쓰기 지연을 최소화했습니다. 오픈소스 고가용성 관리자 파트로니(Patroni)와 주키퍼(ZooKeeper)를 활용해 복제, 페일오버, 리더 선출을 정교하게 조율했으며, 특히 `synchronous_commit` 파라미터를 `remote_apply`로 설정하여 복제본이 WAL(Write-Ahead Log)을 수신하고 적용까지 완료해야만 트랜잭션을 커밋하도록 강화했습니다.
이러한 하이브리드 복제 모델은 내구성을 크게 향상시키지만, `remote_apply` 모드 적용 시 쓰기 지연이 53% 증가하고 처리량(tps)이 34% 감소하는 등 성능 비용이 발생합니다. 하지만 데이터독은 여러 장애 시나리오 검증을 통해 데이터 무결성을 보호하고 스플릿 브레인(split-brain) 현상을 방지하며 자동 복구를 보장하는 안전한 페일오버를 달성했습니다. 프로덕션 환경에 단계적으로 적용한 결과, 고쓰기 클러스터에서도 애플리케이션 수준의 쓰기 지연이나 처리량에 유의미한 영향 없이 안정적으로 동작함을 확인했습니다. 이는 중요한 데이터베이스 시스템에서 가용성과 내구성이라는 상충하는 목표 사이에서 최적의 균형점을 찾아냈다는 점에서 의미가 큽니다.