인메모리 DBMS

인메모리 DBMS는 메인 메모리(RAM)에 모든 데이터를 저장하고 트랜잭션을 처리하는 DBMS입니다.
Altibase는 디스크 DBMS에 비해 트랜잭션 처리 성능이 수십배 이상 빠르기 때문에 다음과 같은 목적으로 사용됩니다.

사용 목적:

  • 온라인 트랜잭션 업무(OLTP)의 빠른 처리
  • 온라인 분석 업무(OLAP)의 빠른 처리

인메모리 DBMS에 대한 자세한 설명은 여기에서 확인할 수 있습니다.

Hybrid DBMS

hybrid database structure in memory plus on disk

하이브리드 DBMS는 인메모리 DBMS와 디스크 DBMS를 합쳐놓은 구조입니다.

하이브리드 DBMS의 특징은 다음과 같습니다.

  • 통합된 하나의 DB 엔진(인메모리 DBMS+디스크 DBMS)
  • 고성능 트랜잭션 처리 가능
  • 대용량 데이터 관리 가능
  • 메모리와 디스크 간의 데이터 관리 및 연동이 유연함

하이브리드 DBMS에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

인메모리 DBMS vs. Buffer Cache

in memory database vs buffer cache

버퍼 캐쉬는 디스크 DBMS에서 데이터 처리 시 발생하는 Disk I/O로 인한 성능 저하를 줄이기 위해 사용하는 메모리 공간입니다. 버퍼 캐쉬의 특징은 다음과 같습니다.

  • 일부의 데이터를 임시적으로 저장(디스크에서 메모리로 page copy)
  • 캐싱된 데이터 접근 시에만 성능 효과 있음
  • Dirty Page에 대한 빈번한 flush 작업 발생(데이터 동기화)

인메모리 DBMS는 모든 데이터가 메모리에 상주하기 때문에 Disk I/O가 거의 발생하지 않으며 이로 인한 성능 저하도 없습니다.

인메모리 DBMS의 특징은 다음과 같습니다.

  • 모든 데이터를 메모리에 저장(Disk I/O 거의 없음)
  • 모든 데이터 접근 시 성능 보장
  • 균일한 성능 보장

메모리 데이터 저장방법

how_does_in_memory_database_prevent_data_loss_in_a_power_failure

메인 메모리(RAM)는 휘발성이라는 특성을 가지고 있습니다. 따라서, 정전이 발생하게 되면 메모리에 저장된 데이터는 모두 삭제됩니다.

Altibase는 이런 특성을 고려하여 영속성을 보장할 수 있도록 다음의 순서로 관리하고 있습니다.

  1. 트랜잭션 발생
  2. 메모리 로그 버퍼에 트랜잭션 로깅
  3. 데이터 변경(메모리)
  4. 로그 플러쉬(로그 파일로 저장)
  5. 체크포인트(메모리 데이터 저장)

또한, 자체적으로 보조 전원을 가지고 있는 NVRAM을 저장소로 사용한다면 이런 문제로부터 자유로울 수 있습니다.