Cíle architektury databázových serverů
Architektura databázového serveru určuje, jak systém dosahuje konzistence, dostupnosti, škálovatelnosti, výkonu a bezpečnosti při zpracování dat. Zahrnuje návrh paměťových struktur, úložiště, plánování dotazů, řízení souběhu, transakční protokolování, replikační a distribuční mechanismy, správu zdrojů a provozní observabilitu. Správná architektura minimalizuje latence, maximalizuje propustnost a poskytuje předvídatelné SLA napříč workloady OLTP, OLAP i HTAP.
Logická vs. fyzická architektura
- Logická vrstva: model dat (relace, dokumenty, klíč–hodnota, graf), transakční sémantika (ACID), rozhraní (SQL/JSON/Gremlin), bezpečnostní politika.
- Fyzická vrstva: paměťové struktury (buffer pool, columnar cache), souborový formát (řádkový/ sloupcový), protokol WAL, indexy, plánovač vláken, I/O scheduler a replikace.
Procesní model a plánování vláken
- Proces-per-connection vs. thread-per-connection: jednoduché, ale náročné na kontextové přepínání při vysoké konkurenci.
- Event-driven/async I/O (proaktory): sdílená vlákna, epoll/kqueue/IOCP, vhodné pro desítky tisíc spojení.
- Work-stealing a plánovač úloh: fronty úloh, přichycení na NUMA uzly, minimalizace lock contention.
Paměťová architektura: buffer pool, cache a NUMA
- Buffer pool: stránkově orientovaná cache datových a indexových stránek; strategie LRU/clock, ochrana hot page, oddělené clean/dirty lists.
- Redo/undo log cache: předsynchronizační buffer pro WAL, group commit snižující režii Fsync.
- NUMA-aware alokace: lokální paměť k CPU socketu, partitionované hash tabulky a latche pro snížení mezisocketové latence.
Úložiště: formáty stránek a datové organizace
- Řádkové (row store): vhodné pro OLTP, přístup po celých řádcích, indexované přístupy.
- Sloupcové (column store): OLAP, vektorové skeny, komprese (RLE, slovníková, bit-pack), pozdní materializace.
- Hybrid/HTAP: Delta-main architektura, LSM vrstvy pro ingest a sloupcové snapshoty pro analytiku.
- Stránky a extent: fixní velikost (4–32 KB), volná mapa, fill factor, heap vs. clustered index.
Indexy a akcelerace přístupu
- B+-stromy: standard pro OLTP; right-heavy workloady řeší page splits a mitigaci write-ahead a hot leaf problémů.
- Hash indexy: průměrná složitost O(1), nevhodné pro rozsahové dotazy; často in-memory.
- Vektorové/sloupcové indexy: min/max zóny, bloom filtry, zone maps.
- LSM stromy: sekvenční zápisy, proces memtable → SSTable → kompakce; vhodné pro zápisově náročné a log-strukturované úložiště.
- Specializované indexy: GiST/R-Tree (prostorová data), GIN (fulltextové hledání), invertované indexy (dokumentové DB), bitmapové indexy (OLAP).
Transakce, WAL a zotavení
- ACID: atomicita (undo/kompenzační operace), konzistence (omezení, triggery), izolace (řízení konfliktů), trvalost (WAL).
- WAL (Write-Ahead Logging): nejprve zápis redo záznamu do logu na perzistentní médium, následně stránku do datového souboru; group commit, log sequence numbers.
- Checkpointy: periodické flushování dirty stránek, zkrácení doby zotavení; fuzzy checkpointing pro minimalizaci stop-the-world událostí.
- Zotavení: sekvence analysis → redo → undo, crash-safe inkrementální restart, logical decoding pro CDC.
Řízení souběhu: zámky, latche a MVCC
- Zámky: sdílené/exkluzivní (S/X), zámky záměru (IS/IX/SIX), granularita (řádek, stránka, tabulka), detekce deadlocků a wait-for graf.
- MVCC: verzování řádků, snapshot isolation, readers don’t block writers; garbage collection starých verzí (vacuum, TTL, epochy).
- Latche/pojíšťky: krátkodobé ochrany in-memory struktur (uzly B+-stromu); liší se od transakčních zámků.
- Izolační úrovně: Read Uncommitted, Read Committed, Repeatable Read, Serializable (optimistická validace, SSI).
Zpracování dotazů: optimalizátor a exekuční engine
- Optimalizátor: pravidlové přepisy (predicate pushdown, projekční pruning), nákladový model (kardinálnost, selektivita), výběr plánu (řazení joinů, typy joinů, indexový přístup vs. úplný scan).
- Exekuce: iterator volcano model vs. vectorized batch processing; SIMD, late materialization, adaptivní výběr operátorů.
- Joiny: nested loop, hash join (build/probe, spill), sort-merge; adaptivní přepínání na základě statistik a runtime feedback.
Komprese, kodéry a šifrování
- Komprese: slovníkové, RLE, delta, bit-pack; snižuje I/O a zlepšuje cache hit-rate v OLAP.
- Šifrování v klidu: transparentní šifrování dat (TDE) s per-tabulačními či per-stránkovými klíči, integrace s KMS a rotací klíčů.
- Šifrování v přenosu: TLS, mTLS pro replikaci i klientské spojení.
Vysoká dostupnost: replikace a failover
- Fyzická replikace: bloková/WAL shipping, synchronní vs. asynchronní; quorum commit snižuje RPO.
- Logická replikace/CDC: změny na úrovni řádků/operací, selektivní publikace, downstream transformace.
- Failover: automatický s volbou lídra (Raft/Paxos), prevence split-brain (stonith, fencing), lag-aware promotion.
Škálování: scale-up, scale-out a dis-aggregace
- Scale-up: více CPU/RAM/NVMe; NUMA optimalizace, přichycení vláken, paralelní I/O fronty.
- Scale-out (shared-nothing): horizontální dělení dat (sharding) s consistent hashing, range či directory-based routováním, lokální transakce a dvoufázový commit přes hranice shardů.
- Shared-disk: vícero serverů nad jedním úložištěm; nutná koherence cache (DLM) a fencing.
- Dis-aggregated storage/compute: výpočetní uzly bezpečně napojené na objektové úložiště (S3, HDFS), lokální cache, tiered storage.
Partitioning a datová lokalita
- Horizontální dělení: range/hash/list; co-partitioning pro lokální joiny, pruning pro selektivní dotazy.
- Vertikální dělení: oddělení širokých sloupců, hot/cold data, archivace.
- Tiering: NVMe (hot), SSD (warm), objektové úložiště (cold) s politikami migrace stránek.
Distribuované transakce a konzistence
- 2PC/3PC: koordinátor, fáze prepare/commit, logování rozhodnutí; latence a blokování při selhání.
- Konsenzus (Raft/Paxos): replikovaný stavový stroj, lineární zápisy, volba lídra.
- Saga vzor: sekvence lokálních transakcí s kompenzačními kroky pro eventual konzistenci v mikroservisní architektuře.
- CAP: kompromisy mezi konzistencí a dostupností při síťových poruchách; volba CP vs. AP dle domény použití.
HTAP a in-memory architektury
- In-memory OLTP: lock-free datové struktury, optimistic concurrency, compile-to-native dotazy.
- HTAP: sdílené úložiště s delta-main architekturou, columnar sidecar a near-real-time replikací změn pro analytiku bez nutnosti extrahovat data.
- Akcelerátory: SIMD, GPU (skenování/joiny), XDP/RDMA pro nízkolatenční replikaci.
Provoz: observabilita, ladění a řízení zdrojů
- Telemetrie: metriky (latence p99, propustnost, cache hit rate, doba checkpointu), logy (strukturované), trasování (OpenTelemetry).
- Profilace dotazů: EXPLAIN/EXPLAIN ANALYZE, statistiky plánů, detekce regresí plánů.
- Řízení zdrojů: workload management, cgroups, kvóty CPU/RAM/IOPS, query governor a admission control.
Zálohování, snapshoty a obnova po havárii
- Online zálohy: hot snapshoty s konzistencí přes WAL; inkrementální zálohy a katalog verzí.
- Point-in-time recovery (PITR): kombinace plné zálohy a logů s časovým kurzorem; testy obnovy jako součást havarijních cvičení.
- Geo-DR: asynchronní replikace, lag-aware RPO, pravidelný failover drill.
Bezpečnost, víceuživatelskost a audit
- Autentizace a autorizace: RBAC/ABAC, row/column-level security, práva definer/invoker.
- Audit: nedestruktivní logování změn DDL/DML, integrace se SIEM, detekce anomálií.
- Multitenancy: schémata vs. instance vs. cluster; izolace hluku (noisy neighbor), resource pools.
Síť a I/O: latence, propustnost, protokoly
- Protokoly: binární s minimální reží, multiplexing, TLS terminace; keep-alive a connection pooling snižují latenci handshaku.
- I/O stack: asynchronní AIO/io_uring, NVMe namespaces, write combining, fsync discipline, direct I/O u datových souborů.
Architektury v cloudu a serverless
- Oddělený compute/storage: elastické clustery nad objektovým úložištěm, cache vrstvy, auto-suspend/resume.
- Serverless databáze: automatický autoscaling, mikroúčtování, limitní latence přes více tenantů a mitigace studených startů persistentními pooly.
- Compliance a suverenita: šifrování, bring-your-own-key, lokalizace dat, audit shody.
Modelování schématu a dopady na architekturu
- Normalizace vs. denormalizace: OLTP preferuje 3NF, OLAP hvězdicové/sněhové schéma; dopady na indexování a strategie joinů.
- Temporalita: system-versioned tabulky, bitemporální modely, time travel pro audit a analytiku.
- Doménové omezení: check constrainty, triggery, referenční integrita versus vynucení v aplikační vrstvě.
Typické topologie nasazení
| Topologie | Popis | Výhody | Rizika/limity |
|---|---|---|---|
| Single instance | Jeden server s replikací úložiště (RAID) | Jednoduchost, nízké TCO | Omezená vysoká dostupnost, scale-up pouze vertikálně |
| Primary–replica | Primární uzel, 1–N replik (synchronní/asynchronní) | Čtení ze replik, rychlý failover | Lag, složitější konzistence při zápisu |
| Multi-primary | Více zapisujících uzlů (konfliktní/bezkonfliktní) | Horizontální zápis | Konflikty, potřeba conflict-free modelů (CRDT) |
| Sharded cluster | Data dělená podle klíče, vrstva routerů | Lineární škálování |



























