写扩展与批量化

写扩展路径:批量化合并写入、异步化削峰、分区与分片分摊、追加日志替代随机写;每步都要评估其对一致性与延迟的影响。

批量化合并单条写为批量提交,摊薄事务与网络开销
异步化先入队再批量落库,平滑写峰值
分片按分片键分摊写入,提升总写吞吐
  • 批量提交:摊薄事务与网络开销,注意锁持有时间变化
  • 异步落库:先写队列或日志再入库,接受读己之写延迟
  • 分片:按分片键分摊写压力,配套跨片查询与再平衡方案
  • 追加写:日志结构存储替代随机写,评估读放大代价
  • 写扩散核算:按副本数与下游数量估算放大后的写入量
  • 热点规避:单调递增键加扰动,减少页分裂与写集中
验证口径同时观察写吞吐、复制延迟与查询延迟,避免单项改善整体退化
成本提醒批量与异步提升吞吐的同时,会改变失败重试的策略与资源占用
顺序保障分片后同键顺序由路由与消费端共同保证
回滚开关异步与批量路径保留降级为同步直写的开关
批量大小存在甜蜜点:过大导致锁持有时间与失败重试成本上升,需要用压测确定。

易错点

  • 批量过大导致单事务锁等待加剧
  • 异步写入无背压,队列积压掩盖真实写入能力

数据来源与参考

  • 《数据密集型应用系统设计》(Kleppmann)第 3 章
  • 《高性能 MySQL(第 4 版)》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