Статья опубликована в рамках: Научного журнала «Студенческий» № 16(60)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3
АНАЛИЗ ПОДХОДОВ К ОРГАНИЗАЦИИ КЭШИРОВАНИЯ ДАННЫХ
Обозначения и сокращения:
СХД - Система хранения данных [1]
Введение
В компаниях, разрабатывающих СХД производятся множество тестов для тестирования различных аспектов работы СХД, среди которых может быть проверка надёжности, скорости работы, и т.д. После осуществления тестирования может быть произведен анализ результатов, для получения дополнительной информации о произведенном тесте с использованием его выходных файлов. Так же, в рамках тестирования СХД может производиться просмотр ранее осуществленных тестов, например, для возможной корректировки условий проведения теста или для осуществления дополнительного анализа результатов тестирования. В связи с присутствием данных шагов, возникает необходимость использования кэширования данных для ускорения работы с данными, подходы к которым и будут рассмотрены ниже.
Основная часть
Рассмотрим различные подходы к организации кэширования данных используя текущую монолитную архитектуру приложения.
Рисунок 1. Диаграмма развёртывания до использования кэширования
На рисунке 1 изображена системная архитектура системы, отображающая текущую реализацию системы. В данной реализации все данные хранятся в сетевой файловой системе, откуда они загружаются модулем работы с данными в серверном приложении. В дальнейшем данные используются модулем визуализации для обработки данных для их дальнейшей визуализации.
Рассмотрим различные подходы к организации кэширования данных. На рис. 2 [2] изображена схема использования глобального кэша для ускорения доступа к наиболее часто используемым данным.
Рисунок 2. Использование глобального кэша
При использовании данного подхода происходит ускорение доступа к данным за счёт того, что глобальный кэш предоставляет данные быстрее, чем нижележащий слой данных. Данный подход решает проблему низкой скорости при доступе к данным, но не решает другую существенную проблему, проблему локальности данных. При необходимости загрузить данные и произвести их обработку при данном подходе узел, на котором происходит обработка данных и узел хранящие данные разные, соответственно присутствуют дополнительные накладные расходы на загрузку данных из кэша.
Рассмотрим подход с использованием распределённого кэша, схема которого изображена на рисунке 3 [2].
Рисунок 3. Использование распределенного кэша
Данный подход отличается от предыдущего подхода в первую очередь тем, что каждый из узлов имеет собственный кэш, при отсутствии данных в котором происходит запрос к нижележащему слою данных. Данный подход имеет серьезное преимущество по сравнению с предыдущим в связи с тем, что при необходимости загрузить и обработать данные, в случае наличия данных в кэше, нет необходимости осуществлять сетевое взаимодействие для получения данных, так как данные уже находятся в оперативной памяти узла. Данный подход позволяет решить проблему локальности данных, описанную в предыдущем подходе, а также позволяет увеличивать количество вычислительных узлов, а также узлов хранящих данных добавлением новых узлов.
Для реализации был выбран второй подход с использованием распределенного кэша. Данный подход облегчает масштабирование как кэширующих узлов, так и вычислительных узлов, которые в данном подходе являются одним узлом.
Разработанная системная архитектура
На рисунке 4 изображена спроектированная системная архитектура системы. Ниже описаны компоненты системы. Данная диаграмма описывает пример с использованием двух серверов доступа к данным, которые могут быть добавлены при необходимости.
- Модуль работы с данными – программный компонент, осуществляющую работу с данными, хранящимся в Hazelcast.
- Модуль визуализации – программный компонент, позволяющий осуществлять визуализацию данных и использует информацию из MongoDB, а также использует модуль работы с данными и модуль работы с тестами.
- Модуль работы с тестами – программный компонент, который позволяет получать информацию о тестах, типах тестов и осуществлять действия с ними используя MongoDB как источник данных.
- Приложение доступа к данным – приложение, включающее в себя Hazelcast, которое осуществляет прямой доступ к данным в сетевой файловой системе и осуществляет его дальнейшее кэширование, а также содержит модуль работы с данными, который производит обработку данных.
Рисунок 4. Системная архитектура
Выводы
В результате была рассмотрена текущая системная архитектура, существующий процесс работы с данными и рассмотрены различные подходы к кэшированию данных, их слабые и сильные стороны. В результате сравнения был осуществлён выбор подход, с использованием которого была разработана новая системная архитектура.
Список литературы:
- Отдел информатизации образования, «Система Хранения Данных (СХД)», [Электронный ресурс]. URL: http://hotuser.ru/shd
- Scalable Web Architecture and Distributed Systems [Электронный ресурс] URL: https://www.aosabook.org/en/distsys.html
Оставить комментарий