К каталогу
paper
literature-review
conceptual

What Goes Around Comes Around... And Around...

Разбор статьи Stonebraker и Pavlo о развитии баз данных: data models, архитектуры DBMS и практические уроки последних 20 лет.

Открыть PDF

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

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

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

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

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

Основной источник

What Goes Around Comes Around... And Around...

SIGMOD Record, 2024: ретроспектива эволюции DBMS за 20 лет.

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

Статья 2024 года от Michael Stonebraker и Andrew Pavlo продолжает обзор 2005 года и проверяет, какие идеи DBMS действительно выдержали время: от data models и SQL до архитектур cloud/lakehouse/NewSQL.

Первая страница whitepaper What Goes Around Comes Around... And Around...

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

Предыстория

What Goes Around Comes Around (2005)

Stonebraker и Hellerstein о 35-летней истории DBMS и прогнозах развития.

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

Контекст и авторы

Stonebraker известен как создатель Postgres, а Pavlo исследует и преподаёт архитектуру БД; часть его лекций доступна на YouTube.

В 2005 году авторы предупреждали, что объектные и XML СУБД вряд ли вытеснят реляционную модель. Спустя почти 20 лет они снова поднимают тот же вопрос, но уже в мире cloud, vector search и новых распределённых SQL-систем.

Как устроен разбор (части 1/3, 2/3 и 3/3)

Part I

Data models и query languages: где NoSQL остался нишей, а где приблизился к возможностям RDBMS.

Part II

Архитектуры за 20 лет: columnar, cloud DB, data lake/lakehouse и NewSQL.

Part III

Хвост архитектур (accelerators, blockchain DB) и практические предостережения авторов.

Модели данных и языки запросов

Первая часть статьи проходит по восьми классам систем и показывает, что многим «альтернативам SQL» всё равно пришлось перенять зрелые элементы реляционного мира.

MapReduce-системы

Batch

MapReduce создавался в Google для массовой batch-обработки (например, индексации web-crawl) и не диктовал жёсткую модель данных.

  • Запросная модель строится вокруг пользовательских map/reduce-функций, а не декларативного языка вроде SQL.
  • Открытый Hadoop стал массовым стандартом, но заметно уступил современным платформам по производительности и интерактивности.

Примеры: MapReduce paper · Hadoop · Apache Spark

Key-Value хранилища

Cache-first

Самая простая data model: пары «ключ-значение», которые отлично подходят для кэшей, сессий и простых high-throughput сценариев.

  • Классические ограничения: нет join и полноценной реляционной алгебры, а индексные возможности ограничены.
  • Многие системы со временем добавили JSON и вторичные индексы, сближаясь с более богатыми моделями.

Примеры: Memcached · Redis · DynamoDB · Aerospike · LevelDB · RocksDB

Документные базы данных

JSON

Документная модель (JSON-подобные объекты) была популярна как простой путь интеграции с веб-приложениями и практикой schema-on-read.

  • К 2020-м большинство document DB добавили SQL-подобные интерфейсы, ACID-транзакции и элементы schema-on-write.
  • Практическая дистанция между document и relational подходами стала заметно меньше.

Примеры: MongoDB

Column-family (wide column)

Scale-out

Wide-column модель унаследовала идеи Bigtable: масштабируемость и гибкость для распределённых нагрузок при более ограниченной структуре данных.

  • Ранние версии систем вроде Cassandra не имели полноценной поддержки вторичных индексов и транзакций.
  • С развитием экосистемы появились LWT и дополнительные индексные механизмы, но с заметными компромиссами.

Примеры: Bigtable · Apache Cassandra · Cassandra trade-offs

Поисковые движки

Search

Специализированы под полнотекстовый поиск и inverted-index workloads: быстрый search, агрегации и релевантность.

  • Сильны в поиске, но обычно ограничены в транзакционных гарантиях относительно классических OLTP DBMS.
  • Реляционные СУБД тоже умеют full-text, но API часто менее удобен, чем у dedicated search-движков.

Примеры: Elasticsearch · Apache Solr

Базы данных для массивов

Scientific

Ориентированы на многомерные массивы в научных доменах: геопространственные, геномные и другие вычислительно-интенсивные задачи.

  • Ниша относительно узкая, но для специализированных вычислений такие системы остаются важными.
  • Модель данных и API обычно заточены под научные сценарии, а не массовый enterprise OLTP.

Примеры: SciDB · Rasdaman

Векторные базы данных

Embeddings

Фокус на хранении эмбеддингов и поиске ближайших соседей в высокоразмерных пространствах для AI/ML workloads.

  • Сильны в ANN-сценариях, где классические индексы работают плохо или не работают вовсе.
  • Реляционные движки активно добавляют vector extensions и индексы, снижая потребность в отдельном сервисе.

Примеры: Pinecone · Milvus

Графовые базы данных

Graph

Графовая модель (узлы и рёбра) удобна для сценариев с богатыми связями: fraud, рекомендаций, knowledge graph и маршрутизации.

  • Для OLTP-графов популярен Neo4j, для аналитики графов часто используют отдельные движки.
  • С выходом SQL:2023 (SQL/PGQ) часть графовых кейсов переезжает в экосистему реляционных СУБД.

