IMDG

IT 위키
IMDG; In-Memory Data Grid; 인메모리 데이터 그리드
여러 서버의 메모리를 묶어 하나의 분산 데이터 저장소로 쓰는 미들웨어

데이터를 디스크가 아니라 RAM 에 두고, 노드를 늘려 용량과 처리량을 함께 키운다.

  • 인메모리 — 디스크 I/O 가 없어 마이크로초 단위 응답
  • 분산·수평 확장 — 노드를 추가하면 용량과 성능이 선형에 가깝게 는다
  • 파티셔닝 — 키를 해시해 데이터를 노드에 나눠 담는다
  • 복제(Replication) — 같은 데이터를 다른 노드에도 둬 노드가 죽어도 잃지 않는다
  • 키-값 모델 — 분산 Map 인터페이스를 제공하는 것이 일반적이다
  • 병렬 처리 — 데이터가 있는 노드로 연산을 보낸다(Data Affinity). 데이터를 끌어오지 않는다
  • 노드들이 클러스터를 이루고 멤버십을 자동 관리한다
  • 각 키는 기본 파티션(Primary)과 백업 파티션(Backup)에 저장된다
  • 노드가 추가·제거되면 파티션을 자동 재분배(Rebalancing)한다
  • 영속성이 필요하면 디스크나 RDBMS 를 백엔드 스토어로 붙인다(Write-Through / Write-Behind)

인메모리 DB 와 비교

[편집 | 원본 편집]
구분 IMDG IMDB(인메모리 DBMS)
모델 객체·키-값 관계형 테이블, SQL
확장 수평 확장이 전제 주로 수직 확장
접근 API (Map, Cache) SQL
Hazelcast, Apache Ignite, Oracle Coherence, Infinispan, GemFire SAP HANA, Altibase, Redis(단일 관점)
  • 세션 클러스터링, 분산 캐시
  • 실시간 거래 처리 (금융, 통신 과금)
  • 대용량 트래픽의 데이터베이스 부하 분산
  • 실시간 스트림 처리의 상태 저장소

같이 보기

[편집 | 원본 편집]