RU

Доставка пива, алгоритм «Октагон» и поиск компании в EDGE: какие архитектуры придумали на Avito Grill & Go

Обычно на митапах всё довольно предсказуемо: доклады, слайды, кофе-брейк и немного общения между ними. Но в прошлом году мы решили перевернуть привы…

gogolangsystem designпроектирование системархитектурамитапhighload
Habr
RU

Как мы сократили поток событий в 600 раз с помощью FlinkSQL

Привет! Меня зовут Сергей Прокопкин , я развиваю мотивационную программу и отвечаю за realtime-систему трекинга заданий в  Авито .  В моти…

Kafkaflinkbackendstream processinghighloadархитектура системыоптимизация производительностиreal-time streamingdistributed systemsevent-driven architecture
Habr
RU

OLAP OVER HTTP: как отдавать большие аналитические данные через API и не положить сервис

Каждый день в 18:00 клиентам становится доступна отчётность по продажам, и многие одновременно нажимают кнопку «Загрузить отчёт». Это может быть дет…

clickhousehighloadоптимизацияperfomancedatabaseolapвысоконагруженные системыбазы данныхнагрузочное тестированиеozon tech
Habr
RU

От «быстрого JSON» к потоковой обработке данных: смена парадигмы в оценке производительности протоколов

Сразу хочу обозначить важный момент: эта статья не столько про пакет SilentJSON, сколько про схему работы с информацией , которую на его примере уда…

jsonпотоковая обработкапарсингgohighloadпроизводительностьоптимизацияsilentjsonzero-copy
Habr
RU

Отреверсили проприетарный gRPC и выложили в опенсорс 100% совместимый аналог их сервера, потом CLI

А вы тоже организуете общение между микросервисами по HTTP/1.1 + JSON? Так вот, адекватные люди на хайлоаде давно так не делают. Как это выглядит в…

grpcprotobufмикросервисыopen sourcedevopsreverse engineeringapibufhighload
Habr
RU

Firebase больше не тянет: как мы строили real-time-чаты на Centrifugo

Расскажу, как мы отказались от внешних серверов, безболезненно пережили переезд, избежали сбоев в высокий сезон и сократили расходы на эксплуатацию…

firebasecentrifugohighloadчатымиграция бдwebsocketsreal-timekubernetesmysqlмикросервисы
Habr
RU

1.5 миллиона событий в день и ни одной таблицы events: как мы считали продуктовую аналитику 300K-бота по голому проду

Маркетолог прислал мне скрин дашборда и одно слово: «пусто». На скрине — панель «Количество пришедших по реферальной ссылке за период». Ноль. Под не…

grafanamysqlпродуктовая аналитикаsqlretentionворонкаtelegram bothighloadметрики
Habr
RU

Анатомия HurriCache

HurriCache это распределенная key-value база данных с поддерожкой как простых типов ключ значение так и конейнеров, блокировок, работы с atomics и м…

highloadcachinginmemorygrpckey-valuelatency
Habr
RU

Oracle → PostgreSQL без даунтайма: как мы перевозили терабайт банковской базы и где всё ломалось

Задача звучала как задача из учебника: перенести кредитный домен банка с Oracle на PostgreSQL. 70+ таблиц, чуть больше терабайта данных, 500–3000 RP…

миграция баз данныхzero downtimecdcapache kafkapgbouncerhighloadархитектура бдshadow readsрепликация
Habr
RU

Меня подняли на смех за ответ про VIEW. Я поднял MySQL 8.4 и PostgreSQL 17 и померил

На одном собеседовании меня спросили про VIEW. Я ответил честно: в живых проектах они мне почти не попадались; для агрегатов надёжнее держать отдель…

sqlбазы данныхпроизводительностьбенчмаркингbackendhighload
Habr
RU

Как я сделал mmap-базу для 4 миллионов товаров и 700 тысяч посадочных страниц

