К каталогу
paper
experience-report

Monarch: Google's Planet-Scale In-Memory Time Series Database

Разбор эволюции Monarch: planet-scale TSDB, архитектурные оптимизации (aggregation, FHI, sharding) и редизайн 2023 года через quality-attribute подход.

Открыть PDF

Практика чтения для этого источника ещё не опубликована

Ниже доступен готовый редакционный brief из прежнего каталога. Он даёт контекст, но не засчитывается как lab.

Открыть оригинал

Готовый редакционный разбор

Он сохранён из прежней версии каталога и расположен после самостоятельной практики, чтобы не подменять чтение оригинала готовым пересказом.

Whitepaper (VLDB 2020)

Monarch: Google's Planet-Scale In-Memory Time Series Database

Оригинальная статья о дизайне и масштабировании Monarch.

Перейти на сайт

Monarch — одна из ключевых инфраструктурных систем Google для мониторинга. В этом разборе соединены два поста из tg-канала: базовая архитектура и масштабные оптимизации из whitepaper 2020, а также эволюция и редизайн из paper 2023.

Первая страница whitepaper Monarch: Google's Planet-Scale In-Memory Time Series Database

Первая страница whitepaper (клик по изображению откроет PDF).

Whitepaper (ICSE-SEIP 2023)

Monarch redesign follow-up

Редизайн через quality-attribute сценарии и UML-модели.

Перейти на сайт

Что важно знать про Monarch

Planet-scale TSDB

Глобально распределённая мультитенантная in-memory БД для мониторинга пользовательских и инфраструктурных сервисов Google.

Почти 950 млрд рядов

На июль 2019 года система держала почти 950 млрд time-series в оперативной памяти (~петабайт сжатых данных).

Сильная агрегация на сборе

Средний collection aggregation ~36:1, в отдельных случаях до 1,000,000:1.

Снижение fan-out через FHI

Field Hints Index помогал заранее отсекать десятки тысяч нерелевантных leaves.

Архитектурный поток данных и запросов

Ingest path

Clients -> ingestion routers -> zone -> leaf router -> Leaves (in-memory), где уже может применяться collection aggregation.

Query path

Root Mixer fan-out по зонам через Zone Mixers, Index Servers (включая FHI) уменьшают число целевых leaf-узлов.

Global + regional planes

Региональные зоны автономно принимают и хранят данные, глобальные плоскости дают единый query/config контур.

Ваш обзор [1/2]

Telegram #3962

Первый пост: как Monarch был устроен и что дало масштаб.

Перейти на сайт

Оптимизации, которые дали масштаб

Collection aggregation

Раннее схлопывание рядов уменьшает кардинальность, нагрузку на память/CPU и сетевой трафик.

Field Hints Index (FHI)

Дешёвый предикатный индекс, который сокращает fan-out до выполнения тяжёлых распределённых запросов.

Лексикографическое шардирование по target

Метрики одного объекта попадают на один leaf: локальные агрегации/джойны дешевле, межшардовый fan-out ниже.

Ваш обзор [2/2]

Telegram #3963

Второй пост: редизайн 2023, Managed Prometheus и практические уроки.

Перейти на сайт

Что изменилось после 2020: редизайн 2023

  • Драйвер редизайна: рост QPS и числа рядов примерно в 2 раза год к году и риск просадки по SLO.
  • Подход: quality-attribute сценарии + лёгкие UML static/runtime модели.
  • Ключевое изменение: декомпозиция Leaf на Leaf (KV storage), Leaf Index Server и Leaf Mixer.
  • Результат: лучше доступность и сопровождаемость, умеренный рост latency из-за +2 RPC hops (~12–14 -> 16–18).

Экосистема вокруг Monarch и Prometheus

Практические уроки из истории Monarch

  • Агрегируйте ближе к источнику: раннее уменьшение кардинальности снижает стоимость всей цепочки.
  • Инвестируйте в дешёвые предикатные индексы для pre-filtering перед дорогим fan-out.
  • Явно разделяйте stateful и stateless роли: проще масштабировать, сопровождать и удерживать SLO.
  • Шардируйте по бизнес-ключу (target/entity), чтобы локализовать коррелированные данные и вычисления.

Связанные главы