|
Эта публикация цитируется в 5 научных статьях (всего в 5 статьях)
Динамическая компиляция выражений в SQL-запросах для СУБД PostgreSQL
Е. Ю. Шарыгинa, Р. А. Бучацкийa, Л. В. Скворцовb, Р. А. Жуйковa, Д. М. Мельникa a Институт системного программирования РАН
b Московский государственный университет имени М.В. Ломоносова
Аннотация:
В последние годы по мере увеличения производительности и роста объема оперативной и внешней памяти производительность СУБД для некоторых классов запросов определяется непосредственно скоростью обработки запросов процессором. В СУБД PostgreSQL для исполнения SQL-запросов традиционно используется механизм интерпретации, который приводит к накладным расходам, например, связанным с множественным ветвлением, неявными вызовами функций-обработчиков и выполнением лишних проверок, которых можно избежать, используя информацию, доступную только во время выполнения запроса. В данной работе рассматривается метод динамической компиляции запросов, в частности, компиляция выражений оператора WHERE и метода последовательного сканирования таблиц SeqScan для СУБД PostgreSQL с помощью компиляторной инфраструктуры LLVM. Рассматривается оптимизация доступа к атрибутам, заключающаяся в вычислении смещений атрибутов кортежа во время компиляции запроса, а также метод автоматической трансляции встроенных функций PostgreSQL во внутреннее представление LLVM IR, что позволяет использовать один и тот же исходный код как для JIT-компилятора, так и для имеющегося интерпретатора. Генерация машинного кода во время выполнения запроса дает возможность избежать накладных расходов традиционной системы интерпретации. Метод реализован в виде расширения к СУБД PostgreSQL и не требует изменения исходного кода СУБД. Результаты проведенного тестирования показывают, что динамическая компиляция запросов с помощью JIT-компилятора LLVM позволяет получить ускорение в несколько раз на синтетических тестах.
Ключевые слова:
динамическая компиляция, JIT-компиляция, базы данных, PostgreSQL, LLVM, языки запросов.
Образец цитирования:
Е. Ю. Шарыгин, Р. А. Бучацкий, Л. В. Скворцов, Р. А. Жуйков, Д. М. Мельник, “Динамическая компиляция выражений в SQL-запросах для СУБД PostgreSQL”, Труды ИСП РАН, 28:4 (2016), 217–240
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp62 https://www.mathnet.ru/rus/tisp/v28/i4/p217
|
Статистика просмотров: |
Страница аннотации: | 218 | PDF полного текста: | 255 | Список литературы: | 37 |
|