이 아키텍처는 지리적 마이크로 지역을 매핑하는 동적 샤드를 생성하기 위해 S2 기하학 셀을 사용하는 계층적 공간 파티셔닝을 채택합니다. 각 셀은 로컬 차량 상태를 관리하는 자율적인 Raft 합의 그룹으로 작동하며, Dragonfly 인메모리 저장소 내에서 충돌 벡터를 위한 선형 가능성을 보장합니다. 셀 간 통신은 지역 인식 라우팅이 있는 Envoy 프록시를 통해 gRPC 스트림을 활용하며, Apache Kafka는 Apache Flink에 위치 원격 측정을 피드를 제공합니다. 예측 엔진은 혼잡이 형성되기 전에 프로액티브한 샤드 분할 또는 마이그레이션을 발생시키는 재균형 힌트를 생성하여 중앙 조정자의 필요성을 제거합니다.
글로벌 자율 차량 공유 플랫폼은 새해 전야의 급증으로 1000만 대의 차량이 동시에 지역 경계를 넘어 위치를 업데이트 할 때 끔찍한 지연이 발생했습니다. 기존의 PostgreSQL PostGIS 클러스터는 읽기 복제본이 400ms 복제 지연을 보였고, 이로 인해 충돌 회피 시스템이 오래된 좌표를 기반으로 경로를 계산하게 되며 샌프란시스코 시내에서의 비상 제동 연쇄를 초래했습니다.
엔지니어링 팀은 일관성과 대기 시간 간의 충돌을 해결하기 위해 세 가지 독특한 아키텍처 접근 방식을 평가했습니다. 첫 번째 솔루션은 강력하게 일관된 쓰기-통과 캐싱을 갖춘 중앙 집중식 Redis 센티넬 배포를 제안했으며, 구현의 단순함을 제공하지만 단일 실패 지점을 도입하고, 주요 데이터 센터에서 멀리 떨어진 차량에 대해 80ms를 초과하는 크로스 지역 대기 시간 패널티를 초래합니다. 두 번째 솔루션은 CRDT 기반 위치 병합으로 뛰어난 쓰기 처리량과 파티션 내성을 제공하는 결국 일관된 Cassandra 링을 제안했지만, 조정 창 동안 물리적 충돌을 허용할 수 있는 안전이 중요한 계산에서 일시적인 편차의 위험이 있었습니다.
세 번째 솔루션은 셀 중심에 Raft 리더가 배치된 독립적인 합의 도메인으로 3.3km² 범위를 갖는 S2 레벨12 셀을 사용하는 계층적 셀룰러 샤드를 설계했습니다. 이 접근법은 서브 밀리초 공간 쿼리에 대한 Dragonfly 핫 저장소와 글로벌 합의 없이 핸드 오프 분쟁을 조정하기 위한 비잔틴 내결함성 증인 노드를 셀 경계에 결합했습니다. 팀은 이 솔루션을 선택하여 교통 제어 결정을 엣지 노드에 국한시키면서 안전 중요 작업에 대한 엄격한 직렬성을 유지했습니다.
구현 이후, 플랫폼은 크로스 지역 핸드오프 동안 충돌 쿼리에 대해 12ms p99 지연을 달성하고, 이후 급증 이벤트 내내 제로 안전 사고를 유지했으며, 예측 Flink 모델은 예측적 재균형을 통해 샤드 마이그레이션 오버헤드를 73% 줄였습니다.
네트워크 파티션 동안 차량이 두 공간 샤드의 경계에 정확히 위치할 때 스플릿 브레인 시나리오를 어떻게 방지합니까?
후보자들은 종종 단순한 GPS 좌표 반올림 또는 타임스탬프 기반의 마지막 쓰기 우선 처리 방법을 제안합니다. 이는 안전 중요 시스템에 실패할 수 있습니다. 올바른 접근법은 차량 상태 벡터에 대한 벡터 클록 버전 관리를 구현하고, 편차가 있는 궤적을 병합할 수 있는 CRDT 기반 위치 이력을 유지하며, 완전한 합의가 필요하지 않도록 셀 경계에 비잔틴 내결함성 증인 노드를 배치하는 것입니다. 이는 파티션 중에도 차량이 하나의 셀로부터 전권을 받은 라우팅을 받도록 보장합니다.
왜 단순한 geohash 기반 샤딩이 적도 근처 고속 이동체에 대해 극도로 실패합니까, 극지방에 비해?
많은 후보자들은 위도에 따라 물리적 차원이 광범위하게 변동하는 직사각형 셀로 지구를 나누는 geohash 알고리즘의 공간 왜곡을 간과합니다. 적도 근처에서 단일 geohash 셀은 5km²를 포함할 수 있지만 오슬로 근처에서 0.5km²를 커버할 수 있으며, 이는 열대 대도시에서 핫 샤드를 만들고, 북유럽 지역에서는 활용도가 낮은 샤드를 초래합니다. 해결책은 구면 기하학을 사용해 대략 동일 면적의 셀로 구를 분할하는 S2 기하학 또는 H3 인덱싱 시스템을 요구하여 지리적 위치에 관계없이 균일한 부하 분산을 보장하고, 과도한 적도 샤드로 인한 지연 스파이크를 방지합니다.
예측 로드 밸런싱 모델이 동시에 수천 명의 차량을 예측된 혼잡 구역에서 동일한 대체 샤드로 리디렉션할 때 어떻게 우려도 없는 동물 떼 현상을 방지합니까?
이러한 행동 현상은 "자기 패배의 예언"이라 불리며, 예측 모델이 이전 혼잡을 해결하면서 새로운 혼잡을 만들어 내는 경우 발생합니다. 해결책은 비긴급 충돌 위협에 대한 경로 계산이 일시적인 지연을 허용하는 점진적인 일관성 수준을 구현하며, 차량 업데이트의 비동기화를 위해 Gossip 프로토콜 전파에서 재간섭 메커니즘을 사용하는 것입니다. 추가로, 예측 모델의 잘못된 계산 교란으로 인해 목적지 셀을 압도하지 않도록 HTTP/2 플로우 제어를 통한 선제적인 백프레셔 신호와 함께 샤드당 토큰 버킷 속도 제한을 통해 갑작스러운 트래픽 쓰나미를 방지합니다.