인메모리 데이터베이스

데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 DBMS

인메모리 데이터베이스(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) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다.

같이 보기 편집

각주 편집

  1. “Definition: in-memory database”. WhatIs.com. 2013년 1월 19일에 확인함. 
  2. Michael Vizard. “The Rise of In-Memory Databases”. Slashdot. 1 February 2013에 원본 문서에서 보존된 문서. 19 January 2013에 확인함. 
  3. “In-memory computing: what happens when the power goes out?”. 2017년 3월 10일에 확인함. 
  4. 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=160853
  5. The Bleak Future of NAND Flash Memory http://research.microsoft.com/apps/pubs/default.aspx?id=162804

외부 링크 편집