SpringMySQLTrouble Shooting
아웃박스로 카테고리 분류 이벤트 누락 문제 해결하기
비동기 카테고리 분류가 실패하면 재방문해도 처리되지 않는 원인을 확인하고, 아웃박스에 요청을 저장해 재처리하도록 변경했습니다.
Posts
비동기 카테고리 분류가 실패하면 재방문해도 처리되지 않는 원인을 확인하고, 아웃박스에 요청을 저장해 재처리하도록 변경했습니다.
대시보드 조회의 DB 집계와 애플리케이션 처리 비용을 비교하고, 일간 스냅샷으로 주간 조회 p95를 16,384ms에서 666ms로 줄였습니다.
요청 추적으로 MySQL 락 대기의 원인을 찾고, 웹사이트와 페이지 정보가 바뀌었을 때만 갱신해 API 응답 시간을 줄였습니다.
페이지를 닫을 때만 저장하던 방문 기록을 방문 시작 시점에 저장하도록 바꾸고, 하트비트로 활동 여부를 확인해 종료 시각의 오차를 개선했습니다.
Upsert가 성공한 뒤에도 웹사이트를 조회하지 못해 방문 기록 저장이 실패했습니다. REPEATABLE READ의 스냅샷과 값이 바뀌지 않는 UPDATE의 관계를 재현하고, 후속 조회를 잠금 읽기로 바꿔 해결했습니다.
INSERT에서 중복 검사와 삽입 시도에서 사용하는 락으로 인해 발생한 데드락을 로그와 InnoDB 소스 코드로 분석합니다.