Hacker News Digest

Тег: #s2

Постов: 2

Harder, Better, Faster, Stronger Version of Uber H3 in Rust (grim7reaper.github.io)

Проект h3o представляет собой полную переработку библиотеки Uber H3 на языке Rust, а не просто обертку. Основные цели - упрощение интеграции в Rust проекты (особенно для WASM), создание более безопасного API с использованием строгой типизации, достижение сопоставимой или превосходящей производительности и 100% покрытие API H3 версии 4.0. Для обеспечения качества использовалось дифференциальное тестирование против эталонной реализации, включая 756 тестов, 166 интеграционных тестов, 42 юнит-теста и 15 fuzz-целей.

Бенчмарки, состоящие из 911 тестов, показывают, что в 862 случаях h3o превосходит оригинальный H3 по производительности. В 463 тестах h3o работает в 2-5 раз быстрее, в 117 тестах - в 5-10 раз быстрее, и в 24 тестах - более чем в 10 раз быстрее. Однако в 44 тестах H3 все еще быстрее, особенно при работе с пятиугольными ячейками и преобразованиями координат. Основные оптимизации h3o включают использование предвычисленных таблиц вместо формул на лету и применение битовых операций вместо циклов для достижения постоянного времени выполнения.

by ashergill • 23 октября 2025 г. в 11:23 • 94 points

ОригиналHN

#rust#h3#geospatial#performance#wasm#testing#uber#s2

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

  • H3/Hexagonal tiling vs. S2/Square tiling: обсуждение сфокусировалось на том, что H3 обеспечивает равные расстояния между соседними ячейками, что важно для анализа данных и моделирования потоков, в то время как S2 не обеспечивает равные расстояния между соседними ячейками. Однако, S2 имеет преимущество в том, что он может быть более эффективен для запросов, которые включают родительские и дочерние ячейки, тогда как H3 может быть более удобен для визуализации и анализа данных, особенно если важно сохранить равные расстояния между ячейками.

  • Использование H3 в различных контекстах: обсуждение включало примеры использования H3 в различных контекстах, включая Uber, FCC, ClickHouse, Overture Maps и другие. Это показывает, что H3 используется в различных контекстах, включая телематика, анализ данных, визуализация и хранение данных.

  • Сравнение H3 с другими системами: обсуждение также коснулось сравнения H3 с другими системами, включая S2 и другие геометрические системы. Это показывает, что H3 имеет свои уникальные преимущества и недостатки, которые важно учитывать при выборе системы для конкретного применения.

  • Развитие и будущее H3: обсуждение также коснулось будущего развития H3, включая возможность создания новой версии, которая может быть более эффективна и удобна для пользователей.

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» сейчас модный лозунг.