wal 2

CDC와 이벤트

학습 목표Dual write가 DB COMMIT과 메시지 publish 불일치를 만드는 이유를 설명할 수 있다.Transactional outbox로 로컬 TX 안에 비즈니스 row·이벤트 row를 함께 COMMIT하는 이유를 설명할 수 있다.CDC가 WAL/binlog logical 스트림에서 row change를 캡처함을 설명할 수 있다.Debezium connector·envelope·slot 개념을 개요 수준에서 설명할 수 있다.At-least-once 전달에서 순서·중복·멱등 처리를 설계할 수 있다.문제 상황INSERT orders COMMIT 후 Kafka publish timeout — DB 있음 · 재고 미반영publish 성공 → DB ROLLBACK — 유령 이벤트캐시 DEL 앱 코드 ..

로깅과 복구

학습 목표WAL(Write-Ahead Logging) 규칙과 지속성(D)·원자성(A) 과의 관계를 설명할 수 있다.redo log와 undo log의 역할 차이를 구분할 수 있다.checkpoint가 복구 시간을 줄이는 이유를 설명할 수 있다.crash recovery의 분석·redo·undo 단계를 순서대로 설명할 수 있다.문제 상황COMMIT 직후 전원 장애 — 재기동해도 반영돼 있다버퍼만 쓰고 디스크 페이지는 아직 dirty였을 수 있음UPDATE 도중 크래시 — 재기동 후 반쪽 반영이 없다원자성 — WAL·undo로 롤백PostgreSQL pg_wal·MySQL ib_logfile 디스크가 계속 찬다WAL 누적 — checkpoint·아카이브 정책checkpoint 많이 돌리면 복구는 빨라지는데 ..