인 메모리 데이터베이스

 

1. 개요
2. 주요 기업 및 제품


1. 개요


In-Memory Database
IMDB, 혹은 MMDB(Main Memory DBMS)라고도 한다.
디스크가 아닌 주 메모리에 모든 데이터를 보유하고 있는 데이터베이스. 디스크 검색[1]보다 자료 접근이 훨씬 빠른 것이 가장 큰 장점이다. 데이터 양의 빠른 증가로 데이터베이스 응답 속도가 떨어지는 문제를 해결할 수 있는 대안이 인 메모리 데이터베이스이다. 전형적인 디스크 방식은 디스크에 저장된 데이터를 대상으로 쿼리를 수행하지만, 인 메모리 방식은 메모리상에 색인을 넣어 필요한 모든 정보를 메모리상의 색인을 통해 빠르게 검색할 수 있다.
단점이라면 매체가 '''휘발성'''이라는 것. DB 서버 전원이 갑자기 꺼져버리면 안에 있는 자료들이 초고속즉시삭제 되어버린다. 그래서 보통은 로그인 세션 같은, 서버가 꺼져서 날아가도 상관 없는 임시 데이터에 주로 쓰인다. 거기다 속도 때문에 쓰는 것이기에 압축 따윈 쓰지 않으며, 데이터에 비해 RAM 용량이 넉넉하지 않을 경우 가상메모리를 쓰게 되어 역효과가 일어나기도 한다.
물론 DBMS의 속성 중 하나인 Durability를 보장하기 위하여 메모리에 INSERT/UPDATE/DELETE된 값들은 모두 디스크에 로그로 기록하며, DBMS가 재구동될 때 디스크로부터 로그 파일을 읽어와 메모리에 DBMS 구조를 모두 재구축하기도 한다.
한편, 기존 DBMS 제품도 인 메모리 데이터베이스를 사용할 수 있는 옵션을 제공하기도 한다. MySQL/MariaDB의 MEMORY 엔진이 그 중 하나.

2. 주요 기업 및 제품


  • Amazon ElastiCache (미국)
  • Redis (미국)
  • 알티베이스 (Altibase) (한국)
  • Kairos (한국)
  • SAP HANA (독일)[2]
  • SunDB - (한국)
  • TimesTen (미국, 오라클)
  • Memcached (미국)

[1] 그 빠르다는 NVMe SSD조차 DDR4 RAM보다는 10여배 가량 느리다.[2] HANA DBMS 자체는 서울대학교의 차상균 교수 연구팀이 개발했으며 현재도 SAP HANA 연구소는 서울대학교에 있다.