인메모리 데이터베이스(In-memory Database, IMDB), 메인 메모리 데이터베이스(main memory database system, MMDB), 메모리 상주 데이터베이스(memory resident database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템이다.
인메모리 데이터베이스는 디스크에 최적화된 데이터베이스보다 더 빠른데 그 까닭은 디스크 접근이 메모리 접근보다 느리기 때문이며, 이 데이터베이스는 내부 최적화 알고리즘이 더 단순하며 더 적은 CPU 명령을 실행한다. 메모리의 데이터에 접근하면 데이터를 조회할 때 검색 시간이 줄어들며 디스크보다 더 빠르고 더 예측 가능성 성능을 제공한다.[1][2]
인메모리 데이터 스토리지의 잠재적인 기술적 문제는 RAM의 휘발성이다. 구체적으로 말해 전원이 소실될 경우나 고의적인 상황 등에서 휘발성 RAM 안에 저장된 데이터는 손실된다.[3] 비휘발성 RAM 기술의 도입으로 인메모리 데이터베이스는 전력 손실에도 완전한 속도로 데이터를 유지할 수 있게 되었다.[4][5]
ACID 지원
간단히 말해 메인 메모리 데이터베이스는 데이터를 휘발성 메모리 장치에 저장한다. 이 장치들은 장치가 전력을 소실하거나 리셋될 때 저장된 모든 정보를 소실한다. 이 경우 IMDB는 ACID(원자성, 일관성, 독립성, 지속성)의 속성 중 지속성(durability)의 지원이 부재함을 의미할 수 있다. 휘발성 메모리 기반 IMDB는 다른 3가지 속성, 즉 원자성, 일관성, 독립성은 대개 지원이 가능하다.
수많은 IMDB는 다음의 매커니즘을 통해 지속성 지원을 추가한다:
주요 제품
제품명
|
개발사
|
라이선스
|
비고
|
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) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다.
|
같이 보기
각주
외부 링크
|