Связанная глава
PostgreSQL изнутри
Глубокое погружение в MVCC, WAL, блокировки и индексы PostgreSQL от Егора Рогова.
Database Internals (Движки хранения)
Авторы: Alex Petrov
Издательство: O'Reilly Media, Inc.
Объём: 370 страниц
Разбор книги Alex Petrov: B-Trees, LSM-Trees, транзакции, репликация, консенсус и внутреннее устройство СУБД.
Оригинал
ПереводПодробный разбор
Code of Architecture
Детальный разбор первой части от Александра и клуба Code of Architecture
Часть I: Storage Engines (Движки хранения)
B-Trees и их варианты
Структуры данных
Дисковые оптимизации
Ключевой инсайт: B-Tree оптимизированы для чтения и in-place updates, что делает их идеальными для OLTP-нагрузок. PostgreSQL и MySQL InnoDB используют B+ Tree для индексов.
Подробный разбор
Code of Architecture
Детальный разбор главы об LSM-Tree от Александра и клуба Code of Architecture
LSM-Trees (Log-Structured Merge Trees)
Компоненты
Compaction
Оптимизации чтения
Ключевой инсайт: LSM-Trees оптимизированы для записи (sequential I/O), но требуют compaction для поддержания read-производительности. Используются в Cassandra, RocksDB, LevelDB, HBase.
B-Tree vs LSM-Tree: выбор структуры данных
Архитектура B-Tree
✓ Преимущества
- Быстрое чтение: O(log N)
- Эффективные range-запросы
- In-place updates
✗ Недостатки
- Write amplification
- Random I/O при записи
Где используется:
Transaction Processing
Управление конкурентностью
Recovery (Восстановление)
Часть II: Distributed Systems
Подробный разбор
Code of Architecture
Детальный разбор главы о репликации и партиционировании от Александра и клуба Code of Architecture
Replication & Partitioning
Репликация
Партиционирование
Подробный разбор
Code of Architecture
Детальный разбор главы о протоколах консенсуса от Александра и клуба Code of Architecture
Consensus Protocols
Paxos
- Классический алгоритм Лампорта
- Prepare → Promise → Accept
- Сложен в реализации
- Multi-Paxos для лидера
Raft
- Understandable consensus
- Leader election + Log replication
- etcd, Consul, CockroachDB
- Проще в реализации
Zab
- Zookeeper Atomic Broadcast
- Primary-backup model
- FIFO ordering гарантии
- Optimized for writes
Distributed Transactions
Atomic Commit Protocols
Альтернативные подходы
Низкоуровневые детали
Файловые форматы
Disk I/O оптимизации
Примеры из реальных СУБД
PostgreSQL
MySQL InnoDB
RocksDB
Cassandra
MongoDB
CockroachDB
Итоги и рекомендации
Сильные стороны
- Глубокий разбор внутреннего устройства баз данных
- Сравнение B-Tree vs LSM-Tree с trade-offs
- Детальный анализ алгоритмов консенсуса
- Примеры из реальных production систем
- Объяснение физического хранения на диске
Кому подойдёт
- Инженерам, работающим с базами данных
- Разработчикам storage-систем
- Тем, кто хочет понять trade-offs разных СУБД
- Подготовка к Staff+ позициям в DB-компаниях
- Исследователям в области систем хранения
Вердикт: «Database Internals» — это уникальная книга, которая заполняет пробел между высокоуровневыми книгами по системному дизайну и академическими трудами. Если DDIA объясняет что делать, то Петров объясняет как это реализовано внутри. Обязательна для тех, кто хочет понимать базы данных на глубоком уровне.
