Connection Pool 은, 이미 연결된 n개의 connection 을 돌려가면서 사용하는겁니다.
가령 이런경우죠.
cn = pool.getConn()
cur = cn.cursor()
# do useful thing
# ...
pool.releaseConn(cn)
간단히는 이런 모양입니다만, getConn() 과 releaseConn() 을 계속 match 시키는것은 사실 별로 좋은 방법이 아닙니다. Exception/exit 이 날경우는 매번 release 를 해줘야하기때문에 번거롭죠. Oracle client 처럼 agent 를 사용하는 architecture 에서는 client 에서 connection pool 을 관리해줘서, timeout/close 에 따라 connection 을 수거해가기도 합니다만,
우선 그냥 pool 없이 평이한 방법을 써보고, load 에 문제가 생기면 그때 optimize 하는건 어떨까요? :)
두리뭉실한 질문이라,
두리뭉실하게, 답을 달자면..
1분에 한번씩 커넥션을 맺으면 됩니다.
커넥션 맺는 잡업에 대한 오버헤드가 걱정이신 모양인데,
1분동안(혹은 영원히..) 커넥션을 유지하는 작업이 훨씬 더 큰 오버헤드입니다.
두번째..(ps).. 질문은.... 님께서 만드시려는 프로그램이 뭔지를 잘 모르겠네요.
네 답변 잘봤습니다.
db연결이 첨이라 어느쪽이 더 나을지 몰라서 물어봤는데 역시 맺고있는게 더 비효울적인가 보네요..
만들려고 하는프로그램은 일정주기(1분)에 한번 디비에서 아이피를 긁어와서 sms를 발송하는 서비스입니다.
여기에 혹시 디비커넥션 풀을 적용하는게 가능하나 싶어서요..(db 커넥션 풀이 뭔지는 잘모르지만 좋다고 해서 ㅠㅠ)
답변달아주셔서 감사합니다.
Connection Pool 은, 이미
Connection Pool 은, 이미 연결된 n개의 connection 을 돌려가면서 사용하는겁니다.
가령 이런경우죠.
cn = pool.getConn()
cur = cn.cursor()
# do useful thing
# ...
pool.releaseConn(cn)
간단히는 이런 모양입니다만, getConn() 과 releaseConn() 을 계속 match 시키는것은 사실 별로 좋은 방법이 아닙니다. Exception/exit 이 날경우는 매번 release 를 해줘야하기때문에 번거롭죠. Oracle client 처럼 agent 를 사용하는 architecture 에서는 client 에서 connection pool 을 관리해줘서, timeout/close 에 따라 connection 을 수거해가기도 합니다만,
우선 그냥 pool 없이 평이한 방법을 써보고, load 에 문제가 생기면 그때 optimize 하는건 어떨까요? :)
삽질의 대마왕...
삽질의 대마왕...
커넥션 유지 오버헤드?
1분동안 커넥션을 유지하는데 어떤 오버헤드가 든다는 건지 잘 모르겠네요. 좀 더 자세히 설명해 주시겠습니까?
상식적으로 생각하면 이미 연결된 커넥션에 query 하나 날리는 것보다 매번 연결했다 끊는 게 훨씬 오버헤드가 심할 것 같은데 말이죠. (뭐 1분에 한 번이라니 사실 어느 쪽이든 새발의 피겠지만.)
흠...
이용하시는 디비가 지금 만드시는 프로세스에만 이용된다면 연결/해제를 반복해도 무방해 보입니다만... 뭐 이것도 얼마나 많은 곳에서 요청하느냐에 따라 다르긴하겠지만요...
여러 프로세서에 중복사용되고 있다면 디비의 튜닝정도가 어느정도인지를 체크하여 디비풀을 이용하여 프로세서의 사용량에 적합한 커넥션들을 풀에서 관리하는게 훨씬 유리합니다.
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
----------------------------------------------------------------------
인생 뭐있어? 백수로 사는거야~ 가는거야~
1분에 한번
1분에 한번 삽질하는데 삽을 손에 계속들고 1분마다 삽질할것인가...
한번삽질하고 삽놓고 1분쉬다가 한번씩 삽질할것인가..??
어느것이 유리할까요?
글쓴분께서 말씀하신듯이 1분이라면 꽤 긴?시간이고 궂이 접속유지 할필요는 없어보일듯.
----------------------------------------------------------------------------
C Library Development Project
----------------------------------------------------------------------------
댓글 달기