피드로 돌아가기
Dev.toBackend
원문 읽기
POSIX Atomic Write 기반 State Machine으로 LLM 파이프라인 복구 체계 구축
Building Crash-Recovery State Machines for Long-Running LLM Pipelines in Python
AI 요약
Context
LLM API의 Timeout 및 Rate Limit으로 인한 장시간 실행 작업의 빈번한 중단 발생. 기존의 단순 재시작 방식은 중복 비용 발생 및 처리 시간 낭비라는 구조적 한계 보유.
Technical Solution
- PENDING, RUNNING, DONE, NEEDS_REVIEW 4단계 상태 정의를 통한 작업 생명주기 관리
- POSIX 시스템의 os.replace()를 활용한 Atomic Checkpoint 파일 업데이트로 데이터 오염 방지
- 프로세스 시작 시 RUNNING 상태의 작업을 PENDING으로 자동 전환하는 Orphan Recovery 로직 구현
- Exponential Backoff 전략을 결합한 max_retries 기반의 재시도 메커니즘 적용
- 1,000건 미만 소규모 데이터셋 대상의 단순성 및 이식성 확보를 위한 JSON File Store 채택
- 실패 지점부터 정확히 재개하는 Resume-from-Checkpoint 구조 설계
실천 포인트
- 1,000건 미만 데이터는 DB 대신 JSON 파일로 관리하여 운영 복잡도 최소화 - 파일 업데이트 시 임시 파일 생성 후 Rename 하는 Atomic Write 패턴 적용 - 비정상 종료 대비를 위해 실행 시점에 '진행 중' 상태의 작업을 초기화하는 복구 함수 배치 - API 호출부에는 지수 백오프 기반의 재시도 로직을 결합하여 일시적 장애 대응