엘라스틱서치 내부 동작과 궁금증 고찰
목차 데이터는 어떻게 저장되는가? 프라이머리와 레플리카는 어떻게 다른가? 샤드는 어떤 원리로 분배되는가? 도큐먼트는 어떤 샤드로 라우팅되는가? 샤드 설정은 어떻게 하는가? 클라이언트는 어떤 샤드에서 조회하는가? 복제는 언제 어떻게 일어나는가? 복제본은 어떻게 프라이머리로 승격하는가? 운영 시 참고할 내용 참고 자...
목차 데이터는 어떻게 저장되는가? 프라이머리와 레플리카는 어떻게 다른가? 샤드는 어떤 원리로 분배되는가? 도큐먼트는 어떤 샤드로 라우팅되는가? 샤드 설정은 어떻게 하는가? 클라이언트는 어떤 샤드에서 조회하는가? 복제는 언제 어떻게 일어나는가? 복제본은 어떻게 프라이머리로 승격하는가? 운영 시 참고할 내용 참고 자...
목차 5.1 트랜잭션 트랜잭션 소개 5.2 MySQL 엔진의 잠금 & 5.3 InnoDB 스토리지 엔진 잠금 InnoDB 잠금 테이블 락 네임드 락 메타데이터 락 5.4 MySQL의 격리 수준 격리 수준 5.2 MySQL 엔진의 잠금 MySQL 엔진 레벨에서는 모든 스토리지 엔진에 공통적으로 적...
목차 4.1 아키텍처 MySQL Server Architecture 메모리 사용 구조 플러그인 스토리지 엔진 모델 컴포넌트 쿼리 실행 구조 복제 스레드 풀 4.2 InnoDB 스토리지 엔진 아키텍처 InnoDB 소개 클러스터링 인덱스 외래 키 지원 MVCC 버퍼 풀 Double Write Bu...
원격 측정의 목표 시스템의 정보를 전달하여 장애가 발생 했을 때의 근본적인 원인을 분석할 수 있게하기 위함이다. 또한 장애가 해소된 후 기록된 추적/메트릭/로그 정보를 소급하면 정확히 어떤 문제가 발생한 것인지 알아낼 수 있다. 자동 계측은 이러한 사용성을 제공하기 위한 편의성을 확보하고자 코드를 계측하는 행위를 자동화한 것이다. 자동 계측...
실습 환경 아래 이미지와 같은 구조를 마련하기 위해 도커 컴포즈를 사용한다. 서비스 포트 Jagger (Trace) 16686 Prometheus (Metric) 9090 Loki (Log)...
단일 서버 가장 단순하게 사용자의 요청을 처리할 수 있는 구조이다. 사용자: 웹 브라우저, 모바앨 앱 서버: 웹 서버 위 상황에서 요청 흐름은 다음과 같다. 사용자는 DNS에 질의하여 서버의 IP를 얻는다. 해당 IP 주소로 HTTP 요청이 전달된다. 요청 받은 웹 서버는 HTML 혹은 JSON과 같은 응답을 전달한다. ...
개요 관찰 가능성이라는 용어에는 Trace, Metric, Log를 구성하는 도구의 원격측정(telemtry) 데이터를 생성/수집함으로써 소프트웨어 작동의 가시성을 높이는 작업이 포함된다. 수신된 요청 수의 카운트 유지하기 이벤트 발생 시 로그 추가하기 서버의 현재 메모리 사용량 기록하기 Client → Backend 서비스까지의 ...
참고자료 KIP-480 StickyPartitioner KIP-429 살짝 관련성은 떨어지지만 Consumer Rebalance 관련 배경 카프카는 컨슈머 그룹내의 컨슈머들에 파티션을 배정하는 할당 전략이 있다. 컨슈머 그룹이 어떤 토픽을 바라보고 있을 때 토픽 내의 파티션들을 각 컨슈머들에게 어떻게 나눠줄지에 대한 알고리즘이다. 이...
참고 자료 Kafka Producer Internal 실전 카프카 개발부터 운영까지 - 프로듀서 내부 동작 원리 토리맘의 한글라이즈 - Producer Config Kafka Consumer Internal 실전 카프카 개발부터 운영까지 - 컨슈머 내부 동작 원리 ...
강의평가 작성 시 비관적 락을 활용한 동시성 문제를 해결 문제 상황 A라는 강의 레코드에 X, Y 가 각각 값을 올리고 내리는 요청이 동시에 발생했다. 레코드의 값을 증가시키기위 위해 SELECT 하는 구문과, 값을 감소시키기 위해 SELECT 하는 구문이 동시에 발생했고 커밋되는 시점이 달라 값을 증가시킨 요청이 커밋되었음에도 값을 감소시키는...