数据库内核实验索引
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存、湖仓、流处理、查询引擎、RocksDB、向量、Redis、全文检索、TiKV/HTAP、FoundationDB、SQLite 与 WiredTiger 内核,以及 LSM-Tree 实验与其它单篇。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 16 篇文章 · 返回首页
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存、湖仓、流处理、查询引擎、RocksDB、向量、Redis、全文检索、TiKV/HTAP、FoundationDB、SQLite 与 WiredTiger 内核,以及 LSM-Tree 实验与其它单篇。
定位 Lucene 9.x/10.x 库内核与 Elasticsearch 8.x 服务层相对 architecture/42、storage/29、向量引擎与 PG GIN 的分工;以最小索引故事建立坐标系,交代倒排索引学术谱系与 18 篇路线图。
从 Robertson & Zaragoza (2009) 的 BM25 公式出发,拆解 Lucene BM25Similarity 如何把 TF 饱和、文档长度归一与 IDF 落到 postings 与 norms;对照 TF-IDF 工程差异,并划定与学习排序的生产边界。
拆解 Lucene IndexWriter 的 RAM 缓冲、flush 出段与 DirectoryReader.open(IndexWriter) 近实时语义;说明 Searcher 刷新与「刚写入即可搜」在库层与 ES refresh 层各自保证什么。
说明 Lucene TieredMergePolicy 如何把多段收成更少大段、软删除如何通过 liveDocs 维持可见性并延迟空间回收,以及 force merge 在 Elasticsearch 中的代价与适用边界。
说明 Lucene DocValues 的列式访问模型如何服务排序、聚合与脚本,stored fields 的随机取原文代价,以及 Elasticsearch 聚合管线对 DocValues 的依赖——为第 14 篇预埋。
在 Lucene 段模型之上拆解 Elasticsearch 8.x 的 Index、主分片哈希路由、副本读写分工,以及 cluster state 元数据膨胀如何成为 master 瓶颈;与 architecture/42 分片陷阱对读,不复述全文。
用保证矩阵拆解 Elasticsearch 8.x 的 refresh、flush、translog 各自承诺什么:可搜窗口、磁盘持久化、崩溃恢复;对照 refresh_interval 与 wait_for,并在单节点 8.15 上实测写入可见性。
拆解 Elasticsearch 8.x 搜索的两阶段 scatter-gather:协调节点扇出 query phase 收集 doc id 与排序键,再 fetch phase 取 stored fields,reduce 全局 Top-K;并说明 DFS 如何修正跨分片 IDF。
沿 Elasticsearch 8.x 聚合执行路径说明为何 terms/date histogram 走 doc values 而非倒排,协调节点如何合并分片桶;并以 dynamic mapping 字段爆炸解释 circuit breaker 与排障入口。
只谈 Elasticsearch 8.x / Lucene 上 BM25 与 kNN 的组合接口与段内共存代价,ANN 算法与专用向量引擎细节外链 vector-engine 与 db-frontier/08;指出倒排与向量同 Segment 生命周期尚未统一的开放问题。
对照 Elasticsearch 8.x 与 OpenSearch 的许可与发行分叉,说明二者与 Solr 如何共享 Lucene 段模型;Solr 仅作边界一句,内核机制仍回链本系列 01–15 篇。
用症状到机制的决策树覆盖 circuit breaker、refresh 过频、大字段、分片过多与慢查询 explain,逐条回链本系列 Lucene 段与 ES NRT 篇章;不含未跑集群 benchmark。
给出 ES/OpenSearch、PostgreSQL GIN、ClickHouse 全文、专用向量引擎与「仅日志检索」的扩展决策树;回链 observability/08 与 llm-infra RAG,收束本系列 18 篇开放问题。
补齐搜索架构叙事与 RAG/向量引擎之间的全文检索内核层:以 Lucene 9.x/10.x 拆解 Analyzer、FST、postings、BM25 与 IndexWriter,并以 Elasticsearch 8.x 拆解分片、refresh/translog 与查询路径;OpenSearch 对照与选型收束。
从日志场景分类出发,深入对比 Elasticsearch/OpenSearch、Grafana Loki、ClickHouse、OpenObserve 四大方案在全文检索、写入吞吐、存储成本、多租户和运维复杂度上的本质差异,结合 B 站、知乎 ClickHouse 日志平台实践,给出选型决策矩阵与工程坑点。