TGViewer
Experimental chill Experimental chill @experimentalchill · 9.22K subscribers
Post #282 15K
https://www.vldb.org/pvldb/vol16/p2132-afroozeh.pdf

Прочитал тут статью с VLDB про формат данных в базах данных, который даёт много идей на подумать. Даже есть репозиторий https://github.com/cwida/FastLanes

Авторы ставят перед собой несколько целей для дизайна формата хранения целых чисел

* SIMD friendly

* Поддерживает все виды несложного сжатия: parquet, delta encoding, RLE

Ну так как я что-то делал в этой области, статья написано хорошо! Упрощённо: предлагается хранить, например, не 64 битные числа, а каждый байт в 8 колонках. Для меньшего количества бит происходит более интересное чередование, но суть похожа, все это пакуется в 1024 битные регистры.

Чтобы поддержать такое сжатие и воспользоваться всеми преимуществами, авторы перебирали форматы и научились в целом находить Наименьшее Общее Кратное того, как биты должны быть расположены, чтобы все 3 формата сжатия удовлетворить. К сожалению, не обходится без большого количества табличных значений, что опять даёт возможность пользоваться не всем и видеть преимущества на больших данных, когда нужно обработать много памяти и заиспользовать всю её пропускную способность. В итоге получились регистры из 1024 бит, но с поддержкой всех SIMDов всех современных процессоров и неплохими бенчмарками.

Из интересных деталей про "НОК формата", авторы разбирают как они пытались уменьшить зависимость данных. В delta encoding (или префикс суммы) у вас каждое значение зависит от предыдущего. Но можно хранить 4 начальных значения и теперь суммировать 4 числа одновременно, что выдаёт баланс между пропускной способностью и уровнем сжатия. Такими transposed штуками и подбирали создание формата.

Себе взял на заметку, буду тестировать, но я минимально рад, что хотя бы нашёл время почитать статью.
  • 👍 50
  • 🔥 16
  • ❤ 11
  • 🤯 3
  • 😱 3
  • ⚡ 1
  • 👻 1
More from @experimentalchill
  1. Sep 2, 2025Latency profiler Представьте ситуацию, вы пишете код на Python, вызываете посередине библи…
  2. Jul 10, 2025Trivially relocatable В C++ есть большая группа людей (включая меня), которая любит брать…
  3. May 15, 2025Size based vector https://discourse.llvm.org/t/adding-a-size-based-vector-to-libc-s-unstab…
  4. Apr 23, 2025Сегодня про закон Литтла. Недавно очень много читал про теорию очередей — это математика т…
  5. Mar 25, 20251. Объявили результаты TON: дали серебро, оказался 6-7 по топу (Mindful Kitten), дали $500…
  6. Feb 5, 2025January update (старею) 1. Мой (первый) стажёр из Яндекса опубликовал Perforator — сборщик…
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 →