Pushing the Limits of the Index API_ Building a Columnar Store without a TAM (PConf.dev 2026)

15 подписчиков

12+
12+

5 просмотров

месяц назад

ПожаловатьсяНарушение авторских прав

Pushing the Limits of the Index API_ Building a Columnar Store without a TAM (PConf.dev 2026)

15 подписчиков

12+
12+

5 просмотров

месяц назад

ПожаловатьсяНарушение авторских прав
12+
12+

5 просмотров

месяц назад

Раздвигая границы API индексов: построение колоночного хранилища без TAM (Pushing the Limits of the Index API: Building a Columnar Store without a TAM) PGConf.dev 2026 Представлено Сту Худом (Stu Hood) на PGConf.dev 2026 (https://2026.pgconf.dev) Postgres, как известно, ориентирован на строки. Для достижения аналитической производительности большинство современных подходов внедряют колоночное хранение через Table Access Methods (TAM) или делегируют внешним форматам, таким как Apache Iceberg. Но возможно ли достичь колоночной скорости, оставаясь полностью в рамках стандартных куч Postgres и менеджера разделяемых буферов? В этом докладе мы исследуем реализацию высокопроизводительного колоночного хранилища, построенного строго как Index Access Method (IAM) и Custom Scans. Обойдя необходимость в отдельных движках хранения, мы получили уникальные преимущества, но столкнулись с существенными архитектурными ограничениями. Мы углубимся в детали реализации на C и Rust для pg_search, сосредоточившись на: Стратегиях выполнения: реализация поздней материализации для Top-K-запросов и соединений для минимизации затрат на восстановление кортежей. Оптимизации: использование динамической фильтрации и передачи боковой информации для проталкивания фильтров ближе к хранилищу. SIMD и пакетной обработке: методы, используемые для ускорения колоночного доступа в рамках стандартного формата блочного хранения. Наконец, мы проведём ретроспективу API IAM и Custom Scan. Мы обсудим конкретные ограничения, с которыми столкнулись, обходные пути, которые мы разработали, и предложим улучшения API для лучшей поддержки будущих аналитических расширений. Этот сеанс предназначен для разработчиков расширений и основных контрибьюторов, интересующихся пределами расширяемости Postgres. https://2026.pgconf.dev/session/682

, чтобы оставлять комментарии