数据库内核实验索引
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存引擎 / 数据湖与开放表格式 / 流式数据处理 / 分布式 OLAP 查询引擎 / RocksDB 内核,以及 LSM-Tree 从零实现实验。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 22 篇文章 · 返回首页
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存引擎 / 数据湖与开放表格式 / 流式数据处理 / 分布式 OLAP 查询引擎 / RocksDB 内核,以及 LSM-Tree 从零实现实验。
闭合存储引擎三角的最后一角:对照 PG B-Tree 与列存 scan,定位 LSM 写优化引擎在 TiKV、Flink、Kafka Streams、ClickHouse Embedded 中的嵌入方式,并划分本系列与 lsm-tree DIY、storage/31–32、stream/12 的分工边界。
用决策树收束 Trino/Spark/ClickHouse/DuckDB/DataFusion/PostgreSQL 的适用边界:交互式联邦、批 ETL、嵌入式分析、流批一体各走哪条路径;给出能力对照表(无吞吐排名)与 postgresql→columnar→lakehouse→stream→query-engine 全栈阅读顺序,闭合数据平台栈。
行存 vs 列存的带宽、压缩与向量化三角;ClickHouse Server 进程模型、线程池与 MergeTree 引擎家族地图;src/Storages 与 src/Processors 源码入口。对照 PG 行存与 LSM 写优化路径,版本锚定 ClickHouse 24.x LTS。
ClickHouse MergeTree Part 目录结构:columns.txt、checksums.txt、.bin、.mrk2、primary.idx 语义,Granule 与 Mark 的定位作用,Wide/Compact 布局与 MergeTreeDataPart 源码入口。版本锚定 24.x LTS。
ClickHouse 列压缩:LZ4、ZSTD、Delta、DoubleDelta、Gorilla 时序编码与列类型关系;CODEC 链顺序、LowCardinality 与 PG TOAST 对照。压缩比须本机实测,本文不编造倍数。
ClickHouse Block 列向量 batch、IProcessor Pipeline 与 filter/project/aggregate 向量实现;对照 PostgreSQL 火山模型 ExecProcNode。源码入口 src/Processors、src/Columns。24.x LTS。
MergeTree SELECT 读路径:Mark Range 定位 Granule、PREWHERE 与 WHERE、Part 级并行与 max_threads。EXPLAIN indexes=1 解读方法。24.x LTS,无伪造 EXPLAIN 输出。
MergeTree 后台 merge 触发与 selector、ReplacingMergeTree/CollapsingMergeTree 语义、ALTER UPDATE/DELETE mutation 异步路径与危害。对照 LSM compaction。源码 MergeTreeDataMergerMutator。24.x LTS。
ClickHouse PRIMARY KEY 排序键稀疏索引语义、Data Skipping Index(minmax/set/bloom_filter)与 Mark Range 协同;对照 PostgreSQL B-Tree。24.x LTS。
ReplicatedMergeTree 副本协调:Log entry、ClickHouse Keeper/ZooKeeper 路径、副本同步与 recovery。双节点实验步骤(本环境未部署)。24.x LTS 默认推荐 Keeper。
ClickHouse Distributed 表的分片键、写入路由与 SELECT 下推;GLOBAL IN/JOIN 的代价与替代方案;与 ReplicatedMergeTree 副本层的关系;对照 PG Citus 的边界。
ClickHouse Materialized View 的触发语义、块级增量与目标表引擎选择;Kafka Engine + MV 典型架构;与 PostgreSQL 触发器/MV 的对照及常见坑。
从部署形态、规模、并发、联邦与运维成本五维对比 ClickHouse 与 DuckDB;给出决策树与组合架构,不排名不测虚构 benchmark。
ClickHouse system.parts、merges、replicas、query_log 与 replication_queue 的字段语义;parts 数、merge 延迟、内存 tracking 的可观测性基线与告警思路。
Too many parts、merge 跟不上 insert、mutation 堆积、副本延迟与 lost replica、max_memory_usage OOM 的症状链、根因与缓解;附测试环境复现框架。
parts_to_throw_insert、merge 线程池、max_bytes_to_merge、merge_max_block_size、磁盘 SSD/HDD 策略与内存预算;MergeTree settings 与服务器级 config 的容量规划方法。
主选 ClickHouse 拆解 MergeTree 存储格式、向量化执行与分布式协调;DuckDB 作为嵌入式 OLAP 对照。覆盖列存文件布局、merge 机制、跳数索引与生产故障模式,面向数据平台工程师与从 PG/MySQL 转 OLAP 的 DBA。
从日志场景分类出发,深入对比 Elasticsearch/OpenSearch、Grafana Loki、ClickHouse、OpenObserve 四大方案在全文检索、写入吞吐、存储成本、多租户和运维复杂度上的本质差异,结合 B 站、知乎 ClickHouse 日志平台实践,给出选型决策矩阵与工程坑点。
从 L1/L2/L3 分级、FIX FAST/ITCH/SBE 协议到 UDP 组播+重传通道、内核旁路与微波传输,系统梳理交易所行情系统的生产、分发与消费;给出 snapshot+incremental 恢复机制、Conflation 与 Full Tick 权衡、kdb+/ClickHouse/QuestDB tick 存储、事件时间回放与 K 线合成实现,并附 Binance WebSocket Diff Depth 维护本地订单簿的 Go/Python 示例。
深入时序数据库的存储内核:Prometheus TSDB 的 WAL 与块管理、InfluxDB 的 TSM 引擎与 TSI 倒排索引、Gorilla 压缩算法的数学原理、VictoriaMetrics mergeset 架构、ClickHouse MergeTree 作为 metrics 后端,以及国内大厂在 series churn 和 compaction 风暴上踩过的坑。
深入剖析计算存储分离——Aurora日志即存储、TiDB的TiKV+TiFlash分层、Snowflake对象存储+缓存、ClickHouse存算分离模式的架构对比与选型指南