Posts
zz9z9
Cancel

ISR (In-Sync Replicas) 2편 — HW, Leader Epoch, 리더 교체

앞 글(ISR 1편)에서 ISR 이 무엇이고, follower 의 fetch 가 어떻게 sync 판정과 acks=all 계약으로 이어지는지까지 정리했다. 이 글은 그 위에서 커밋 경계(HW) 가 어떻게 정해지고, 리더가 바뀌는 순간 그 경계가 어떻게 무너지는가 를 다룬다. HW → 복제 라운드트립 → HW 의 한계(Leader Epoch) →...

ISR (In-Sync Replicas) 1편 — Replica, fetch, acks

분산 메시지 시스템에서 데이터 유실 방지 + 고가용성을 동시에 달성하려면 복제가 필수. “몇 개에 복제됐을 때 ack 할지”, “리더 죽으면 누가 새 리더?” 라는 두 결정을 Kafka 는 ISR (In-Sync Replicas) 이라는 동적 집합 으로 추상화. 정적 RF (replication factor) 와 별도로, 런타임에 실제 sync 된...

카프카 파티션 로그의 오프셋들 — LEO, HW, LSO

카프카를 쓰면서 만나는 “오프셋”은 하나가 아니다. 컨슈머가 커밋하는 오프셋이 있고, 브로커가 파티션 로그를 관리하려고 들고 있는 오프셋이 따로 있다. ISR·복제·리더 선출을 다루면서 나오는 오프셋은 전부 후자 쪽이고, 이걸 모르면 “팔로워가 리더의 LEO까지 따라잡았는지” 같은 문장에서 막힌다. 이 글은 파티션 로그 위에 존재하는 네 개의 오프셋...

카프카 프로듀서에서 컨슈머까지의 처리 흐름

이벤트 하나가 프로듀서에서 발행되어 컨슈머가 처리하고 오프셋을 커밋하기까지의 흐름을 훑는다. ISR·High Watermark·오프셋 관리 같은 개별 개념의 상세는 별도 글에서 다루고, 여기서는 각 단계에서 누가 무엇을 결정하는지에 초점을 맞춘다. 본문에 나오는 설정 기본값은 Apache Kafka 4.2 문서 기준이다. acks, enable.id...

카프카 개요

카프카란 ? 공식 사이트에서는 “Apache Kafka is an open-source distributed event streaming platform“라고 표현 아래는 카프카 에코시스템 구성도로, 외부 시스템을 제외한 모든 게 Apache Kafka 에코시스템에 포함된다. 단, Schema Registry와 일부 Connect 커넥...

부하 테스트, 어떻게 주고 어떻게 읽을 것인가

들어가며 “TPS 5,000 나왔습니다”라는 문장에는 정보가 거의 없다. 무엇을 고정하고 무엇을 밀어 넣었는지가 빠져 있기 때문이다. 같은 시스템, 같은 코드로 측정해도 아래 조건에 따라 결과가 자릿수 단위로 갈린다. 동시 사용자 수를 고정했는가, 초당 유입량을 고정했는가 부하를 한 번에 몰아넣었는가, 몇 분에 걸쳐 꾸준히 넣...

MySQL - LOCK 살펴보기 (2) — 락의 타입과 종류

1편에서 락이 무엇이고, 어떤 인덱스 구조 위에서 어떤 과정으로 잡히는지 봤다. 이번 편은 InnoDB가 제공하는 개별 락을 타입(how, S/X) 과 종류(what, 레코드·갭·넥스트키…) 두 축으로 하나씩 살펴본다. Lock 타입 (how) InnoDB는 기본적으로 행 수준(row-level) 잠금을 구현하며(테이블 수준 잠금도 ...

MySQL - LOCK 살펴보기 (1) — 락 기초와 잠금 과정

락을 잘 모르면 비효율적인 쿼리를 작성하거나, 데드락을 유발하거나, 불필요한 성능저하 등을 일으킬 수 있다고 생각한다. 또한 디버깅시 실마리를 못잡을 수도 있다. 이런 일을 최대한 겪지 않도록 MySQL에서는 어떤 락을 제공하는지 살펴보자. 이 글은 두 편으로 나눈다. (1편) 락이 무엇이고, 어떤 인덱스 구조 위에서, 어떤 과정으로 잡히는지...

HTTPS 요청이 HTTP로 리다이렉트 되는 현상 2

상황 약 3년 전 HTTPS 요청이 HTTP로 리다이렉트 되는 현상을 겪었었다. 이때는 해결방법 2 (RequestHeader set X-Forwarded-Proto “https”) ForwardedHeaderFilter 이전 서버 구성 (브라우저) ---- https ---- (Load Balancer 1 : DSR 방식) ---- ht...

WEB - TCP vs UDP, 그리고 네트워크 진단 도구들

네트워크 팀과 소통하다 보면 “그 서버로 telnet 한번 때려보세요”, “traceroute 결과 좀 주세요” 같은 얘기를 자주 듣는다. 그런데 정작 그 도구가 뭘 하는 도구인지, 왜 그걸 쓰라는 건지 모르면 결과를 봐도 해석을 못 한다. 특히 네트워크 팀에서 “ACL 열어드렸어요”라고 했는데 telnet이 안 되면, 이게 네트워크가 안 열린 ...