title: Клеппман и Риккомини, «Designing Data-Intensive Applications», 2-е изд. (2025, 673 стр.) — карта переноса в базу знаний source: materials/DDIA-2nd-edition.pdf конспект: TASK-45.39, извлечено pymupdf 2026-09-17; полный текст глав — в ch-*.md рядом, выжимка — в каждом файле после заголовка «Выжимка» статус: перенесено 2026-09-17 в knowledge-base.md / classic-designs.md / ddia-map.md (см. колонку «Куда»)
Карта переноса: DDIA 2-е изд. → база знаний
⚠️ 2-е издание ≠ русское издание. Русский перевод («Высоконагруженные приложения», Питер) — это 1-е издание (12 глав, старая нумерация: репликация = гл. 5, консенсус = гл. 9). 2-е издание (Kleppmann & Riccomini, 2025) переработано: гл. 1 переписана, гл. 2 новая (НФТ + кейс лент), старые гл. 5–9 сдвинулись в 6–10, гл. 10 (пакетная) → 11, потоки → 12, гл. 13 — философия стриминга, гл. 14 — этика. При чтении русского перевода сверяться с таблицей соответствия в ../ddia-map.md.
Приоритеты по структуре 2-го издания: главы 6–10 — ядро (сердце секции: репликация → шардирование → транзакции → отказы → консистентность/консенсус), 1–5 — вторично (фундамент: trade-offs, НФТ/ленты, модели данных, LSM/B-tree, кодирование), 11–13 — опционально (batch, stream, философия; гл. 12 всё же полезна перед секцией — вопросы про Kafka), 14 — этика (после секций).
| Гл. | Файл | Тема | Куда перенесено |
|---|---|---|---|
| 1 | ch-01-trade-offs-architecture.md |
Trade-offs; OLTP vs OLAP; cloud vs self-hosted; зачем распределяться и чем платить | KB §12 (заметка о 2-м изд.) — сам блок уже покрыт KB §1–3 |
| 2 | ch-02-nfr-timelines-case.md |
НФТ; кейс лент: polling vs материализация, fan-out 5,800×200≈1M/с; p50/p95/p99, хвостовая амплификация; metastable failure | KB §10 (metastable failure, tail latency), classic-designs §2 (сверка кейса лент) |
| 3 | ch-03-data-models.md |
Реляционная vs документная vs графовая; нормализация; Event Sourcing/CQRS | KB §12 (частично §3) — справочное |
| 4 | ch-04-storage-retrieval.md |
Hash-индекс, LSM/SSTable/компактация/Bloom; B-tree/WAL/page split; LSM vs B-tree; колоночная аналитика | KB §3.1 (новое: LSM vs B-tree детально) |
| 5 | ch-05-encoding-evolution.md |
Backward/forward compat; Protobuf/Avro; потоки данных через БД/REST/RPC; durable execution / workflow engines | KB §15 (новое: кодирование + workflow engines) |
| 6 | ch-06-replication.md |
Single/multi-leader/leaderless; sync vs async; row-based лог = CDC; лаг и сессионные гарантии; failover/split brain | KB §5 (дополнения: реплицируемый лог, semi-sync, сессионные гарантии — формулировки) |
| 7 | ch-07-sharding.md |
Range/hash; fixed shard count; ребалансировка; local vs global вторичные индексы; routing | KB §6 (дополнения: global index, routing, мультиарендность) |
| 8 | ch-08-transactions.md |
RC → SI/MVCC → serializable; lost update/write skew/phantom; 2PL/SSI; 2PC/XA in-doubt; NewSQL; exactly-once через message-ID таблицу | KB §7 (дополнения: SSI, write skew, NewSQL, exactly-once-рецепт) |
| 9 | ch-09-trouble-distributed.md |
Partial failure, таймауты, wall vs monotonic clock, GC-паузы/зомби, кворум объявляет мёртвым, fencing tokens, Byzantine, system models, safety/liveness | KB §9 (дополнения: часы, system models, fencing-источники) |
| 10 | ch-10-consistency-consensus.md |
Linearizability vs serializability (strict); CAP/PACELC/Attiya-Welch; quorum ≠ linearizable; Lamport/HLC/vector clocks; консенсус и 6 эквивалентных форм; Raft-механика; ZooKeeper/etcd | KB §7 (дополнения: strict serializability, эквивалентности консенсуса, логические часы), §12 |
| 11 | ch-11-batch-processing.md |
MapReduce/dataflow, join'ы в batch, derived data | KB §12 (справочное) |
| 12 | ch-12-stream-processing.md |
Брокеры vs log-based; consumer offsets; CDC/log compaction; окна/event time; exactly-once практики | KB §8 (дополнения: log compaction, CDC vs event sourcing, окна/watermarks) |
| 13 | ch-13-philosophy-streaming.md |
Единый журнал, причинность vs total order, reprocessing, unbundling | — (уровень staff, после секций) |
| 14 | ch-14-doing-right-thing.md |
Этика данных, приватность, ответственность инженера | — (не для секции) |
Как пользоваться
- Быстрое повторение перед секцией: выжимки глав 6–10 (верх каждой ch-*.md) + KB §5–§9; глубина — по ссылкам из KB.
- Поиск по ключевому слову («fencing», «SSTable», «hinted handoff», «HLC»):
grep -rn "слово" ch-*.mdпо грязному тексту. - Чтение русского перевода (1-е изд.): сверять номера глав с таблицей соответствия в
../ddia-map.md§2.