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

3 Feb, 20:10

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

Как выжать максимум скорости из БД? 🚀

Ситуация, наши данные хранятся в кластере с несколькими хостами и мы хотим получить максимально быстрый ответ, индексы и SQL-оптимизации уже сделали, но все еще не то, что надо.

Hedged Requests

Вместо ожидания одного конкретного узла, мы отправляем запрос сразу на все реплики параллельно. Кто первый прислал ответ тот и победил. Остальные запросы отменяются.

Как это выглядит на практике?

1. Создадим n независимых горутин на каждый хост
2. Используем общий контекст. Как только первый воркер вернул результат отменяем работу остальных.
3. Результат пишем в буферизированный канал и забираем первый пришедший.

Какие минусы у подхода?

• Нагрузка: Потребление CPU и сетевого трафика растет пропорционально количеству реплик.
• Ложные ошибки: Если у ближайшего хоста отвалилась сеть, он ответит быстрее всех с ошибкой, хотя другие хосты могли дать верный ответ.

Возможное Решение: Игнорировать НЕ бизнес ошибки, ждать ответа остальных хостов.

🔗 [ССЫЛКА НА КОД С РЕАЛИЗАЦИЕЙ]

121 0 1 7
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов 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