Примеры: Neo4j · TigerGraph · SQL:2023

Общие выводы по data models

Большинство нереляционных систем либо заняли узкие ниши, либо сблизились с реляционным миром по возможностям.

SQL остаётся центральным языком запросов за счёт выразительности, переносимости и зрелой экосистемы инструментов.

Реляционные СУБД продолжают расширяться: JSON, graph/query extensions и vector index становятся частью «базы по умолчанию».

Архитектуры DBMS за последние 20 лет

Части 2/3 и 3/3 связывают архитектурные решения с изменениями в software и hardware: быстрее сети, новые storage-модели и рост требований к эластичности.

Колоночные системы

OLAP

За последние два десятилетия колоночное хранение стало стандартом аналитических DBMS благодаря эффективному I/O и сжатию.

  • OLAP-запросы обычно читают лишь часть колонок, поэтому columnar layout резко снижает объём чтения.
  • Однородность значений внутри колонок помогает компрессии, а векторизованная обработка ускоряет выполнение.

Примеры: Vertica · Amazon Redshift · BigQuery · ClickHouse · DuckDB

Облачные базы данных

Cloud

Рост пропускной способности сетей относительно дисков сделал viable архитектуру с разделением compute/storage и внешним NAS на базе объектных хранилищ.

  • Compute и storage масштабируются независимо: можно держать гибкую эластичность даже под отдельные запросы.
  • Если вычислительные ноды простаивают, их можно перераспределять на другие задачи без миграции данных.
  • Модель pushing query to the data часто выгоднее классического pulling data to the query.

Примеры: Snowflake · Google Spanner paper · Amazon Aurora paper · Aurora sharding talk

Data Lakes и Lakehouse

Lakehouse

Cloud-платформы ускорили переход от монолитных аналитических хранилищ к data lake + lakehouse-подходу с хранением «сырых» данных в object storage.

  • На практике это сдвиг от ETL к ELT: сначала загрузка, затем трансформации поверх уже загруженных данных.
  • Lakehouse-движки выполняют вычисления поверх открытых форматов и частично замещают классические DWH-схемы.

Примеры: Parquet · ORC · Apache Arrow · Databricks · Dremio · PrestoDB · Trino

NewSQL

Distributed SQL

Класс систем 2010-х, пытавшийся совместить ACID-транзакции традиционных RDBMS с горизонтальной масштабируемостью NoSQL.

  • Ранний рынок разделился на in-memory и disk-oriented подходы; in-memory-ставки оказались менее устойчивыми.
  • Закрепились распределённые транзакционные SQL-системы, которые сочетают консистентность и масштаб.

Примеры: Google Spanner · TiDB · CockroachDB · YDB

Аппаратные ускорители

Hardware

GPU/FPGA и другие accelerators дают прирост в отдельных workloads, но требуют дорогостоящей интеграции железа и software stack.

  • Подход чаще выгоден крупным cloud-вендорам, где есть масштаб и ресурсы на кастомную инфраструктуру.
  • Для большинства команд эффект редко оказывается кратным относительно сложности внедрения.

Базы данных на блокчейне

Niche

Идея неизменяемости и прозрачности транзакций привлекательна, но в универсальных enterprise-кейсах подход остаётся нишевым.

  • Главные ограничения: производительность, операционная сложность и непростая интеграция с классическими приложениями.
  • В массовом DBMS-рынке блокчейн-архитектуры пока не стали стандартом.

Выводы по архитектурам

Колоночные движки фактически стали стандартом OLAP.

Облачные DBMS доминируют благодаря управляемости и эластичности.

NewSQL закрепился как мост между ACID-моделью и масштабированием.

Специализированные архитектуры чаще остаются нишей или интегрируются в большие платформы.

Прощальные комментарии авторов

Не переоценивать маркетинговый шум: история Oracle (1980-е), MySQL (2000-е) и MongoDB (2010-е) показывает, что хайп не равен качеству.

Осторожно относиться к DBMS от big tech вне core-рынка баз данных: иногда рождаются отличные продукты, но нередко появляются сырые решения.

Out-of-box опыт критичен: если старт с продуктом сложный, пользователи быстро уходят к notebooks и обходным путям.

Даже при активном использовании ORM разработчикам по-прежнему нужно уметь писать SQL напрямую.

AI/ML повлияют на DBMS (особенно в OLAP и автотюнинге), но не заменят системную инженерию и архитектурную дисциплину.

Отдельный штрих из финала статьи: авторы уже иронично обещают вернуться с новым продолжением в 2044 году.

Что взять в практику

Выбирать движок от требований workload, а не от тренда: OLTP, OLAP, search и vector часто требуют разных компромиссов.

Закладывать эволюцию модели данных заранее: многие «NoSQL-only» продукты со временем всё равно приходят к SQL/ACID-функциям.

Проектировать облачные хранилища вокруг separation of concerns между compute и storage, чтобы не переплачивать за idle-ресурсы.

Оценивать инструменты через DX и операционные затраты: быстрый пилот без поддержки эксплуатации редко масштабируется.

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

Оригинальный разбор

Серия постов в tg-канале

Три части разбора статьи: data models, архитектуры и итоговые комментарии.

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

По серии постов в tg-канале: Part I · Part II · Part III.