Настройка критериев планировщика СУБД с учётом динамической компиляции
https://doi.org/10.15514/ISPRAS-2022-34(4)-8
Аннотация
С разработкой динамического компилятора запросов актуальной становится задача настройки критериев оптимизатора и планировщика СУБД для выбора оптимального, с точки зрения динамической компиляции, плана запроса. Необходимость настройки критериев оптимизатора обуславливается тем, что свойства различных моделей выполнения накладывают ограничения на эффективность выполнения плана запроса с использованием определённых узлов-операторов. Так, например, используемая в динамическом компиляторе push-модель даёт преимущество при выполнении запросов с использованием последовательного сканирования. При использовании динамической компиляции сканирование индекса может выполняться значительно менее эффективно, чем последовательное сканирование. Использование в плане вершин сканирования индекса уменьшает ценность метода динамической компиляции. Для преодоления указанных проблем предлагается выполнить настройку оптимизатора СУБД таким образом, чтобы тот оценивал и учитывал эффективность использования некоторых типов узлов при построении плана запроса с его последующей динамической компиляцией. В данной работе рассматривается модификация планировщика PostgreSQL для выбора наиболее эффективного пути выполнения запроса с учётом аппаратных характеристик и различий между интерпретируемой и компилируемой моделями выполнения узлов-операторов.
Ключевые слова
Об авторах
Егор Викторович ДОЛГОДВОРОВРоссия
Студент МФТИ, лаборант отдела компиляторных технологий ИСП РАН
Рубен Артурович БУЧАЦКИЙ
Россия
Научный сотрудник отдела компиляторных технологий
Михаил Вячеславович ПАНТИЛИМОНОВ
Россия
Стажер-исследователь отдела компиляторных технологий
Дмитрий Михайлович МЕЛЬНИК
Россия
Старший научный сотрудник отдела компиляторных технологий
Список литературы
1. Бучацкий Р.А., Шарыгин Е.Ю. и др. Динамическая компиляция SQL-запросов для СУБД PostgreSQL. Труды ИСП РАН, том 28, вып. 6, 2016, стр. 37-48 / Buchatskiy R.A., Sharygin E.Y. et al. Dynamic compilation of SQL queries for PostgreSQL. Trudy ISP RAN/Proc. ISP RAS, vol. 28, issue 6, 2016, pp. 37-48 (in Russian). DOI: 10.15514/ISPRAS-2016-28(6)-3.
2. Шарыгин Е.Ю., Бучацкий Р.А. и др. Динамическая компиляция выражений в SQL-запросах для СУБД PostgreSQL. Труды ИСП РАН, том 28, вып. 4, 2016 г., стр. 217-240 / Sharygin E.Y., Buchatskiy R.A. et al. Dynamic compilation of expressions in SQL queries for PostgreSQL. Trudy ISP RAN/Proc. ISP RAS, vol. 28, issue 4, 2016. pp. 217-240 (in Russian). DOI: 10.15514/ISPRAS-2016-28(4)- 13.
3. Sharygin E., Buchatskiy R., et al. Runtime specialization of PostgreSQL query executor. Lecture Notes in Computer Science, vol. 10742, 2018, pp. 375-386.
4. The LLVM Compiler Infrastructure. Available at: https://llvm.org/docs/, accessed 13.07.2022
5. Adaptive Query Optimization. Available at: https://github.com/postgrespro/aqo, accessed 13.07.2022
6. PostgreSQL 9.6.24 Documentation. Available at: https://postgrespro.com/docs/postgresql/9.6/index, accessed 13.07.2022
7. Using Explain Analyze in PostgreSQL. Available at: https://postgrespro.ru/docs/enterprise/9.6/using-explain#using-explain-analyze, acсessed 13.07.2022.
8. Graefe G. Volcano – an extensible and parallel query evaluation system. IEEE Transactions on Knowledge and Data Engineering, vol. 6, issue 1, 1994, pp. 120-135.
9. TPC-H, an ad-hoc, decision support benchmark. Available at: http://www.tpc.org/tpch/, acсessed 13.07.2022.
10. Ivanov O., Bartunov S. Adaptive Cardinality Estimation. arXiv:1711.08330, 2017, 12 p.
11. Zhang R., Debray S., Snodgrass R.T. Micro-Specialization: Dynamic Code Specialization of Database Management Systems. In Proc. of the Tenth International Symposium on Code Generation and Optimization, 2012, pp. 63-73.
12. Wu W., Chi Y. et al. Predicting query execution time: Are optimizer cost models really unusable? In Proc. of the IEEE 29th International Conference on Data Engineering (ICDE), 2013, pp. 1081-1092.
Рецензия
Для цитирования:
ДОЛГОДВОРОВ Е.В., БУЧАЦКИЙ Р.А., ПАНТИЛИМОНОВ М.В., МЕЛЬНИК Д.М. Настройка критериев планировщика СУБД с учётом динамической компиляции. Труды Института системного программирования РАН. 2022;34(4):101-116. https://doi.org/10.15514/ISPRAS-2022-34(4)-8
For citation:
DOLGODVOROV E.V., BUCHATSKIY R.A., PANTILIMONOV M.V., MELNIK D.M. JIT-aware DBMS planner configuration. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2022;34(4):101-116. (In Russ.) https://doi.org/10.15514/ISPRAS-2022-34(4)-8