인메모리 데이터베이스
인메모리 데이터베이스(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는 다음의 매커니즘을 통해 지속성 지원을 추가한다:
- 스냅샷 파일 또는 체크포인트 이미지
- 트랜잭션 로그
- 비휘발성 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. | 상용 | 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) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다. |
같이 보기
[편집]각주
[편집]- ↑ “Definition: in-memory database”. WhatIs.com. 2013년 1월 19일에 확인함.
- ↑ Michael Vizard. “The Rise of In-Memory Databases”. Slashdot. 1 February 2013에 원본 문서에서 보존된 문서. 19 January 2013에 확인함.
- ↑ “In-memory computing: what happens when the power goes out?”. 2017년 3월 10일에 확인함.
- ↑ 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
- ↑ The Bleak Future of NAND Flash Memory http://research.microsoft.com/apps/pubs/default.aspx?id=162804