Hacker News Digest

17 августа 2025 г. в 13:17 • marginalia.nu • ⭐ 156 • 💬 24

OriginalHN

#nvme#ssd#b-tree#linux#io-uring#spdk#lba#search-index#io-performance#direct-i-o

Faster Index I/O with NVMe SSDs

Поисковый индекс Marginalia переписан, чтобы лучше использовать NVMe-накопители.
Основные изменения:

  • Объём: после ослабления фильтров и добавления рекламного детектора база выросла с 350 до 800 млн документов; ожидается дальнейший рост при добавлении новых языков.
  • Структура: обратный индекс остался «картой терм → список (документ, позиции)», но B-дерево теперь читается в режиме O_DIRECT, минуя кэш страниц.
  • Чтение:
    • Буферизованные чтения неэффективны при случайном доступе к файлам, превышающим RAM.
    • Прямые чтения требуют выравнивания по 512/4096 Б, но дают стабильную задержку и не копируют данные лишний раз.
    • В Linux появляется RWF_DONTCACHE, но поддержка пока неполная.

Первая оптимизация — переписать B-дерево под O_DIRECT; дальнейшие шаги ещё описываются.