피드로 돌아가기
SynaptoRoute v0.4.0: Re-Architecting for Massive Concurrency & Zero-Downtime Indexing
Dev.toDev.to
AI/ML

Zero-Downtime Indexing 및 ThreadPool 분리로 동시성 병목 해결

SynaptoRoute v0.4.0: Re-Architecting for Massive Concurrency & Zero-Downtime Indexing

Sitanshu Kumar2026년 6월 3일4advanced

Context

50,000개 Route 규모에서 P99 Latency <50ms를 달성했으나, 고부하 비동기 상황의 동시 Mutation 발생 시 시스템 불안정성 노출. FaissIndex의 Global Lock으로 인한 요청 차단 및 FastEmbed의 CPU 집약적 연산에 의한 asyncio Event Loop Starvation 현상 발생.

Technical Solution

  • ThreadPoolExecutor를 통한 Embedding 엔진 분리로 ONNX 추론 연산과 asyncio 이벤트 루프 간의 결합도 제거
  • In-Memory Write-Ahead Log(WAL) 도입을 통해 Index 재구축 중에도 Mutation 버퍼링 및 Sequential Scan으로 Zero-Downtime 구현
  • Bounded Connection Pool 및 Thread-local Isolation 적용을 통한 SQLite multithreading Deadlock 원천 차단
  • RedisSyncManager에 target_id 페이로드를 도입하여 루프백 이벤트를 제거하고 동기화 오버헤드를 O(N^2)에서 O(N)으로 최적화

- asyncio 환경에서 무거운 연산 수행 시 ThreadPoolExecutor 분리 여부 검토 - 인덱스 재구축 시 Read/Write 동시성을 보장하기 위한 WAL 또는 Double Buffering 구조 적용 고려 - 분산 노드 간 상태 동기화 시 Broadcast Storm 방지를 위한 Target ID 기반 필터링 구현

원문 읽기