RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2016, том 28, выпуск 6, страницы 37–48 (Mi tisp83)

Эта публикация цитируется в 5 статьях

Динамическая компиляция SQL-запросов для СУБД PostgreSQL

Р. А. Бучацкийa, Е. Ю. Шарыгинab, Л. В. Скворцовb, Р. А. Жуйковa, Д. М. Мельникa, Р. В. Баевc

a Институт системного программирования РАН
b Московский государственный университет имени М.В. Ломоносова
c Московский физико-технический институт (государственный университет)

Аннотация: В последние годы по мере увеличения производительности и роста объема оперативной и внешней памяти производительность СУБД для некоторых классов запросов определяется непосредственно скоростью обработки запросов процессором. Для исполнения SQL-запросов в большинстве современных реляционных СУБД используется модель итераторов (Volcano-модель), которая удобна в реализации в рамках интерпретатора запросов, но сопряжена с существенными накладными расходами при выполнении плана, например, связанными с большим количеством ветвлений, неявными вызовами функций-обработчиков и выполнением лишних проверок, избежать которых довольно сложно при использовании механизма интерпретации. Одно из решений - динамическая компиляция запросов. В рамках данной работы рассматривается метод динамической компиляции запросов с применением альтернативной модели выполнения запроса в СУБД, что подразумевает отказ от используемой в PostgreSQL итеративной Volcano-модели, и его реализация для СУБД PostgreSQL с помощью компиляторной инфраструктуры LLVM. Динамический компилятор запросов реализован в виде расширения к СУБД PostgreSQL и не требует изменения исходного кода СУБД. Результаты проведенного тестирования показывают, что динамическая компиляция запросов с помощью JIT-компилятора LLVM позволяет получить ускорение в несколько раз на тестовом наборе TPC-H.

Ключевые слова: динамическая компиляция, JIT-компиляция, СУБД, PostgreSQL, LLVM, языки запросов.

DOI: 10.15514/ISPRAS-2016-28(6)-3



Реферативные базы данных:


© МИАН, 2024