dbcp 개선사항

Simple is Best·2021년 4월 3일
0

OpenSource

목록 보기
2/2

dbcp 관련 개선사항을 정리하였습니다. 추후 관련 내용을 다시 봤을 때 기억이 안날 것 같아 기록해놨습니다.

DBCP 개선 내용

  • MyBatis 에서 dbcp 를 통해 connection 을 가져올 때마다, connection 관련 initSql 을 실행해야하는 요건이 있었습니다.
  • 그런데 connection 을 가져올 때 마다 initSql 를 수행하다 보니 기존에 이미 initSql 를 수행했던 Connection 이 또 다시 initSql 를 수행하니 오버헤드가 발생 됩니다.
  • 그렇기에 dbcp 내에서 connection 을 생성할 때, 한 번만 initSql 을 수행하도록 진행할려고 했습니다.
  • 하지만 dbcp 내에 connection 을 생성할 때, 해당 로직을 실행할 수 있는 interface 가 없었습니다.
  • dbcp 쪽에 해당 이슈를 개선사항으로 제기하고, github 에 PR을 작성하여 dbcp 2.7 버전에 위 사항을 반영했습니다.

관련 issue ticket 및 PR

결론

  • DBCP 는 위와 같이 처리했습니다. 그러나 만약 DBCP opensource 자체를 교체한다면 문제가 되는 상황이 발생할 수 있습니다.
  • 그러나 사이트 (상당히 보수적인 사이트) 특성상 오픈소스를 교체할 일은 없을 것이라 생각됩니다.
  • 위와 별개로 HikariCP 는 어떻게 돼있나 궁금해서 찾아봤습니다.
  • HikariCP 에서는 initSql 라는 옵션이 있습니다. initSql 옵션을 통해 처음 Connection 을 만들 때, initSql 을 실행시킬 수 있습니다.
    • 그렇기에 HikariCP 로 교체하는건 문제가 없을 것이라 생각했습니다.
profile
Simple is best

0개의 댓글