Статья опубликована в рамках: Научного журнала «Студенческий» № 15(311)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7
АНАЛИЗ НЕРЕЛЯЦИОННЫХ ХРАНИЛИЩ ДАННЫХ ДЛЯ РАЗРАБОТКИ ОТКАЗОУСТОЙЧИВЫХ СИСТЕМ
ANALYSIS OF NON-RELATIONAL DATA STORES FOR THE DEVELOPMENT OF FAULT-TOLERANT SYSTEMS
Vladislav Pushkin
student, Department of Information Systems and Networks, Bauman Moscow State Technical University,
Russia, Moscow
Kirill Platonov
student, Department of Information Systems and Networks, Bauman Moscow State Technical University,
Russia, Moscow
Valeria Platonova
student, Department of Computer systems and networks, Bauman Moscow State Technical University,
Russia, Moscow
Maria Skvortsova
scientific supervisor, PhD of Computer Science, Associate Professor, Bauman Moscow State Technical University,
Russia, Moscow
АННОТАЦИЯ
В статье рассматриваются подходы к проектированию отказоустойчивых информационных систем. Автором сделан акцент на выбор и использование нереляционных хранилищ данных. Проведён сравнительный анализ таких систем хранения, как MongoDB, Redis, Memcached и Amazon DynamoDB, по ключевым параметрам: производительность, масштабируемость и безопасность. Составлены рекомендации относительно выбора подходящего хранилища в зависимости от специфики задач.
ABSTRACT
The article discusses approaches to the design of fault-tolerant information systems with a focus on the selection and use of non-relational data stores. A comparative analysis of storage systems such as MongoDB, Redis, Memcached, and Amazon DynamoDB is carried out based on key parameters: performance, scalability, and security. Recommendations are provided for choosing the appropriate data store depending on the specifics of the task.
Ключевые слова: отказоустойчивость, информационные системы, нереляционные базы данных, масштабируемость, производительность, безопасность.
Keywords: fault tolerance, information systems, non-relational databases, scalability, performance, security.
Современные информационные системы предъявляют высокие требования к собственной надежности, доступности и противодействию сбоев рабочего процесса. Отказоустойчивые системы представляют собой архитектурные решения, обеспечивающие непрерывную работу приложений даже при остановке отдельных компонентов. Одним из ключевых элементов, определяющих устойчивость системы, является хранилище данных. В последнее десятилетие широкое распространение получили нереляционные базы данных (NoSQL), отличающиеся гибкостью, возможностью горизонтального масштабирования и высокой производительностью [2]. Их использование позволяет повысить отказоустойчивость систем за счёт распределительного хранения и дублирования данных.
Отказоустойчивая система. Отказоустойчивая система – это программный или аппаратный комплекс, способный продолжать функционирование при отказе его отдельных компонентов. В этом случае, цели достигаются за счёт резервирования, масштабирования, балансировки нагрузки и мониторинга.
Нереляционные базы данных. Нереляционные базы данных отличаются от традиционных SQL-решений отсутствием фиксированной схемы и организацией данных в виде документов, пар ключ-значение, графов и компонентов подобного рода.
Преимущества нереляционных баз данных:
- гибкая структура хранения;
- эффективная обработка больших объёмов данных;
- горизонтальное масштабирование;
- высокая скорость обработки операций записи и чтения.
Типичные области применения: Big Data, веб-приложения, распределённые системы, IoT, кэширование и аналитика.
Выбор подходящей системы хранения данных оказывает значительное влияние на отказоустойчивость. Основные критерии:
- производительность,
- масштабируемость,
- безопасность,
- простота интеграции с другими компонентами системы.
Таблица 1.
Сравнение популярности и активности
Хранилище данных |
Загрузки (GitHub) |
Активность на GitHub |
Оценка пользователей |
Используется крупными компаниями |
MongoDB |
>50 млн |
Высокая |
4,9 |
Да |
Redis |
>40 млн |
Высокая |
4,8 |
Да |
Memcached |
> 15 млн |
Средняя |
4,6 |
Нет |
DynamoDB |
- |
Высокая |
4,9 |
Да |
Таблица 2.
Сравнение пропускной способности
Хранилище данных |
Пропускная способность |
MongoDB |
До 200 тыс. запросов в секунду на узел |
Redis |
До 10–100 тыс. запросов в секунду [1] |
Memcached |
До 500 тыс. – 1 млн запросов в секунду [4] |
DynamoDB |
От 10 тыс. до 20 млн запросов в секунду, в зависимости от конфигурации |
Таблица 3.
Сравнение масштабируемости
Хранилище данных |
Пропускная способность |
MongoDB |
Горизонтальное масштабирование с использованием кластеров |
Redis |
Горизонтальное масштабирование через шардинг и репликацию |
Memcached |
Ограничено масштабированием одного сервера |
DynamoDB |
Автоматическое масштабирование в облаке AWS |
Таблица 4.
Сравнение уровня безопасности
Хранилище данных |
Шифрование |
Аутентификация |
Защита от несанкционированного доступа |
MongoDB |
TLS/SSL |
LDAP, Kerberos |
Ролевая модель, IP-фильтрация |
Redis |
TLS/SSL |
Пароль, сертификаты |
Простая ролевая модель, IP-фильтрация [3] |
Memcached |
Нет |
Пароль |
IP-фильтрация |
DynamoDB |
TLS/SSL |
IAM-учетные записи |
Политики доступа, аудит, контроль на уровне записей |
Вывод. Разработка отказоустойчивых систем требует комплексного подхода, включающего в себя выбор надежного хранилища данных. Нереляционные базы данных играют важную роль в обеспечении отказоустойчивости за счёт масштабируемости, высокой производительности и гибкости. Выбор конкретного решения зависит от архитектуры проекта, требований к безопасности, масштабируемости и скорости обработки данных. Redis является лидером по скорости, отлично подойдет для систем, в которых необходимо кэширование и обработка в реальном времени. Amazon DynamoDB подходит для облачных распределительных систем благодаря автоматическому масштабированию и безопасности. MongoDB оптимален для гибких и масштабируемых приложений с развитыми запросами. Memcached уступает вышеперечисленным хранилищам, поскольку имеет ограничения по безопасности и масштабируемости, однако может быть применим в задачах кэширования.
Список литературы:
- Архипкин В.М. Повышение скорости работы информационных систем с использованием Redis // Информационные технологии в процессе подготовки современного специалиста : межвузовский сб. науч. трудов. – Липецк : Липецкий государственный педагогический университет им. П.П. Семенова-Тян-Шанского, 2024. – С. 30–35.
- Володченкова Л.А., Козырев Д.В. Разработка серверной части программного приложения для удаленного хранения данных // Математические структуры и моделирование. – 2020. – № 1(53). – С. 108–138.
- Воронцова Д.П. Проблемы информационной безопасности системы управления базами данных Redis // Флагман науки. – 2024. – № 4(15). – С. 273–275.
- Официальная документация Memcached [Электронный ресурс]. – Режим доступа: http://memcached.org (Дата обращения 18.05.2025)
Оставить комментарий