Детальная информация

Название: Разработка индекса для системы управления базами данных MySQL на основе B-link деревьев для интенсивной многопоточной вставки: выпускная квалификационная работа магистра: направление 09.04.01 «Информатика и вычислительная техника» ; образовательная программа 09.04.01_15 «Технологии проектирования системного и прикладного программного обеспечения»
Авторы: Максименко Дмитрий Сергеевич
Научный руководитель: Ицыксон Владимир Михайлович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2023
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: СУБД; индекс; производительность; B+ дерево; B-link дерево; DBMS; index; performance; B+ tree; B-link tree
Тип документа: Выпускная квалификационная работа магистра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Магистратура
Код специальности ФГОС: 09.04.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2023/vr/vr23-3884
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\25014

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Одной из самых распространенных структур для реализации ин­декса в системах управления базами данных является B+ дерево. Дан­ная структура используется и в MySQL. Существует модификация B+ дерева, разработанная для многопоточных нагрузок, называемая B-link деревом. В рамках данной работы были изучены разные алгоритмы син­хронизации потоков при работе с B-link деревом и отобран наиболее перспективный из них - алгоритм Jaluta. Алгоритм Jaluta, а также существующий алгоритм индекса MySQL были реализованы с применением оптимизаций, которые ис­ пользуются в индексе MySQL. Затем были проведены эксперименты для анализа производительности решений. Результаты экспериментов показали, что при интенсивной мно­гопоточной вставке алгоритм Jaluta показывает до 7 раз большую производительность по сравнению с решением из MySQL. Однако су­ществуют условия, при которых алгоритм Jaluta показывает худшие результаты в сравнении с исходным. Исходя из результатов экспериментов был сделан вывод, что алго­ритм Jaluta может быть внедрен в качестве опционального алгоритма для работы с индексом и использоваться при интенсивной многопоточ­ной вставке.

One of the most common data structures used for implementing an index in database management systems is the B+ tree, which is also used in MySQL. There is a modification of the B+ tree designed for multithreaded workloads, known as the B-link tree. In this study, various thread synchronization algorithms for working with the B-link tree were examined, and the most promising one, the Jaluta algorithm, was selected. The Jaluta algorithm, as well as the existing MySQL index algorithm, were implemented with optimizations commonly used in the MySQL index. Then, experiments were conducted to analyze the performance of the solutions. The experimental results showed that during intensive multithreaded insertion, the Jaluta algorithm exhibits up to 7 times higher performance compared to the MySQL solution. However, there are conditions under which the Jaluta algorithm performs worse than the original solution. Based on the experimental results, it can be concluded that the Jaluta algorithm can be implemented as an optional algorithm for working with the index and can be used for intensive multithreaded insertion.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • ВВЕДЕНИЕ
  • 1. Постановка задачи
  • 2. Исследование предметной области
    • 2.1. Альтернативные B+ деревьям структуры индекса СУБД
    • 2.2. Обзор существующих исследований в области производительности B+деревьев
    • 2.3. Обзор реализации индекса в MySQL
  • 3. Описание алгоритмов
    • 3.1. Основные принципы работы B+ деревьев
    • 3.2. Использование блокировок при работе с B+ деревьями
    • 3.3. Алгоритм B+ дерева индекса в InnoDB
    • 3.4. Алгоритм B-link дерева, не поддерживающий удаления
    • 3.5. Алгоритм Jaluta
    • 3.6. Алгоритм Malbrain'a
    • 3.7. Выбор алгоритма для реализации
  • 4. Реализация алгоритмов
    • 4.1. Архитектура разрабатываемого решения
    • 4.2. Выбор средства синхронизации
    • 4.3. Детали реализации
    • 4.4. Дополнительные оптимизации
  • 5. Разработка и проведение экспериментов для анализа производительности решений
    • 5.1. Виды нагрузок
    • 5.2. Замер производительности с помощью трассировки
    • 5.3. Проведение экспериментов
  • 6. Анализ результатов экспериментов
  • 7. Результаты работы
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Статистика использования

stat Количество обращений: 9
За последние 30 дней: 1
Подробная статистика