Uber, 재시도 폭풍을 막는 오류 소유권 기법 공개
How Uber Protects Against Retry Storms
Uber가 재시도 폭풍으로 인한 연쇄 장애를 방지하기 위해 오류 소유권(error ownership) 개념을 도입했다. 기존 재시도 예산은 수동 설정이고 서비스 간 증폭을 파악하기 어려워, 깊은 의존성 체인에서 단일 장애가 전체 스택으로 확산되는 문제가 있었다. Uber는 서비스 의존성 분석을 통해 인바운드 오류와 아웃바운드 오류를 연관시켜 오류를 전파한 서비스가 아닌 근본 원인 서비스에 재시도를 제한한다. 이를 통해 재시도 폭풍을 방지하고 가용성을 유지한다.
서비스가 요청을 처리하기 위해 N개의 아웃바운드를 호출하고, 아웃바운드 오류로 인해 오류를 반환한다면, 그 서비스가 반환한 오류는 단지 증상일 뿐이다.