코딩공부/백엔드개발 공부 5

[Hazelcast] Split-Brain Recovery란

본 글에서는 Hazelcast의 Split-Brain Recovery에 대해서 다룹니다. Split-Brain Recovery는 Cluster의 분할이 감지되었을때 Merge를 어떻게 수행할지 설정하는 과정입니다. Hazelcast 공식 문서에 서술된 내용 일부를 번역하여 Split-Brain Recovery가 무엇인지, Merge Policy에는 어떤것들이 있는지, 설정은 어떻게 하면 되는지를 본 글에서 다룹니다. 1. Split-Brain Recovery 개요 Hazelcast는 주기적으로 백그라운드 작업을 통해 Cluster의 Split을 탐지합니다. Split이 탐지되면 우선 Merge를 시작 할 쪽을 결정합니다. 이 결정은 Cluster의 크기로 결정되는데요, Member의 수가 작은 Cluet..

[Apache Ignite] Data Consistency를 위한 Data Replication, Write Sync 설정

본 글에서는 Apache Ignite에서 Data Consistency를 위한 두 가지 설정인 Data Replication, Write Sync 설정에 대해서 다룹니다. 1. Data Replication 관련 설정 Ignite은 Data Replication 관련하여 Partition, Replicated 두 가지 Mode를 제공합니다. 먼저 Partition의 경우 전체 데이터의 여러 Partition을 만들어 노드에 저장하는 모드입니다. 이때 복제본 개수는 설정할 수 있습니다. 다음으로 Replicated 모드는 모든 노드가 모든 복제본을 가지고 있는 모드입니다. CacheConfiguration cacheCfg = new CacheConfiguration("myCache"); cacheCfg.s..

[Hazelcast] Split-Brain Protection이란

본 글에서는 Hazelcast의 Split-Brain Protection에 개념에 대해서 다룹니다. 요약하면 클러스터에 참여하고 있는 구성원 수가 특정 수 아래로 떨어지면 transaction을 막는 기능입니다. 1. Split-Brain Protection 개념 공식 문서에서는 다음과 같이 소개하고 있습니다. " Hazelcast에서 제공하는 Split-Brain Protection는 클러스터 구성원 수가 지정된 구성원 수 아래로 떨어지는 경우 클러스터를 보호합니다. Split-Brain Protection 시나리오에 대응하는 방법은 데이터의 Consistency가 중요한지 애플리케이션의 Availability가 중요한지에 따라 달라집니다. 두 경우 모두 분할 브레인 시나리오는 네트워크 오류로 인해 발..

[Spring Boot] Spring Boot 내장 Tomcat의 thread pool 설정

본 글에서는 Spring Boot 내장 Tomcat thread pool 설정과 현재 톰캣 thread 개수를 간단하게 모니터링 하는 방법을 간단하게 설명합니다. tomcat thread pool 설정은 application.properties를 통해서 그리고 모니터링은 actuator를 통해 진행합니다. 1. 설정 - maven 설정 actuator와 starter-web dependency를 추가하였습니다. org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web - application.properties 아래는 tomcat thread pool과 모니터링 관련 설정입니다...

[Apache Ignite] Apache Ignite 기본 개념

본 글에서는 Apache Ignite에 대해서 기본 개념을 공식 홈페이지 소개글을 기반으로하여 설명합니다. 1. Apache Ignite의 기본 개념 Apache Ignite은 공식문서에 Apache Ignite을 다음과 같이 정의합니다. Aapche Ignite은 in-memory 속도의 높은 성능을 제공하는 분산 저장소이다. 여기서 "in-memory"는 데이터 접근에 아주 빠른 속도를 제공함을 의미하고 "분산"은 무제한의 확장성(scalability)와 따라서 무제한의 throughput을 제공함을 의미합니다. Apache Ignite는 In-Memory Cache, In-memory DB (IMDB), In-memory Data Grid (IMDG)로 사용될 수 있습니다. 여기서 IMDB는 메모리..