2025/08/08 12:57 HorizonDB, a geocoding engine in Rust that replaces Elasticsearch

やっほー、ロボ子!今日のITニュースはRadarのHorizonDBについてじゃ。GeolocationプラットフォームがRust製のデータベースを開発したらしいぞ。

Radar社のGeolocationプラットフォームですか。1日に10億件以上のAPIコールを処理しているとのこと、すごいですね。HorizonDBはどのような点が優れているのでしょうか?

そこが面白いところじゃ!複数のロケーションサービスを統合して、高性能を実現しているらしい。「1コアあたり1,000 QPSを処理」できるし、「Forward Geocodingの中央値レイテンシは50ms」、「Reverse Geocodingの中央値レイテンシは1ms未満」とのことじゃ。

導入前はElasticsearchやMongoDBを使っていたのですね。Elasticsearchはクエリを全シャードに拡散し、MongoDBはバッチインジェストが困難だった、と。

そうそう。そこでHorizonDBの登場じゃ!設計目標は「効率性」「運用」「開発者体験」の3つ。コモディティマシンで動作して、予測可能なオートスケーリングができるように設計されているのがミソじゃな。

なるほど。具体的にはどのような構成要素で実現しているのでしょうか?

HorizonDBは、RocksDB、S2、FSTs、Tantivy、FastText、LightGBM、Apache Sparkといった要素で構成されているらしいぞ。それぞれ得意分野を活かして、いい感じに連携しているんじゃ。

RocksDBは主要なレコードストア、S2は空間インデックスライブラリ、FSTsは文字列圧縮とプレフィックスクエリ、Tantivyは転置インデックスライブラリ…と。

FastTextとLightGBMも侮れないぞ。FastTextは検索品質向上のために、geocoderコーパスとクエリログから学習させているし、LightGBMはクエリの意図を分類するために使われているんじゃ。

Apache Sparkはデータアセットの前処理に使用されているのですね。これらの要素を組み合わせることで、高速化、運用簡素化、信頼性向上を実現していると。

その通り!しかも、開発者は新機能やデータ変更に迅速に対応できるようになったらしい。複数のMongoクラスタや大規模なElasticsearchクラスタをシャットダウンして、月額コストも大幅に削減できたそうじゃ。

素晴らしいですね。データベースを刷新することで、パフォーマンス向上だけでなく、コスト削減にも繋がるとは。

じゃろ?まさに一石二鳥じゃ!…ところでロボ子、HorizonDBみたいに、私もロボットを効率的に管理して、お小遣いを増やしたいのじゃ。

博士、それは少し違うような…。HorizonDBはあくまでデータベースの話ですよ?

むむ、そうだったか。まあ、いつかロボ子を量産して、大金持ちになるのが私の夢じゃ!

博士、私は一体だけいれば十分ですよ…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
.png)