피드로 돌아가기
Dev.toDatabase
원문 읽기
v2.x F0 프로필 내 Hardcoded Pool 제한으로 인한 p99 레이턴시 폭증 해결
Demystifying the AWS Advanced JDBC Driver: Pools, Plugins, and the Traps I Hit
AI 요약
Context
Aurora DB 환경에서 Fast Failover와 Read/Write Splitting 구현을 위해 AWS Advanced JDBC Driver를 도입한 구조임. 외부 HikariCP 풀 설정과 별개로 드라이버 내부의 Plugin Chain이 물리적 연결을 제어하는 Wrapper 아키텍처의 특성을 가짐.
Technical Solution
- Plugin Chain 기반의 Interceptor 구조를 통한 JDBC 호출의 Rewrite 및 Routing 처리
- v2.x F0 프로필 사용 시 내부적으로 생성되는 별도의 HikariCP 풀로 인한 30 Connection Hard Ceiling 발생 확인
- 외부 Pool(max=50)과 내부 Pool(max=30) 간의 불일치로 인한 Connection 생성 대기 및 Tomcat Thread 적체 현상 분석
- v3.x 업그레이드를 통한
connectionPoolType=hikari설정 및cp-MaximumPoolSize속성 제어권 확보 cp-MaximumPoolSize >= external maximumPoolSize설정을 통한 내부 풀 병목 제거 설계
실천 포인트
1. AWS Advanced JDBC Driver v
3.
3.0+ 버전 사용 여부 확인
2. F0 프로필 사용 시 내부 풀 크기가 외부 HikariCP 설정값보다 크거나 같은지 검증
3. `exception-override-class-name`에 `software.amazon.jdbc.util.HikariCPSQLException` 설정
4. Read-only 트랜잭션에 `@Transactional(readOnly=true)` 명시를 통한 Read/Write Splitting 최적화