You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询DDIA中事务场景下skew(时序异常)的含义及命名缘由

关于《DDIA》中"Skew"术语的两种含义解析

1. 负载倾斜(不均衡热点负载)

这是skew的第一种用法,指数据库中存在热点数据——部分数据被高频读写,导致系统负载在不同数据分片或节点间分布不均。比如电商平台中热门商品的库存记录,会被大量请求集中访问,这种负载分布的“偏移”就是该语境下的skew。

2. 时序异常(Timing Anomaly)

这是事务一致性语境下的skew,核心是事务执行的实际时序与预期的串行化时序出现偏差,导致最终结果不符合一致性约束。这里用skew是因为事务的执行顺序、数据读取/写入的时间点偏离了“串行执行”的预期,产生了不符合逻辑的结果。

具体场景中的Skew含义

Read Skew(读倾斜)

当事务在执行过程中,先后读取不同数据项时,这些数据项来自不同的快照版本,导致读取到的数据集是“混合时态”的。比如:

  • 事务1先读取数据A的旧版本
  • 事务2修改并提交了A和B的新版本
  • 事务1再读取B的新版本
    此时事务1拿到的A是旧值、B是新值,违背了“读取同一时间点快照”的预期,这种时序上的偏差就是read skew。

Write Skew(写倾斜)

多个事务基于相同的前置条件执行写操作,但由于事务执行时序交叉,导致每个事务的条件检查都基于未更新的数据,最终产生违反约束的结果。比如会议室预订场景:

  • 事务1检查到会议室还剩1个名额,准备预订
  • 事务2同时检查到会议室还剩1个名额,准备预订
  • 两个事务先后提交,最终会议室被超额预订
    这里的skew指的是事务的条件检查与写操作的时序,偏离了串行执行时“先检查后写入、后检查能看到前序修改”的逻辑,导致约束被破坏。

书中原文翻译

术语skew存在一词多义的问题:此前我们用它指代存在热点的不均衡负载(参见第205页“倾斜工作负载与缓解热点”),而此处它表示时序异常。

内容的提问来源于stack exchange,提问作者jaeger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:32:41