백엔드
Redis 키스페이스 알림과 리스를 이용한 GPU 워커 풀 로드 밸런싱
GPU는 비싸고 한 번에 하나의 무거운 작업만 실행하므로, 라운드 로빈 라우팅은 바쁜 워커 뒤에서 지연됩니다. 여기에 Redis 리스와 키스페이스 알림으로 구축된 바쁨을 인지하는 스케줄러가 있습니다.
태그
GPU는 비싸고 한 번에 하나의 무거운 작업만 실행하므로, 라운드 로빈 라우팅은 바쁜 워커 뒤에서 지연됩니다. 여기에 Redis 리스와 키스페이스 알림으로 구축된 바쁨을 인지하는 스케줄러가 있습니다.
하드코딩된 cron은 스케줄이 변경될 때마다 재배포를 의미합니다. 데이터베이스에 스케줄을 저장하고 변경 스트림으로 데몬이 편집에 반응하도록 합니다. 여기에 그 설계와 실패 처리 방법이 있습니다.
데이터베이스가 자동 쓰기 재시도를 금지하는 경우, 모든 쓰기는 그 자체로 멱등성을 가져야 합니다. 콘텐츠에서 파생된 ID를 사용하면 이를 비용 없이 달성할 수 있습니다. 여기에 그 유도 과정과 안전성을 보장하는 한 가지 불변식이 있습니다.
Firestore는 MongoDB 와이어 프로토콜을 지원하지만, 재시도 가능 쓰기는 거부합니다. 드라이버에서 이 기능이 기본적으로 활성화되어 있으면, 쓰기가 무작위로 실패하는 것처럼 보입니다. 그 이유와 해결 방법은 다음과 같습니다.
Rust는 우리에게 거의 필요하지 않은 안전성을 주었고, 매일 싸워야 하는 컴파일 루프를 안겨주었습니다. 한 서비스를 Go로 전환하게 만든, 수치를 포함한 솔직한 트레이드오프가 여기에 있습니다.