Postgres 장애의 4대 기수: VACUUM, 연결 제한, 쿼리 플래너, JSON
The four horsemen behind Postgres outages
Postgres는 훌륭하지만, 프로덕션에서 수천 건의 장애를 일으키는 네 가지 공통된 문제가 있습니다. 전용 DBA가 없는 스타트업에서 특히 자주 발생하는 이 문제들은 VACUUM과 트랜잭션 ID 랩어라운드, 연결 제한과 쿼리 병렬성, 잘못된 쿼리 플랜, 그리고 JSON 처리입니다. 저자는 pgrust(Postgres의 Rust 재구현)를 통해 이러한 문제를 해결하려고 합니다. pgrust는 스레드 기반 모델을 채택하고, 적응형 쿼리 플래너와 JSON 통계 및 압축을 도입할 계획입니다. 현재 pgrust는 Postgres 회귀 테스트의 96%를 통과했으며, 64비트 트랜잭션 ID를 우선적으로 구현할 예정입니다.
좋은 쿼리 플랜과 나쁜 쿼리 플랜의 차이는 쿼리가 10ms가 걸리느냐 10분이 걸리느냐의 차이일 수 있습니다.