본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Main Memory Database; 주기억장치 데이터베이스; 메모리 데이터베이스; 메인 메모리 데이터베이스
데이터베이스상의 데이터를 메모리에 상주시켜 관리하는 DBMS
  • 모든 연산을 주기억장치에서 수행하므로 Disk I/O가 발생하지 않음 → 속도 대폭 개선
  • T 트리 이용
  • 메모리 가격 하락
  • 64bit 운영체제
  • 실시간 처리 요구 증가(통신 과금·증권 거래·온라인 게임 등 짧은 응답 시간이 필요한 업무)

기존 디스크 기반 DB와의 비교

편집 원본 편집
구분 디스크 기반 DB 메모리 기반 DB
데이터 저장 하드디스크 주기억장치
운영 목표 트랜잭션의 안정적 운영 빠른 트랜잭션 처리
인덱스 종류 B 트리 인덱싱 T 트리 인덱싱
버퍼 관리 디스크 블록을 메모리 버퍼에 올렸다 내린다 버퍼 관리자가 필요 없다(데이터가 이미 메모리에 있다)
회복기법 로그를 이용한 Undo/Redo 로그 + 주기적 체크포인트(디스크 이미지)로 재기동 시 메모리에 다시 적재. 배터리 백업 메모리·비휘발성 메모리를 쓰기도 한다
  • 장애 시 휘발성 데이터가 모두 소실되므로 회복이 중요
  • 기존 디스크 기반 DB보다 수십~수백 배 빠른 응답을 내세운다(업무와 데이터 형태에 따라 차이가 크다)
  • 단점: 메모리 용량이 곧 DB 크기의 한계이고, 같은 용량에서 디스크보다 비싸다

하이브리드 MMDBMS

편집 원본 편집

Hybrid MMDBMS

하이브리드 MMDBMS 는 메모리 테이블과 디스크 테이블을 한 DBMS 안에서 함께 관리하는 DBMS 이다. 모든 데이터를 메모리에 올리는 순수 MMDB 의 용량·비용 한계와, 디스크 DB 의 속도 한계를 함께 풀기 위해 나왔다.

  • 저장 위치를 테이블 단위로 선택: 자주 접근하고 빠른 응답이 필요한 데이터(Hot)는 메모리 테이블에, 이력·대용량 데이터(Cold)는 디스크 테이블에 둔다
  • 단일 SQL 인터페이스: 응용 프로그램은 테이블이 어디에 있는지 몰라도 같은 SQL 로 조회하고, 메모리 테이블과 디스크 테이블을 조인할 수 있다
  • 통합 트랜잭션: 두 종류의 테이블을 하나의 트랜잭션으로 묶어 ACID 를 보장한다
  • 통합 회복: 하나의 로그와 체크포인트 체계로 두 저장소를 함께 복구한다
  • 저장소별 최적화: 메모리 테이블은 T 트리·해시 인덱스, 디스크 테이블은 B 트리 인덱스와 버퍼 관리를 쓴다
  • 데이터 이동: 시간이 지나 덜 쓰이는 데이터를 디스크 테이블로 옮겨 메모리를 확보한다
구성 역할
SQL 처리기 질의를 분석하고, 메모리·디스크 저장소를 모두 고려해 실행 계획을 세운다
메모리 저장 관리자 메모리 테이블의 레코드·인덱스를 관리한다
디스크 저장 관리자 디스크 테이블의 페이지와 버퍼를 관리한다
트랜잭션·동시성 관리자 두 저장소에 걸친 트랜잭션의 잠금·격리를 처리한다
로그·회복 관리자 공통 로그와 체크포인트로 장애 후 복구한다

순수 MMDB·디스크 DB 와의 비교

편집 원본 편집
구분 디스크 DB 순수 MMDB 하이브리드 MMDBMS
저장 위치 디스크 메모리 테이블별로 메모리 또는 디스크
성능 보통 매우 빠름 메모리 테이블은 빠르고, 디스크 테이블은 보통
용량 한계 디스크 크기 메모리 크기 디스크 크기까지
비용 낮음 높음 중간(뜨거운 데이터만 메모리)
적합 업무 대용량 일반 업무 소용량 초고속 실시간 업무 실시간 처리와 대용량 이력을 함께 다루는 업무
  • 대표 제품: 메모리·디스크 테이블을 함께 지원하는 국산 DBMS(알티베이스), 디스크 DB 에 메모리 최적화 테이블을 더한 SQL Server 의 In-Memory OLTP, 디스크 DB 앞에 메모리 DB 를 캐시로 붙이는 Oracle TimesTen 캐시 구성 등
  • 활용: 통신사 과금, 증권 주문 처리, 결제 승인처럼 현재 데이터는 실시간, 과거 이력은 대량인 업무