ALTIBASE HDB 5.3.3 기초강좌
트랜잭션 영속성 관리 1 0 40,340

by Altibase 트랜잭션 영속성 Durability Level [2011.11.22]


  영속성(Durability)은 DBMS가 사용자에게 트랜잭션 커밋(commit) 응답을 했을 경우, 데이터베이스 객체에 대한 해당 변경 사항이 디스크에 반영(flush) 되기 전에 시스템 장애가 발생하였더라도 해당 트랜잭션의 커밋은 보장 되어야 한다는 속성입니다.

  일반적으로 DBMS 는 영속성을 보장하기 위해서 트랜잭션의 로그를 물리적인 파일로 관리하는데, 로그 파일 기록으로 인한 디스크 I/O는 트랜잭션 처리의 병목으로 작용하게 되어 성능 저하의 원인이 될 수 있습니다.

  ALTIBASE HDB 에서는 이런 문제점들을 해결하기 위해 성능 위주의 관리 방식과 안정성 위주의 관리 방식을 각각 제공하고 있습니다.

  Durability Level은 1. 로그를 기록하는 버퍼를 어디에 두고 기록하는지, 2. 로그 버퍼에 기록된 로그를 물리적인 파일에 비동기/동기 방식으로 기록할 것인지의 선택으로 결정됩니다.

  ALTIBASE HDB는 2~5까지의 Durability Level 을 제공하지만 가장 많이 사용되는 두 가지 Level 에 대해서 알아보도록 하겠습니다.

Durability Level 3

 ALTIBASE HDB 에 기본적으로 설정되어 있는 영속성 보장 방식입니다.

 Durability Level 3 방식은 트랜잭션 로그를 기록하는 로그 버퍼의 위치가 ALTIBASE HDB 프로세스 내부가 아닌 OS Kernel 영역에 있습니다.

 또한, 로그 버퍼의 내용을 물리적인 파일로 기록할 때 비동기 방식으로 동작하게 합니다.

 OS Kernel 영역의 로그버퍼를 사용하기 때문에 로그파일을 비동기 방식으로 기록하고, ALTIBASE HDB 프로세스가 비정상 종료를 하더라도 트랜잭션이 commit한 로그는 운영체제의 의해 로그파일에 반영됩니다. 따라서, 영속성을 보장할 수 있습니다.

[그림] Durability Level 3 동작 방식
  • Durability Level 3 동작 방식

  Durability Level 3 은 ALTIBASE HDB가 비정상 종료가 발생하더라도 빠른 성능으로 영속성을 보장한다는 장점이 있지만 로그 버퍼가 OS에 있기 때문에 OS Crash 상황에서는 데이터 안정성이 저하되는 특징을 가지고 있습니다.

Durability Level 5

  Durability Level 5 은 트랜잭션 로그를 ALTIBASE HDB 프로세스 영역의 로그버퍼에 기록하고, 물리적인 로그파일에 기록하는 것을 보장(동기방식)하기 때문에 ALTIBASE HDB, OS 장애 시에도 durability를 보장합니다.

[그림] Durability Level 5 동작 방식
  • Durability Level 5 동작 방식

  Durability Level 5 은 어떤 장애 발생 시에도 영속성을 보장할 수 있다는 장점이 있지만 로그 버퍼의 내용을 물리적인 파일에 항상 기록을 한 뒤에 사용자에게 commit을 해주기 때문에 디스크 I/O로 인한 성능 저하가 발생하게 됩니다.

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

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

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

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