TGViewer
Типичный программист Типичный программист @tproger · 78.4K subscribers
Post #14826 5.56K

Forwarded from Сохранёнки программиста

Как конечные автоматы индексируют миллиарды строк

Обстоятельный разбор Эндрю Галланта показывает, как конечные автоматы хранят упорядоченные множества и словари. Строка становится последовательностью переходов, а общие состояния используются повторно. Проверка ключа требует не больше шагов, чем в нём символов, независимо от размера набора.

Далее библиотека fst на Rust и опыты. Индекс 16 млн заголовков Wikipedia объёмом 384 МБ построился за 18,3 секунды и занял 157 МБ. Поиск по регулярному выражению занял 0,023 секунды, нечёткий поиск с двумя правками: 0,094 секунды. Финал: более 1,6 млрд URL из Common Crawl объёмом 134 ГБ.

В лонгриде Эндрю Галланта разобраны границы: нужен быстрый доступ к произвольному участку файла, а структура не универсальна. Читать разработчикам поиска и словарей, чтобы оценить вариант индекса.
burntsushi.net Index 1,600,000,000 Keys with Automata and Rust - Andrew Gallant's Blog
  • ❤ 7
  • 🤔 5
  • 💯 5
  • 🦄 4
  • 🌭 3
  • 🤷‍♂ 2
  • 🤓 2
  • 🎄 2
  • 👻 1
  • 🎃 1
  • 🤷 1
More from @tproger
  1. Sep 20, 2026Мы вернулись из Суздаля с новым взглядом на магазин у дома Были на tech-туре MAGNIT TECH «…
  2. Sep 19, 2026Вопрос на разогрев: что из этого появилось раньше — ICQ, MySpace или Nokia 3310? Если заду…
  3. Sep 19, 2026Почему тип указателя не гарантирует безопасность памяти Указатель сохраняет тип, даже когд…
  4. Sep 19, 2026В Суздаль за DevOps Недавно мы съездили на «Без предела: Исходный код ритейла» от MAGNIT T…
  5. Sep 18, 2026Как Cloudflare освободила 100 ТБ памяти в DNS-кеше 1.1.1.1 Big Pineapple за сервисом 1.1.1…
  6. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →