Авторы: Дьяченко Ю.Ю., Мальчева Р.В..
Источник: Информационное пространство Донбасса: проблемы и перспективы : материалы V Респ. с междунар. участием науч.-практ. конф., 27 окт. 2022 г. / М-во связи Донец. Нар. Респ., М-во образования и науки Донец. Нар. Респ., Гос. орг. высш. проф. образования «Донец. нац. ун-т экономики и торговли им. М. Туган-Барановского», Гос. образоват. учреждение высш. проф. образования «Донец. нац. техн. ун-т» ; [коллектив авт. ; редкол.: Дрожжина С. В. и др.]. – Донецк : ГО ВПО «ДонНУЭТ», 2022. – 235 с.
Авторы: Дьяченко Ю.Ю., Мальчева Р.В..
ГОУВПО «Донецкий национальный технический университет»
ВЫБОР ТЕХНИЧЕСКИХ СРЕДСТВ ДЛЯ РЕАЛИЗАЦИИ ХРАНИЛИЩА ДАННЫХ ПРИ СОЗДАНИИ ЭЛЕКТРОННОЙ БИБЛИОТЕКИ
В настоящее время изменилось не только направление работы библиотек, но и мнение о библиотеках в целом. Одним из самых востребованных ресурсов в интернете являются электронные библиотеки. Современная электронная библиотека состоит из множества компонентов, которые обеспечивают основные функции библиотеки: хранение данных (книг и вспомогательной информации) и поиск как минимум по метаданным (год выпуска, название, автор и тд.). В расширенном варианте возможен поиск по содержимому книг.
В данной статье основное внимание уделено выбору технических средств для поддержки первой функции – организации хранения данных. При этом упор сделан на удобстве доступа к данным и чтения, ведь по самым скромным оценкам каждую книгу могут читать тысячи людей, т.е. запрашивать периодически к ней доступ, соответственно, соотношение количества прочтений к записи измеряется несколькими порядками. Так же необходимо не забывать о масштабировании и защите данных, что обеспечивается хранением данных в нескольких экземплярах, что не только позволяет обезопасить данные в случае утраты одного или нескольких экземпляров хранилищ, но и распределить между ними нагрузку.
Система управления базами данных (СУБД) – это определенный комплекс программно-языковых средств, предоставляющих возможность создания базы данных и управление данными. Рассмотрим основные их типы для выбора наиболее подходящего.
Наиболее известными системами управления данными являются реляционные СУБД, предназначенные для хранения и организации данных с заданными отношениями для быстрого доступа [1]. Данные в таких базах данных упорядочены в виде таблиц, в которых содержится информация о каждой сущности, представленные в заданных категориях с помощью строк и столбцов. Реляционные базы данных хранят информацию в таблицах, связанных между собой определенными отношениями, позволяющими извлекать или объединять данные из одной или нескольких таблиц посредством одного запроса. Реляционные базы обладают следующими достоинствами: стандартизированность; поддержка многими компаниями гигантами в IT сфере; поддержка различных архитектур; высокоуровневая структура. К недостаткам следует отнести медленный доступ к данным, трудоемкость разработки и необходимость учёта особенностей модели при разработке на концептуальном уровне (ключи – идентификаторы).
Ключ-значение СУБД - это тип нереляционных баз данных, в котором для хранения данных используется простой метод "ключ-значение". База данных на основе пар "ключ-значение" хранит данные как совоупность пар "ключ-значение", в которых ключ служит уникательным идентификатором. Как ключи, так и значения могут представлять собой что угодно - от простых до сложных оставныъ объектов [2] В простом виде, это некая таблица с уникальным ключом и связанным с ним значением. Достоинства: быстрый поиск и простое масштабирование. Недостатки – возможность построения только простых структур таблиц и недоступность проведения операций со значениями, таких как сортировка или анализ.
Документоориентированные СУБД – это специальный тип СУБД, предназначенный для хранения иерархических структур данных (документов). Обычно реализуется с помощью подхода NOSQL (Not Only SQL). В основе документоориентированных СУБД лежат документные хранилища, имеющие структуру дерева. Моделью данных в документных БД является документ – структурированный текст, который содержит определенных синтаксис. К достоинствам этого типа следует отнести отсутствие схемы БД, быстрое создание и обслуживание, а также отсутствие лишних ключей. В качестве недостатков можно отметить слабую безопасность, проблемы с атомарностью (изоляцией от параллельных процессов) и ограничения по проверке на согласованность.
Колоночная СУБД – это СУБД, которая хранит таблицы данных по столбцам, а не по строкам. Хранение данных в столбцах позволяет перекрыть недостатки строчных БД, однако, при этом все преимущества вторых перетекают в недостатки колоночных. Достоинства: быстрые и эффективные выборки на больших таблицах; изменение структур таблиц любых размеров происходит быстро; сжимаемость данных. Недостатки: медленная запись; не поддерживают транзакции.
Перейдем к сравнению файловых систем и объектных хранилищ. Несмотря на то, что существуют действительно сложные и функциональные файловые системы, которые могут поддерживать работу с несколькими физическими серверами, осуществлять доступ и защиту данных, этот вариант уступает по некоторым характеристикам объектным хранилищам. Они призваны исправить недостатки файловых систем и предоставить систему хранения файлов, способную обрабатывать петабайты данных, на разных физических системах. В отличие от файловых систем, объектные хранилища не поддерживают вызовы ввода-вывода POSIX: открытие, закрытие, чтение, запись и поиск файла. Вместо этого у них только две основные операции: PUT и GET [3]. Они более масштабируемые, отказоустойчивые и надежные, чем параллельные файловые системы. Кроме того, у них ошеломляющая пропускная способность для некоторых рабочих нагрузок. Такие характеристики производительности достигаются за счет отказа от файлов и каталогов.
Однако, поскольку у объектного хранилища всего несколько доступных операций, появляются важные ограничения [3]:
- PUT создает новый объект и заполняет его данными;
- в результате данные в существующем объекте невозможно изменить, поэтому все объекты в хранилище считаются неизменяемыми;
- при создании нового объекта хранилище возвращает его уникальный идентификатор, обычно UUID, у которого нет такого внутреннего значения, как у имени файла;
- GET извлекает содержимое объекта на основе идентификатора объекта (UUID).
Простота организации объектного хранилища делает его масштабируемым, но также ограничивает его функциональность. Во-первых, из-за неизменяемости объектов сценарии использования ограничены однократной записью и многократным чтением, т.е. объектное хранилище нельзя использовать для временного или горячего хранения, а его приложения ограничиваются архивированием данных. Во-вторых, само хранилище состоит из данных и идентификатора объекта. Любые метаданные (логическое имя файла, время создания, владелец, права доступа) нужно размещать вне хранилища. Это может быть неудобно. Примером таких СУБД может послужить Ceph и Minio, которые реализуют все необходимые функции, такие как масштабирование, защита от потери данных и многое другое. Они проверены временем и используются большим количеством компаний. Так, например, Ozon использует Ceph и обрабатывает десятки тысяч запросов в секунду.
Выводы
Исходя из вышеперечисленного, выбран способ хранения для цифровой библиотеки - связка объектного хранилища, которое возьмет на себя основные обязанности по хранению большей части данных, и СУБД на open-source решении Ceph для хранения метаданных. Выбор Ceph обусловлен множеством предоставляемых им функций, что позволяет начать использование с самого простого, минимального кластера и масштабировать его по мере необходимости. Кроме того Ceph использует стандартизованный Amazon интерфейс S3, что оставляет возможность в дальнейшем отказаться от Ceph в пользу других хранилищ или даже облачных реализаций.
Список используемых источников:
1. Реляционные базы данных: достоинства и недостатки [Электронный ресурс] – Режим доступа: https://www.sites.google.com/site/gosyvmkss12/bazy-dannyh/07-relacionnye-bazy-dannyh-dostoinstva-i-nedostatki
2. Что такое база данных на основе пар "ключ-значение"? [Электронный ресурс] – Режим доступа: https://aws.amazon.com/ru/nosql/key-value/
3. Принципы организации объектных хранилищ [Электронный ресурс] – Режим доступа: https://habr.com/ru/company/vk/blog/521190/