2010년 12월 26일 일요일

MySQL Connection thread (Client thread)


Client의 요청을 처리하는 Thread
  • Client 의 Connection 당 하나의 Thread가 할당됨
  • 새로운 Connection이 생성되면, Thread cache에 대기중인 Thread가 있으면
    새로운 Thread를 생성하지 않고 그 Thread를 Connection 작업의 처리를 담당하게 함
    대기중인 Thread가 없으면 새로운 Thread 생성 
  • Connection 이 종료되면, 해당 Thread는 Thread Cache로 돌아가거나 제거됨
    -> thread_cache_size 설정값 만큼 Thread cache가 채워져 있으면 제거됨
  • 일반적으로 Client 프로그램이 Connection Pool을 사용하는 경우에는 thread_cache_size를 크게 잡을 필요 없음
    -> 대기중인 Thread도 메모리와 기타 자원을 어느 정도는 소비하므로... 
  • Connection thread가 직접 Disk에 page(데이터 또는 인덱스) write를 하진 않지만, 직접 page read는 실행함
    -> 이런 형태의 읽기를 Foreground read라고 표현
    -> 대 부분의 데이터 page read는 Connection thread로 처리됨
    -> Background read thread는 Read Ahead용으로만 사용됨 

댓글 없음:

댓글 쓰기