Database Management System | |||
{{{#!wiki style="margin: 0 -10px;" {{{#!folding [ 주요 DBMS ] {{{#!wiki style="margin-bottom: -15px;" | | | |
| | | |
| | |
그 외 DBMS |
1. 개요
In-Memory DatabaseIMDB, 혹은 MMDB(Main Memory DBMS)라고도 한다.
보조기억장치(HDD, SSD 등)가 아닌 주기억장치(RAM)에 모든 데이터를 저장하고 관리하는 데이터베이스. 디스크 검색[1]보다 자료 접근이 훨씬 빠른 것이 가장 큰 장점이다. 데이터 양의 빠른 증가로 데이터베이스 응답 속도가 떨어지는 문제를 해결할 수 있는 대안이 인 메모리 데이터베이스이다. 전형적인 디스크 방식은 디스크에 저장된 데이터를 대상으로 쿼리를 수행하지만, 인 메모리 방식은 메모리상에 색인을 넣어 필요한 모든 정보를 메모리상의 색인을 통해 빠르게 검색할 수 있다.
다만 휘발성인 RAM에 모든 데이터를 저장하기 때문에 만일 DB 서버 전원이 갑자기 꺼져버릴 경우 모든 데이터가 한꺼번에 날아간다는 치명적인 단점이 있다. 그래서 로그인 세션 같은 날아가도 상관 없는 임시 데이터에 주로 쓰인다. 또한 속도를 위해 압축을 하지 않으며 RAM 용량이 부족할 경우 가상메모리를 사용하게 되어 역효과가 일어나기도 한다.
물론 DBMS의 속성 중 하나인 영속성(Durability)을 보장하기 위해 메모리에 INSERT/UPDATE/DELETE된 값들은 모두 디스크에 로그로 기록하며, DBMS가 재구동될 때 디스크로부터 로그 파일을 읽어와 메모리에 DBMS 구조를 모두 재구축하기도 한다.
한편, 기존 DBMS 제품도 인 메모리 데이터베이스를 사용할 수 있는 옵션을 제공하기도 한다. MySQL/MariaDB의 MEMORY 엔진이 그 중 하나.
2. 주요 기업 및 제품
- Amazon ElastiCache (미국)
- Redis (미국)
- 알티베이스 (Altibase) (한국)
- Kairos (한국)
- SAP HANA (독일)[2]
- GOLDILOCKS (한국)
- TimesTen (미국, 오라클)
- Memcached (미국)
- SingleStore (미국, 구 Memsql)
- Apache Ignite (미국)