요약
- connection pool db 단의 동시성을 올리지만 [여러가지 이유](connection pool에서 connection 순환 속도을 고려하지 않으면 조용히 서비스 성능이 악화된다.)로 느려질 수 있음
- connection pool으 순환 문제로 발생할 수 있는 시나리오를 정리해좀
본문
- 아래는 느린 connection pool circulation으로 인해 발생할 수 있는 3가지 문제
- Timeout cascade: 커넥션을 기다리는 요청들를 timeout 시킴
- 이 방법은 retry를 유발하고 유발된 retry는 이미 empty Pool에서 더 많은 connection을 요구함
- 각 재시도는 exhaustion을 더 악화시키고 death spiral을 만듦
- Connection leak
- finally 블록에서 connection이 반환되지 않아 connection이 서서히 고갈됨
- slow leak
- connection이 반환되지만 서서히 반환됨 downstream 의존성들이 서서히 느려지기 시작함
- 모든 요청이 5배 느려지고 pool 사용률이 최대로 치솟음