Кэширование позволяет оптимизировать время отклика приложений и сократить затраты на лицензирование базы данных. Однако это непростая задача: из-за необходимости ручной настройки (то есть отбора данных для кэширования) она требует дополнительных ресурсов и увеличивает риски. В этой статье я расскажу о том, как инструмент Heimdall Data автоматически кэширует данные, не нарушая текущей инфраструктуры.
Почему кэширование
- Исследования показали, что время загрузки страниц сокращается на 20% и на столько же повышаются коэффициенты преобразования.
- Повышается производительность и сокращается время отклика приложений.
- Уменьшаются затраты на лицензирование базы данных.
- Повышается горизонтальное масштабирование базы данных.
Что кэшировать
Типичный список контрольных вопросов при организации кэширования следующий:
- Какие данные можно кэшировать безопасно?
- Принесет ли кэширование выигрыш в производительности?
- Как поддерживать актуальность кэша?
Пригодность для кэширования зависит от актуальности и синхронизации. Каковы гарантии, что запись, выполненная на одном узле, будет немедленно обновлена на другом? Без такой гарантии кэширование сопряжено с риском и с большой вероятностью нарушит функционирование приложения. Решение кэширования должно приспосабливаться к изменениям трафика для оптимизации производительности.
Кэширование на уровне приложения
SQL Server обеспечивает базовое кэширование (например, запроса плана и буферного пула), но не решает проблему сетевой задержки, когда запросы поступают в базу данных и приводят к потерям из-за повторной передачи на сервере приложений.
Некоторые организации размещают дополнительные кэши на стороне приложения, такие как Redis, Amazon ElastiCache и Hazelcast: это SQL-кэши перед базой данных, предназначенные для повышения производительности приложения и снижения затрат на обработку базы данных. Они снижают нехватку памяти для буферного пула и повышают эффективность запросов, обрабатываемых сервером базы данных.
Однако кэширование на уровне приложений выполняется вручную, следовательно, возможны ошибки. Владельцам приложений по-прежнему необходимо определять, какие данные сохранять в кэше, часто отслеживать изменения в структуре данных и вносить соответствующие корректировки. А что если бы существовало решение для автоматического кэширования?
Автоматическое кэширование с помощью Heimdall Data
Технические подразделения тратят до 20% своих ресурсов на построение и обслуживание подсистемы кэширования. Этих эксплуатационных затрат можно избежать с помощью решения кэширования Heimdall Data:
- Интеллектуальное автокэширование, не требующее изменений в приложениях или SQL Server.
- Алгоритмы машинного обучения проводят кэширование, только если удается получить выигрыш в производительности, и автоматически выполняют аннулирование.
- Интеллектуальное кэширование на двух уровнях (см. рисунок):
— в памяти;
— по выбору пользователя (например, Amazon ElastiCache, Redis).
Рисунок. Архитектура кэширования Heimdall Data |
Heimdall Data — программный агент, работающий с любыми приложениями, в том числе сторонними, поскольку не требуется никаких изменений в программном коде. Достаточно изменить сетевые настройки для подключения приложения к серверу-посреднику Heimdall Data, который подключается к базе данных от имени приложения.
Современным решениям кэширования не хватает логики аннулирования, кроме срока жизни, или они требуют сложных настроек. Это сопряженный с риском длительный процесс, выполняемый вручную. Heimdall интеллектуально кэширует и аннулирует данные, устраняя риск и необходимость в угадывании.
Начало работы
При настройке приложений для использования посредника Heimdall SQL Server в приложение не вносится никаких изменений, кроме перемены адресов URL и пары «узел + порт» базы данных; не требуется изменений ни в программном коде, ни в системе баз данных (экран 1). Как результат, на панели мониторинга на экране 2 отображается трафик запроса и уровень производительности сервера. Обратите внимание, что среднее время запроса для трафика, исходящего из кэша, — 50 микросекунд по сравнению с 1000 микросекунд из базы данных. Развернув кэширование из этого приложения, мы получаем выигрыш в производительности на уровне данных более чем в 20 раз!
Экран 1. Мастер установки Heimdall Data |
Экран 2. Панель мониторинга Heimdall Data |
Среди прочей статистики — показатель попаданий кэша и трафик запросов для каждого сервера. При показателе попаданий кэша 90% нагрузка на базу данных существенно снижается, что позволяет обслуживать больше пользователей в одной инфраструктуре базы данных.
Таким образом Heimdall Data автоматизирует кэширование для SQL Server. Пользователи получат выигрыш в производительности и снизят потребность в приобретении дополнительных лицензий SQL Server. Благодаря уменьшению нагрузки на базу данных требуется меньше экземпляров SQL Server. Бесплатную пробную версию Heimdall можно загрузить с веб-сайта Heimdall Data (http://www.heimdalldata.com/? utm_source=ITProArticle).
Ресурсы и ссылки
- Инструкции по загрузке Heimdall (http://www.heimdalldata.com/download-self/?utm_source=ITProArticle.)
- Краткое руководство по началу работы (http://www.heimdalldata.com/quick-start/?utm_source=ITProArticle).
- Видео по установке Heimdall (https://www.youtube.com/watch?v=ADxiTbuR-qY&list=PLTXW_-kHGfp7Dc06sxgP_Bjaif9mUXwTe&utm_source=ITProArticle).