Hacker News Digest

Тег: #elasticsearch

Постов: 1

How we replaced Elasticsearch and MongoDB with Rust and RocksDB (radar.com) 🔥 Горячее

HorizonDB — новая гео-БД на Rust, заменившая Elasticsearch и MongoDB.
Обрабатывает 1 млрд вызовов/день, 1 000 QPS на ядро, 50 мс прямого и <1 мс обратного геокодирования.

Проблемы старого стека

  • Elasticsearch: шардирование, дорогие батчи, отсутствие отката.
  • MongoDB: нет нормального bulk-импорта, переподбор ресурсов, сложный откат.

Архитектура HorizonDB

  • Однопроцессный многопоточный бинарник.
  • Данные Spark → S3 → RocksDB (версионные ассеты).
  • Индексы: S2 (гео), Tantivy (поиск), FST (префиксы), LightGBM/FastText (ML-ранжирование).

Почему Rust

  • Скомпилирован, без GC, предсказуемая латентность.
  • Абстракции высокого уровня, pattern matching.
  • Один процесс вместо Node.js-кластера → экономия памяти.

Ключевые компоненты

  • RocksDB — быстрая запись/чтение с SSD.
  • S2 — O(1) point-in-polygon через квадродерево.
  • FST — компрессия префиксов, кэш «happy path» в МБ.
  • Tantivy — встроенный инвертированный индекс, избегаем сетевого Elasticsearch.

Итог: одна бинарная служба, линейное масштабирование, простые релизы и откаты.

by j_kao • 08 августа 2025 г. в 12:57 • 258 points

ОригиналHN

#rust#rocksdb#mongodb#elasticsearch#s2#tantivy#lightgbm#fasttext

Комментарии (84)

  • Пост вызывает много вопросов: детали шардирования, отказоустойчивость, latency и open-source-статус не раскрыты.
  • Альтернативы: Typesense, DuckDB+spatial, Quickwit/Tantivy — всё open-source и уже показывает высокую производительность.
  • RocksDB хвалят за надёжность и производительность, но кто-то вспоминает старые проблемы LevelDB.
  • LMDB/OSM Express тоже предлагают более лёгкое решение для геопоиска.
  • Многие считают, что 95 % задач решаются обычным Postgres/SQLite, а «заменить ES» сейчас модный лозунг.