인메모리 데이터베이스

'''인메모리 데이터베이스'''(In-memory Database, IMDB), '''메인 메모리 데이터베이스'''(main memory database system, MMDB), '''메모리 상주 데이터베이스'''(memory resident database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템이다.
인메모리 데이터베이스는 디스크에 최적화된 데이터베이스보다 더 빠른데 그 까닭은 디스크 접근이 메모리 접근보다 느리기 때문이며, 이 데이터베이스는 내부 최적화 알고리즘이 더 단순하며 더 적은 CPU 명령을 실행한다. 메모리의 데이터에 접근하면 데이터를 조회할 때 검색 시간이 줄어들며 디스크보다 더 빠르고 더 예측 가능성 성능을 제공한다.
인메모리 데이터 스토리지의 잠재적인 기술적 문제는 RAM의 휘발성이다. 구체적으로 말해 전원이 소실될 경우나 고의적인 상황 등에서 휘발성 RAM 안에 저장된 데이터는 손실된다. 비휘발성 RAM 기술의 도입으로 인메모리 데이터베이스는 전력 손실에도 완전한 속도로 데이터를 유지할 수 있게 되었다.
간단히 말해 메인 메모리 데이터베이스는 데이터를 휘발성 메모리 장치에 저장한다. 이 장치들은 장치가 전력을 소실하거나 리셋될 때 저장된 모든 정보를 소실한다. 이 경우 IMDB는 ACID(원자성, 일관성, 독립성, 지속성)의 속성 중 지속성(durability)의 지원이 부재함을 의미할 수 있다. 휘발성 메모리 기반 IMDB는 다른 3가지 속성, 즉 원자성, 일관성, 독립성은 대개 지원이 가능하다.
수많은 IMDB는 다음의 매커니즘을 통해 지속성 지원을 추가한다:
* 스냅샷 파일 또는 체크포인트 이미지
* 트랜잭션 로그
* 비휘발성 DIMM(NVDIMM)
* 비휘발성 메모리(NVRAM)
* 자동 장애 극복 기능이 포함된 데이터베이스 레플리케이션에 의존하는 고가용성 구현체
+
제품명
개발사
라이선스
비고
DB2 with BLU acceleration
IBM
상용
MPP(Massively Parallel Processors) Scale-out 지원
PMA(Pure In-Memory Appliance)
IBM OEM(SYNEREX)
상용
DB2 with BLU acceleration 탑재 어플라이언스(Linux,Windows,x86)
Kairos
REALTIMETECH
상용
RDBMS(관계형 데이터모델), MO(공간데이터모델 및 이동객체 데이터모델 통합지원), Spatial(공간정보 융합서비스), Lite(Mobile DBMS)
ALTIBASE HDB
Altibase
상용, 커뮤니티 에디션
SQL 관계형, 하이브리드 DBMS (On-Disk + In-Memory + Volatile-Memory)
 SingleStore (구.MemSQL)
SingleStore, Inc.
상용
 Free Trial (무기한) 제공
ANSI SQL을 사용하는 관계형 DBMS. 
OLTP + OLAP 지원. 
In-Memory + Columnar 동시 사용. 
DB 사용 중에도 빠른 Scale-in / out 지원.
Kafka / S3 / HDFS 등과 pipeline 연결 지원.
Compute 와 Storage 분리 가능 (Object Storage를 저장소로 활용가능) JSON, TimeSeries, GeoSpatial 지원
EXASolution
EXASOL
상용
관계형(SQL, ODBC, JDBC, ADO.NET), 다차원(MDX, XMLA); EXASOL은 2008년부터 TPC-H 벤치마크 데이터량별 100GB, 300GB, 1TB, 3TB, 10TB 부문에서 상위권
WebDNA 7
WebDNA Software Corporation
프리웨어
Oracle Exalytics
오라클
상용
어플라이언스
H2 (DBMS)
토마스 뮐러
모질라 퍼블릭 라이선스 또는 이클립스 퍼블릭 라이선스
자바용
Oracle Coherence
오라클
개발자 다운로드 가능
자바용, 관계형, 분산형
Hazelcast
Hazelcast Team
오픈소스 (아파치 라이선스 2.0)
자바용, NoSQL, 분산형
SAP HANA
SAP AG
상용
Datablitz (전 Dali)
벨 연구소 (알카텔-루슨트)
상용
Dali 프로토타입은 벨 연구소 내 수요를 위해 개발
Polyhedra
ENEA AB (전 Perihelion Software)
상용, 무료버전(Polyhedra Lite)
Kognitio Analytical Platform
Kognitio, Limited
상용
Ehcache
Terracotta, Inc. (Software AG)
오픈소스 (아파치 라이선스)
자바용, 분산형
타임스텐
오라클
상용
스탠드얼론 또는 오라클DB용 인메모리 캐쉬
마이크로소프트 COM+ IMDB
마이크로소프트
상용
단종
eXtremeDB
McObject LLC
상용
다양한 버전 존재
solidDB
IBM
상용
관계형
VoltDB
VoltDB Inc.
오픈소스 (GPL) / 상용
관계형; H-Store 디자인 적용
BigMemory
Terracotta, Inc. (Software AG)
무료
Xeround
Xeround Inc.
비매품, 서비스용
클라우드 데이터베이스
SQLFire
VMware
상용
관계형, 분산형, NewSQL
ActiveSpaces
TIBCO Software
상용, 개발자 다운로드
자바/.Net/C용, 분산형, 하이브리드, 이벤트사용, NewSQL
xPopcornStore
 Nextwith
상용
NoSQL, Graph, 분산형(Scale Out), 비휘발성
마이크로소프트 SQL 서버
마이크로소프트
상용
UnQLite Embedded Database
Symisc Systems
BSD, SPL
Goldilocks
선재소프트
상용
SQL, 관계형, Cluster. Scale-out 지원. TPC-C ,TPC-H 인증
 ARCUS (아커스)
 잼투인 (전 네이버)
오픈소스 (아파치 라이선스 2.0)
ARCUS는 memcached 기반의 인메모리 elastic 캐시 클러스터다. ARCUS는 컬렉션 구조 (List, Set, Map, B+tree) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다.
* 분산 파일 시스템
* 임베디드 데이터베이스
* NoSQL
*  The Rebirth of the In-Memory Database
*  Special Issue on Main-Memory Database Systems, IEEE Data Engineering Bulletin
분류:데이터베이스 관리 시스템