본문 바로가기
nosql/mongodb

몽고디비 mongodb connection pool 에 대해서

by Bill Lab 2024. 11. 29.
728x90

몽고 db를 사용하는데 connection pool에 대해 이해없이 사용하다가,

런타임 중 예상치 못한 에러를 마주하곤 하는데,

 

기본적으로 개발자라면 본인이 사용하고 있는 db 에 대한 이해와 이를 제어하기 위해 어떤 설정을 해야하는지는 알고있어야한다.

알아야할 항목으로는 트랜젝션처리, 락처리 등이 될것이고, 

또 DBCP라는게 있다.

 

Database Connection Pool !

백엔드 서버에서는 DB 에 CRUD 작업을 위해서, 작업할 때마다 DB에 연결하고 작업이 끝나면 연결을 끊고 하는 방식으로 세팅되어있지 않다.

왜? 매번 필요할때마다 연결하고 끊게 되면은 그만큼의 지연 시간이 발생하기 때문이다.

이러한 시간은 DB 에 접속명령어를 날려서 접속되고, 접속 종료명령어를 날려서 종료되는 시간과 거의 동일하다.

 

백엔드에서는 수시로 DB CRUD 작업을 해야하기때문에 다른 페러다임이 적용되어있는게 

그게 바로 DBCP 이다.

즉, 미리 연결은 다 해놓고, 이 연결된 pool을 CRUD 작업이 필요할때마다 할당받아서 사용하는 것이다.

다 사용되면 접속을 끊는것이 아니라 사용된 Pool 만 다시 반환한다.

(속도 차이는 매우 크며, 로깅을 남겨서 테스트 해볼수도 있다.)

 

자, 그럼 몽고 DB 의 default connection pool 은 얼마일까?

몽고 DB에서 제공해주는 size 는 100이다.

다만, 이 값을 백엔드 서버에서 제어가 가능하다.)

(왜냐고? 사용되는 쪽이 벡엔드니깐)

 

자세한 사항은 공식 문서 참고해 보기 바란다.

https://www.mongodb.com/ko-kr/docs/manual/tutorial/connection-pool-performance-tuning/

 

연결 풀 설정 조정 - MongoDB 매뉴얼 v8.0

데이터베이스의 로드가 적고 항상 활성 연결 수가 적으며, 애플리케이션이 항상 한 번에 예상보다 적은 수의 작업을 수행함

www.mongodb.com

 

 

 

728x90

'nosql > mongodb' 카테고리의 다른 글

mongodb 에서 data 한꺼번에 삭제하는 법  (0) 2025.01.08