Tibero RDBMS의 프로세는 독립적으로 동작하는 리스너(LISTENER) 프로세스와 워킹 프로세스(Working Process) 그리고 그외 배경 프로세스(Background Process)로 구성되어 있다. 배경 프로세스는 클라이언트의 접속 요청을 직접 받지 않고, 워킹 스레드나 다른 배경 프로세스가 요청할 때 혹은 주기에 따라 동작하는 주로 시간이 오래 걸리는 디스크 작업을 담당하는 독립된 프로세스이다.
종류로는 감시 프로세스(MTHR:monitor thread), 시퀀스 프로세스(AGENT:sequence writer), 데이터 블록쓰기 프로세스(DBWR:data block writer), 체크포인트 프로세스(CKPT:checkpoint process), 로그쓰기 프로세스(LGWR:log writer) 이다.
Tibero RDBMS 프로세스의 종류에 대해 살펴보자.
리스너는 클라이언트의 새로운 접속 요청을 받아 이을 유휴한 워킹 프로세스에 할당한다. 즉, 클라이언트와 워킹 프로세스간의 중계 역할을 담당하며, 이는 별도의 실행 파일인 tblistener를 사용하여 작업을 수행한다.
워킹 프로세스는 클라이언트와 실제로 통신을 하며 사용자의 요구 사항을 처리하는 프로세스이다. 이 프로세스의 개수는 WTHR_PROC_CNT 초기화 파라미터로 조절 할 수 있으며, 일단 Tibero RDBMS가 기동된 뒤에는 변경할 수 없다. 따라서 시스템 환경을 고려하여 적절한 값을 설정해야 한다.
Tibero RDBMS는 효율적인 리소스 활용을 위해 스레드(Thread) 기반으로 작업이 수행된다. 기본적으로 하나의 워킹 프로세스 안에는 1개의 컨트롤 스레드와 10개의 워킹 스레드가 존재한다.
컨트롤 스레드(CTHR:control thread) : 워킹 프로세스마다 하나씩 존재하며 다음과 같은 특징을 가지고 있다.
워킹 스레드(WTHR:working thread)
감시 프로세의 영문 약자를 보면 프로세스가 아닌 스레드로 나타나 있지만, 실제로는 하나의 독립된 프로세스이다. 리스너를 제외하고 Tibero RDBMS가 기동할 때 최초로 생성되며, Tibero RDBMS가 종료되면 맨 마지막에 프로세스를 끝마친다.
그리고 Tibero RDBMS가 기동할 때 다른 프로세스를 생성하거나 주기적으로 각 프로세스의 상태를 점검하는 역할을 담당한다. 또한, 교착상태(deadlock)도 검사한다.
시퀀스 캐시(sequence cache)의 값을 디스크에 저장하고, 그 외에 시스템 유지를 위해주기적으로 처리해야 하는 Tibero RDBMS 내부의 작업을 담당한다.
사용자가 수정한 블록을 주기적으로 디스크에 기록한다. 이렇게 기록된 블록은 주로 워킹 스레드가 직접 읽어온다.
체크포인트는 주기적으로 혹은 클라이언트의 요청에 따라 메모리에 있는 변경된 모든 블록을 디스크에 기록하는 작업이다. Tibero RDBMS에 장애가 발생하면 이를 복구하기 위해 걸리는 시간이 한계 수치를 넘지 않도록 예방하는 효과가 있다. 이러한 체크포인트를 관리하는 프로세스가 체크포인트 프로세스이다.
Redo 로그 파일을 디스크에 기록하는 프로세스이다. 이러한 로그 파일에는 데이터베이스의 데이터에 대한 모든 변경 사항을 저장하고 있으며 빠른 트랜잭션 처리와 복구를 위해 사용된다.
- 강좌 URL : http://www.gurubee.net/lecture/2064
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.