TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Архитектура с Лаптевым

17 Sep, 22:59

Открыть в Telegram Поделиться Пожаловаться

Низкое лейтенси и кеш, или снова про прагматизм.

Как-то само собой в наших головах устоялось как факт – хочешь низкое лейтенси, используй кеш а не БД.
Но время идет, и кеши и БД развиваются друг к другу на встречу. Кеши теперь от БД не отличишь, а БД содержат кучу всевозможных in-memory кешей.

Современные реляционные БД держат горячие записи в in-memory кешах. Движок БД сам решает что есть горячие записи, но эффективная схема данных и правильно настроенная БД будут давать лейтенси не выше чем кеши вроде Redis у самых важных запросов.

Реляционные БД обычно не поддерживают шардирование из коробки (масштабирование операций записи), MySQL поддерживает но с кучей исключений.
Из коробки! - не надо тут про франкенштейнов поверх ядра вроде Postgres Pro и Тантор.
Кеши шардирование обычно поддерживают. Поэтому когда операций записи слишком много, кеши на удивление помогают, но не с производительностью как это принято считать, а с масштабированием 😁
А когда у нас в запасе NoSQL БД с часто неограниченным масштабированием, то и нужды в кеше получается что и нет.

Нужда остается, когда типы запросов и данные очень уж подходят под функции кеша, но кеш тут выступает как NoSQL БД полнофункциональная а не старый добрый кеш.

Shopify убрал Redis и оставил MySQL и легко справился с их сумашедшей нагрузкой 😆
И это все не супер новая какая-то история, уже лет 10 как эти идеи актуальны. Но я по прежнему встречаю очень популярное заблуждение - хочешь низкое лейтенси, используй кеш а не БД.

Недавно видел одну как бы микросервисную архитектуру, где все сервисы обращаются к одному инстансу PostgreSQL 😄
Нагрузка постоянно растет, но БД ее не замечает. Как такое возможно?
А потому что эту БД со всех сторон обложили Redis вроде как кешом, а на самом деле каждый инстанс Redis – это отдельная NoSQL БД.
Меня улыбнула эта находка, но расстроило что за долгие годы я первый кто это заметил 🤣

Поэтому давайте будем прагматичными а старые верования пора обновить 😜

834 0 10 13 8
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot