TGViewer
struct dive_memo struct dive_memo @dive_memo · 57 subscribers
Post #25 146
∑ LpBound: Pessimistic Cardinality Estimation using lp-Norms of Degree Sequences
#CBE #cardinality #linear #algebra

🥼 Article https://arxiv.org/abs/2502.05912
📹 20 min video https://www.youtube.com/watch?v=ys-iQeERav8

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

🪨 Context
В базах данных перед выполнением запроса всегда есть Query Optimizer, который знает что-то про данные и придумывает правильный путь обхода, как правильно обрабоать их.
Optimizer опирается на несколько вариантов выполнения и ищет самый дешевый Cost-Based Optimizer и Cardinality Estimator, который в свою очередь старается определить количество возвращаемых строк на каждом из этапов. В зависимости от cardinality можно выбрать разные алгоритмы.

🧂The idea
В статье используются L^p space для оценки верхней границы cardinality.
Если оценивать среднюю cardinality, то можно в среднем хорошо попадать, но могут быть ситации промахов, когда из-за неправильного алгоритма выполнение запроса не влезло в память и упало с OutOfMemory. И нужно писать логику с перезапуском запроса, что сложно.

В работе авторы как раз стараются более точно оценивать верхнюю границу и у них это получается, причем используя меньший memory footprint.

🤔 My opinion
Для меня это выглядит как черная магия, перестановкой операторов в Execution Plan можно добиться значительного ускорения запроса.
Эти алгебраические трюки намного важнее всех Memory Management, io_uring и форматов хранения, и других оптимизаций.
Чистая математика и красота.

Линал не понял, но очень интересно. (с)

Углублюсь в него и вернусь в такие работы чуть позже.
  • ❤ 2
More from @dive_memo
  1. Feb 9, 2026🪖 Saving Private Hash Join #hashjoin #sortjoin #duckdb #bufferpool 📝 Article https://www…
  2. Feb 4, 2026photo post
  3. Feb 4, 2026Это фраза тоже не совсем корректная, из (pic 3) видно что не все время проводится в B-tree…
  4. Feb 4, 2026🗃️ SQLite: Past, Present, and Future #sqlite #duckdb #bloomfilter #btree 🥼 Article https…
  5. Jan 9, 2026#tum #uzh #job #sqlstorm #cardinality Вчера ходил на лекцию где автор LpBound из поста выш…
  6. Dec 22, 2025📦 AnyBlox: A Framework for Self-Decoding Datasets #tum #arrow #parquet #wasm #avx 🥼 Arti…
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 →