ALTIBASE HDB 5.3.3 기초강좌
ALTIBASE HDB 구조 1 0 40,695

by Altibase HDB 구조 [2011.10.13]


  ALTIBASE HDB의 전체 구성은 자료 저장 관리자와 질의 처리기로 구성된 서버 부분과 응용 프로그램 작성을 위한 클라이언트 라이브러리, 그리고 이들 간의 통신 모듈로 구성되어 있습니다.

  이 밖에 여러 개의 유틸리티와 디스크에 저장되는 메모리 테이블스페이스의 Checkpoint Image파일, 디스크 테이블스페이스의 데이터 파일, 로그 파일이 있습니다.

[그림 4] ALTIBASE HDB 구조

ALTIBASE HDB 구조

메모리 테이블스페이스

  디스크에 데이터를 적재하고 일부 데이터를 버퍼에 cache 하는 것과는 달리 모든 데이터가 메모리에 적재되는 공간입니다.

  DB가 구동될 때, 모든 메모리 데이터를 업로드하여 관리하기 때문에 디스크I/O가 거의 발생하지 않습니다.

로그 버퍼

  DBMS는 트랜잭션의 영속성을 보장하기 위해 리두로그(Redolog)를 물리적인 파일로 관리합니다.

  그런데 트랜잭션이 발생할 때마다 물리적인 파일에 로그를 기록한다면 성능이 저하되기 때문에 메모리에 로그 버퍼를 만들어서 변경된 데이터베이스 내용에 대해서 메모리에 먼저 로깅을 수행합니다.

디스크 버퍼

  디스크I/O를 최소화하기 위해서 데이터파일에 저장되어 있는 디스크 데이터를 메모리에 적재하는 공간을 디스크 버퍼라고 합니다.

  이 때, 버퍼에는 데이터파일로부터 읽어온 데이터 페이지의 복사본이 저장됩니다.

체크포인트 이미지 파일

  메모리는 휘발성이라는 특징을 가지고 있기 때문에 시스템 전원이 나간다거나 장애가 발생할 경우에 DB에 저장된 메모리 데이터는 모두 유실됩니다.

  그래서 ALTIBASE HDB 에서는 이런 경우를 대비하여 메모리 데이터를 디스크에 물리적인 파일로 주기적인 백업을 받는데 이 파일을 체크포인트 이미지 파일이라고 합니다.

서버 프로세스 구조

  ALTIBASE HDB는 다수의 프로세스가 아닌 하나의 프로세스 내부에 다수의 Thread로 구성되어 있습니다.

[그림 5] ALTIBASE HDB 서버 프로세스 구조

ALTIBASE HDB 서버 프로세스 구조

Dispatcher
  • 클라이언트로부터 서버와의 연결 요청을 받으면 service thread를 통해 서버와 연결할 수 있도록 합니다.

Session Manager
  • service thread를 관리하는 thread로써 service thread의 상태를 파악하여 task를 재분배하고, 클라이언트와 서버의 연결 상태를 관리합니다.

Service
  • 클라이언트가 요청한 task를 서버로 전달하여 처리하도록 합니다.

Checkpoint
  • 주기적 또는 임의로 메모리에 있는 데이터 중 변경이 발생한 데이터를 물리적인 파일에 기록하는 역할을 합니다.

Memory Ager
  • 메모리 테이블의 경우 변경 연산이 발생하면 원본 레코드가 아닌 사본 레코드를 생성하여 변경 하는데, 사용자가 변경한 데이터에 대해서 commit 을 하면 사본 레코드가 DB에 영구적으로 반영됩니다.
  • 이 때, 원본 레코드는 변경되기 이전 값이므로 DB에서는 더 이상 필요치 않은 데이터이기 때문에 Memory Ager 가 즉시 삭제하여 불필요한 공간 활용을 방지합니다.

Buffer Flush
  • 디스크 버퍼에 적재되어 있던 데이터는 데이터파일의 데이터 페이지 복사본이기 때문에 변경을 해도 데이터파일에 반영되지 않습니다.
  • 그래서 buffer flush thread 는 주기적으로 디스크 버퍼에 변경되어 있는 페이지들과 데이터파일의 데이터 페이지들의 값을 동일하게 맞춰줍니다.

Log Flush
  • 로그 버퍼에 기록된 리두로그를 물리적인 리두로그 파일에 기록하는 역할을 합니다.

Logfile Manager
  • 트랜잭션이 발생하면 해당 내용을 로그파일에 기록하게 되는데, 이 때 로그파일이 부족할 경우 추가로 로그파일을 생성해서 트랜잭션 내용을 기록합니다.
  • 그런데 로그파일을 생성하기 위해 트랜잭션이 대기하는 시간이 성능이 저하되기 때문에 logfile manager는 미리 여분의 로그파일을 생성하게 합니다.

Archive
  • ALTIBASE HDB는 체크포인트가 발생하면 DB에서 자동적으로 로그파일을 삭제합니다.
  • 이 때, DB를 아카이브 모드로 운영 중이라면 archive thread 에 의해서 로그파일이 archiving 됩니다.

참고사이트

- 강좌 URL : http://www.gurubee.net/lecture/2154

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입