본문 바로가기
Ignite

[강의] Apache Ignite | Cache Modes (캐시모드 분석)

by 인프라보이 2020. 8. 7.

Apache Ignite / Gridgain에는 아래와 같이 3가지 캐시모드가 있으며 이들에 대한 각각의 장단점 분석이 필요하여 작성합니다. 

Local Mode :
  - 다른 노드에 캐시 데이터 배포 안됨. 
  - 제거 및 만료 정책 기능
  - 쿼리 실행 및 트랜잭션과 같은 분산 캐시의 모든 기능 
 => 데이터가 읽기 전용 또는 특정 만료 빈도로 주기적으로 새로 고쳐질 수 있는 시나리오에 적합

 

Replication Mode : 
  - 모든 노드에 데이터 사본을 보유함.
  - 쿼리 실행 위치에 관계없이 모든 노드에 데이터가 있어 바로 사용 가능
  - 노드가 사라지더라도 모든 노드에 데이터가 있으므로 안전
  - 복제 된 캐시에서 데이터가 변경되면 데이터 변경은 다른 모든 노드로 전송되어야 함. 
   = 더 많은 노드가 추가 될 수록 변경 시 더 많은 트래픽이 발생하여 궁극적으로 성능 및 확장성이 제한됨.
  - 노드 1,2,3이 각기 다른 메모리양을 가질 경우 최소 메모리노드가 가진 수만 적용이 가능함. 
=> 데이터 세트가 작고 업데이트가 자주 발생하지 않을 때 사용해야 함
=> 참조 테이블과 같이 많이 변경되지 않는 비교적 작은 데이터 세트가 있는 경우에만 권장

 

Partitioned Mode : 
  - 기본 캐시 모드이며 가장 확장성이 뛰어난 분산 캐시 모드
  - 클러스터 리소스를 최대한 활용가능
  - 데이터는 노드간에 균등하게 분할된 분산 인 메모리 저장소 생성
  - 클러스터의 단일 노드 장애 발생 시 데이터 손실 위험이 있음. (그래서 백업 노드 1~2개 구성 필요)
  => 대규모 데이터 세트로 작업하고 업데이트가 빈번 한 시나리오에 권장
  => 기본 노드 구성에 1~2개 이상의 백업 노드 구성 권장
  => Data Loss를 방지하기 위한 노드 종료를 지연하는 시스템 속성을 정의해야 함.

더보기

이러한 상황을 방지하기 위해 종료로 인해 파티션 손실이 발생하지 않을 때까지 노드 종료를 지연하는 시스템 속성 (IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN)을 정의 할 수 있습니다. 노드는 나머지 노드에서 모든 파티션을 사용할 수 있는지 확인한 다음 프로세스를 종료합니다.

즉, 속성이 설정되면 데이터가 재조정 될 때까지 기다리지 않고 한 번에 min (CacheConfiguration.backups) + 1 개 이상의 노드를 중지 할 수 없습니다. 이는 파티션 백업이있는 캐시가 하나 이상 있고 노드가 적절하게 중지 된 경우에만 적용됩니다.

To enable partition loss prevention, set the IGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN system property to true.

./ignite.sh -J-DIGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN=true

* 단 Patitioned Backup이 없을 경우, 위 기능을 사용해도 캐시를 잃게됩니다.

 

[참고] https://apacheignite.readme.io/v1.2/docs/cache-modes

 

Cache Modes

Setup different distribution models, backup copies, and near caches.

apacheignite.readme.io

 

728x90

'Ignite' 카테고리의 다른 글

[GridGain] Apache Ignite | 설치 및 구성 (3) 개발환경  (1) 2020.06.30

댓글