Сделал mmap-базу для 4 млн товаров и получил ~35k RPS. Поиск оказался настолько быстрым, что bottleneck пришлось искать уже после базы. В итоге опти…

GommapJSONSilentJSONMakodbпроизводительностьhighloadиндексыshardingСУБД
Habr
RU

Как я ускорил работу с топом-пользователей с 36 минут до 20 секунд, используя Redis Sorted Set

Всем привет, меня зовут Михаил, я работаю Java/Kotlin разработчиком в ОТП Банке. Все мы знаем про Redis. Часто используем его для in-memory кэша. В…

javaredishighloadвысоконагруженные системыоптимизацияоптимизация кодаоптимизация запросовhighload systemsspringspring boot
Habr
RU

BiHA: встроенная отказоустойчивость Postgres Pro Enterprise и Standard

Построение HA-кластера в PostgreSQL традиционно требует внешнего стека: Patroni, распределенного хранилища конфигураций и набора вспомогательных ути…

postgres propostgres pro enterprisepostgres pro standardpostgres professionalbihaвысоконагруженные проектывысоконагруженные системыhighload
Habr
RU

От 12 часов к 30 минутам: как мы join’им миллиарды товарных движений в ClickHouse

Всем привет! Меня зовут Муса. Наша команда занимается витринами данных по товарному учёту. Каждый день мы доставляем около 10 млрд записей…

highloadclickhousebackendsystem-designbigdataбазы данныsqlolapархитектура данныхozon tech
Habr
RU

Балансировка кластера NGFW: 5 особенностей, которые важно учитывать при построении высокопроизводительной инфраструктуры

На первый взгляд балансировка кластера NGFW мало отличается от балансировки других средств информационной безопасности или ИТ-сервисов. Однако на пр…

масштабированиеотказоустойчивостьотказоустойчивый кластерhighloadhigh availabilityбалансировка нагрузкивысокая производительностьds proximaбалансировщик нагрузки
Habr
RU

Как VPS с 1 ГБ RAM пережил 1,2 млн запросов за сутки: разбираю «Шакализатор» по слоям

Мой мемный сервис «Шакализатор» победил в премии Яндекс Практикума , но меня больше интересовал другой вопрос: как VPS с одним ядром и 1 ГБ RAM пере…

Node.jsNext.jsNginxVPShighloadкэшированиеограничение конкурентностиgraceful degradationCodexswap
Habr
RU

Go без мифов: переход с C++, highload, рынок, зарплаты и путь разработчика — интервью с Владимиром Балуном

Go часто называют простым языком. Но простота синтаксиса не отменяет конкурентности, рантайма, сборщика мусора, интерфейсов, особенностей памяти и р…

GoGolangC++highloadгорутиныObservabilitybackendмикросервисыкарьера разработчикапереход на Go
Habr
RU

Как мы делали три консоли для киберигры: опыт разработки новой версии тренажера

Привет! На связи команда Далее . В этой статье расскажем, как мы взяли довольно простую игру-тренажер по кибербезопасности и сделали ее самостоятель…

кибербезинформационная безопасностьконсолиgolangwebrtccentrifugohighloadразработка игрвеб-разработкаархитектура
Habr
RU

Почему JSON на практике — быстрый формат для баз данных (если выкинуть лишние абстракции)

Мы привыкли считать JSON «медленным» текстовым форматом, удобным исключительно для людей. Мы используем его для REST API, конфигурационных файлов и…

gomakodbshared memoryhighloadjsonzero allocationоптимизациябазы данныхсистемное программированиеасинхронность
Habr
RU

От полной выгрузки к S3 и PostgreSQL: как мы доставляем гигабайты данных в память подов

Представьте себе высоконагруженный сервис, который решает, с какого из множества складов нужно отправить товар покупателю. В пике через него проходи…

highloadbackendgolanggoпроектирование системпрограммированиевысоконагруженные системыozon tech
Habr