Для студентов МГУ им. Ломоносова по предмету ДругиеОптимизация распределённых JOIN-запросов в кластере TarantoolОптимизация распределённых JOIN-запросов в кластере Tarantool
2024-07-182024-07-18СтудИзба
Курсовая работа: Оптимизация распределённых JOIN-запросов в кластере Tarantool
Описание
Оглавление
3
Введение
Распределённые базы данных — это популярная и востребованная область, поскольку в условиях дороговизны улучшения одной рабочей станции горизонтальное масштабирование является более выгодным ва-риантом, который в свою очередь повышает сохранность и доступность данных. Однако за повышенную гибкость подобных систем и их удоб-ную функциональность приходится расплачиваться усложнением про-цесса разработки: из-за того, что данные оказываются распределены по нескольким вычислительным узлам, приходится иметь дело с пере-мещением данных по сети. Так JOIN-запрос в контексте распределён-ных баз данных — одна из наиболее трудоёмких операций. Поскольку эта операция в неоптимизированном виде представляет собой декар-тово произведение записей из двух таблиц, которые могут находиться на разных машинах, для выполнения JOIN-запроса необходимо произ-водить перемещение этих записей с одного вычислительного узла на другой.
Проект Sbroad (SQL Broadcaster), который сейчас разрабатывается компанией Пикодата, представляет собой библиотеку распределённого SQL над кластером in-memory базы данных Тарантул. Он включает
Подобно оптимизациям, основанным на логике реляционной алгеб-ры, существует серия оценочных (Cost-Based) оптимизаций, также на-правленных на трансформацию SQL-запроса, но опирающихся на таб-
4
Введение | 4 | ||
1. | Постановка задачи | 6 | |
2. | Обзор | 7 | |
2.1. | Алгоритмы переупорядочивания JOIN-операторов . . . . | 7 | |
2.2. | Селективность......................... | 9 | |
2.3. | Структурыданных ...................... | 10 | |
2.4. | Базы данных с открытым исходным кодом . . . . . . . . | 13 | |
2.5. | Существующая оптимизация . . . . . . . . . . . . . . . . | 17 | |
3. | Архитектура | 19 | |
4. | Особенности реализации | 23 | |
4.1. | Алгоритм переупорядочивания . . . . . . . . . . . . . . . | 23 | |
4.2. | Подсчётселективности.................... | 25 | |
4.3. | Подсчётстоимостиплана. . . . . . . . . . . . . . . . . . . | 26 | |
4.4. | Трансформация статистики . . . . . . . . . . . . . . . . . | 26 | |
4.5. | Изменениепланазапроса. . . . . . . . . . . . . . . . . . . | 28 | |
5. | Эксперименты | 30 | |
5.1. | Постановка экспериментов . . . . . . . . . . . . . . . . . . | 30 | |
5.2. | Исследовательские вопросы (Research questions) . . . . . | 31 | |
5.3. | Метрики ............................ | 32 | |
5.4. | Результаты........................... | 32 | |
Заключение | 35 | ||
Список литературы | 36 |
3
Введение
Распределённые базы данных — это популярная и востребованная область, поскольку в условиях дороговизны улучшения одной рабочей станции горизонтальное масштабирование является более выгодным ва-риантом, который в свою очередь повышает сохранность и доступность данных. Однако за повышенную гибкость подобных систем и их удоб-ную функциональность приходится расплачиваться усложнением про-цесса разработки: из-за того, что данные оказываются распределены по нескольким вычислительным узлам, приходится иметь дело с пере-мещением данных по сети. Так JOIN-запрос в контексте распределён-ных баз данных — одна из наиболее трудоёмких операций. Поскольку эта операция в неоптимизированном виде представляет собой декар-тово произведение записей из двух таблиц, которые могут находиться на разных машинах, для выполнения JOIN-запроса необходимо произ-водить перемещение этих записей с одного вычислительного узла на другой.
Проект Sbroad (SQL Broadcaster), который сейчас разрабатывается компанией Пикодата, представляет собой библиотеку распределённого SQL над кластером in-memory базы данных Тарантул. Он включает
- себя парсер SQL, оптимизатор и исполнитель запросов. Проект сей-час находится на этапе активной разработки, поэтому JOIN-запросы в существующей архитектуре оптимизированы лишь в некоторой степе-ни. Предполагается, что пользователь сам должен писать такие JOIN запросы, которые будут выполняться эффективно из того предположе-ния, что правая таблица в JOIN-запросе всегда меньше левой. План исполнения распределённого запроса сейчас строится только на осно-вании информации о том, по каким ключам производятся операции соединения: по колонкам распределения таблиц или по произвольным колонкам.
Подобно оптимизациям, основанным на логике реляционной алгеб-ры, существует серия оценочных (Cost-Based) оптимизаций, также на-правленных на трансформацию SQL-запроса, но опирающихся на таб-
4
Характеристики курсовой работы
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
712,5 Kb
Список файлов
Оптимизация распределённых JOIN-запросов в кластере Tarantool.doc