Как сократить расходы на базы данных в четыре раза

Большинство корпоративных баз данных хранят всю информацию в оперативной памяти — это удобно, но дорого. По оценкам разработчиков, до 80% записей в типичной БД используются редко или не используются вовсе, однако продолжают занимать самый дорогой тип хранилища. Компании платят за скорость доступа к данным, которые никто не запрашивает.

Оперативная память обходится в 10–50 раз дороже дискового пространства. При объёме базы в 10 ТБ полное хранение в памяти может стоить компании 5–10 млн рублей в месяц. Перенос неактивных данных на диск способен снизить этот счёт до 1–2 млн рублей — без потери производительности для конечных пользователей.

Горячее и холодное

В основе подхода лежит простая классификация. Горячие данные — это то, к чему система обращается постоянно: активные пользовательские сессии, текущие транзакции, свежая аналитика за последние часы. Такие данные требуют мгновенного отклика и должны находиться в памяти. Холодные данные — история операций старше 30–90 дней, архивные логи, документы для аудита и compliance. Ко вторым обращаются редко, задержка в несколько секунд вполне приемлема, а значит, хранить их в дорогостоящей оперативной памяти нет никакого смысла.

Между этими категориями существуют и тёплые данные — информация со средней частотой обращения, например заказы за последнюю неделю. Они уже не горячие, но ещё востребованы для оперативной отчётности.

Автоматическое охлаждение без изменения кода

В СУБД Tarantool DB реализован встроенный механизм автоматического охлаждения — Cooler. Он работает в фоновом режиме и самостоятельно перемещает редко используемые записи с памяти на диск по заданным администратором правилам: например, через какое время бездействия запись считать холодной и сколько обращений нужно, чтобы она оставалась в памяти. При этом приложение не замечает никаких изменений — код остаётся прежним, а логика работы с данными не затрагивается.

Результаты тестирования механизма на реальных проектах оказались показательными: потребление оперативной памяти сократилось с 9,6 ТБ до 2,5 ТБ после перевода 74% данных на дисковое хранилище. Экономия составила около 4,2 млн рублей в месяц, при этом скорость обращения к горячим данным осталась прежней — 0,5 миллисекунды. Скорость доступа к холодным данным составила 5–15 миллисекунд — вполне достаточно для аналитических и архивных запросов.

Кому это выгоднее всего

Наибольший эффект охлаждение данных даёт в отраслях с быстро накапливающейся историей: в финансовом секторе транзакции старше суток можно переводить на диск с экономией памяти до 70–80%, в ритейле заказы старше 30 дней — 60–70%, в IoT-проектах показания датчиков старше часа — 80–90%. Отдельный бонус для крупных корпораций: ряд СУБД лицензируется по объёму используемой памяти, так что сокращение её потребления напрямую снижает и лицензионные платежи.