Batching in the Executor (PConf.dev 2026)

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

12+
12+

4 просмотра

месяц назад

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

Batching in the Executor (PConf.dev 2026)

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

12+
12+

4 просмотра

месяц назад

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

4 просмотра

месяц назад

Пакетная обработка в исполнителе (Batching in the Executor) PGConf.dev 2026 Представлено Амитом Ланготе (Amit Langote) на PGConf.dev 2026 (https://2026.pgconf.dev) Исполнитель PostgreSQL до сих пор обрабатывает по одному кортежу за раз — это дизайн, унаследованный от классической модели итераторов, которая предпочитает модульность, но добавляет значительные перикортежные накладные расходы на современных процессорах. Каждый кортеж пересекает множество границ вызовов функций и ветвлений, что ограничивает эффективность работы с инструкциями и кэшем даже при простых сканированиях. Недавние улучшения — вычисление выражений на основе кодов операций, встраивание сканирования и более быстрая деформация кортежей — позволили снизить накладные расходы на ключевых путях, но модель итераторов всё ещё остаётся узким местом для аналитических нагрузок. Этот доклад представляет прототип, который позволяет узлам исполнителя работать с пакетами кортежей вместо отдельных слотов, снижая перикортежные затраты при сохранении строковой семантики PostgreSQL и структуры плана. Патч вводит API ExecProcNodeBatch() и абстракцию TupleBatch для передачи групп кортежей между узлами, а также расширения table AM для пакетного сканирования. Вычисление выражений адаптировано для обработки пакетов в плотных циклах, открывая путь к более эффективному выполнению над большими наборами данных. Доклад опишет дизайн прототипа, ранние результаты производительности и наметит возможные следующие шаги на пути к более широкой пакетно-ориентированной обработке в PostgreSQL. https://2026.pgconf.dev/session/485

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