IL-0380 InfluxData · 2026-02-09databaseaws
AWS us-east-1 의 InfluxDB Cloud 클러스터에서 압축 중에 일부 데이터가 빠져 쿼리에 나오지 않았다
InfluxDB Cloud 2 의 데이터는 64개 파티션으로 나뉘고, 압축하지 않은 데이터는 쿼리가 느리므로 파티션마다 정기적으로 압축한다. 1월에 InfluxData 는 prod101-us-east-1 의 파티션 47 이 더는 제대로 압축되지 않는다는 것을 찾았다. 일부만 압축된 파일이 쌓여 성능에 영향을 주기 시작했다. 엔지니어링 팀은 org id 접두사를 기준으로 파티션 데이터를 나눠 여러 압축 작업을 동시에 돌리는 최적화를 만들었다. 이 변경은 표준 릴리스 절차대로 엔지니어 두 명이 더 리뷰했다. 그러나 이 최적화에는 버그가 있었다. 어떤 조건에서는 압축기가 원본 TSM 데이터 파일 일부를 읽다가 실패했는데, 압축기는 이 실패를 제대로 처리하지 않고 그 TSM 파일을 조용히 건너뛰었다. 그리고 나머지 데이터만 압축한 뒤 원본 파일을 압축한 파일로 바꿨다. 이 문제는 코드 리뷰와 내부 테스트에서 걸리지 않았고, 2월 9일 변경을 prod101-us-east-1 에 적용한 뒤에야 드러났다.
2월 9일 첫 티켓이 들어와 조사를 시작했고, 2월 10일 티켓이 더 들어와 근본 원인을 찾았다. 팀은 같은 날 압축 변경을 롤백하고 복원을 시작했다. Cloud 2 는 백업을 두 가지 둔다. 클러스터마다 주간 TSM 스냅숏을 찍고, 들어오는 쓰기는 모두 Kafka 로그에 스냅숏으로 기록한다. 두 백업이 함께 클러스터에 쓴 데이터의 완전한 기록이 되므로 데이터를 영영 잃지는 않았다. 고객이 실시간 작업에 클러스터를 쓰므로 클러스터를 켠 채로 조금씩 복원했다. 고객 운영에 가장 중요한 최근 데이터를 Kafka 로그에서 먼저 되살린 뒤 과거 데이터를 TSM 스냅숏에서 복원했다. 2월 12일 일부 시험 고객의 최근 데이터 복원을 마치고 모든 고객으로 넓혔고, 2월 17일 과거 데이터 복원을 효율적으로 고쳤다. 2월 23일 모든 고객의 2월 2일부터 9일까지 데이터 복원을 마치고 2월 2일 이전 데이터 복원을 다시 시작했다. 3월 8일 유료 고객 전부의 과거 데이터 복원을 마쳤고, 3월 10일 장애를 해결로 닫았다. 복원하는 동안 일부 고객은 TTBR 이 높아지고 쿼리가 느려졌다.
- 심각도
- –
- 영향 범위
- Data in partitions compacted while the faulty code ran on prod101-us-east-1 was missing from queries until restored from backup; elevated TTBR and slower queries during the restore; no permanent data loss
- 영향 사용자
- –
- 지역
- AWS us-east-1
- 감지까지
- –
- 복구까지
- –
증상
2월 9일 데이터 가용성 문제일 수 있다는 첫 티켓이 들어왔다. 2월 10일 상태 페이지는 쿼리 문제를 조사 중이며 최근 데이터 일부가 쿼리 응답에 나오지 않는다고 알렸다.
2월 10일에 티켓이 더 들어왔다. 영향은 버그가 있는 코드가 돌던 동안 압축된 파티션에만 있었고, 클러스터의 모든 데이터가 빠진 것은 아니었다.
백업에서 복원하는 몇 주 동안 일부 고객은 쿼리가 느려졌고, 데이터가 조회 가능해지기까지 걸리는 시간인 TTBR 이 높아졌다.
원인
원인 배포 결함
- 촉발
- 2월 9일 아주 큰 파티션의 압축을 개선하려는 코드 변경을 prod101-us-east-1 에 배포했다.
감지
2월 9일 데이터 가용성 문제일 수 있다는 첫 티켓이 들어와 조사를 시작했다. 2월 10일 티켓이 더 들어온 뒤 근본 원인을 찾았다.
조치
- 2월 10일 압축 변경을 롤백해 더 번지지 않게 했다.
- 최근 데이터를 클러스터의 쓰기를 모두 기록한 Kafka 로그에서 먼저 되살렸다.
- 2월 17일 과거 데이터를 더 효율적으로 복원하도록 복원 절차를 고쳤다.
- 과거 데이터를 TSM 스냅숏에서 복원했다.
- 실시간 쓰기와 쿼리를 방해하지 않도록 클러스터를 켠 채로 조금씩 복원했다.
후속 조치
- 압축기처럼 중요한 스토리지 구성 요소를 바꾸는 변경의 테스트 범위를 넓히고, 운영 규모의 작업량을 더 잘 반영하는 테스트 시나리오를 더한다.
- 압축 과정의 안전장치를 강화해 실패를 찾아내고 안전하게 처리하게 한다.
- 대규모 복원 중에 TTBR 이 높아지거나 쿼리가 느려질 가능성을 줄이도록 복원 작업 흐름과 운영 절차를 검토한다.
- 클러스터 전체 복원이 빨라지도록 백업과 복원 전략을 다시 본다.
교훈
–
출처
- https://status.influxdata.com/incidents/nw5fkj0r3gg1 · official-status · 보관본
관련 사례
같은 원인 · 공통 데이터베이스 백업과 스냅숏, 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0136Sweden Central 리전에서 내부 서비스 배포가 캐시를 비워 메타데이터 백엔드에 평소 20배의 트래픽이 몰렸고, 데이터베이스 연결에 기대는 헬스 체크가 인스턴스를 계속 재시작시켜 Azure OpenAI 요청이 6시간 가까이 실패했다Microsoft Azure · 2026같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0510MIT Learn 운영 RDS PostgreSQL 의 저장 공간이 임시 파일로 가득 차 learn.mit.edu 가 세 시간 동안 503 과 504 를 냈다MIT Open Learning · 2026같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0547Buildkite 의 Agent API, REST API, GraphQL 이 annotations 테이블 쿼리 타임아웃으로 4시간 가까이 저하됐다Buildkite · 2025같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0324External Storage 데이터베이스 클러스터에 과부하가 걸려 mw-api-int, mw-parsoid, mw-jobrunner 의 지연과 데이터베이스 오류가 늘었다Wikimedia Foundation · 2025같은 원인 · 공통 데이터베이스
IL-0307Supabase us-east-1 에서 Supavisor 2.0 업그레이드 뒤 Postgres 연결 풀러가 테넌트 약 80% 의 연결을 끊었다Supabase · 2025같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0523TANF-app 의 운영 배포가 PostgreSQL 마이그레이션 실패로 두 달 동안 막힘U.S. Department of Health and Human Services · 2023같은 원인 · 공통 데이터베이스
IL-0567쿠키런: 오븐브레이크의 패키지 매출 랭킹 기능을 배포한 뒤 Aurora MySQL CPU가 100%에 이르러 유저가 게임에 접속하지 못했다Devsisters · 2023같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0524인덱스를 다시 만드는 마이그레이션이 운영에서 Transactions 테이블을 잠가 Open Collective 서비스가 느려짐Open Collective · 2023같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0380
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0380/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.