{{위키데이터 속성 추적}}
'''인메모리 데이터베이스'''(In-memory Database, IMDB), '''메인 메모리 데이터베이스'''(main memory database system, MMDB), '''메모리 상주 데이터베이스'''(memory resident database)는 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 [[데이터베이스 관리 시스템]]이다.

인메모리 데이터베이스는 디스크에 최적화된 데이터베이스보다 더 빠른데 그 까닭은 디스크 접근이 메모리 접근보다 느리기 때문이며, 이 데이터베이스는 내부 최적화 알고리즘이 더 단순하며 더 적은 CPU 명령을 실행한다. 메모리의 데이터에 접근하면 데이터를 조회할 때 검색 시간이 줄어들며 디스크보다 더 빠르고 더 예측 가능성 성능을 제공한다.<ref name="Definition: in-memory database">{{웹 인용|title=Definition: in-memory database|url=http://whatis.techtarget.com/definition/in-memory-database|publisher=WhatIs.com|accessdate=19 January 2013}}</ref><ref name="The Rise of In-Memory Databases">{{웹 인용|title=The Rise of In-Memory Databases|url=http://slashdot.org/topic/datacenter/the-rise-of-in-memory-databases/|publisher=Slashdot|accessdate=19 January 2013|author=Michael Vizard|url-status=dead|archiveurl=https://web.archive.org/web/20130201211812/http://slashdot.org/topic/datacenter/the-rise-of-in-memory-databases/|archivedate=1 February 2013|df=}}</ref>

인메모리 데이터 스토리지의 잠재적인 기술적 문제는 RAM의 휘발성이다. 구체적으로 말해 전원이 소실될 경우나 고의적인 상황 등에서 [[휘발성 메모리|휘발성 RAM]] 안에 저장된 데이터는 손실된다.<ref name="powerloss">{{웹 인용
	| title=In-memory computing: what happens when the power goes out?
	| url=http://www.nextgov.com/technology-news/tech-insider/2015/02/-memory-persistence-secrets-mission-critical-big-data/105249/
	| accessdate=March 10, 2017 }}</ref> [[비휘발성 RAM]] 기술의 도입으로 인메모리 데이터베이스는 전력 손실에도 완전한 속도로 데이터를 유지할 수 있게 되었다.<ref>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</ref><ref>The Bleak Future of NAND Flash Memory http://research.microsoft.com/apps/pubs/default.aspx?id=162804</ref>

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

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

== 주요 제품 ==
{| class="wikitable sortable"
|+
|-
!제품명
!개발사
!라이선스
!비고
|-
|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)
|-
|[https://www.singlestore.com/ SingleStore] (구.MemSQL)
|SingleStore, Inc.
|상용
[https://www.singlestore.com/software-standard/ 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 DBMS|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
|[http://www.nextwith.com Nextwith]
|상용
|NoSQL, [[:en:Graph_theory|Graph]], 분산형(Scale Out), 비휘발성
|-
|[[마이크로소프트 SQL 서버]]
|[[마이크로소프트]]
|상용
|
|-
|[[UnQLite]] Embedded Database
|Symisc Systems
|[[BSD]], SPL
|
|-
|Goldilocks
|선재소프트
|상용
|SQL, 관계형, Cluster. Scale-out 지원. TPC-C ,TPC-H 인증
|-
|[https://github.com/naver/arcus ARCUS (아커스)]
|[https://www.jam2in.com/ 잼투인]
|오픈소스 (아파치 라이선스 2.0)
|ARCUS는 memcached 기반의 인메모리 elastic 캐시 클러스터다. ARCUS는 컬렉션 구조 (List, Set, Map, B+tree) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다.
|}

== 같이 보기 ==
* [[분산 파일 시스템]]
* [[임베디드 데이터베이스]]
* [[NoSQL]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* [http://www.benstopford.com/2011/08/14/distributed-storage-phase-change-memory-and-the-rebirth-of-the-in-memory-database/ The Rebirth of the In-Memory Database]
* [http://sites.computer.org/debull/A13june/issue1.htm Special Issue on Main-Memory Database Systems, IEEE Data Engineering Bulletin]

{{전거 통제}}

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