Кэширование позволяет оптимизировать время отклика приложений и сократить затраты на лицензирование базы данных. Однако это непростая задача: из-за необходимости ручной настройки (то есть отбора данных для кэширования) она требует дополнительных ресурсов и увеличивает риски. В этой статье я расскажу о том, как инструмент 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 Data, который подключается к базе данных от имени приложения.

Современным решениям кэширования не хватает логики аннулирования, кроме срока жизни, или они требуют сложных настроек. Это сопряженный с риском длительный процесс, выполняемый вручную. Heimdall интеллектуально кэширует и аннулирует данные, устраняя риск и необходимость в угадывании.

Начало работы

При настройке приложений для использования посредника Heimdall SQL Server в приложение не вносится никаких изменений, кроме перемены адресов URL и пары «узел + порт» базы данных; не требуется изменений ни в программном коде, ни в системе баз данных (экран 1). Как результат, на панели мониторинга на экране 2 отображается трафик запроса и уровень производительности сервера. Обратите внимание, что среднее время запроса для трафика, исходящего из кэша, — 50 микросекунд по сравнению с 1000 микросекунд из базы данных. Развернув кэширование из этого приложения, мы получаем выигрыш в производительности на уровне данных более чем в 20 раз!

Мастер установки Heimdall Data
Экран 1. Мастер установки Heimdall Data
Панель мониторинга 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).