인메모리 데이터베이스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
인메모리 데이터베이스(IMDB)는 데이터를 휘발성 메모리에 저장하여 디스크 기반 데이터베이스보다 빠른 성능을 제공하는 데이터베이스 시스템이다. ACID 속성 중 지속성을 지원하지 않지만, 원자성, 일관성, 독립성은 지원하며, 스냅샷, 트랜잭션 로그, 비휘발성 메모리, 고가용성, NVDIMM 등의 기술을 통해 데이터 손실을 방지한다. 하이브리드 IMDB는 메모리의 빠른 성능과 디스크의 저장 용량 및 비용 효율성을 결합하여 자주 사용되는 데이터는 메모리에, 덜 사용되는 데이터는 디스크에 저장한다. 주요 IMDB 제품으로는 Oracle TimesTen, SAP HANA 등이 있으며, H2, Hazelcast, Redis와 같은 오픈 소스 제품도 존재한다.
인메모리 데이터베이스(IMDB)는 데이터를 휘발성 메모리에 저장하므로 전원 공급이 중단되면 데이터가 손실될 수 있다. 이는 ACID(원자성, 일관성, 독립성, 지속성) 속성 중 지속성(Durability)을 지원하지 않음을 의미한다. 그러나 대부분의 IMDB는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation)은 지원한다.[1]
메모리에 데이터를 저장하면 성능은 좋지만 비용이 많이 든다. 이러한 비용 문제를 해결하기 위해 자주 사용하는 데이터는 메모리에 저장하고, 덜 사용하는 데이터는 디스크에 저장하는 하이브리드 방식이 사용된다. 이 방식은 데이터 사용 빈도에 따라 데이터 저장 위치를 동적으로 변경하여 성능을 최적화한다.[10] 이는 가장 최근에 접근한 데이터를 저장하는 캐싱과는 다르며, 가장 자주 접근하는 데이터를 메모리에 저장하는 방식이다.
2. ACID 지원
IMDB는 지속성 보완을 위해 다음과 같은 기술을 사용한다:[1]3. 하이브리드 IMDB
클라우드 컴퓨팅 업계에서는 자주 사용하는 데이터를 "핫 데이터(Hot Data)", 덜 사용하는 데이터를 "콜드 데이터(Cold Data)"라고 부른다.[11] 핫 데이터는 빠른 검색과 수정이 가능한 방식으로 저장해야 하며, 콜드 데이터는 비용 효율적인 방식으로 저장할 수 있다. 하지만 "핫"과 "콜드"에 대한 명확한 정의는 없다.[11]
하이브리드 접근 방식은 다음과 같은 장점을 가진다.
소비자 가전 분야에서, 특히 셋톱 박스와 같이 영구 저장소가 있는 장치와 메모리에 의존하는 장치가 혼합된 제품군에서 하이브리드 데이터베이스 시스템을 사용하면 제조 효율성을 높일 수 있다. 제조업체는 디스크 유무에 따라 별도의 데이터베이스 시스템을 사용하는 대신 하이브리드 데이터베이스 시스템을 채택하여 비용을 절감하고 코드 사용자 지정을 줄일 수 있다.
1995년, 단일 데이터베이스에서 메모리 내 테이블과 온디스크 테이블을 모두 지원하는 최초의 데이터베이스 엔진인 WebDNA가 출시되었다. 2003년에는 인 메모리 및 온 디스크 테이블을 단일 데이터베이스에서 지원하는 최초의 데이터베이스 엔진이 출시되었다.[16]
4. 스토리지 메모리
메인 메모리 데이터베이스는 데이터를 휘발성 메모리 장치에 저장한다. 휘발성 메모리 장치는 전원이 손실되거나 재설정되면 저장된 모든 정보를 잃는 특성이 있다. 따라서 인메모리 데이터베이스(IMDB)는 ACID(원자성, 일관성, 독립성, 지속성) 속성 중 "지속성"을 지원하지 않는 경우가 있다. 그러나 휘발성 메모리 기반 IMDB라도 원자성, 일관성, 고립성과 같은 다른 ACID 속성은 지원할 수 있으며, 실제로도 많은 경우 지원하고 있다.[12]
많은 IMDB는 다음과 같은 메커니즘을 통해 지속성 문제를 해결하고 있다.[12]
- 스냅샷 파일 또는 검사점 이미지: 스냅샷 파일이나 검사점 이미지를 활용하여 특정 시점의 데이터베이스 상태를 기록한다. 시스템은 주기적으로 또는 IMDB가 제어된 종료를 수행할 때 스냅샷을 생성한다. 이는 시스템 충돌 시에도 데이터베이스 전체를 잃지 않도록 하는 부분적인 지속성을 제공하지만, '최근' 변경 사항은 손실될 수 있다. 완전한 지속성을 위해서는 아래의 다른 방법 중 하나를 함께 사용해야 한다.[12]
- 트랜잭션 로그: 트랜잭션 로그를 통해 데이터베이스에 대한 변경 사항을 저널 파일에 기록하여 메모리 내 데이터베이스의 자동 복구를 지원한다.[12]
- 비휘발성 DIMM (NVDIMM): NVDIMM은 DRAM 인터페이스를 갖춘 메모리 모듈로, 비휘발성 데이터 보안을 위해 NAND 플래시와 결합되는 경우가 많다. 초기 NVDIMM 솔루션은 백업 전원 공급 장치로 배터리 대신 슈퍼 커패시터를 사용했다. 이 저장소를 사용하면 IMDB는 재부팅 시에도 안전하게 상태를 다시 시작할 수 있다.[12]
- 비휘발성 랜덤 액세스 메모리 (NVRAM): NVRAM은 배터리 전원(배터리 RAM)으로 백업된 정적 RAM 또는 EEPROM 형태로 제공된다. 이 저장소를 사용하면 재부팅하는 IMDB 시스템이 마지막 일관성 상태에서 데이터 저장소를 복구할 수 있다.[12]
- 데이터베이스 복제: 데이터베이스 복제에 의존하는 고가용성 구현을 통해 기본 데이터베이스에 오류가 발생하면 동일한 대기 데이터베이스로 자동 장애 조치를 수행한다. 전체 시스템 충돌 시 데이터 손실을 방지하기 위해 IMDB 복제는 위에 나열된 다른 메커니즘과 함께 사용되는 것이 일반적이다.[12]
일부 IMDB는 데이터베이스 스키마에서 데이터베이스의 선택된 영역에 대해 서로 다른 지속성 요구 사항을 지정할 수 있도록 한다. 예를 들어, 쉽게 재생성 가능하거나 시스템 종료 후 의미가 없는 빠르게 변경되는 데이터는 지속성을 위해 저널링할 필요가 없을 수 있다 (고가용성을 위해 복제는 필요). 반면, 구성 정보와 같이 보존이 필요한 데이터는 별도로 플래그를 지정하여 관리할 수 있다.[12]
플래시 메모리 칩을 사용하여 디스크 배열이 아닌 주소 지정 가능한 대량의 비휘발성 메모리를 서버에 구성하는 방식도 있다. 이러한 형태의 메모리 데이터베이스는 매우 빠른 접근 속도와 함께 재부팅 및 전원 손실 시에도 데이터를 유지하는 기능을 제공한다.[12]
5. 주요 IMDB 제품
인메모리 데이터베이스(IMDB)는 여러 회사에서 상용 제품과 오픈 소스 제품을 개발, 판매하고 있다.
최근 IMDB는 주요 데이터베이스 벤더들의 주목을 받고 있다. 1996년 휴렛 팩커드에서 분사하여 Marie-Anne Neimat가 설립한 TimesTen은 2005년 오라클에 인수되었다. 오라클은 이 제품을 독립된 데이터베이스와 오라클 데이터베이스의 인메모리 데이터베이스 캐시로 출시하고 있다. IBM은 2008년에 SolidDB를 인수했으며, 마이크로소프트는 2009년에 IMDB를 출시할 것이라는 예상이 있었다.[17]
주요 데이터베이스 벤더 외에는 [http://www.science-arts.com/ 시앙스 아르](Science Arts)에서 판매하는 ALTIBASE가 금융기관 등에서 도입되고 있다. 2010년에는 유럽 최대 소프트웨어 기업이자 ERP 최대 기업인 SAP가 SAP HANA를 출시하면서 기업들의 IMDB 도입이 본격화되었고, IMDB 시장이 급속도로 확대되었다.
- '''SAP HANA''': 디스크 대신 메모리에 데이터를 저장하는 열 지향적 IMDB이다. 온라인 분석 처리 (OLAP)와 온라인 트랜잭션 처리 (OLTP)를 모두 지원한다.[13]
- '''오라클 타임스텐''': 메모리 최적화 관계형 데이터베이스로, 마이크로초 응답과 매우 높은 처리량 성능을 제공하는 IMDB이다.[14]
자세한 내용은 각 하위 섹션을 참고하면 된다.
5. 1. 상용 제품
제품명 | 개발사 | 라이선스 | 비고 |
---|---|---|---|
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 (무기한) 제공] |
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 | 상용 | 디스크에 데이터를 저장하는 대신 메모리에 데이터를 저장하는 열 지향적 인메모리 데이터베이스[13] |
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 | [http://www.nextwith.com Nextwith] | 상용 | NoSQL, 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) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다. |
5. 2. 오픈 소스 제품
다음은 오픈 소스 라이선스로 제공되는 인메모리 데이터베이스 제품들이다.제품명 | 개발사 | 라이선스 | 비고 |
---|---|---|---|
H2 (DBMS) | 토마스 뮐러 | 모질라 퍼블릭 라이선스 또는 이클립스 퍼블릭 라이선스 | 자바용 |
Hazelcast | Hazelcast Team | 아파치 라이선스 2.0 | 자바용, NoSQL, 분산형 |
Ehcache | Terracotta, Inc. (Software AG) | 아파치 라이선스 | 자바용, 분산형 |
VoltDB | VoltDB Inc. | GPL / 상용 | 관계형; H-Store 디자인 적용 |
UnQLite Embedded Database | Symisc Systems | BSD, SPL | |
[https://github.com/naver/arcus ARCUS (아커스)] | [https://www.jam2in.com/ 잼투인] | 아파치 라이선스 2.0 | ARCUS는 memcached 기반의 인메모리 elastic 캐시 클러스터다. ARCUS는 컬렉션 구조 (List, Set, Map, B+tree) 데이터 유형을 지원하며 운영 중 노드를 추가 및 제거할 수 있다. |
Apache Derby | 아파치 라이선스 2.0 | ||
BlackRay | GNU 일반 공중 사용 허가서 (GPLv2) 및 BSD 라이선스 | ||
CSQL | GNU 일반 공중 사용 허가서 또는 독점 | ||
H2 | Mozilla 공중 사용 허가서 또는 Eclipse 공중 사용 허가서 | 메모리 전용 모드 지원 | |
HSQLDB | BSD 라이선스 | 메모리 전용 모드 지원 | |
membase | 아파치 라이선스 | NoSQL, 하이브리드 | |
MonetDB | MonetDB 라이선스 | ||
MySQL | GNU 일반 공중 사용 허가서 또는 독점 | 메인 메모리 저장 엔진을 사용하는 클러스터 서버를 가짐 | |
오라클 버클리 DB | Sleepycat 라이선스 | 메모리에서만 실행하도록 구성 가능 | |
Redis | BSD | NoSQL |
참조
[1]
웹사이트
Definition: in-memory database
http://whatis.techta[...]
WhatIs.com
2013-01-19
[2]
웹사이트
The Rise of In-Memory Databases
https://web.archive.[...]
Slashdot
2013-01-19
[3]
뉴스
TeleCommunication Systems Signs up as a Reseller of TimesTen; Mobile Operators and Carriers Gain Real-Time Platform for Location-Based Services
http://findarticles.[...]
2002-06-24
[4]
웹사이트
Falling RAM Prices Drive In-Memory Database Surge
https://web.archive.[...]
SAP
2013-01-19
[5]
뉴스
Rise of In-Memory Databases Impacts Wide Range of Jobs
http://insights.dice[...]
2012-07-13
[6]
웹사이트
In-memory computing: what happens when the power goes out?
http://www.nextgov.c[...]
2015-02-18
[7]
문서
Whole-system Persistence with Non-volatile Memories
http://research.micr[...]
[8]
문서
The Bleak Future of NAND Flash Memory
http://research.micr[...]
[9]
웹사이트
AGIGARAM NVDIMM saves data through system failure
https://www.embedded[...]
[10]
웹사이트
Teradata enters the in-memory fray, intelligently ZDNet
https://www.zdnet.co[...]
2017-07-28
[11]
웹사이트
What's the Diff: Hot and Cold Data Storage
https://www.backblaz[...]
2017-07-28
[12]
웹사이트
Truly these are the GOLDEN YEARS of Storage
https://www.theregis[...]
[13]
웹사이트
What is SAP HANA?
https://www.sap.com/[...]
2024-08-01
[14]
웹사이트
Oracle TimesTen In-Memory Database
https://www.oracle.c[...]
[15]
뉴스
TeleCommunication Systems Signs up as a Reseller of TimesTen; Mobile Operators and Carriers Gain Real-Time Platform for Location-Based Services
http://findarticles.[...]
2002-06-24
[16]
보도자료
Solid Announces General Availability of BoostEngine 4.0, the First On-Disk/In-Memory Hybrid Database Manager
http://www.thefreeli[...]
PR Newswire
2003-04-28
[17]
웹사이트
http://www.intellige[...]
[18]
웹사이트
http://www.sybase.co[...]
[19]
웹인용
Definition: in-memory database
http://whatis.techta[...]
WhatIs.com
2013-01-19
[20]
웹인용
The Rise of In-Memory Databases
https://web.archive.[...]
Slashdot
2013-01-19
[21]
웹인용
In-memory computing: what happens when the power goes out?
http://www.nextgov.c[...]
2017-03-10
[22]
문서
Whole-system Persistence with Non-volatile Memories
http://research.micr[...]
[23]
문서
The Bleak Future of NAND Flash Memory
http://research.micr[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com