GOLDILOCKS 는 데이터베이스를 관리하기 위한 프로세스 gmaster 가 있습니다.
gmaster 는 내부적으로 여러개의 쓰레드로 구성되어 있습니다.
명칭 ( 단어 뒤 Thread 생략 ) |
설명 |
Main |
gmaster 프로세스를 구동/종료 |
Log Archiving |
Redo Log File 이 변경될 시, 이전 Redo Log File 을 지정된 위치로 복사 |
Ager |
DROP 된 객체들이 사용하고 있던 자원을 정리 |
Page Flusher |
Checkpoint 발생 시, Dirty 된 페이지들을 디스크로 저장하기 위하여 IO Slave 에 작업을 배분하고 제어 |
Log Flusher |
Redo Log Buffer 에 쌓인 데이터를 Redo Log File 에 주기적으로 저장 |
Checkpoint |
메모리 상의 변경사항을 디스크에 존재하는 파일로 저장 |
Cleanup | 비정상적으로 종료된 클라이언트들이 사용하던 자원 정리, 해당 트랜잭션 Rollback |
IO Slave |
디스크에 존재하는 파일과 관련된 모든 Disk IO 를 수행 |
Process Monitor |
데이터베이스를 운영하는데 필요한 프로세스를 모니터링 및 비정상 종료시 재구동 |
Cluster Recover ( cluster ) |
Global Transaction 의 복구를 처리 |
FailOver ( cluster ) | 특정 노드나 네트워크 장애 시, 장애 노드에 대한 Offline 처리 및 Coordinator 재선정 |
Log Archiving Thread
Redo Log File 1 의 파일이 Redo Log File 2 로 변경되는 시점에, Log Archiving Thread 가 Redo Log File 1 을 Arch Redo Log File 1 로 복사합니다.
Ager Thread
Drop 된 객체에 대해 객체가 사용한 자원을 정리합니다.
Log Flusher
수행된 쿼리는 Redo Log Buffer 에 쌓이게 되고, 주기적으로 Redo Log File 에 저장하여 영구성을 보장합니다.
CheckPoint, Page Flusher, IO Slave Thread
Redo Log File 이 변경될 때 CheckPoint 가 발생되며, CheckPoint 발생 시 Page Flusher Thread 는 IO Slave 가 메모리 상의 Dirty 된 페이즈들을 디스크로 동기화하는 역할을 수행합니다.
전체적으로 GOLDILOCKS 는 아래 그림과 같이 동작하여, 메모리에서 수행되는 작업을 디스크로 동기화하여 데이터의 영구성을 보장합니다.
Process Monitor Thread 는 CS 모드에서의 세션접속을 위한 프로세스 구동여부 모니터링을 의미합니다.
Cluster Recover, FailOver Thread 에 대해서는 클러스터 관련 포스팅에서 작성하도록 하겠습니다.
'Database > Goldilocks' 카테고리의 다른 글
[GOLDILOCKS] Scale-Out 이 가능한 클러스터 데이터베이스 골디락스 (0) | 2018.05.25 |
---|---|
[GOLDILOCKS] 클라이언트 접속 방식 DA / CS / Dedicated / Shared 알아보기 (0) | 2018.05.24 |
[GOLDILOCKS] SQL 쿼리 HINT 사용해보기 (0) | 2018.05.22 |
[GOLDILOCKS] 조인, Cross Join, Inner Join, Outer Join, Semi Join, Anti-Semi Join 알아보기 (0) | 2018.05.22 |
[GOLDILOCKS] 쿼리 옵티마이저, 쿼리 최적화, QUERY OPTIMIZER 알아보기 (0) | 2018.05.22 |