2026-04-21 | architecture · security | #JWT #refresh-token #revocation #OIDC #SLO #Redis #bloom-filter
JWT 的无状态签发解决了分布式认证的扩展性,但也把吊销这件事推回到了工程师面前。一个短期 access token 配长期 refresh token 的混合架构,在 Google、Auth0、Keycloak、AWS Cognito 的实现里趋同收敛,但细节差异能决定系统在被攻击时是多丢一个账号还是多丢一百万。本文把 refresh token rotation、reuse detection、family-based abort、OIDC back-channel logout、Redis 黑名单、Bloom filter 加速、批量吊销场景拆开讲清楚。
2025-10-16 | storage | #read-optimization #bloom-filter #block-cache #read-amplification #prefetch #index-design #column-pruning
深入分析存储读取性能优化——索引设计、Bloom Filter 调优、块缓存、压缩的 CPU-I/O 权衡、预读策略与读放大测量
2025-09-09 | storage | #lsm-tree #compaction #write-amplification #read-amplification #space-amplification #bloom-filter
LSM-Tree 的核心设计是把随机写转换为顺序写,但这个转换不是免费的。写入经过 MemTable 刷盘、再经过多次 Compaction 合并,每一字节的用户数据在磁盘上可能被反复读写数十次。读取一个 key 时,最坏情况下需要逐层搜索,直到命中或遍历全部层级。与此同时,旧版本数据和墓碑标记占用的额外空间,在 Co…
2025-09-07 | storage | #index #btree #hash-index #inverted-index #bloom-filter #bitmap #r-tree
数据库里存了一亿行数据,要找出 userid 42 的那一行。没有索引的做法是全表扫描(Full Table Scan)——从第一个数据页读到最后一个数据页,逐行比对。假设每个数据页 16 KB,一亿行占 20 GB,即使顺序读能跑到 500 MB/s,也需要 40 秒。加一个 B+Tree 索引,三次磁盘 I/O 就…
2026-04-10 | algorithms | #bloom-filter #counting-bloom #cuckoo-filter #ribbon-filter #probabilistic-ds
一个 1970 年诞生的数据结构,至今仍是现代数据库、网络设备和分布式系统的基石。从 Burton Bloom 的原始论文到 Meta 在 2021 年推出的 Ribbon Filter,这个家族用概率换空间的哲学从未过时。
2026-03-15 | database | #database #lsm-tree #leveldb #rocksdb #storage-engine #write-amplification #compaction #bloom-filter
从零理解 LSM-Tree 存储引擎的设计哲学:B-Tree 与 LSM-Tree 的本质差异,写放大/读放大/空间放大的三角权衡,以及 WAL、MemTable、SSTable、Compaction、Bloom Filter 各组件的角色与协作关系。从零写一个 LSM-Tree 存储引擎系列第 1 篇。
2026-03-29 | database | #database #lsm-tree #sstable #bloom-filter #prefix-compression #leveldb #storage-engine
从零实现 SSTable 和 Bloom Filter:Data Block 前缀压缩与 restart 二分查找、Bloom Filter 双重哈希把误判率压到约 1%、SSTable Builder 和 Reader 的完整 C 代码。从零写一个 LSM-Tree 存储引擎系列第 3 篇。
2026-03-15 | database | #database #lsm-tree #leveldb #rocksdb #storage-engine #rust #compaction #wal #sstable #bloom-filter #skip-list #benchmark
五篇长文,从 LSM-Tree 的设计哲学讲到完整 KV 引擎实现,最后用 Rust 重写并三方 benchmark 对比。每篇含完整 C 代码、架构图、数学推导。