Tag: system-design
All the articles with the tag "system-design".
-
Redis 深挖 · 数据结构与内存模型
深挖 Redis 数据结构:从 redisObject 对象头到 String/Hash/Set/ZSet 的底层编码(listpack/skiplist 等)与转换阈值,讲清编码为何只升不降、内存开销与碎片,以及 bigkey 的编码级成因与结构选型。
-
synchronized 与锁升级:对象头、Monitor 与偏向、轻量、重量级锁
打破对 synchronized 的重量级刻板印象!本文从对象头 Mark Word 切入,深度剖析锁升级底层机制,详细推演偏向锁、轻量级锁到重量级锁的单向不可逆路径。结合 JIT 锁消除与锁粗化优化,带你彻底搞懂内置锁的状态流转逻辑,从而在实际高并发架构中,明确何时该用 synchronized,何时必须替换为 ReentrantLock 显式锁。
-
JMM 与可见性:volatile、happens-before 规则与指令重排序
并发正确性的地基:从可见性、有序性、原子性三大核心问题出发,深度拆解 JMM 抽象模型、指令重排序机制、内存屏障与 happens-before 规则的底层流转逻辑。结合高并发业务排障场景,带你彻底讲透 volatile 关键字的可见性与有序性语义及其适用边界,并剖析 double-check 单例失效等经典并发踩坑案例,为后续深入 AQS 源码打牢基础。
-
性能测试:指标、负载模型、结果解读与容量规划
高性能系列收束:从 RT/QPS/并发指标与容量推算讲起,讲清开放 vs 闭合负载模型、尾延迟百分位与 Coordinated Omission、饱和点与容量规划,附 wrk/JMeter/Gatling/k6 可跑脚本。
-
批处理与请求合并:攒批、削频与吞吐优化
把多次小操作合并成一次大操作,用延迟换吞吐。讲透客户端攒批、Singleflight 请求合并、批量读写、组提交与异步刷盘的模式、参数(大小/超时/背压)与延迟-吞吐取舍。