M
Maxim Korobov — DevBlog
@korobovdev60 подп.
145просмотров
3 февраля 2026 г.
question📷 ФотоScore: 160
Как выжать максимум скорости из БД? 🚀 Ситуация, наши данные хранятся в кластере с несколькими хостами и мы хотим получить максимально быстрый ответ, индексы и SQL-оптимизации уже сделали, но все еще не то, что надо. Hedged Requests Вместо ожидания одного конкретного узла, мы отправляем запрос сразу на все реплики параллельно. Кто первый прислал ответ тот и победил. Остальные запросы отменяются. Как это выглядит на практике? 1. Создадим n независимых горутин на каждый хост 2. Используем общий контекст. Как только первый воркер вернул результат отменяем работу остальных. 3. Результат пишем в буферизированный канал и забираем первый пришедший. Какие минусы у подхода? • Нагрузка: Потребление CPU и сетевого трафика растет пропорционально количеству реплик. • Ложные ошибки: Если у ближайшего хоста отвалилась сеть, он ответит быстрее всех с ошибкой, хотя другие хосты могли дать верный ответ. Возможное Решение: Игнорировать НЕ бизнес ошибки, ждать ответа остальных хостов. 🔗 [ССЫЛКА НА КОД С РЕАЛИЗАЦИЕЙ]
145
просмотров
1020
символов
Да
эмодзи
Да
медиа

Другие посты @korobovdev

Все посты канала →
Как выжать максимум скорости из БД? 🚀 Ситуация, наши данные — @korobovdev | PostSniper