深入 PostgreSQL 作为传统 OLTP 基线的存储系统:先补齐 relation、heap、page、tuple、TID、WAL、LSN、snapshot、VACUUM、HOT、catalog 和 extension 等专有名词,再用 Mermaid 路径图拆解写入、读取、MVCC、回收、日志保留和生态边界。
开启 Topic 2:传统 OLTP 与存储基础,建立 PostgreSQL、MySQL/InnoDB、SQLite 的 storage-first 比较框架,并为后续系统文章列出源码入口、问题清单和 badcase 观察点。
收束现代数据库行业全景专题,回看 Day 001 到 Day 008 的传统 OLTP、LSM、分布式 SQL、云原生存算分离、OLAP、搜索向量和 Lakehouse 预览,把共同问题收敛到 storage-first 框架,并明确 Topic 2 传统 OLTP 与存储基础的后续学习顺序。
预览云原生存算分离数据库专题,说明为什么 shared-nothing 分布式 SQL 之后还会出现 shared storage、remote page、log service、page server、object storage、serverless compute 和 multi-cluster shared-data 架构,并为后续 Aurora、Neon、PolarDB、Azure SQL Hyperscale、Snowflake、BigQuery 的 storage-first 比较建立问题框架。
预览分布式 SQL 与 shared-nothing 架构专题,说明为什么单机 OLTP 和嵌入式 LSM 之后需要把 SQL、事务、索引、复制和元数据拆到 range/tablet/region、Raft/Paxos、timestamp 和 metadata service 上,并建立后续 TiDB、CockroachDB、OceanBase、YugabyteDB、Spanner 的 storage-first 比较框架。
预览 LSM 与嵌入式存储引擎专题,说明为什么 B+Tree/page update 之外还需要 WAL、memtable、SST 与 compaction 这条路线,并为后续 RocksDB、BadgerDB、Pebble 的系统文章建立 storage-first 比较框架。
从 SstFileWriter、DBImpl::IngestExternalFiles 和 ExternalSstFileIngestionJob 出发,理解 RocksDB 如何把外部 SST 文件校验、搬入 DB 目录、分配 level 与 global seqno,并通过 MANIFEST 安装到当前 LSM。
Day 021 作为 RocksDB 高级特性、优化与专题深挖的目录页,简要梳理 Merge Operator、Compaction Filter、SST File Ingestion、Backup / Checkpoint 和 DeleteRange 的定位、原理、必要性与大概实现链路。
从 Options、MutableCFOptions、VersionStorageInfo、WriteController 和 RateLimiter 出发,理解 RocksDB 参数如何影响 memtable、L0、level target、后台 compaction 债务、I/O 限流和 write stall,并整理一套可执行的调参顺序。
从 TransactionDB、LockManager、SnapshotChecker、OptimisticTransactionDB 和 WritePrepared / WriteUnprepared 出发,理解 RocksDB 如何在既有 LSM 之上叠加事务隔离、冲突检测和恢复语义。