인메모리 데이터베이스

인메모리 데이터베이스(In-memory Database, IMDB), 메인 메모리 데이터베이스(main memory database system, MMDB), 메모리 상주 데이터베이스(memory resident database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 시스템이다.

인메모리 데이터베이스는 디스크에 최적화된 데이터베이스보다 더 빠른데 그 까닭은 디스크 접근이 메모리 접근보다 느리기 때문이며, 이 데이터베이스는 내부 최적화 알고리즘이 더 단순하며 더 적은 CPU 명령을 실행한다. 메모리의 데이터에 접근하면 데이터를 조회할 때 검색 시간이 줄어들며 디스크보다 더 빠르고 더 예측 가능성 성능을 제공한다.

인메모리 데이터 스토리지의 잠재적인 기술적 문제는 RAM의 휘발성이다. 구체적으로 말해 전원이 소실될 경우나 고의적인 상황 등에서 휘발성 RAM 안에 저장된 데이터는 손실된다. 비휘발성 RAM 기술의 도입으로 인메모리 데이터베이스는 전력 손실에도 완전한 속도로 데이터를 유지할 수 있게 되었다.Historically, RAM was not used as a persistent data store and therefore data loss in these instances was not an issue.Whole-system Persistence with Non-volatile Memories http://research.microsoft.com/apps/pubs/default.aspx?id=160853The Bleak Future of NAND Flash Memory http://research.microsoft.com/apps/pubs/default.aspx?id=162804

 ACID 지원 

간단히 말해 메인 메모리 데이터베이스는 데이터를 휘발성 메모리 장치에 저장한다. 이 장치들은 장치가 전력을 소실하거나 리셋될 때 저장된 모든 정보를 소실한다. 이 경우 IMDB는 ACID(원자성, 일관성, 독립성, 지속성)의 속성 중 지속성(durability)의 지원이 부재함을 의미할 수 있다. 휘발성 메모리 기반 IMDB는 다른 3가지 속성, 즉 원자성, 일관성, 독립성은 대개 지원이 가능하다.

수많은 IMDB는 다음의 매커니즘을 통해 지속성 지원을 추가한다:
 스냅샷 파일 또는 체크포인트 이미지
 트랜잭션 로그
 비휘발성 DIMM(NVDIMM)
 비휘발성 메모리(NVRAM)
 자동 장애 극복 기능이 포함된 데이터베이스 레플리케이션에 의존하는 고가용성 구현체

 주요 제품 
+제품명개발사라이선스비고DB2 with BLU accelerationIBM상용MPP(Massively Parallel Processors) Scale-out 지원PMA(Pure In-Memory Appliance)IBM OEM(SYNEREX)상용DB2 with BLU acceleration 탑재 어플라이언스(Linux,Windows,x86)KairosREALTIMETECH상용RDBMS(관계형 데이터모델), MO(공간데이터모델 및 이동객체 데이터모델 통합지원), Spatial(공간정보 융합서비스), Lite(Mobile DBMS)ALTIBASE HDBAltibase상용, 커뮤니티 에디션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 지원EXASolutionEXASOL상용관계형(SQL, ODBC, JDBC, ADO.NET), 다차원(MDX, XMLA); EXASOL은 2008년부터 TPC-H 벤치마크 데이터량별 100GB, 300GB, 1TB, 3TB, 10TB 부문에서 상위권WebDNA 7WebDNA Software Corporation프리웨어Oracle Exalytics오라클상용어플라이언스H2 (DBMS)토마스 뮐러모질라 퍼블릭 라이선스 또는 이클립스 퍼블릭 라이선스자바용Oracle Coherence오라클개발자 다운로드 가능자바용, 관계형, 분산형HazelcastHazelcast Team오픈소스 (아파치 라이선스 2.0)자바용, NoSQL, 분산형SAP HANASAP AG상용Datablitz (전 Dali)벨 연구소 (알카텔-루슨트)상용Dali 프로토타입은 벨 연구소 내 수요를 위해 개발PolyhedraENEA AB (전 Perihelion Software)상용, 무료버전(Polyhedra Lite)Kognitio Analytical PlatformKognitio, Limited상용EhcacheTerracotta, Inc. (Software AG)오픈소스 (아파치 라이선스)자바용, 분산형타임스텐오라클상용스탠드얼론 또는 오라클DB용 인메모리 캐쉬마이크로소프트 COM+ IMDB마이크로소프트상용단종eXtremeDBMcObject LLC상용다양한 버전 존재solidDBIBM상용관계형VoltDBVoltDB Inc.오픈소스 (GPL) / 상용관계형; H-Store 디자인 적용BigMemoryTerracotta, Inc. (Software AG)무료XeroundXeround Inc.비매품, 서비스용클라우드 데이터베이스SQLFireVMware상용관계형, 분산형, NewSQLActiveSpacesTIBCO Software상용, 개발자 다운로드자바/.Net/C용, 분산형, 하이브리드, 이벤트사용, NewSQLxPopcornStoreNextwith상용NoSQL, Graph, 분산형(Scale Out), 비휘발성마이크로소프트 SQL 서버마이크로소프트상용UnQLite Embedded DatabaseSymisc SystemsBSD, SPLGoldilocks선재소프트상용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

분류:데이터베이스 관리 시스템