200 likes | 392 Views
Московский физико-технический институт. Key-Value системы и их применение к моделям с наследованием структуры данных. Выпускная квалификационная работа студента гр.617 Шевцова А. В. Научный руководитель Евдокимов А.В., к.ф.-м.н ., доцент Научный консультант Нарыжный И.Г. Введение.
E N D
Московский физико-технический институт Key-Value системы и их применение к моделям с наследованием структуры данных Выпускная квалификационная работа студента гр.617 Шевцова А. В. Научный руководитель Евдокимов А.В., к.ф.-м.н., доцент Научный консультант Нарыжный И.Г.
Введение • Предпосылки: • Любому Enterprise-приложению необходима БД, позволяющая оперировать с данными и хранить их • Кроме РБД, существует множество других БД различного рода • Новый вид БД – Key-Value системы • Необходимо выяснить, когда стоит использовать KV вместо РБД
Введение • Цель: • исследовать возможности практического применения KV, их преимущества и недостатки • Задачи: • реализовать модель с наследованием структуры данных, используя KV • выяснить качественные и количественные характеристики полученной системы • сравнить систему с другими по установленным параметрам
Распределенные хеш-таблицы • Используют хеш ключа для разделения ответственности между узлами • При перекрытии зон ответственности узлов система имеет возможность переживать отказы узлов без потери данных • Эффективные алгоритмы маршрутизации позволяют находить узлы, ответственные за определенный ключ за время O(log N), где N – число узлов в системе • Могут быстро находить данные на огромном количестве узлов по всей сети Интернет
Распределенные хеш-таблицы • Преимущества: • Масштабируемость • Устойчивость к отказам • Самоорганизация • Удобны для работы с объектами с известными идентификаторами. • Недостатки: • Проблемы с поиском • Проблемы с безопасностью и целостностью данных
Key-Value системы Project Voldemort • Основаны на DHT • Дополнительная функциональность • Key-Value система от LinkedIn – авторитетный разработчик • В основе лежит DHT • Богатый дополнительный функционал • Множество сторонних проектов, расширяющих функционал
SN over KV • <object_id>.data– основные параметры (идентификаторы родителя и шаблона, имя и адаптер) • <object_id>.value – единичное значение • <object_id>.value.{<n>} – множественное значение • <object_id>.children.{<n>} – список дочерних объектов • <object_id>.successors.{<n>} – список наследников
Большие списки • Реализована фрагментации списков, поскольку в Project Voldemort нет ее встроенной поддержки • <list_id>.{<n>} – последовательность фрагментов списка • при достижении последним фрагментом определенного размера создается новый
Методика тестирования • Большинство тестов проводится на специальных наборах данных для выделения необходимой характеристики системы • Один тест проводится на реальных данных • Исследуется производительность основных операций над объектами
Методика тестирования • Каждая операция выполняется последовательно на 10 одинаковых объектах для получения среднего значения исследуемого времени • Время выполнения операции измеряется при нескольких значениях параметра, от которого это время может зависеть
Результаты измерений Чтение объекта из базы Установка значения атрибута Работа с структурой файловой системы
Выводы • Применение KV нежелательно, если • требуется часто искать среди многихобъектов по параметрам • имеется много одноуровневых сущностей • Применение KV наиболее выгодно при работе с иерархическими структурами с низким коэффициентом ветвления
Дальнейшая работа • Оптимизация работы с большими списками • Исследование возможностей ускоренного поиска по параметрам с помощью индексирования • Исследование вопроса безопасности в данной системе с разработкой методов обеспечения защищенности системы