Key-Value системы и их применение к моделям с наследованием структуры данных Московский физико-технический институт Выпускная квалификационная работа студента гр.617 Шевцова А. В. Научный руководитель Евдокимов А.В., к.ф.-м.н., доцент Научный консультант
19
Embed
Key-Value системы и их применение к моделям с наследованием структуры данных
Московский физико-технический институт. Key-Value системы и их применение к моделям с наследованием структуры данных. Выпускная квалификационная работа студента гр.617 Шевцова А. В. Научный руководитель Евдокимов А.В., к.ф.-м.н ., доцент Научный консультант Нарыжный И.Г. Введение. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Key-Value системы и их применение к моделям с наследованием структуры
данных
Московский физико-технический институт
Выпускная квалификационная работа студента гр.617 Шевцова А. В.
Научный руководительЕвдокимов А.В., к.ф.-м.н., доцент
Научный консультантНарыжный И.Г.
ВведениеПредпосылки: Любому Enterprise-приложению
необходима БД, позволяющая оперировать с данными и хранить их
Кроме РБД, существует множество других БД различного рода
Новый вид БД – Key-Value системыНеобходимо выяснить, когда стоит
использовать KV вместо РБД
ВведениеЦель: исследовать возможности практического
применения KV, их преимущества и недостатки
Задачи: реализовать модель с наследованием
структуры данных, используя KV выяснить качественные и количественные
характеристики полученной системы сравнить систему с другими по
установленным параметрам
Распределенные хеш-таблицы Используют хеш ключа для разделения ответственности между узлами При перекрытии зон ответственности узлов система имеет возможность переживать отказы узлов без потери данных Эффективные алгоритмы маршрутизации позволяют находить узлы, ответственные за определенный ключ за время O(log N), где N – число узлов в системе Могут быстро находить данные на огромном количестве узлов по всей сети Интернет
Распределенные хеш-таблицыПреимущества: Масштабируемость Устойчивость к отказамСамоорганизацияУдобны для работы с объектами с известными идентификаторами.Недостатки:Проблемы с поискомПроблемы с безопасностью и целостностью данных
Project Voldemort Key-Value система от LinkedIn – авторитетный разработчик В основе лежит DHT Богатый дополнительный функционал Множество сторонних проектов, расширяющих функционал
Key-Value системы Основаны на DHT Дополнительная функциональность
Модель SN
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 одинаковых объектах для получения среднего значения исследуемого времениВремя выполнения операции измеряется при нескольких значениях параметра, от которого это время может зависеть
Результаты измеренийРеализация SN over Voldemort SN over RDB Metamodel classic over RDB
Время, мс 0.49 2.87 2.92
Реализация SN over Voldemort SN over RDB Metamodel classic over RDB
Время, мс 1.65 7.91 11.63
РеализацияMetamodel classic over
RDBSN over RDB
SN over Voldemort(BulkStore)
SN over Voldemort
Время загрузки в БД,
с22.23 33.46 21.48 27.13
Время чтения из БД, с
12.21 15.68 2.65 7.25
Чтение объекта из базы
Установка значения атрибута
Работа с структурой файловой системы
Создание дочернего объекта
0 10 20 30 40 50 60 70 80 90 1000.00
5.00
10.00
15.00
20.00
25.00
Классическая метамодель SN с использованием РБД SN с использованием KV
Добавление значения атрибута
0 10 20 30 40 50 60 70 80 90 1000
2
4
6
8
10
12
14
16
18
20
SN over RDB Metamodel classic over RDB SN over Voldemort
Поиск объекта по имени
0 5 10 15 20 25 300
2
4
6
8
10
12
14
16
18
Metamodel classic SN over RDB SN over Voldemort
Сводные результатыMetamodel
classicSN over
RDBSN over
KVРабота с известным объектом/атрибутом с единичным значением
3 2 1
Работа с множественным атрибутом (N < 100) 3 2 1
Работа с множественным атрибутом (N > 100) 2 1 3
Создание дочернего объекта (N < 100) 3 1 2
Создание дочернего объекта (N > 100) 2 1 3
Поиск объекта по параметрам (N < 10) 2 3 1
Поиск объекта по параметрам (N > 10) 1 2 3
Выводы Применение KV нежелательно, если1) требуется часто искать среди многих
объектов по параметрам2) имеется много одноуровневых
сущностей Применение KV наиболее выгодно при работе с иерархическими структурами с низким коэффициентом ветвления
Дальнейшая работа Оптимизация работы с большими списками Исследование возможностей ускоренного поиска по параметрам с помощью индексирования Исследование вопроса безопасности в данной системе с разработкой методов обеспечения защищенности системы