Doha's Dev Log

카프카 톺아보기 (2) — Rebalancing의 원리와 장애 복구 전략

들어가며 1편에서 Consumer Group·Offset·파티션의 실제 동작을 다뤘다. 이번 글에서는 컨슈머가 그룹에서 쫓겨나는 원인, 리밸런싱 프로토콜의 단계별 동작, 그리고 장애를 최소화하는 개선 전략을 정리한다. 리밸런싱이란? Consumer Group 내의 파티션-컨슈머 매핑을 재조정하는 과정이다. 다음 상황에서 발생한다: 컨슈...

MySQL 대량 DML이 위험한 이유 — Binary Log와 Undo Log 관점

들어가며 이전 글에서 상품 서비스가 RC를 채택한 이유를 다뤘다. 대량 재고를 청크 단위로 나눠서 병렬 처리한다는 이야기도 했다. 그런데 왜 굳이 청크로 나눠야 할까? 한 번에 100만 건을 UPDATE하면 안 되는 걸까? 이 질문에 답하려면 MySQL이 데이터를 변경할 때 내부에서 어떤 일이 일어나는지 알아야 한다. 핵심은 두 가지 로그다. ...