Posts

Go로 PostgreSQL 프록시 만들기 (38) - pprof 기반 최적화와 투명 프록시의 경계

Go로 PostgreSQL 프록시 만들기 (38) - pprof 기반 최적화와 투명 프록시의 경계

pprof CPU/alloc 프로파일링으로 병목을 찾고, atomic.Pointer·ReadMessageReuse·wire buffer 재사용을 적용한다. 그리고 응답 batching이 왜 '투명한 프록시'의 원칙을 깨는지 분석한다.

Go로 PostgreSQL 프록시 만들기 (23) - 커넥션 풀 오염과 Panic 격리

Go로 PostgreSQL 프록시 만들기 (23) - 커넥션 풀 오염과 Panic 격리

pgmux에서 발견된 두 가지 CRITICAL 버그 — 에러 시 오염된 커넥션이 풀에 반납되는 Protocol Desync와, 단일 panic이 전체 서버를 크래시시키는 Global Panic Vulnerability — 를 분석하고 수정한다.

Go로 PostgreSQL 프록시 만들기 (24) - 좀비 고루틴과 Dangling Pointer

Go로 PostgreSQL 프록시 만들기 (24) - 좀비 고루틴과 Dangling Pointer

pgmux에서 발견된 두 가지 CRITICAL 버그 — HTTP 클라이언트 끊김을 무시해 고루틴과 DB 커넥션이 영원히 블로킹되는 좀비 누수와, 핫-리로드 후 Admin/Data API가 닫힌 풀을 바라보는 Dangling Pointer — 를 분석하고 수정한다.