In Memory Computing 기술에 대해서 알아보고, 흔히 혼용해서 사용하는 In Memory DatabaseIn Memory Data Grid 에 대해서 정리해보자.


In Memory Computing


In Memory Computing 기술은 2010년대 초반에 가장 큰 화두가 되었다. 사실 In Memory Computing은 2000년 초반에 도입 되긴 하였지만, 비싼 메모리 가격과 전체 데이터를 메모리에 올려서 처리할 정도의 어플리케이션이 없었던 문제로 인해 큰 관심을 받지 못하였다.

tech

하지만, Hard Disk의 입출력 속도가 상대적으로 느리게 발전하게 되면서 전체 컴퓨터 성능 향상 속도의 지연 요인이 되면서, 전체 컴퓨팅 속도 지역을 막기 위한 기술이 다시 주목 받게 되었다. 또한, 메모리의 가격 떨어지면서 대부분의 서버에 대용량 메모리가 지원되었다. 마지막으로 64bit OS환경이 일반화가 되면서 Memory size 제약 사항이 소멸하여 데이터나 어플리케이션의 크기에 상관없이 메모리에서 처리가 가능해지면서 다시 관심을 받게 되었다. 더욱이, 2010년대 초반에 Big Data가 큰 화제가 되면서 방대한 양의 데이터를 빠르게 처리할 수 있는 기술들에 대해서 각광을 받았으며, 그 중 하나가 In Memory Computing 기술이다.


  • Hard Disk 입출력 속도가 느리게 발전
  • Memory 가격의 지속적인 하락
  • 64bit 컴퓨터의 보편화
  • 익스트림 트랜잭션 처리 요구 증가


64bit OS에서는 2의 64승개의 주소를 표현할 수 있고, 이론상 16 Exa byte의 데이터를 메모리에 적재할 수 있다.


In Memory Computing은 데이터를 하드디스크에 저장하고 관리하는 디스크 기반 컴퓨팅과는 다르게, 전체 데이터를 메모리에 적재하여 사용하는 것이다. 컴퓨팅 시스템의 공식 기록 시스템으로 하드디스크를 사용하는 것이 아니라, 메모리를 사용하는 것이고, 데이터를 메모리에 보관, 처리하여 하드디스크에 데이터를 안전하게 보관하기 위해 사용하는 구조다.


In Memory Computing 은 방대한 양의 데이터를 메모리에서 관리, 처리하여 데이터 처리 시간을 단축하고 데이터를 안전하게 보관한다.


In Memory Database


In Memory Database 는 메모리에 데이터를 저장하는 데이터베이스를 의미한다. 주 메모리를 이용해서 Main Memory DBMS(MMDB)라고도 한다. 휘발성 이라는 단점이 있어서, 임시 데이터 저장 용도로 주로 사용된다. 물론, DMBS의 속성 중 하나인 Durability 를 보장하기 위하여 메모리에 INSERT/UPDATE/DELETE 된 값들을 모두 디스크에 로그로 기록하여 메모리에 DBMS 구조를 재구축하기도 한다.

imdb

< IMDB 출처 : developedia >

In Memory Database를 이용하여 OLTP(Online Transaction Processing)OLAP(Online Analytical Processing) 을 향상 시킬 수 있다.
ERP, CRM, SCM 과 같은 대규모 데이터베이스의 성능을 크게 향상 시킬 수 있으며, 캐싱 계층을 제공하여 데이터웨어 하우스 및 분석 워크로드의 성능을 향상 시킬 수 있다.

  • 주요 제품
    • Amazon ElastiCache
    • Redis
    • Altibase
    • Kairos
    • SAP HANA
    • SunDB
    • TimesTen


In Memory Data Grid


In Memory Data Grid 는 각각의 메모리를 공유하여 클러스터에서 동작하는 모든 애플리케이션들과 함께 사용할 수 있도록 하는 컴퓨터 클러스터를 의미한다. 영구적으로 데이터 관리가 어려우며, 용량이 상대적으로 제한적이라는 In Memory Database 의 단점은 In Memory Data Grid 의 등장으로 극복되었고, 현재는 대용량 고성능 데이터 저장소로 발전하였다.

imdg

< IMDG 출처 : hazelcast >
  • 특징
    • 여러 서버에 분산하여 데이터를 저장
    • 각 서버는 active 모드
    • key-value
    • 서버 확장성 용이
    • Lock, Transaction, Sharding
    • DBMS의 부하를 분산하여 병목 구간 해결 가능
  • 주요 제품
    • Hazelcast
    • Terracotta Enterprise Suite
    • VMware Gemfire
    • Oracle Coherence
    • Gigaspaces XAP Elastic Caching Edition
    • IBM eXtreme Scale
    • JBoss Infinispan
    • GridGain Data Grid


In Memory Database vs In Memory Data Grid


IMDG와 IMDB는 기술적으로 상당히 차이가 있다.

  • In Memory Database는 컬럼 스토리지에 최적화 되어 있다.
  • In Memory Data Grid는 key-value 저장소를 JVM(Java Virtual Machine)에서 임베디드 오브젝트로 사용한다.
구분 In Memory Data Grid In Memory Database
Existing Application Changed Unchanged
Existing RDBMS Unchanged Changed or Replaced
Speed Yes Yes
Scalability Yes No