概要
- Radar は毎日10億件以上のAPIコールを処理する高性能なジオロケーション基盤を提供
- スケーラビリティ課題を解決するため、 Rust製地理空間DB「HorizonDB」 を開発
- 旧来のMongoDBやElasticsearchを廃止し、コスト・性能・運用性を大幅向上
- RocksDB/S2/Tantivy/LightGBM/FastText/Spark 等の技術を活用したアーキテクチャ
- HorizonDB導入により、開発効率と信頼性も大幅向上
Radarの地理空間基盤とパフォーマンス重視の設計
-
Radar はグローバルで数億台のデバイスから毎日10億件超のAPIコールを処理
- ジオコーディング (順方向・逆方向・IPベース)API
- サーチ (住所補完・住所バリデーション・場所検索)API
- ルーティング (距離・マトリクス・最適化・経路マッチング・案内)API
- ジオロケーションコンプライアンス (管轄検出・国境距離・規制除外ゾーン等)
-
スケール拡大 に伴うエンジニアリング課題の顕在化
- パフォーマンスとコスト最適化の必要性
HorizonDB開発の背景と目的
-
MongoDB/Elasticsearch による従来構成の課題
- Elasticsearch:全シャードへのクエリ拡散、バッチ更新の複雑さ
- MongoDB:バッチ取り込み非対応、過剰プロビジョニング、ロールバック困難
-
HorizonDB の開発目標
- 効率性 :汎用マシンで稼働、予測可能なオートスケーリング、単一の真実ソース
- 運用性 :データアセットの頻繁なビルド・ロールバックが容易、シンプルな運用
- 開発体験 :ローカル実行・テストが容易、迅速な変更適用
-
HorizonDB の特徴
- 1コアあたり1,000QPS、順方向ジオコーディング中央値50ms、逆方向は1ms未満
- 汎用ハードウェアで線形スケール
技術スタックと各技術の役割
-
Rust
- コンパイル&メモリ安全性、ガーベジコレクション不要
- 高次抽象 で複雑なロジックも簡潔に記述
- マルチスレッド単一プロセス で大容量データ効率利用
-
RocksDB
- 高速なキー・バリュー型ストレージエンジン
-
S2 (Google製空間インデックス)
- 球面上のクアッドツリー投影で高速な空間検索
- Rustバインディングを自社開発、今後OSS化予定
-
FSTs (Finite State Transducers)
- 文字列圧縮&プレフィックス検索に特化したデータ構造
- クエリの80%を効率的にキャッシュ、数MBで数百万件のパスを格納
-
Tantivy
- Lucene類似のインプロセス倒立インデックス
- 検索品質向上・運用簡素化・メモリマッピングで大規模インデックスも効率的
-
FastText
- クエリ語彙の意味的ベクトル化、タイプミス耐性、未知語対応
- 検索精度とMLアルゴリズムの意味理解向上
-
LightGBM
- クエリ意図分類・構造化による検索性能・精度向上
- 例:地域名クエリは住所検索スキップ、住所指定はPOI検索スキップ
-
Apache Spark
- 数億件規模データを1時間未満で処理、ほぼ線形スケール
- S3出力データはAmazon AthenaやDuckDBで即時検証可能
HorizonDB導入後の成果
- サービスの 高速化・運用簡素化・信頼性向上
- 新機能・データ変更 への迅速な対応が可能に
- MongoDB/Elasticsearch/複数マイクロサービス の廃止で月数万ドル規模のコスト削減
- 今後のスケールにも対応可能な設計
- 開発チーム(Bradley Schoeneweis, Jason Liu, Jacky Wang, Binh Robles, Greg Sadetsky, David Gurevich, Felix Li)への謝意
採用情報・今後の展望
- Radar はAPIだけでなくSDK・マップ・DB・インフラ全体で最速&開発者フレンドリーな位置情報基盤を再設計
- エンジニア採用強化中、興味ある方は Jobsページ 参照