AI Briefing

Aurora MySQL, 인덱스 DDL 시 Reader 버퍼풀 무효화 결함 발견

·2026.10.06 19:41

핵심 내용

Aurora MySQL 3.08.0~3.14 미만 버전에서 인덱스 DDL이 Reader 버퍼풀을 비우는 결함이 확인됐다.

1 / 2

자세히 보기

당근 DB팀이 Aurora MySQL 운영 중 미사용 인덱스 정리 과정에서 엔진 결함을 발견했다. Writer는 정상 동작하지만, Reader 노드에서 ALTER INDEX INVISIBLE 등 인덱스 관련 DDL을 실행하면 버퍼풀 페이지가 'stale' 상태로 무효화되어 CPU와 ReadIOPS가 급증하는 현상이 발생했다.

결함 원인 및 동작 분석

Aurora는 스토리지 분리형 아키텍처로, Reader는 자체 버퍼풀을 통해 redo 로그로 페이지를 갱신한다. 일반적으로 tablespace 변경이 없는 metadata-only DDL은 캐시를 유지해야 하지만, 해당 결함에서는 CREATE INDEX, DROP INDEX, RENAME INDEX, ALTER INDEX INVISIBLE 등 tablespace가 변하지 않는 인덱스 DDL에서도 Reader의 해당 테이블 전체 페이지(PRIMARY 포함)가 stale로 표시된다.

이로 인해 페이지 수는 그대로이나 유효하지 않음 처리되어, 이후 읽기 요청 시 스토리지에서 데이터를 재조회하게 되며 성능 저하가 발생한다. Writer는 stale 상태가 0으로 유지되므로 Reader 전용 문제다.

영향 범위 및 대응 방안

AWS 기술 지원 조사 결과, 이는 Aurora MySQL 3.08.0에서 도입된 기능 개선 과정에서 의도치 않게 광범위한 무효화가 적용된 엔진 결함으로 확인됐다. 수정 계획은 Aurora MySQL 3.14 릴리즈에 포함될 예정이며, 3.14 이전 버전으로의 백포트는 현재 계획되지 않았다.

당근 DB팀은 LTS 버전 3.10.x를 사용 중이므로 3.14 업그레이드까지 대기해야 한다. 그 전까지는 인덱스 DDL을 'Reader 버퍼풀을 비우는 작업'으로 간주하여 트래픽이 적은 시간대에 실행하고, 여러 변경 사항을 하나의 ALTER 문으로 묶어 무효화 횟수를 최소화하는 운영 원칙을 적용하고 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.